commit 1857eea8a426938a872365562711d3962a70d1a0 Author: HM-CN\zhengxuan.zhang Date: Mon Aug 4 13:03:33 2025 +0800 #001 初版提交 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23053de --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +packages/ diff --git a/Analysis/.vs/4.CheryAnalysis.csproj.dtbcache.json b/Analysis/.vs/4.CheryAnalysis.csproj.dtbcache.json new file mode 100644 index 0000000..94d9d4d --- /dev/null +++ b/Analysis/.vs/4.CheryAnalysis.csproj.dtbcache.json @@ -0,0 +1 @@ +{"RootPath":"E:\\1AHexagonProjects\\2024\\安徽大众C15-Nextsense\\VWAnalysis\\CheryAnalysis","ProjectFileName":"4.CheryAnalysis.csproj","Configuration":"Debug|x64","FrameworkPath":"","Sources":[{"SourceFile":"AboutSoftwareInfo.cs"},{"SourceFile":"AboutSoftwareInfo.designer.cs"},{"SourceFile":"BaseUnit\\Base.cs"},{"SourceFile":"BaseUnit\\ImageDfn.cs"},{"SourceFile":"BaseUnit\\NetworkCopy.cs"},{"SourceFile":"BaseUnit\\PlcObject.cs"},{"SourceFile":"BaseUnit\\PlcSignalDfn.cs"},{"SourceFile":"BaseUnit\\PlcWriteManager.cs"},{"SourceFile":"BaseUnit\\RichTextUnit.cs"},{"SourceFile":"CheryCenterControl.cs"},{"SourceFile":"CheryCenterControl.designer.cs"},{"SourceFile":"Define\\ConfigPlc.cs"},{"SourceFile":"Define\\Define.cs"},{"SourceFile":"Define\\MyExtensions.cs"},{"SourceFile":"CarDataDisplayForm\\FLeftCarDataEHY.cs"},{"SourceFile":"CarDataDisplayForm\\FLeftCarDataEHY.designer.cs"},{"SourceFile":"CarDataDisplayForm\\FRightCarDataEHY.cs"},{"SourceFile":"CarDataDisplayForm\\FRightCarDataEHY.designer.cs"},{"SourceFile":"FAddTolerance.cs"},{"SourceFile":"FAddTolerance.designer.cs"},{"SourceFile":"FEditTolerance.cs"},{"SourceFile":"FEditTolerance.designer.cs"},{"SourceFile":"TestPageView.cs"},{"SourceFile":"TestPageView.designer.cs"},{"SourceFile":"CarDataDisplayForm\\FLeftCarData.cs"},{"SourceFile":"CarDataDisplayForm\\FLeftCarData.designer.cs"},{"SourceFile":"CarDataDisplayForm\\FRightCarData.cs"},{"SourceFile":"CarDataDisplayForm\\FRightCarData.designer.cs"},{"SourceFile":"FSoftwareSetup.cs"},{"SourceFile":"FSoftwareSetup.designer.cs"},{"SourceFile":"FToleranceSetup.cs"},{"SourceFile":"FToleranceSetup.designer.cs"},{"SourceFile":"ZSFDEMO.cs"},{"SourceFile":"ZSFDEMO.designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\x64\\Debug\\.NETFramework,Version=v4.6.AssemblyAttributes.cs"}],"References":[{"Reference":"E:\\1AHexagonProjects\\2024\\安徽大众C15-Nextsense\\VWAnalysis\\DAL\\bin\\Debug\\CheryAnalysisDAL.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\1AHexagonProjects\\2024\\安徽大众C15-Nextsense\\VWAnalysis\\CheryAnalysis\\bin\\x64\\Debug\\Covert.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\1AHexagonProjects\\2024\\安徽大众C15-Nextsense\\VWAnalysis\\CheryAnalysis\\bin\\x64\\Debug\\HslCommunication.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\1AHexagonProjects\\2024\\安徽大众C15-Nextsense\\VWAnalysis\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\1AHexagonProjects\\2022\\PLCModule\\PLCModule\\bin\\Debug\\PLCModule.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Configuration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Web.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Windows.Forms.DataVisualization.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Progress\\Telerik UI for WinForms R3 2018\\Bin40\\Telerik.WinControls.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Progress\\Telerik UI for WinForms R3 2018\\Bin40\\Telerik.WinControls.UI.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Progress\\Telerik UI for WinForms R3 2018\\Bin40\\TelerikCommon.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\1AHexagonProjects\\2024\\安徽大众C15-Nextsense\\VWAnalysis\\UserControlClass\\bin\\Debug\\UserControlClass.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"E:\\1AHexagonProjects\\2024\\安徽大众C15-Nextsense\\VWAnalysis\\CheryAnalysis\\bin\\x64\\Debug\\CheryAnalysis.exe","OutputItemRelativePath":"CheryAnalysis.exe"},{"OutputItemFullPath":"E:\\1AHexagonProjects\\2024\\安徽大众C15-Nextsense\\VWAnalysis\\CheryAnalysis\\bin\\x64\\Debug\\CheryAnalysis.pdb","OutputItemRelativePath":"CheryAnalysis.pdb"}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/Analysis/.vs/9.Analysis.csproj.dtbcache.json b/Analysis/.vs/9.Analysis.csproj.dtbcache.json new file mode 100644 index 0000000..ffd6813 --- /dev/null +++ b/Analysis/.vs/9.Analysis.csproj.dtbcache.json @@ -0,0 +1 @@ +{"RootPath":"D:\\HexagonProjects\\2025-01-捷豹路虎改造\\code\\Analysis","ProjectFileName":"9.Analysis.csproj","Configuration":"Debug|x64","FrameworkPath":"","Sources":[{"SourceFile":"AboutSoftwareInfo.cs"},{"SourceFile":"AboutSoftwareInfo.designer.cs"},{"SourceFile":"BaseUnit\\Base.cs"},{"SourceFile":"BaseUnit\\ImageDfn.cs"},{"SourceFile":"BaseUnit\\NetworkCopy.cs"},{"SourceFile":"BaseUnit\\PlcObject.cs"},{"SourceFile":"BaseUnit\\PlcSignalDfn.cs"},{"SourceFile":"BaseUnit\\PlcWriteManager.cs"},{"SourceFile":"BaseUnit\\RichTextUnit.cs"},{"SourceFile":"Define\\ConfigPlc.cs"},{"SourceFile":"Define\\Define.cs"},{"SourceFile":"Define\\MyExtensions.cs"},{"SourceFile":"FormMain.cs"},{"SourceFile":"FormMain.designer.cs"},{"SourceFile":"LabPictureControl.cs"},{"SourceFile":"LabPictureControl.designer.cs"},{"SourceFile":"Tolerance\\FAddTolerance.cs"},{"SourceFile":"Tolerance\\FAddTolerance.designer.cs"},{"SourceFile":"Tolerance\\FEditTolerance.cs"},{"SourceFile":"Tolerance\\FEditTolerance.designer.cs"},{"SourceFile":"FSoftwareSetup.cs"},{"SourceFile":"FSoftwareSetup.designer.cs"},{"SourceFile":"Tolerance\\FToleranceSetup.cs"},{"SourceFile":"Tolerance\\FToleranceSetup.designer.cs"},{"SourceFile":"ZSFDEMO.cs"},{"SourceFile":"ZSFDEMO.designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\x64\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"D:\\HexagonProjects\\2025-01-捷豹路虎改造\\code\\Analysis\\bin\\x64\\Debug\\Covert.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\HexagonProjects\\2025-01-捷豹路虎改造\\code\\DAL\\bin\\Debug\\DAL.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\HexagonProjects\\2025-01-捷豹路虎改造\\code\\Analysis\\bin\\x64\\Debug\\HslCommunication.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\HexagonProjects\\2025-01-捷豹路虎改造\\code\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\HexagonProjects\\2025-01-捷豹路虎改造\\code\\packages\\NLog.5.3.3\\lib\\net46\\NLog.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\HexagonProjects\\2025-01-捷豹路虎改造\\code\\PLCModule\\PLCModule\\bin\\Debug\\PLCModule.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Configuration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.IO.Compression.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Web.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.DataVisualization.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Progress\\Telerik UI for WinForms R3 2018\\Bin40\\Telerik.WinControls.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Progress\\Telerik UI for WinForms R3 2018\\Bin\\Telerik.WinControls.GridView.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Progress\\Telerik UI for WinForms R3 2018\\Bin40\\Telerik.WinControls.UI.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Progress\\Telerik UI for WinForms R3 2018\\Bin40\\TelerikCommon.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\HexagonProjects\\2025-01-捷豹路虎改造\\code\\Analysis\\bin\\x64\\Debug\\NSAnalysis.exe","OutputItemRelativePath":"NSAnalysis.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/Analysis/9.Analysis.csproj b/Analysis/9.Analysis.csproj new file mode 100644 index 0000000..7fe680d --- /dev/null +++ b/Analysis/9.Analysis.csproj @@ -0,0 +1,313 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {7C83975D-A071-48E0-8A12-DAFD20525B66} + WinExe + Properties + NSAnalysis + NSAnalysis + v4.8 + 512 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + x64 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + HexagonTransparent.ico + + + + False + bin\x64\Debug\Covert.dll + + + ..\DAL\bin\Debug\DAL.dll + + + False + bin\x64\Debug\HslCommunication.dll + + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + ..\packages\NLog.5.3.3\lib\net46\NLog.dll + + + ..\PLCModule\PLCModule\bin\Debug\PLCModule.dll + + + + + + + + + + + + + + + + + ..\lib\RCWF\2018.3.1016.40\Telerik.WinControls.dll + True + + + + ..\lib\RCWF\2018.3.1016.40\Telerik.WinControls.UI.dll + True + + + ..\lib\RCWF\2018.3.1016.40\TelerikCommon.dll + True + + + + + Form + + + AboutSoftwareInfo.cs + + + + + + + + + + + + + Form + + + FormMain.cs + + + UserControl + + + LabPictureControl.cs + + + + + + + + Form + + + FAddTolerance.cs + + + Form + + + FEditTolerance.cs + + + Form + + + FSoftwareSetup.cs + + + Form + + + FToleranceSetup.cs + + + Form + + + ZSFDEMO.cs + + + AboutSoftwareInfo.cs + + + FormMain.cs + + + LabPictureControl.cs + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + FAddTolerance.cs + + + FEditTolerance.cs + + + FSoftwareSetup.cs + + + FToleranceSetup.cs + + + ZSFDEMO.cs + + + Always + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4.7 %28x86 和 x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + + \ No newline at end of file diff --git a/Analysis/9.Analysis.csproj.user b/Analysis/9.Analysis.csproj.user new file mode 100644 index 0000000..95a1d1a --- /dev/null +++ b/Analysis/9.Analysis.csproj.user @@ -0,0 +1,13 @@ + + + + publish\ + + + + + + zh-CN + false + + \ No newline at end of file diff --git a/Analysis/AboutSoftwareInfo.cs b/Analysis/AboutSoftwareInfo.cs new file mode 100644 index 0000000..e995120 --- /dev/null +++ b/Analysis/AboutSoftwareInfo.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; +using BaseFunction; +using Telerik.WinControls.UI; +using System.Reflection; +using System.Diagnostics; + +namespace NSAnalysis +{ + public partial class AboutSoftwareInfo : Telerik.WinControls.UI.ShapedForm + { + public AboutSoftwareInfo() + { + InitializeComponent(); + } + + private void AboutSoftwareInfo_Load(object sender, EventArgs e) + { + labelExpiryDateValue.Text = ConfigDfn.strExpiredTime;//ConfigDfn.strExpiredTime + labVersion.Text = AssemblyFileVersion; + //海克斯康制造智能技术(青岛)有限公司 / Hexagon Manufacturing Intelligence (Qingdao) Co., Ltd. + //Please send the request file to Hexagon Manufacturing Intelligence (Qingdao) Co., Ltd. + } + + public string AssemblyVersion + { + get + { + return Assembly.GetExecutingAssembly().GetName().Version.ToString(); + } + } + + public string AssemblyFileVersion + { + get { return FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly().Location).FileVersion; } + } + + private void rbtnCreateRequest_Click(object sender, EventArgs e) + { + try + { + SaveFileDialog fbd = new SaveFileDialog(); + fbd.DefaultExt = ".key"; + fbd.Filter = "KEY (*.key)|*.key"; + fbd.FileName = "Request.key"; + + if (fbd.ShowDialog() == DialogResult.OK) + { + using (StreamWriter sw = new StreamWriter(fbd.FileName, false, Encoding.Default)) + { + sw.WriteLine(Covert.GetSystemInfo.GetCode1() + Covert.GetSystemInfo.GetCode2()); + sw.Dispose(); + + MessageBox.Show("授权请求文件,保存成功!"); + return; + } + } + MyBase.TraceWriteLine("授权请求文件未生成——取消"); + } + catch (Exception ex) + { + MessageBox.Show("授权请求文件生成出错:" + ex.ToString()); + } + } + + #region RadButton鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion RadButton鼠标事件 + } +} \ No newline at end of file diff --git a/Analysis/AboutSoftwareInfo.designer.cs b/Analysis/AboutSoftwareInfo.designer.cs new file mode 100644 index 0000000..7dc31db --- /dev/null +++ b/Analysis/AboutSoftwareInfo.designer.cs @@ -0,0 +1,354 @@ +namespace NSAnalysis +{ + partial class AboutSoftwareInfo + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutSoftwareInfo)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.gpBoxLicenceInfo = new Telerik.WinControls.UI.RadGroupBox(); + this.labLicenseInfo = new System.Windows.Forms.Label(); + this.rbtnCreateRequest = new Telerik.WinControls.UI.RadButton(); + this.labelExpiryDateValue = new System.Windows.Forms.Label(); + this.labelExpiryDate = new System.Windows.Forms.Label(); + this.gpBoxGeneralInfo = new Telerik.WinControls.UI.RadGroupBox(); + this.label4 = new System.Windows.Forms.Label(); + this.labCopyRight = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.labVersion = new System.Windows.Forms.Label(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.label_Version = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gpBoxLicenceInfo)).BeginInit(); + this.gpBoxLicenceInfo.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCreateRequest)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gpBoxGeneralInfo)).BeginInit(); + this.gpBoxGeneralInfo.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(836, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "DEMO12"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "DEMO12"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(334, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(20, 15, 20, 15); + this.label2.Size = new System.Drawing.Size(40, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(370, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(88, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "关于软件"; + // + // gpBoxLicenceInfo + // + this.gpBoxLicenceInfo.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.gpBoxLicenceInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gpBoxLicenceInfo.Controls.Add(this.labLicenseInfo); + this.gpBoxLicenceInfo.Controls.Add(this.rbtnCreateRequest); + this.gpBoxLicenceInfo.Controls.Add(this.labelExpiryDateValue); + this.gpBoxLicenceInfo.Controls.Add(this.labelExpiryDate); + this.gpBoxLicenceInfo.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gpBoxLicenceInfo.ForeColor = System.Drawing.Color.White; + this.gpBoxLicenceInfo.HeaderText = "授权信息"; + this.gpBoxLicenceInfo.Location = new System.Drawing.Point(22, 264); + this.gpBoxLicenceInfo.Name = "gpBoxLicenceInfo"; + this.gpBoxLicenceInfo.Size = new System.Drawing.Size(790, 234); + this.gpBoxLicenceInfo.TabIndex = 38; + this.gpBoxLicenceInfo.Text = "授权信息"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(0).GetChildAt(0))).Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(81)))), ((int)(((byte)(95))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(0))).Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "授权信息"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Font = new System.Drawing.Font("Segoe UI", 11F); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxLicenceInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + // + // labLicenseInfo + // + this.labLicenseInfo.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labLicenseInfo.Location = new System.Drawing.Point(26, 99); + this.labLicenseInfo.Name = "labLicenseInfo"; + this.labLicenseInfo.Size = new System.Drawing.Size(503, 21); + this.labLicenseInfo.TabIndex = 9; + this.labLicenseInfo.Text = "请将请求授权文件发送给海克斯康制造智能技术(青岛)有限公司"; + // + // rbtnCreateRequest + // + this.rbtnCreateRequest.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnCreateRequest.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnCreateRequest.ForeColor = System.Drawing.Color.White; + this.rbtnCreateRequest.Location = new System.Drawing.Point(33, 151); + this.rbtnCreateRequest.Name = "rbtnCreateRequest"; + this.rbtnCreateRequest.Size = new System.Drawing.Size(170, 55); + this.rbtnCreateRequest.TabIndex = 13; + this.rbtnCreateRequest.Text = "创建请求授权文件"; + this.rbtnCreateRequest.Click += new System.EventHandler(this.rbtnCreateRequest_Click); + this.rbtnCreateRequest.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnCreateRequest.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCreateRequest.GetChildAt(0))).Text = "创建请求授权文件"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCreateRequest.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCreateRequest.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // labelExpiryDateValue + // + this.labelExpiryDateValue.AutoSize = true; + this.labelExpiryDateValue.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelExpiryDateValue.Location = new System.Drawing.Point(112, 49); + this.labelExpiryDateValue.Name = "labelExpiryDateValue"; + this.labelExpiryDateValue.Size = new System.Drawing.Size(88, 21); + this.labelExpiryDateValue.TabIndex = 0; + this.labelExpiryDateValue.Text = "2017.04.20"; + // + // labelExpiryDate + // + this.labelExpiryDate.AutoSize = true; + this.labelExpiryDate.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelExpiryDate.Location = new System.Drawing.Point(26, 50); + this.labelExpiryDate.Name = "labelExpiryDate"; + this.labelExpiryDate.Size = new System.Drawing.Size(95, 21); + this.labelExpiryDate.TabIndex = 0; + this.labelExpiryDate.Text = "到期时间:"; + // + // gpBoxGeneralInfo + // + this.gpBoxGeneralInfo.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.gpBoxGeneralInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gpBoxGeneralInfo.Controls.Add(this.label4); + this.gpBoxGeneralInfo.Controls.Add(this.labCopyRight); + this.gpBoxGeneralInfo.Controls.Add(this.label5); + this.gpBoxGeneralInfo.Controls.Add(this.labVersion); + this.gpBoxGeneralInfo.Controls.Add(this.pictureBox2); + this.gpBoxGeneralInfo.Controls.Add(this.label_Version); + this.gpBoxGeneralInfo.Controls.Add(this.label3); + this.gpBoxGeneralInfo.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gpBoxGeneralInfo.ForeColor = System.Drawing.Color.White; + this.gpBoxGeneralInfo.HeaderText = "基本信息"; + this.gpBoxGeneralInfo.Location = new System.Drawing.Point(22, 54); + this.gpBoxGeneralInfo.Name = "gpBoxGeneralInfo"; + this.gpBoxGeneralInfo.Size = new System.Drawing.Size(790, 202); + this.gpBoxGeneralInfo.TabIndex = 37; + this.gpBoxGeneralInfo.Text = "基本信息"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(0).GetChildAt(0))).Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(81)))), ((int)(((byte)(95))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(0))).Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "基本信息"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Font = new System.Drawing.Font("Segoe UI", 11F); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.gpBoxGeneralInfo.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + // + // label4 + // + this.label4.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label4.Location = new System.Drawing.Point(112, 43); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(316, 21); + this.label4.TabIndex = 31; + this.label4.Text = "海克斯康间隙面差分析系统"; + // + // labCopyRight + // + this.labCopyRight.Font = new System.Drawing.Font("Segoe UI", 12F); + this.labCopyRight.Location = new System.Drawing.Point(112, 150); + this.labCopyRight.Name = "labCopyRight"; + this.labCopyRight.Size = new System.Drawing.Size(316, 21); + this.labCopyRight.TabIndex = 0; + this.labCopyRight.Text = "海克斯康制造智能技术(青岛)有限公司"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label5.Location = new System.Drawing.Point(25, 43); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(95, 21); + this.label5.TabIndex = 32; + this.label5.Text = "软件名称:"; + // + // labVersion + // + this.labVersion.AutoSize = true; + this.labVersion.Font = new System.Drawing.Font("Segoe UI", 12F); + this.labVersion.Location = new System.Drawing.Point(112, 96); + this.labVersion.Name = "labVersion"; + this.labVersion.Size = new System.Drawing.Size(65, 21); + this.labVersion.TabIndex = 30; + this.labVersion.Text = "V1.0.0.0"; + // + // pictureBox2 + // + this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox2.Image = global::NSAnalysis.Properties.Resources.hexagonlogotransparent; + this.pictureBox2.Location = new System.Drawing.Point(464, 31); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(304, 100); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox2.TabIndex = 29; + this.pictureBox2.TabStop = false; + // + // label_Version + // + this.label_Version.AutoSize = true; + this.label_Version.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label_Version.Location = new System.Drawing.Point(25, 95); + this.label_Version.Name = "label_Version"; + this.label_Version.Size = new System.Drawing.Size(95, 21); + this.label_Version.TabIndex = 0; + this.label_Version.Text = "软件版本:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label3.Location = new System.Drawing.Point(25, 150); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(95, 21); + this.label3.TabIndex = 0; + this.label3.Text = "版权所有:"; + // + // AboutSoftwareInfo + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(838, 517); + this.Controls.Add(this.gpBoxLicenceInfo); + this.Controls.Add(this.gpBoxGeneralInfo); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("Segoe UI", 8.25F); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "AboutSoftwareInfo"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "DEMO12"; + this.Load += new System.EventHandler(this.AboutSoftwareInfo_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gpBoxLicenceInfo)).EndInit(); + this.gpBoxLicenceInfo.ResumeLayout(false); + this.gpBoxLicenceInfo.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCreateRequest)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gpBoxGeneralInfo)).EndInit(); + this.gpBoxGeneralInfo.ResumeLayout(false); + this.gpBoxGeneralInfo.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private Telerik.WinControls.UI.RadGroupBox gpBoxLicenceInfo; + private System.Windows.Forms.Label labelExpiryDate; + private System.Windows.Forms.Label labLicenseInfo; + private System.Windows.Forms.Label labelExpiryDateValue; + private Telerik.WinControls.UI.RadGroupBox gpBoxGeneralInfo; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Label label_Version; + private System.Windows.Forms.Label labCopyRight; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label labVersion; + private Telerik.WinControls.UI.RadButton rbtnCreateRequest; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + } +} diff --git a/Analysis/AboutSoftwareInfo.resx b/Analysis/AboutSoftwareInfo.resx new file mode 100644 index 0000000..a346816 --- /dev/null +++ b/Analysis/AboutSoftwareInfo.resx @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/Analysis.sln b/Analysis/Analysis.sln new file mode 100644 index 0000000..dfa9aad --- /dev/null +++ b/Analysis/Analysis.sln @@ -0,0 +1,24 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "9.Analysis", "9.Analysis.csproj", "{182C5779-ADA0-DF6B-8353-353EDFCB6EE7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {182C5779-ADA0-DF6B-8353-353EDFCB6EE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {182C5779-ADA0-DF6B-8353-353EDFCB6EE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {182C5779-ADA0-DF6B-8353-353EDFCB6EE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {182C5779-ADA0-DF6B-8353-353EDFCB6EE7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FDD778FA-1F09-4916-A442-A796E195B437} + EndGlobalSection +EndGlobal diff --git a/Analysis/App.config b/Analysis/App.config new file mode 100644 index 0000000..fbec9da --- /dev/null +++ b/Analysis/App.config @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Analysis/BaseUnit/Base.cs b/Analysis/BaseUnit/Base.cs new file mode 100644 index 0000000..2204fd9 --- /dev/null +++ b/Analysis/BaseUnit/Base.cs @@ -0,0 +1,3125 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.IO; +using System.Runtime.InteropServices; +using System.Text; +using System.IO.Ports; //串口读写 +using System.Drawing; +using System.Collections; +using System.Diagnostics; +using System.Data; +using System.Threading; +using Telerik.WinControls.UI; +using NLog; + +namespace BaseFunction +{ + //========================================================================================== + //通用功能类 + public class NLogger + { + private static readonly Logger logger = LogManager.GetCurrentClassLogger(); + public static void Trace(string message) { logger.Trace(message); } + public static void Debug(string message) { logger.Debug(message); } + public static void Info(string message) { logger.Info(message); } + public static void Warn(string message) { logger.Warn(message); } + public static void Error(string message) { logger.Error(message); } + public static void Fatal(string message) { logger.Fatal(message); } + } + + public class MyBase + { + public static RadLabelElement rleMessage; + #region 内存回收 + + [DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")] + public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize); + + /// + /// 释放内存 + /// + public static void ClearMemory() + { + GC.Collect(); + GC.WaitForPendingFinalizers(); + if (Environment.OSVersion.Platform == PlatformID.Win32NT) + { + SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1); + } + } + + public static void ClearMemory_PCDMIS() + { + Process[] m_Process = Process.GetProcessesByName("PCDLRN"); + for (int i = 0; i < m_Process.Length; i++) + { + if (Environment.OSVersion.Platform == PlatformID.Win32NT) + { + SetProcessWorkingSetSize(m_Process[i].Handle, -1, -1); + } + } + } + + #endregion 内存回收 + + public static void KillSoftware(string strSoftwareName) + { + Process[] xc = Process.GetProcesses(); + try + { + foreach (Process xc1 in xc) + { + if (xc1.ProcessName.ToLower() == strSoftwareName.ToLower()) + { + xc1.Kill(); + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("Kill " + strSoftwareName + " Failed: " + ex.ToString()); + } + } + + public static void DeleteAllFiles(string strPath) + { + try + { + DirectoryInfo dir = new DirectoryInfo(strPath); + FileSystemInfo[] fileinfo = dir.GetFileSystemInfos(); //返回目录中所有文件和子目录 + foreach (FileSystemInfo i in fileinfo) + { + if (i is DirectoryInfo) //判断是否文件夹 + { + DirectoryInfo subdir = new DirectoryInfo(i.FullName); + subdir.Delete(true); //删除子目录和文件 + } + else + { + File.Delete(i.FullName); //删除指定文件 + } + } + MyBase.TraceWriteLine("首次启动软件,遍历删除路径:" + strPath + "下的文件全部删除"); + } + catch (Exception e) + { + MyBase.TraceWriteLine("遍历删除路径:" + strPath + "下的文件失败:" + e.ToString()); + } + } + + #region 界面控件操作 + + /// + /// 根据指定容器和控件名字,获得控件 + /// + /// 容器 + /// 控件名字 + /// 控件 + public static object GetControlInstance(object obj, string strControlName, Form mainForm) + { + IEnumerator Controls = null;//所有控件 + Control c = null;//当前控件 + Object cResult = null;//查找结果 + if (obj.GetType() == mainForm.GetType())//窗体 + { + Controls = mainForm.Controls.GetEnumerator(); + } + else//控件 + { + Controls = ((Control)obj).Controls.GetEnumerator(); + } + while (Controls.MoveNext())//遍历操作 + { + c = (Control)Controls.Current;//当前控件 + if (c.HasChildren)//当前控件是个容器 + { + cResult = GetControlInstance(c, strControlName, mainForm);//递归查找 + if (cResult == null)//当前容器中没有,跳出,继续查找 + continue; + else//找到控件,返回 + return cResult; + } + else if (c.Name == strControlName)//不是容器,同时找到控件,返回 + { + return c; + } + } + return null;//控件不存在 + } + + /// + /// 获取主控件上的子控件的名称 + /// + /// 主控件名称 + /// 子控件名称 + /// + public static object GetChildControl(object obj, string strControlName) + { + Control m_Ctrl = null;//当前控件 + IEnumerator Controls = ((Control)obj).Controls.GetEnumerator(); + + while (Controls.MoveNext()) + { + m_Ctrl = (Control)Controls.Current;//当前控件 + if (m_Ctrl.Name == strControlName) + { + return m_Ctrl; + } + } + return null;//控件不存在 + } + + public static void AddDebugText(TextBox tb, string str, int length = 200) + { + try + { + TraceWriteLine(str); + string strTime = DateTime.Now.ToString("HH:mm:ss") + "--"; + tb.Text += (strTime + str); + tb.Text += "\r\n"; + tb.Select(tb.TextLength, 0); + tb.ScrollToCaret(); + + if (tb.Lines.Length > length) + { + tb.Clear(); + } + } + finally { } + } + + /// + /// 向RichTextBox控件中添加文本信息 + /// + /// RichTextBox控件类 + /// 要显示的文本信息内容 + /// 文本显示的颜色 + public static void AddDebugTextToRTB(RichTextBox RTB, string str, Color m_Color = new Color()) + { + try + { + TraceWriteLine(str);//将文本信息同步到debug.txt文件中 + RTB.BeginInvoke((EventHandler)delegate + { + Color SetColor = Color.Black; + if (m_Color == new Color()) + { + if (str.ToUpper().Contains("ERROR") || str.ToUpper().Contains("错误") || str.ToUpper().Contains("出错") || str.ToUpper().Contains("EXCEPTION") || str.ToUpper().Contains("异常") || str.ToUpper().Contains("失败")) + { + SetColor = Color.Red; + } + else if (str.ToUpper().Contains("WARNING") || str.ToUpper().Contains("警告")) + { + SetColor = Color.DarkOrange; + } + } + else + { + SetColor = m_Color; + } + + string strText = str + Environment.NewLine; //DateTime.Now.ToString("HH:mm:ss.fff") + "--" + + RTB.SelectionStart = RTB.TextLength; + if (string.IsNullOrEmpty(str)) + RichTextUnit.SetText(RTB, " " + Environment.NewLine, SetColor, false, 14); + else + RichTextUnit.SetText(RTB, strText, SetColor, false, 14); + + if (RTB.Lines.Length > 2000) + { + RTB.Select(0, RTB.TextLength / 2); + RTB.Cut(); + } + RTB.ScrollToCaret(); + }); + } + catch { } + } + + /// + /// 写debug文件,记录程序过程 + /// + /// 要写入日志的内容 + public static void TraceWriteLine(string str) + { + try + { + if (rleMessage != null) + { + rleMessage.Text = str; + } + if (str.Contains("警告") || str.ToUpper().Contains("WARN")) + { + + NLogger.Warn(str); + + } + else if (str.Contains("错误") || str.ToUpper().Contains("ERROR")||str.Contains("失败")) + { + NLogger.Error(str); + } + else + { + NLogger.Info(str); + } + Trace.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "--" + str); + Trace.Unindent(); + Trace.Flush(); + } + catch { } + } + + public static string InputBox(string Caption, string Hint, string DefaultTxt, string btn1 = "OK", string btn2 = "Cancel", char Strstyle = '*', bool bShowData = false) + { + if (Strstyle == '\0') + Strstyle = '*'; + Form InputForm = new Form(); + InputForm.MinimizeBox = false; + InputForm.MaximizeBox = false; + InputForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + InputForm.StartPosition = FormStartPosition.CenterScreen; + InputForm.Width = 300; + InputForm.Height = 180; + InputForm.Text = Caption; + InputForm.Font = new System.Drawing.Font("Segoe UI", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); + + Label lbl = new Label(); + lbl.Text = Hint; + lbl.Left = 25; + lbl.Top = 20; + lbl.Parent = InputForm; + lbl.AutoSize = true; + TextBox tb = new TextBox(); + tb.Left = 30; + tb.Top = 45; + tb.Width = 230; + tb.Parent = InputForm; + tb.Text = DefaultTxt; + if (bShowData == false) + tb.PasswordChar = Strstyle; + tb.SelectAll(); + Button btnok = new Button(); + btnok.Left = 90; + btnok.Top = 90; + btnok.Height = 30; + btnok.Parent = InputForm; + btnok.Text = btn1; + InputForm.AcceptButton = btnok;//回车响应 + btnok.DialogResult = DialogResult.OK; + + Button btncancal = new Button(); + btncancal.Left = 185; + btncancal.Top = 90; + btncancal.Height = 30; + btncancal.Parent = InputForm; + btncancal.Text = btn2; + btncancal.DialogResult = DialogResult.Cancel; + try + { + if (InputForm.ShowDialog() == DialogResult.OK) + { + return tb.Text; + } + else + { + return "-999.999"; + } + } + finally + { + InputForm.Dispose(); + } + } + + /// + /// 操作提示框,0 = 取消; 1 = 第一个按钮; 2 = 第二个按钮 + /// + /// 错误信息 + /// 标题 + /// 第一个按钮名字 + /// 第二个按钮名字 + /// 第三个按钮名字 + /// 背景颜色,默认无色,1=红色 + /// + public static int MessageBox(string strError, string Caption, string btnName1 = "YES", string btnName2 = "NO", string btnName3 = "Cancel", int iColor = 0) + { + Form ErrorForm = new Form(); + ErrorForm.MinimizeBox = false; + ErrorForm.MaximizeBox = false; + ErrorForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + ErrorForm.StartPosition = FormStartPosition.CenterScreen; + ErrorForm.Width = 480; + ErrorForm.Height = 300; + ErrorForm.Text = Caption; + ErrorForm.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); + + TextBox tb = new TextBox(); + tb.Parent = ErrorForm; + tb.Text = strError; + tb.Multiline = true; + tb.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + tb.Location = new System.Drawing.Point(20, 20); + tb.Size = new System.Drawing.Size(440, 170); + tb.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + tb.Font = new Font("宋体", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel); + if (iColor == 1) + tb.BackColor = Color.Red; + + Button btnYes = new Button(); + btnYes.Location = new System.Drawing.Point(30, 210); + btnYes.Size = new System.Drawing.Size(100, 40); + btnYes.Parent = ErrorForm; + btnYes.Text = btnName1; + + btnYes.DialogResult = DialogResult.Yes; + ErrorForm.AcceptButton = btnYes;//回车响应 + + Button btnNO = new Button(); + btnNO.Location = new System.Drawing.Point(190, 210); + btnNO.Size = new System.Drawing.Size(100, 40); + btnNO.Parent = ErrorForm; + btnNO.Text = btnName2; + btnNO.DialogResult = DialogResult.No; + ErrorForm.AcceptButton = btnNO;//回车响应 + + Button btncancal = new Button(); + btncancal.Location = new System.Drawing.Point(350, 210); + btncancal.Size = new System.Drawing.Size(100, 40); + btncancal.Parent = ErrorForm; + btncancal.Text = btnName3; + btncancal.DialogResult = DialogResult.Cancel; + ErrorForm.AcceptButton = btncancal;//回车响应 + try + { + btnYes.Select(); + switch (ErrorForm.ShowDialog()) + { + case DialogResult.Yes: return 1; + case DialogResult.No: return 2; + default: return 0; + } + } + finally + { + ErrorForm.Dispose(); + } + } + + [DllImport("User32.dll")] + private static extern bool SetCursorPos(int x, int y); + + public static void SetCursorPosXY(int dx, int dy) + { + SetCursorPos(dx, dy); + } + + public static void SetCursorPosXY(Point point) + { + System.Windows.Forms.Cursor.Position = point; + } + + #endregion 界面控件操作 + + /// + /// CopyFiles 函数 + /// + /// 源路径文件夹路径 + /// 目标文件夹路径 + /// 文件夹名称 + /// + public static int CopyFiles(string strSourceFilePath, string strDesFilePath, string strRemak) + { + try + { + if (!Directory.Exists(strDesFilePath)) + { + Directory.CreateDirectory(strDesFilePath); + } + DirectoryInfo sDir = new DirectoryInfo(strSourceFilePath); + FileInfo[] fileArray = sDir.GetFiles(); + foreach (FileInfo file in fileArray) + { + file.CopyTo(strDesFilePath + "\\" + file.Name, true); + } + System.Windows.Forms.MessageBox.Show("传输" + strRemak + "文件夹中的所有文件成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return 1; + } + catch (Exception ex) + { + System.Windows.Forms.MessageBox.Show("传输" + strRemak + "文件夹中的文件错误!原因: " + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return 0; + } + } + } + + public class HardwareInfoBase + { + /// 获取指定驱动器的空间总大小(单位为B) ,只需输入代表驱动器的字母即可 + public static long GetHardDiskSpace(string str_HardDiskName) + { + long totalSize = new long(); + str_HardDiskName = str_HardDiskName + ":\\"; + System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); + foreach (System.IO.DriveInfo drive in drives) + { + if (drive.Name == str_HardDiskName) + { + totalSize = drive.TotalSize; + break; + } + } + return totalSize; + } + + /// 获取指定驱动器的剩余空间总大小(单位为B) ,只需输入代表驱动器的字母即可 + public static long GetHardDiskFreeSpace(string str_HardDiskName) + { + long freeSpace = new long(); + str_HardDiskName = str_HardDiskName + ":\\"; + System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); + foreach (System.IO.DriveInfo drive in drives) + { + if (drive.Name == str_HardDiskName) + { + freeSpace = drive.TotalFreeSpace; + break; + } + } + return freeSpace; + } + + /// 获取指定驱动器的剩余空间总大小(单位为K) ,只需输入代表驱动器的字母即可 + public static long GetHardDiskFreeSpace_K(string str_HardDiskName) + { + return GetHardDiskFreeSpace(str_HardDiskName) / 1024; + } + + /// 获取指定驱动器的剩余空间总大小(单位为M) ,只需输入代表驱动器的字母即可 + public static long GetHardDiskFreeSpace_M(string str_HardDiskName) + { + return GetHardDiskFreeSpace_K(str_HardDiskName) / 1024; + } + + /// 获取指定驱动器的剩余空间总大小(单位为G) ,只需输入代表驱动器的字母即可 + public static long GetHardDiskFreeSpace_G(string str_HardDiskName) + { + return GetHardDiskFreeSpace_M(str_HardDiskName) / 1024; + } + } + + //==================================================================================================FileIni + //Ini 文件操作类 + public class FileIni + { + [DllImport("kernel32.dll")] + public static extern IntPtr _lopen(string lpPathName, int iReadWrite); + + [DllImport("kernel32.dll")] + public static extern bool CloseHandle(IntPtr hObject); + + public const int OF_READWRITE = 2; + public const int OF_SHARE_DENY_NONE = 0x40; + public static readonly IntPtr HFILE_ERROR = new IntPtr(-1); + + //判断文件是否被占用 占用=true 未占用 = false + public static bool isFileOccupied(string path) + { + if (!File.Exists(path)) + return true; + IntPtr vHandle = _lopen(path, OF_READWRITE | OF_SHARE_DENY_NONE); + if (vHandle == HFILE_ERROR) + return true; + CloseHandle(vHandle); + return false; + } + + [DllImport("kernel32")] + private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); + + [DllImport("kernel32")] + private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); + + [DllImport("kernel32")] + private static extern int GetPrivateProfileInt(string section, string key, int def, string filePath); + + public static bool isFileExists(string path) + { + if (!(File.Exists(path))) + { + MessageBox.Show("文件:" + path + "不存在", "ini文件不存在"); + return false; + } + return true; + } + + //=====================//=====================//=====================Write data + #region 写INI参数 + + /// + /// 对ini文件进行写操作 + /// + /// ini文件路径 + /// 配置节 + /// 键名 + /// 要写入的string字符串 + public static void WriteString(string path, string section, string key, string value) + { + // section=配置节,key=键名,value=键值,path=路径 + WritePrivateProfileString(section, key, value, path); + } + + public static void WriteInt(string path, string section, string key, int value = 0) + { + string strRead = ReadString(path, section, key); + string[] strArr = strRead.Split(new char[] { ';' }); + string strNote = ";"; + string strWrite; + if (strArr.Length > 1)//保留原有注释 + { + for (int i = 1; i < strArr.Length; i++) + strNote += strArr[i]; + strWrite = value.ToString() + strNote; + } + else + { + strWrite = value.ToString(); + } + WritePrivateProfileString(section, key, strWrite, path); + } + + public static void WriteDouble(string path, string section, string key, double value = 0) + { + string strRead = ReadString(path, section, key); + string[] strArr = strRead.Split(new char[] { ';' }); + string strNote = ";"; + string strWrite; + if (strArr.Length > 1)//保留原有注释 + { + for (int i = 1; i < strArr.Length; i++) + strNote += strArr[i]; + strWrite = value.ToString() + strNote; + } + else + { + strWrite = value.ToString(); + } + WritePrivateProfileString(section, key, strWrite, path); + } + + public static void WriteBool(string path, string section, string key, bool value = false) + { + string strValue = (value ? "1" : "0"); + string strRead = ReadString(path, section, key); + string[] strArr = strRead.Split(new char[] { ';' }); + string strNote = ";"; + string strWrite; + if (strArr.Length > 1)//保留原有注释 + { + for (int i = 1; i < strArr.Length; i++) + strNote += strArr[i]; + strWrite = strValue + strNote; + } + else + { + strWrite = strValue; + } + WritePrivateProfileString(section, key, strWrite, path); + } + + #endregion 写INI参数 + + //=====================//=====================//=====================Read data + #region 读INI参数 + + /// + /// 从ini配置文件中读取字符串 + /// + /// ini文件路径 + /// 配置节名称 + /// 键名 + /// 要读取的string类型内容 + public static string ReadString(string path, string section, string key) + { + // 每次从ini中读取多少字节 // section=配置节,key=键名,temp=上面,path=路径 + System.Text.StringBuilder temp = new System.Text.StringBuilder(255); + GetPrivateProfileString(section, key, "", temp, 255, path); + String str = temp.ToString(); + string[] strArr = str.Split(new char[] { ';' }); + string strRead = ""; + if (strArr.Length > 0) + { + strRead = strArr[0]; + } + return strRead; + } + + /// + /// 从ini配置文件中读取Int类型 + /// + /// ini文件路径 + /// 配置节名称 + /// 键名 + /// 读不到时默认返回值:0 + /// 要读取的Int类型数据 + public static int ReadInt(string path, string section, string key, int defValue = 0) + { + return GetPrivateProfileInt(section, key, defValue, path); + } + + public static double ReadDouble(string path, string section, string key, double defValue = 0) + { + System.Text.StringBuilder temp = new System.Text.StringBuilder(255); + GetPrivateProfileString(section, key, defValue.ToString(), temp, 255, path); + String str = temp.ToString(); + string[] strArr = str.Split(new char[] { ';' }); + double ReData; + if (strArr.Length > 0) + { + ReData = Convert.ToDouble(strArr[0]); + } + else + { + ReData = defValue; + } + return ReData; + } + + public static bool ReadBool(string path, string section, string key, int defValue = 0) + { + int val = GetPrivateProfileInt(section, key, defValue, path); + if (val != 0) + return true; + else + return false; + } + + #endregion 读INI参数 + } + + //==================================================================================================SoundBase + /// + /// 声音播放类 + /// + public class SoundBase + { + //public static WMPLib.WindowsMediaPlayer WMPlayer = new WMPLib.WindowsMediaPlayer(); + ////方法 1 + //public static void OpenWinMediaPlayer(string FileName) + //{ + // if (!System.IO.File.Exists(FileName)) + // { + // MessageBox.Show("File does not exist!"); + // return; + // } + // WMPlayer.URL = FileName; + //} + + //public static void OpenWinMediaPlayer(WMPLib.WindowsMediaPlayer WinMediaPlayer, string FileName) + //{ + // if (!System.IO.File.Exists(FileName)) + // { + // MessageBox.Show("File does not exist!"); + // return; + // } + // WinMediaPlayer.URL = FileName; + //} + + //public static void OpenWinMediaPlayerDialogFile() + //{ + // OpenFileDialog FileDialog = new OpenFileDialog(); + // FileDialog.AddExtension = true; + // FileDialog.CheckFileExists = true; + // FileDialog.CheckPathExists = true; + // //the next sentence must be in single line + // FileDialog.Filter = "WAV文件(*.wav)|*.wav|MP3文件(*.mp3)|*.mp3|VCD文件(*.dat)|*.dat|Audio文件(*.avi)|*.avi|所有文件 (*.*)|*.*"; + // FileDialog.DefaultExt = "*.mp3"; + // if (FileDialog.ShowDialog() == DialogResult.OK) + // { + // WMPlayer.URL = FileDialog.FileName; + // } + //} + + //public static void OpenWinMediaPlayerDialogFile(WMPLib.WindowsMediaPlayer WinMediaPlayer) + //{ + // OpenFileDialog FileDialog = new OpenFileDialog(); + // FileDialog.AddExtension = true; + // FileDialog.CheckFileExists = true; + // FileDialog.CheckPathExists = true; + // //the next sentence must be in single line + // FileDialog.Filter = "WAV文件(*.wav)|*.wav|MP3文件(*.mp3)|*.mp3|VCD文件(*.dat)|*.dat|Audio文件(*.avi)|*.avi|所有文件 (*.*)|*.*"; + // FileDialog.DefaultExt = "*.mp3"; + // if (FileDialog.ShowDialog() == DialogResult.OK) + // { + // WinMediaPlayer.URL = FileDialog.FileName; + // } + //} + + //方法 2 + public static void sndPlayerPlay(string FileName) + { + if (!System.IO.File.Exists(FileName)) + { + MessageBox.Show("File does not exist!"); + return; + } + System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(FileName); + sndPlayer.Load(); + sndPlayer.Play(); + } + + //方法 3 + public static void SpVoicePlay(string FileName) + { + //if (!System.IO.File.Exists(FileName)) + //{ + // MessageBox.Show("File does not exist!"); + // return; + //} + //SpeechLib.SpVoiceClass pp = new SpeechLib.SpVoiceClass(); + //SpeechLib.SpFileStreamClass spFs = new SpeechLib.SpFileStreamClass(); + //spFs.Open(FileName, SpeechLib.SpeechStreamFileMode.SSFMOpenForRead, true); + //SpeechLib.ISpeechBaseStream Istream = spFs as SpeechLib.ISpeechBaseStream; + //pp.SpeakStream(Istream, SpeechLib.SpeechVoiceSpeakFlags.SVSFIsFilename); + //spFs.Close(); + } + + //方法 4 (蜂鸣器--控制台扬声器) + public static void Beep(int frequency, int duration) + { + //振动的Hz频率; //持续的时间,单位“毫秒”。 + Console.Beep(frequency, duration); + } + } + + //================================================================================================== + /// + /// 数据格式化或校验检测 + /// + internal class FormatCheckBase + { + /// + /// 检测是否为十六进制字符串,长度不够在前面添加0 + /// + /// 输入字符串 + /// 长度 + /// 输出字符串 + /// 检测结果 + public static void FormatChecking16(string strInput, int length, out string strOutput, out Boolean Valid) + { + strOutput = ""; + Valid = true; + byte temp; + if ((strInput.Length <= length) & (strInput.Length > 0)) + { + for (int i = 0; i < strInput.Length; i++) + { + try + { + temp = Convert.ToByte(strInput[i].ToString(), 16); + } + catch + { + Valid = false; + strOutput = ""; + break; + } + strOutput += strInput[i]; + } + if (Valid & (strInput.Length < length)) + { + for (int j = 0; j < length - strInput.Length; j++) + { + strOutput = "0" + strOutput; + } + } + } + else + { + Valid = false; + strOutput = ""; + } + } + + /// + /// 检测是否为十进制字符串,长度不够在前面添加0 + /// + /// 输入字符串 + /// 长度 + /// 输出字符串 + /// 检测结果 + public static bool FormatChecking10(string strInput, int length, out string strOutput) + { + strOutput = ""; + byte temp; + try + { + if ((strInput.Length <= length) & (strInput.Length > 0)) + { + for (int i = 0; i < strInput.Length; i++) + { + try + { + temp = Convert.ToByte(strInput[i].ToString(), 10); + } + catch + { + strOutput = ""; + return false; + } + strOutput += strInput[i]; + } + if (strInput.Length < length) + { + for (int j = 0; j < length - strInput.Length; j++) + { + strOutput = "0" + strOutput; + } + } + } + else + { + strOutput = ""; + return false; + } + } + catch (Exception ex) + { + MessageBox.Show("格式转换错误:" + ex.Message); + return false; + } + return true; + } + + /// + /// 每隔n个字符插入一个字符 + /// + /// 从右边开始插入 + /// 源字符串 + /// 间隔字符数 + /// 待插入值 + /// 待补充值,最后不足间隔字符数时,用此字符补齐;Supplement=""时,不补任何字符。 + /// 返回新生成字符串 + public static string InsertFormat(bool isRight, string input, int interval, string value, string Supplement) + { + if (!isRight)//从左边开始插入 + { + for (int i = interval; i < input.Length; i += interval + 1) + { + input = input.Insert(i, value); + } + if (Supplement != "") + { + do + { + if ((input.Length + 1) % (interval + 1) != 0) { input = input + Supplement; } + } while ((input.Length + 1) % (interval + 1) != 0); + } + } + else//从右边开始插入 + { + for (int i = input.Length - interval; i > 0; i -= interval) + { + input = input.Insert(i, value); + } + if (Supplement != "") + { + do + { + if ((input.Length + 1) % (interval + 1) != 0) { input = Supplement + input; } + } while ((input.Length + 1) % (interval + 1) != 0); + } + } + return input; + } + + /// + /// BCC校验,返回校验后的字符串 + /// + /// 待校验字符串 + /// 返回结果 + public static string GetBCC(string strCmd) + { + if (strCmd.Length >= 2) + { + byte[] Buffer = Encoding.Default.GetBytes(strCmd); + byte byteBCC = Buffer[0]; + for (int i = 1; i < Buffer.Length; i++) + byteBCC ^= Buffer[i]; + return Convert.ToChar(byteBCC).ToString(); + } + else + { + return null; + } + } + + /// + /// BCC校验,返回校验后的数组 + /// + /// 待校验数组 + /// 返回结果 + public static byte[] GetBCC(byte[] byteData) + { + byte[] byteWrite = new byte[byteData.Length + 1]; + if (byteData.Length >= 2) + { + byteData.CopyTo(byteWrite, 0); + byte byteBCC = byteData[0]; + for (int i = 1; i < byteData.Length; i++) + byteBCC ^= byteData[i]; + byteWrite[byteWrite.Length - 1] = byteBCC; + return byteWrite; + } + else + { + return null; + } + } + + /// + /// CRC16校验函数 + /// + public class CRC16Check + { + private const int CRC_LEN = 0; + + // Table of CRC values for high-order byte + #region + + private static readonly byte[] _auchCRCHi = new byte[] + { + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, + 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, + 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, + 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, + 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, + 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, + 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, + 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 + }; + + #endregion + // Table of CRC values for low-order byte + #region + + private static readonly byte[] _auchCRCLo = new byte[] + { + 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, + 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, + 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, + 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, + 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, + 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, + 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, + 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, + 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, + 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, + 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, + 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, + 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, + 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, + 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, + 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, + 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, + 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, + 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, + 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, + 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, + 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, + 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, + 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, + 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, + 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 + }; + + #endregion + + /// + /// 计算CRC16校验值 返回一个ushort类型的值,如果要返回Crc高字节和低字节,可重写CalculateCrc16函数为: + /// + /// 待校验数组 + /// 输出高字节 + /// 输出低字节 + /// 输出校验值 + public static ushort CalculateCrc16(byte[] buffer, out byte crcHi, out byte crcLo) + { + crcHi = 0xff; // high crc byte initialized + crcLo = 0xff; // low crc byte initialized + + for (int i = 0; i < buffer.Length - CRC_LEN; i++) + { + int crcIndex = crcHi ^ buffer[i]; // calculate the crc lookup index + + crcHi = (byte)(crcLo ^ _auchCRCHi[crcIndex]); + crcLo = _auchCRCLo[crcIndex]; + } + return (ushort)(crcHi << 8 | crcLo); + } + } + } + + //==================================================================================================ConvertBase + /// + /// 数据转换类 + /// + internal class ConvertBase + { + #region 图像 <--> 数组 + + /// + /// 图像转换为Byte数组 + /// + public static byte[] ImageToByteArray(Image ImageIn) + { + MemoryStream ms = new MemoryStream(); + ImageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png); + return ms.ToArray(); + } + + /// + /// Byte数组转换为图像 + /// + public static Image byteArrayToImage(byte[] byteArrayIn) + { + MemoryStream ms = new MemoryStream(byteArrayIn); + Image returnImage = Image.FromStream(ms); + return returnImage; + } + + #endregion + + #region 字符串 -> 字节数组 + + /// + /// 十六进制(hexadecimal)字符串转换为字节数组 + /// + /// + /// + public static byte[] HexStringToBytes(string str) + { + str = str.Replace(" ", ""); + byte[] buffer = new byte[str.Length / 2]; + for (int i = 0; i < str.Length; i += 2) + { + buffer[i / 2] = (byte)Convert.ToByte(str.Substring(i, 2), 16); + } + return buffer; + } + + /// + /// 十进制(Decimalism)字符串转换为字节数组 + /// + /// + /// + public static byte[] DecimalStringToBytes(string str) + { + str = str.Replace(" ", ""); + byte[] buffer = new byte[str.Length]; + for (int i = 0; i < str.Length; i++) + { + buffer[i] = (byte)Convert.ToByte(str.Substring(i, 1), 10); + } + return buffer; + } + + #endregion + + #region DataGridView -> DataTable 和 DataSet + + public static DataTable GetDataTableFromDataGridView(DataGridView dv) + { + DataTable dt = new DataTable(); DataColumn dc; + for (int i = 0; i < dv.Columns.Count; i++) + { + dc = new DataColumn(); + dc.ColumnName = dv.Columns[i].HeaderText.ToString(); + dt.Columns.Add(dc); + } + for (int j = 0; j < dv.Rows.Count - 1; j++) + { + DataRow dr = dt.NewRow(); + for (int x = 0; x < dv.Columns.Count; x++) + { + dr[x] = dv.Rows[j].Cells[x].Value; + } + dt.Rows.Add(dr); + } + return dt; + } + + public static DataSet GetDataSetFromDataGridView(DataGridView ucgrd) + { + DataSet ds = new DataSet(); + DataTable dt = new DataTable(); + for (int j = 0; j < ucgrd.Columns.Count; j++) + { dt.Columns.Add(ucgrd.Columns[j].HeaderCell.Value.ToString()); } + for (int j = 0; j < ucgrd.Rows.Count; j++) + { + DataRow dr = dt.NewRow(); + for (int i = 0; i < ucgrd.Columns.Count; i++) + { + if (ucgrd.Rows[j].Cells[i].Value != null) + { dr[i] = ucgrd.Rows[j].Cells[i].Value.ToString(); } + else { dr[i] = ""; } + } + dt.Rows.Add(dr); + } + ds.Tables.Add(dt); + return ds; + } + + #endregion + + #region ListBox.Items, ComboBox.Items -> string[] + + public static string[] GetStringsFromListBox(ListBox mListBox) + { + string[] strings = new string[mListBox.Items.Count]; + for (int i = 0; i < mListBox.Items.Count; i++) + { + strings[i] = mListBox.Items[i].ToString(); + } + return strings; + } + + public static string[] GetStringsFromListBox(ComboBox mComboBox) + { + string[] strings = new string[mComboBox.Items.Count]; + for (int i = 0; i < mComboBox.Items.Count; i++) + { + strings[i] = mComboBox.Items[i].ToString(); + } + return strings; + } + + public static void AddStringsToListView(ListView m_ListView, string[] strings) + { + m_ListView.Items.Clear(); + for (int i = 0; i < strings.Length; i++) + { + m_ListView.Items.Add(strings[i]); + } + } + + #endregion + + /// + /// 从SYGOLE获取的数据转换函数 + /// + public class Tool + { + //将十六进制的字符串转化为ushort + public static ushort HexString2Ushort(string s) + { + ushort value = 0; + + for (int i = 0; i < s.Length; i++) + { + if (s[i] != ' ') + { + value = (ushort)(value * 16 + HexStringToHex(s, i)); + } + } + + return value; + } + + //将字节数组形式的mac地址转化为对应的字符串 + public static string MacToString(byte[] mac) + { + string MacString = ""; + + for (int i = 0; i < 6; i++) + { + MacString += ByteToHexString(mac[i]); + if (i < 5) + { + MacString += ":"; + } + } + + return MacString; + } + + //将字符串形式的mac地址转化为对应的字节数组 + public static byte[] StringToMac(string str) + { + string temp = ""; + + for (int i = 0; i < str.Length; i++) + { + if ((str[i] != ' ') && (str[i] != ':')) + { + temp += str[i]; + } + } + + return HexStringToByte(temp, 0, 6);//6字节长度 + } + + //判断字符串是否是十六进制字符串 + public static bool ValidHexString(string str) + { + for (int i = 0; i < str.Length; i++) + { + if (! + (((str[i] >= '0') && (str[i] <= '9')) || + ((str[i] >= 'a') && (str[i] <= 'f')) || + ((str[i] >= 'A') && (str[i] <= 'F'))) + ) + { + return false; + } + } + + return true; + } + + private static string GetStringWithoutSpace(string str, int pos) + { + string temp = ""; + for (int i = pos; i < str.Length; i++) + { + if ((str[i] != ' ') && (str[i] != ':')) + { + temp += str[i]; + } + } + return temp; + } + + //将单个十六进制字符(4 bits)转化为byte + private static byte HexStringToHex(string str, int pos) + { + byte value = 0; + + if ((str[pos] >= '0') && (str[pos] <= '9')) + { + value = (byte)(str[pos] - '0'); + } + else if ((str[pos] >= 'a') && (str[pos] <= 'f')) + { + value = (byte)(str[pos] - 'a' + 10); + } + else if ((str[pos] >= 'A') && (str[pos] <= 'F')) + { + value = (byte)(str[pos] - 'A' + 10); + } + + return value; + } + + //将字符串的pos位置开始,转化为数组,转化后数组的长度为cnt + public static byte[] HexStringToByte(string str, int pos, int cnt) + { + if ((!ValidHexString(str)) || ((str.Length - pos) >> 1 < cnt)) + { + return null; + } + + byte[] data = new byte[cnt]; + + for (int i = 0; i < cnt; i++) + { + data[i] = (byte)(HexStringToHex(str, 2 * i + pos) * 16 + HexStringToHex(str, 2 * i + pos + 1)); + } + + return data; + } + + public static string bytes2String(byte[] data, int offset, int len) + { + string outString = ""; + + for (int i = offset; i < len + offset; i++) + { + outString += (char)data[i]; + } + + return outString; + } + + //将字符串的pos位置开始,转化为数组,转化后数组的长度为cnt + public static byte[] HexStringToByte(string str, int pos) + { + string tempStr = GetStringWithoutSpace(str, pos); + + return HexStringToByte(tempStr, 0, tempStr.Length >> 1); + } + + public static byte HexStringToSingleByte(string str, int pos) + { + byte temp = 0; + int len = 2; + string tempStr = GetStringWithoutSpace(str, pos); + + if (tempStr.Length == 0) + { + return 0; + } + else if (tempStr.Length < 2) + { + len = tempStr.Length; + } + else + { + len = 2; + } + + for (int i = 0; i < len; i++) + { + temp = (byte)(temp * 16 + HexStringToHex(tempStr, i)); + } + + return temp; + } + + //将字符串的pos位置开始,转化int + public static int HexStringToInt(string s, int pos) + { + string str = ""; + int len = (s.Length - pos) > 8 ? 8 : s.Length - pos; + for (int i = pos; i < len; i++) + { + str += s[i]; + } + for (int i = len; i < 8; i++) + { + str = "0" + str; + } + + if (!ValidHexString(str)) + { + return 0; + } + + int result = 0; + byte[] data = HexStringToByte(str, 0, 4); + + for (int i = 0; i < 4; i++) + { + result = (result << 8) + data[i]; + } + + return result; + } + + //将字节类型的数据转化为十六进制字符串 + public static string ByteToHexString(byte data) + { + string outString = ""; + + if (data < 16) + { + outString += "0"; + } + outString += data.ToString("X"); + + return outString; + } + + //将字节类型的数据转化为十六进制字符串 + public static string ByteToHexString(byte[] data, int pos, int length, string space) + { + string outString = ""; + + for (int i = pos; i < pos + length; i++) + { + outString += ByteToHexString(data[i]); + if (i != pos + length - 1) + { + outString += space; + } + } + + return outString; + } + + //将ushort类型的数据转化为十六进制字符串 + public static string ushortToHexString(ushort[] data, int pos, int length) + { + string outString = ""; + + for (int i = pos; i < pos + length; i++) + { + outString += ByteToHexString((byte)(data[i] >> 8)); + outString += ByteToHexString((byte)(data[i] & 0xFF)); + } + + return outString; + } + } + + //========================================================================================== + public class MyConvert + { + //string a = Convert.ToString(5, 2); + //string b = Convert.ToString(11, 8); + //string c = Convert.ToString(11, 16); + //int aa = Convert.ToInt32("101", 2);//二进制转换10进制 + //int bb = Convert.ToInt32("13", 8); //八进制转换10进制 + //int cc = Convert.ToInt32("b", 16); //十六进制转换10进制 + + #region C++转换程序(C#里面有完整的转换函数) + + //十进制转二制 + public static string DtoB(int d) + { + //Console.WriteLine(Convert.ToString(5,2)) + string str = ""; + //判断该数如果小于2,则直接输出 + if (d < 2) + { + str = d.ToString(); + } + else + { + int c; + int s = 0; + int n = d; + while (n >= 2) + { + s++; + n = n / 2; + } + int[] m = new int[s]; + int i = 0; + do + { + c = d / 2; + m[i++] = d % 2; + d = c; + } while (c >= 2); + str = d.ToString(); + for (int j = m.Length - 1; j >= 0; j--) + { + str += m[j].ToString(); + } + } + return str; + } + + //十进制转八进制 + public static string DtoO(int d) + { + string o = ""; + if (d < 8) + { + o = d.ToString(); + } + else + { + int c; + + int s = 0; + int n = d; + int temp = d; + while (n >= 8) + { + s++; + n = n / 8; + } + int[] m = new int[s]; + int i = 0; + do + { + c = d / 8; + m[i++] = d % 8; + d = c; + } while (c >= 8); + o = d.ToString(); + for (int j = m.Length - 1; j >= 0; j--) + { + o += m[j]; + } + } + return o; + } + + //十进制转十六进制 + public static string DtoX(int d) + { + string x = ""; + if (d < 16) + { + x = chang(d); + } + else + { + int c; + int s = 0; + int n = d; + int temp = d; + while (n >= 16) + { + s++; + n = n / 16; + } + string[] m = new string[s]; + int i = 0; + do + { + c = d / 16; + m[i++] = chang(d % 16);//判断是否大于10,如果大于10,则转换为A~F的格式 + d = c; + } while (c >= 16); + x = chang(d); + for (int j = m.Length - 1; j >= 0; j--) + { + x += m[j]; + } + } + return x; + } + + //判断是否为10~15之间的数,如果是则进行转换 + public static string chang(int d) + { + string x = ""; + switch (d) + { + case 10: + x = "A"; + break; + + case 11: + x = "B"; + break; + + case 12: + x = "C"; + break; + + case 13: + x = "D"; + break; + + case 14: + x = "E"; + break; + + case 15: + x = "F"; + break; + + default: + x = d.ToString(); + break; + } + return x; + } + + public static int XtoD(string instr) + { + int i = Convert.ToInt32("FF", 16); //十六进制转换10进制 + int j = Convert.ToInt32("1100", 2); + int k = Convert.ToInt32("12", 8); + return i; + } + + #endregion + } + } + + //==================================================================================================TcpBase + /// + /// 网络通讯通用类函数库 + /// + internal class TcpBase + { + /// + /// 用CMD命令测试网络连接状态 + /// + /// IP地址或网址 + /// Ping结果 连接;超时或其他结果表示未连接 + public static string CmdPing(string strIp) + { + Process p = new Process(); + p.StartInfo.FileName = "cmd.exe"; + p.StartInfo.UseShellExecute = false; + p.StartInfo.RedirectStandardInput = true; + p.StartInfo.RedirectStandardOutput = true; + p.StartInfo.RedirectStandardError = true; + p.StartInfo.CreateNoWindow = true; + p.Start(); + p.StandardInput.WriteLine("ping -n 1 " + strIp); + p.StandardInput.WriteLine("exit"); + + string strRst = p.StandardOutput.ReadToEnd(); + string pingRst = ""; + if (strRst.Contains("(0% loss)") || strRst.Contains("(0% 丢失)")) + pingRst = "连接"; + else if (strRst.Contains("Request timed out") || strRst.Contains("请求超时")) + pingRst = "超时"; + else if (strRst.Contains("Unknown host") || strRst.Contains("无法解析主机")) + pingRst = "无法解析主机"; + else if (strRst.Contains("请求找不到主机")) + pingRst = "请求找不到主机"; + else if (strRst.Contains("Destination host unreachable.")) + pingRst = "无法到达目的主机"; + else + pingRst = strRst; + p.Close(); + return pingRst; + } + } + + //==================================================================================================MyMath + /// + /// 数学函数库(算法) + /// + internal class MyMath + { + public static double GetMax(double[] Datas) + { + double Max = -9999; + try + { + if (Datas.Length == 1) + return Datas[0]; + for (int i = 0; i < Datas.Length; i++) + { + Max = Math.Max(Datas[i], Max); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + return Max; + } + + public static double GetMin(double[] Datas) + { + double Min = 9999; + try + { + if (Datas.Length == 1) + return Datas[0]; + for (int i = 0; i < Datas.Length; i++) + { + Min = Math.Min(Datas[i], Min); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + return Min; + } + + /// + /// 获取PLC读取地址数据(从起始地址偏移) + /// + /// 数据数组 + /// PLC读取地址,从0开始 + /// 返回整形数据或-1 + public static int GetPlcData(byte[] byteData, int DataAddr) + { + try + { + if (byteData == null) + { + return -1; + } + if (byteData.Length < 10 + DataAddr * 2) + { + return -1; + } + else + { + int bitH = DataAddr * 2 + 9; + int bitL = DataAddr * 2 + 10; + return byteData[bitH] * 256 + byteData[bitL]; + } + } + catch + { + return -1; + } + } + + /// + /// 获取PLC读取地址数据(从起始地址偏移) + /// + /// 数据数组 + /// PLC读取地址 + /// PLC读取起始地址 + /// 返回整形数据或-1 + public static int GetPlcData(byte[] byteData, int DataAddr, int startAddr) + { + try + { + if (byteData == null) + { + return -1; + } + if (startAddr > DataAddr) + { + //MessageBox.Show("错误:要读取的数据小于起始地址"); + return -1; + } + if (byteData.Length < 9 + (DataAddr - startAddr) * 2) + { + return -1; + } + else + { + int bitH = (DataAddr - startAddr) * 2 + 9; + int bitL = (DataAddr - startAddr) * 2 + 10; + return byteData[bitH] * 256 + byteData[bitL]; + } + } + catch + { + //MessageBox.Show("Catch错误:" + ex.Message); + return -1; + } + } + + /// + /// 获取字节的某一位 + /// + /// 从0开始 + /// + public static bool GetPlcBit(int data, int index) + { + switch (index) + { + case 0: + return (data & 0x0001) > 0; + + case 1: + return (data & 0x0002) > 0; + + case 2: + return (data & 0x0004) > 0; + + case 3: + return (data & 0x0008) > 0; + + case 4: + return (data & 0x0010) > 0; + + case 5: + return (data & 0x0020) > 0; + + case 6: + return (data & 0x0040) > 0; + + case 7: + return (data & 0x0080) > 0; + + case 8: + return (data & 0x0100) > 0; + + case 9: + return (data & 0x0200) > 0; + + case 10: + return (data & 0x0400) > 0; + + case 11: + return (data & 0x0800) > 0; + + case 12: + return (data & 0x1000) > 0; + + case 13: + return (data & 0x2000) > 0; + + case 14: + return (data & 0x4000) > 0; + + case 15: + return (data & 0x8000) > 0; + + default: + return false; + } + } + + public static bool GetPlcBitH2Low(int data, int index) + { + switch (index) + { + case 0: + return (data & 0x0100) > 0; + + case 1: + return (data & 0x0200) > 0; + + case 2: + return (data & 0x0400) > 0; + + case 3: + return (data & 0x0800) > 0; + + case 4: + return (data & 0x1000) > 0; + + case 5: + return (data & 0x2000) > 0; + + case 6: + return (data & 0x4000) > 0; + + case 7: + return (data & 0x8000) > 0; + + case 8: + return (data & 0x0001) > 0; + + case 9: + return (data & 0x0002) > 0; + + case 10: + return (data & 0x0004) > 0; + + case 11: + return (data & 0x0008) > 0; + + case 12: + return (data & 0x0010) > 0; + + case 13: + return (data & 0x0020) > 0; + + case 14: + return (data & 0x0040) > 0; + + case 15: + return (data & 0x0080) > 0; + + default: + return false; + } + } + + /// + /// 获取字节的某一位 + /// + /// 从0开始 + /// + public static bool GetPlcBit(byte[] byteData, int DataAddr, int index, int startAddr) + { + int Value = GetPlcData(byteData, DataAddr, startAddr); + bool bResult = GetPlcBit(Value, index); + return bResult; + } + + public static bool GetPlcBitH2Low(byte[] byteData, int DataAddr, int index, int startAddr) + { + int Value = GetPlcData(byteData, DataAddr, startAddr); + bool bResult = GetPlcBitH2Low(Value, index); + return bResult; + } + + /// + /// 获取单精度浮点数(float)数据 + /// + /// PLC读取总数据 + /// 获取数据的地址 + /// PLC起始地址 + /// 数据正反序 + /// + public static float GetPlcSingle(byte[] byteData, int DataAddr, int startAddr, bool PositiveSequence = true) + { + try + { + if (byteData == null) + { + return -1; + } + if (startAddr > DataAddr) + { + return -1; + } + if (byteData.Length < 9 + (DataAddr - startAddr) * 2) + { + return -1; + } + else + { + float Result = -1; + int startBit = (DataAddr - startAddr) * 2 + 9; + + byte[] arrLength = new byte[4]; + arrLength[0] = byteData[startBit + 0]; + arrLength[1] = byteData[startBit + 1]; + arrLength[2] = byteData[startBit + 2]; + arrLength[3] = byteData[startBit + 3]; + + if (PositiveSequence) + { + Result = BitConverter.ToSingle(arrLength, 0); + } + else + { + Result = BitConverter.ToSingle(arrLength.Reverse().ToArray(), 0); + } + Result = Convert.ToSingle(Math.Round(Result, 3)); + return Result; + } + } + catch + { + return -1; + } + } + + /// + /// 获取字符串(string) + /// + /// PLC读取总数据 + /// 获取数据的地址 + /// PLC起始地址 + /// 读取的地址数量(单位16) + /// 数据正反序 + /// 转换为字符串类型,2=二进制,10=十进制,16=十六进制,其他=char字符串 + /// + public static string GetPlcString(byte[] byteData, int DataAddr, int startAddr, int DataNum, bool PositiveSequence = true, int strType = 0) + { + string Result = ""; + try + { + if (byteData == null) + { + return Result; + } + if (startAddr > DataAddr + DataNum) + { + return Result; + } + if (byteData.Length < 9 + (DataAddr - startAddr) * 2) + { + return Result; + } + else + { + int startBit = (DataAddr - startAddr) * 2 + 9; + byte[] arrLength = new byte[DataNum * 2]; + for (int i = 0; i < DataNum * 2; i++) + { + arrLength[i] = byteData[startBit + i]; + } + if (!PositiveSequence) + { + arrLength = (byte[])arrLength.Reverse(); + } + switch (strType) + { + case 2: + foreach (byte b in arrLength) + { + Result += ConvertBase.MyConvert.DtoB(b); + } + break; + + case 10: + foreach (byte b in arrLength) + { + Result += b.ToString(); + } + break; + + case 16: + foreach (byte b in arrLength) + { + Result += b.ToString("X2"); + } + break; + + default: + foreach (byte b in arrLength) + { + Result += Convert.ToChar(b).ToString(); + } + break; + } + return Result.Trim(); + } + } + catch + { + return Result; + } + } + + //====================================================================== + /// + /// 字节数组(byte 8位)转化为ushort(16位)数组 + /// + public static ushort[] GetushortsFromValue(byte[] Value) + { + ushort[] rtnValues; + byte[] bytes = Value; + int Length = bytes.Length / 2; + if (bytes.Length % 2 == 0) + { + rtnValues = new ushort[Length]; + for (int i = 0; i < bytes.Length; i += 2) + { + rtnValues[i / 2] = BitConverter.ToUInt16(bytes, i); + } + } + else + { + rtnValues = new ushort[bytes.Length / 2 + 1]; + for (int i = 0; i < bytes.Length - 1; i += 2) + { + rtnValues[i / 2] = BitConverter.ToUInt16(bytes, i); + } + rtnValues[bytes.Length / 2] = bytes[bytes.Length - 1]; + } + return rtnValues; + } + + /// + /// 字符串(string)转化为ushort(16位)数组 + /// + public static ushort[] GetushortsFromValue(string Value) + { + byte[] bytes = System.Text.Encoding.Default.GetBytes(Value); + ushort[] ushorts = GetushortsFromValue(bytes); + return ushorts; + } + + /// + /// 单精度小数(float 32位)转化为ushort(16位)数组 + /// + public static ushort[] GetushortsFromValue(float Value) + { + byte[] bytes = BitConverter.GetBytes(Value); + ushort[] ushorts = GetushortsFromValue(bytes); + return ushorts; + } + + /// + /// 双精度小数(double 64位)转化为ushort(16位)数组 + /// + public static ushort[] GetushortsFromValue(double Value) + { + byte[] bytes = BitConverter.GetBytes(Value); + ushort[] ushorts = GetushortsFromValue(bytes); + return ushorts; + } + + //====================================================================== + /// + /// 字节数组(byte 8位)转化为short(16位)数组 + /// + public static short[] GetshortsFromValue(byte[] Value) + { + short[] rtnValues; + byte[] bytes = Value; + int Length = bytes.Length / 2; + if (bytes.Length % 2 == 0) + { + rtnValues = new short[Length]; + for (int i = 0; i < bytes.Length; i += 2) + { + rtnValues[i / 2] = BitConverter.ToInt16(bytes, i); + } + } + else + { + rtnValues = new short[bytes.Length / 2 + 1]; + for (int i = 0; i < bytes.Length - 1; i += 2) + { + rtnValues[i / 2] = BitConverter.ToInt16(bytes, i); + } + rtnValues[bytes.Length / 2] = bytes[bytes.Length - 1]; + } + return rtnValues; + } + + /// + /// 字符串(string)转化为short(16位)数组 + /// + public static short[] GetshortsFromValue(string Value) + { + byte[] bytes = System.Text.Encoding.Default.GetBytes(Value); + short[] shorts = GetshortsFromValue(bytes); + return shorts; + } + + /// + /// 整形(int 32位)转化为short(16位)数组 + /// + public static short[] GetshortsFromValue(int Value) + { + byte[] bytes = BitConverter.GetBytes(Value); + short[] shorts = GetshortsFromValue(bytes); + return shorts; + } + + /// + /// 单精度小数(float 32位)转化为short(16位)数组 + /// + public static short[] GetshortsFromValue(float Value) + { + byte[] bytes = BitConverter.GetBytes(Value); + short[] shorts = GetshortsFromValue(bytes); + return shorts; + } + + /// + /// 双精度小数(double 64位)转化为ushort(16位)数组 + /// + public static short[] GetshortsFromValue(double Value) + { + byte[] bytes = BitConverter.GetBytes(Value); + short[] shorts = GetshortsFromValue(bytes); + return shorts; + } + } + + internal class CodeDfn + { + public const string BlankSpace = " "; + public const string strEnter = "\r\n"; + } + + internal class PlcMath + { + #region S7协议数据处理(以字节为基础) + + public static bool GetS7BoolBit(byte data, int index) + { + switch (index) + { + case 0: return (data & 0x01) > 0; + case 1: return (data & 0x02) > 0; + case 2: return (data & 0x04) > 0; + case 3: return (data & 0x08) > 0; + case 4: return (data & 0x10) > 0; + case 5: return (data & 0x20) > 0; + case 6: return (data & 0x40) > 0; + case 7: return (data & 0x80) > 0; + default: return false; + } + } + + public static bool GetS7BoolData(byte[] byteData, int DataAddr, int startAddr, int index) + { + byte data = GetS7ByteData(byteData, DataAddr, startAddr); + return GetS7BoolBit(data, index); + } + + /// + /// 获取PLC读取地址数据(从起始地址偏移) + /// + /// 数据数组 + /// PLC读取地址 + /// PLC读取起始地址 + /// 返回整形数据或-1 + public static byte GetS7ByteData(byte[] byteData, int DataAddr, int startAddr) + { + try + { + if (byteData == null) + { + return 0; + } + if (startAddr > DataAddr) + { + MessageBox.Show("错误:获取S7字节数据, 要读取的数据小于起始地址"); + return 0; + } + if (byteData.Length < (DataAddr - startAddr)) + { + MessageBox.Show("错误:获取S7字节数据, 要读取的偏移地址超出数组长度,偏移=" + (DataAddr - startAddr) + ", 数组长度=" + byteData.Length); + return 0; + } + else + { + int bit = DataAddr - startAddr; + return byteData[bit]; + } + } + catch + { + //MessageBox.Show("Catch错误:" + ex.Message); + return 0; + } + } + + /// + /// 获取PLC读取地址数据(从起始地址偏移) + /// + /// 数据数组 + /// PLC读取地址 + /// PLC读取起始地址 + /// 返回整形数据或-1 + public static byte GetS7ByteData(byte[] byteData, int DataAddr) + { + try + { + if (byteData == null) + { + return 0; + } + if (byteData.Length < byteData.Length) + { + MessageBox.Show("获取S7字节数据,地址超出数组长度!", "警告"); + return 0; + } + return byteData[DataAddr]; + } + catch (Exception ex) + { + MessageBox.Show("Catch错误:获取S7字节数据" + ex.Message); + return 0; + } + } + + public static int GetS7WordData(byte[] byteData, int DataAddr, int startAddr) + { + try + { + if (byteData == null) + { + return -1; + } + //if (startAddr > DataAddr) + //{ + // //MessageBox.Show("错误:要读取的数据小于起始地址"); + // return -1; + //} + //if (byteData.Length < (DataAddr - startAddr) * 2) + //{ + // return -1; + //} + //else + { + int bitH = (DataAddr - startAddr) * 2; + int bitL = (DataAddr - startAddr) * 2 + 1; + return byteData[bitH] * 256 + byteData[bitL]; + } + } + catch + { + //MessageBox.Show("Catch错误:" + ex.Message); + return -1; + } + } + + /// + /// 获取字符串(string) + /// + /// PLC读取总数据 + /// 获取数据的地址 + /// PLC起始地址 + /// 读取的地址数量(单位16) + /// 数据正反序 + /// 转换为字符串类型,2=二进制,10=十进制,16=十六进制,其他=char字符串 + /// + public static string GetS7StringData(byte[] byteData, int DataAddr, int startAddr, int DataNum, int strType = 0, bool PositiveSequence = true) + { + string Result = ""; + try + { + if (byteData == null) + { + return Result; + } + if (startAddr > DataAddr + DataNum) + { + return Result; + } + if (byteData.Length < (DataAddr - startAddr)) + { + return Result; + } + else + { + int startBit = (DataAddr - startAddr); + byte[] arrLength = new byte[DataNum]; + for (int i = 0; i < DataNum; i++) + { + arrLength[i] = byteData[startBit + i]; + } + if (!PositiveSequence) + { + arrLength = (byte[])arrLength.Reverse(); + } + switch (strType) + { + case 2: + foreach (byte b in arrLength) + { + Result += ConvertBase.MyConvert.DtoB(b); + } + break; + + case 10: + foreach (byte b in arrLength) + { + Result += b.ToString(); + } + break; + + case 16: + foreach (byte b in arrLength) + { + Result += b.ToString("X2"); + } + break; + + default: + foreach (byte b in arrLength) + { + if (b >= 32) + Result += Convert.ToChar(b).ToString(); + } + break; + } + return Result.Trim(); + } + } + catch + { + return Result; + } + } + + /// + /// 获取单精度浮点数(float)数据 + /// + /// PLC读取总数据 + /// 获取数据的地址 + /// PLC起始地址 + /// 数据正反序 + /// + public static float GetPlcSingleS7(byte[] byteData, int DataAddr, int startAddr, bool PositiveSequence) + { + try + { + if (byteData == null) + { + return -1; + } + if (startAddr > DataAddr) + { + return -1; + } + if (byteData.Length < (DataAddr - startAddr)) + { + return -1; + } + else + { + float Result = -1; + int startBit = (DataAddr - startAddr); + + byte[] arrLength = new byte[4]; + arrLength[0] = byteData[startBit + 0]; + arrLength[1] = byteData[startBit + 1]; + arrLength[2] = byteData[startBit + 2]; + arrLength[3] = byteData[startBit + 3]; + + if (PositiveSequence) + { + Result = BitConverter.ToSingle(arrLength, 0); + } + else + { + Result = BitConverter.ToSingle(arrLength.Reverse().ToArray(), 0); + } + Result = Convert.ToSingle(Math.Round(Result, 3)); + return Result; + } + } + catch + { + return -1; + } + } + /// + /// 获取双精度浮点数(double)数据 + /// + /// PLC读取总数据 + /// 获取数据的地址 + /// PLC起始地址 + /// 数据正反序 + /// + public static double GetPlcDoubleS7(byte[] byteData, int DataAddr, int startAddr, bool PositiveSequence) + { + try + { + if (byteData == null) + { + return -1; + } + if (startAddr > DataAddr) + { + return -1; + } + if (byteData.Length < (DataAddr - startAddr)) + { + return -1; + } + else + { + double Result = -1; + int startBit = (DataAddr - startAddr); + + byte[] arrLength = new byte[8]; + arrLength[0] = byteData[startBit + 0]; + arrLength[1] = byteData[startBit + 1]; + arrLength[2] = byteData[startBit + 2]; + arrLength[3] = byteData[startBit + 3]; + arrLength[4] = byteData[startBit + 4]; + arrLength[5] = byteData[startBit + 5]; + arrLength[6] = byteData[startBit + 6]; + arrLength[7] = byteData[startBit + 7]; + if (PositiveSequence) + { + Result = BitConverter.ToDouble(arrLength, 0); + } + else + { + Result = BitConverter.ToDouble(arrLength.Reverse().ToArray(), 0); + } + Result = Convert.ToDouble(Math.Round(Result, 3)); + return Result; + } + } + catch + { + return -1; + } + } + #endregion + + #region ModbusTCP/FinsTCP协议数据处理(以字为基础) + + /// + /// 获取PLC读取地址数据(从起始地址偏移) + /// + /// 数据数组 + /// PLC读取地址,从0开始 + /// 返回整形数据或-1 + public static int GetPlcData(byte[] byteData, int DataAddr) + { + try + { + if (byteData == null) + { + return -1; + } + if (byteData.Length < DataAddr * 2) + { + return -1; + } + else + { + int bitH = DataAddr * 2; + int bitL = DataAddr * 2 + 1; + return byteData[bitH] * 256 + byteData[bitL]; + } + } + catch + { + return -1; + } + } + + /// + /// 获取PLC读取地址数据(从起始地址偏移) + /// + /// 数据数组 + /// PLC读取地址 + /// PLC读取起始地址 + /// 返回整形数据或-1 + public static byte GetPlcByteData(byte[] byteData, int DataAddr, int startAddr) + { + try + { + if (byteData == null) + { + return 0; + } + if (startAddr > DataAddr) + { + //MessageBox.Show("错误:要读取的数据小于起始地址"); + return 0; + } + //if (byteData.Length < (DataAddr - startAddr) * 2) + if (byteData.Length < (DataAddr - startAddr)) + { + return 0; + } + else + { + int bit = DataAddr - startAddr; + return byteData[bit]; + } + } + catch + { + //MessageBox.Show("Catch错误:" + ex.Message); + return 0; + } + } + + /// + /// 获取PLC读取地址数据(从起始地址偏移) + /// + /// 数据数组 + /// PLC读取地址 + /// PLC读取起始地址 + /// 返回整形数据或-1 + public static int GetPlcData(byte[] byteData, int DataAddr, int startAddr) + { + try + { + if (byteData == null) + { + return -1; + } + if (startAddr > DataAddr) + { + //MessageBox.Show("错误:要读取的数据小于起始地址"); + return -1; + } + if (byteData.Length < (DataAddr - startAddr) * 2) + { + return -1; + } + else + { + int bitH = (DataAddr - startAddr) * 2; + int bitL = (DataAddr - startAddr) * 2 + 1; + return byteData[bitH] * 256 + byteData[bitL]; + } + } + catch + { + //MessageBox.Show("Catch错误:" + ex.Message); + return -1; + } + } + + /// + /// 获取字节的某一位 + /// + /// 从0开始 + /// + public static bool GetPlcBit(int data, int index) + { + switch (index) + { + case 0: + return (data & 0x0001) > 0; + + case 1: + return (data & 0x0002) > 0; + + case 2: + return (data & 0x0004) > 0; + + case 3: + return (data & 0x0008) > 0; + + case 4: + return (data & 0x0010) > 0; + + case 5: + return (data & 0x0020) > 0; + + case 6: + return (data & 0x0040) > 0; + + case 7: + return (data & 0x0080) > 0; + + case 8: + return (data & 0x0100) > 0; + + case 9: + return (data & 0x0200) > 0; + + case 10: + return (data & 0x0400) > 0; + + case 11: + return (data & 0x0800) > 0; + + case 12: + return (data & 0x1000) > 0; + + case 13: + return (data & 0x2000) > 0; + + case 14: + return (data & 0x4000) > 0; + + case 15: + return (data & 0x8000) > 0; + + default: + return false; + } + } + + public static bool GetPlcBitH2Low(int data, int index) + { + switch (index) + { + case 0: + return (data & 0x0100) > 0; + + case 1: + return (data & 0x0200) > 0; + + case 2: + return (data & 0x0400) > 0; + + case 3: + return (data & 0x0800) > 0; + + case 4: + return (data & 0x1000) > 0; + + case 5: + return (data & 0x2000) > 0; + + case 6: + return (data & 0x4000) > 0; + + case 7: + return (data & 0x8000) > 0; + + case 8: + return (data & 0x0001) > 0; + + case 9: + return (data & 0x0002) > 0; + + case 10: + return (data & 0x0004) > 0; + + case 11: + return (data & 0x0008) > 0; + + case 12: + return (data & 0x0010) > 0; + + case 13: + return (data & 0x0020) > 0; + + case 14: + return (data & 0x0040) > 0; + + case 15: + return (data & 0x0080) > 0; + + default: + return false; + } + } + + /// + /// 获取字节的某一位 + /// + /// 从0开始 + /// + public static bool GetPlcBit(byte[] byteData, int DataAddr, int index, int startAddr) + { + int Value = GetPlcData(byteData, DataAddr, startAddr); + bool bResult = GetPlcBit(Value, index); + return bResult; + } + + public static bool GetPlcBitH2Low(byte[] byteData, int DataAddr, int index, int startAddr) + { + int Value = GetPlcData(byteData, DataAddr, startAddr); + bool bResult = GetPlcBitH2Low(Value, index); + return bResult; + } + + /// + /// 获取单精度浮点数(float)数据 + /// + /// PLC读取总数据 + /// 获取数据的地址 + /// PLC起始地址 + /// 数据正反序 + /// + public static float GetPlcSingle(byte[] byteData, int DataAddr, int startAddr, bool PositiveSequence) + { + try + { + if (byteData == null) + { + return -1; + } + if (startAddr > DataAddr) + { + return -1; + } + if (byteData.Length < (DataAddr - startAddr) * 2) + { + return -1; + } + else + { + float Result = -1; + int startBit = (DataAddr - startAddr) * 2; + + byte[] arrLength = new byte[4]; + arrLength[0] = byteData[startBit + 0]; + arrLength[1] = byteData[startBit + 1]; + arrLength[2] = byteData[startBit + 2]; + arrLength[3] = byteData[startBit + 3]; + + if (PositiveSequence) + { + Result = BitConverter.ToSingle(arrLength, 0); + } + else + { + Result = BitConverter.ToSingle(arrLength.Reverse().ToArray(), 0); + } + Result = Convert.ToSingle(Math.Round(Result, 3)); + return Result; + } + } + catch + { + return -1; + } + } + + /// + /// 获取字符串(string) + /// + /// PLC读取总数据 + /// 获取数据的地址 + /// PLC起始地址 + /// 读取的地址数量(单位16) + /// 数据正反序 + /// 转换为字符串类型,2=二进制,10=十进制,16=十六进制,其他=char字符串 + /// + public static string GetPlcString(byte[] byteData, int DataAddr, int startAddr, int DataNum, int strType = 0, bool PositiveSequence = true) + { + string Result = ""; + try + { + if (byteData == null) + { + return Result; + } + if (startAddr > DataAddr + DataNum) + { + return Result; + } + if (byteData.Length < (DataAddr - startAddr) * 2) + { + return Result; + } + else + { + int startBit = (DataAddr - startAddr) * 2; + byte[] arrLength = new byte[DataNum * 2]; + for (int i = 0; i < DataNum * 2; i++) + { + arrLength[i] = byteData[startBit + i]; + } + if (!PositiveSequence) + { + arrLength = (byte[])arrLength.Reverse(); + } + switch (strType) + { + case 2: + foreach (byte b in arrLength) + { + Result += ConvertBase.MyConvert.DtoB(b); + } + break; + + case 10: + foreach (byte b in arrLength) + { + Result += b.ToString(); + } + break; + + case 16: + foreach (byte b in arrLength) + { + Result += b.ToString("X2"); + } + break; + + default: + foreach (byte b in arrLength) + { + if (b >= 32) + Result += Convert.ToChar(b).ToString(); + } + break; + } + return Result.Trim(); + } + } + catch + { + return Result; + } + } + + #endregion + } + + public static class StringChange + { + #region 数据类型转换函数 + + public static byte[] Swap16Bytes(byte[] OldU16) + { + byte[] ReturnBytes = new byte[2]; + ReturnBytes[1] = OldU16[0]; + ReturnBytes[0] = OldU16[1]; + return ReturnBytes; + } + + public static bool CompareBytes(byte[] byteA, byte[] byteB, int iLen) + { + for (int i = 0; i < iLen; i++) + { + if (byteA[i] != byteB[i]) + { + return false; + } + } + return true; + } + + /// + /// 16进制字符串转换成btye数组 + /// + /// 16进制字符串 + /// + public static byte[] HexStrTorbytes(string strHex)//e.g. " 01 01" ---> { 0x01, 0x01} + { + strHex = strHex.Replace(" ", ""); + if ((strHex.Length % 2) != 0) + strHex += " "; + byte[] returnBytes = new byte[strHex.Length / 2]; + for (int i = 0; i < returnBytes.Length; i++) + returnBytes[i] = Convert.ToByte(strHex.Substring(i * 2, 2), 16); + return returnBytes; + } + + /// + /// 二进制字符串转换成16进制字符串 + /// + /// 二进制字符串 + /// 16进制字符串 + public static string Binary2HexString(string strerjinzhi) + { + string str = ""; + str = string.Format("{0:x}", Convert.ToInt32(strerjinzhi, 2)); + return str; + } + + /// + /// 西门子16进制字符串转换成2进制的二维数组 + /// + /// 16进制字符串 + /// 19:8的二维数组 + public static string[,] HexString2BinString(string hexString) + { + string[,] strTestData = new string[19, 8]; + for (int i = 0; i < hexString.Length / 2; i++) + { + string tempRes = string.Empty; + foreach (char c in hexString.Substring(i * 2, 2)) + { + int v = Convert.ToInt32(c.ToString(), 16); + int v2 = int.Parse(Convert.ToString(v, 2)); + // 去掉格式串中的空格,即可去掉每个4位二进制数之间的空格, + tempRes += string.Format("{0:d4}", v2); + } + int k = 0; + for (int j = tempRes.Length - 1; j >= 0; j--) + { + strTestData[i, k] = tempRes[j].ToString(); + k++; + } + } + + return strTestData; + } + + /// + /// 海德汉16进制字符串转换成2进制的二维数组 例如: 0X42 传入十六进制字符串42 (0100 0010), 返回二维数组(0100 0010) + /// + /// 16进制字符串 + /// 21:8的二维数组 + public static string[,] HeidenhainHexString2BinString(string hexString) + { + string[,] strTestData = new string[23, 8]; + for (int i = 0; i < hexString.Length / 2; i++) + { + string tempRes = string.Empty; + foreach (char c in hexString.Substring(i * 2, 2)) + { + int v = Convert.ToInt32(c.ToString(), 16); + int v2 = int.Parse(Convert.ToString(v, 2)); + // 去掉格式串中的空格,即可去掉每个4位二进制数之间的空格, + tempRes += string.Format("{0:d4}", v2); + } + int k = 0; + for (int j = tempRes.Length - 1; j >= 0; j--) + { + strTestData[i, k] = tempRes[j].ToString(); + k++; + } + } + + return strTestData; + } + + /// + /// byte数组转换成字符串 带空格隔开 + /// + /// byte数组 + /// 长度 + /// string + public static string bytesToHexStr(byte[] bytes, int iLen)//e.g. { 0x01,0x01} ---> " 01 01" + { + string returnStr = ""; + if (bytes != null) + { + for (int i = 0; i < iLen; i++) + { + returnStr += bytes[i].ToString("X2") + " "; + } + } + return returnStr; + } + + /// + /// byte数组转换成字符串 不带空格 + /// + /// byte数组 + /// 长度 + /// string + public static string bytesToHexStrWithoutSpace(byte[] bytes, int iLen)//e.g. { 0x01,0x01} ---> " 0101" + { + string returnStr = ""; + if (bytes != null) + { + for (int i = 0; i < iLen; i++) + { + returnStr += bytes[i].ToString("X2"); + } + } + return returnStr; + } + + /// + /// 计算CRC + /// + /// byte数组 + /// 长度 + /// CRC校验和 + public static byte CalculateCRC(byte[] pMessage, int iLength) + { + int i = 0; + byte iVerify = 0; + for (i = 0; i < iLength; i++) + { + iVerify = (byte)(iVerify + pMessage[i]); + } + + return iVerify; + } + + public static string StringToHexString(string s, Encoding encode) + { + byte[] b = encode.GetBytes(s); //按照指定编码将string编程字节数组 + string result = string.Empty; + for (int i = 0; i < b.Length; i++) //逐字节变为16进制字符,以%隔开 + { + result += "%" + Convert.ToString(b[i], 16); + } + return result; + } + + public static string HexStringToString(string hs, Encoding encode) + { + //以%分割字符串,并去掉空字符 + string[] chars = hs.Split(new char[] { '%' }, StringSplitOptions.RemoveEmptyEntries); + byte[] b = new byte[chars.Length]; + //逐个字符变为16进制字节数据 + for (int i = 0; i < chars.Length; i++) + { + b[i] = Convert.ToByte(chars[i], 16); + } + //按照指定编码将字节数组变为字符串 + return encode.GetString(b); + } + + public static short SwapInt16(this short n) + { + return (short)(((n & 0xff) << 8) | ((n >> 8) & 0xff)); + } + + public static ushort SwapUInt16(this ushort n) + { + return (ushort)(((n & 0xff) << 8) | ((n >> 8) & 0xff)); + } + + public static int SwapInt32(this int n) + { + return (int)(((SwapInt16((short)n) & 0xffff) << 0x10) | + (SwapInt16((short)(n >> 0x10)) & 0xffff)); + } + + public static uint SwapUInt32(this uint n) + { + return (uint)(((SwapUInt16((ushort)n) & 0xffff) << 0x10) | + (SwapUInt16((ushort)(n >> 0x10)) & 0xffff)); + } + + public static long SwapInt64(this long n) + { + return (long)(((SwapInt32((int)n) & 0xffffffffL) << 0x20) | + (SwapInt32((int)(n >> 0x20)) & 0xffffffffL)); + } + + public static ulong SwapUInt64(this ulong n) + { + return (ulong)(((SwapUInt32((uint)n) & 0xffffffffL) << 0x20) | + (SwapUInt32((uint)(n >> 0x20)) & 0xffffffffL)); + } + + #endregion + } +} \ No newline at end of file diff --git a/Analysis/BaseUnit/ImageDfn.cs b/Analysis/BaseUnit/ImageDfn.cs new file mode 100644 index 0000000..d07db14 --- /dev/null +++ b/Analysis/BaseUnit/ImageDfn.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using NSAnalysis.Properties; + +namespace BaseFunction +{ + public class ImageDfn + { + /// 程序图标 + //public static Image ImgSOK = Resources.accept16; + //public static Image ImgSNG = Resources.delete16_2; + //public static Image ImgNull = Resources.Null; + //public static Image ImgNoData = Resources.NoData; + //public static Image ImgRead = Resources.read16; + //public static Image ImgTransparent = Resources.transparent; + } +} \ No newline at end of file diff --git a/Analysis/BaseUnit/NetworkCopy.cs b/Analysis/BaseUnit/NetworkCopy.cs new file mode 100644 index 0000000..e53093c --- /dev/null +++ b/Analysis/BaseUnit/NetworkCopy.cs @@ -0,0 +1,275 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; + +namespace BaseFunction +{ + public class SharedTool : IDisposable + { + // obtains user token + [DllImport("advapi32.dll", SetLastError = true)] + static extern bool LogonUser(string pszUsername, string pszDomain, string pszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); + + // closes open handes returned by LogonUser + [DllImport("kernel32.dll", CharSet = CharSet.Auto)] + extern static bool CloseHandle(IntPtr handle); + + [DllImport("Advapi32.DLL")] + static extern bool ImpersonateLoggedOnUser(IntPtr hToken); + + [DllImport("Advapi32.DLL")] + static extern bool RevertToSelf(); + const int LOGON32_PROVIDER_DEFAULT = 0; + const int LOGON32_LOGON_NEWCREDENTIALS = 9;//域控中的需要用:Interactive = 2 + private bool disposed; + + /// + /// SharedTool函数 + /// + /// 连接的电脑的IP + /// 用户名 + /// 密码 + public SharedTool(string ip, string username, string password) + { + // initialize tokens + IntPtr pExistingTokenHandle = new IntPtr(0); + IntPtr pDuplicateTokenHandle = new IntPtr(0); + + try + { + // get handle to token + bool bImpersonated = LogonUser(username, ip, password, LOGON32_LOGON_NEWCREDENTIALS, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandle); + + if (bImpersonated) + { + if (!ImpersonateLoggedOnUser(pExistingTokenHandle)) + { + int nErrorCode = Marshal.GetLastWin32Error(); + throw new Exception("ImpersonateLoggedOnUser error;Code=" + nErrorCode); + } + } + else + { + int nErrorCode = Marshal.GetLastWin32Error(); + throw new Exception("LogonUser error;Code=" + nErrorCode); + } + } + finally + { + // close handle(s) + if (pExistingTokenHandle != IntPtr.Zero) + CloseHandle(pExistingTokenHandle); + if (pDuplicateTokenHandle != IntPtr.Zero) + CloseHandle(pDuplicateTokenHandle); + } + } + + protected virtual void Dispose(bool disposing) + { + if (!disposed) + { + RevertToSelf(); + disposed = true; + } + } + + public void Dispose() + { + Dispose(true); + } + } + + public class NetworkShareConnect + { + #region WNetUseConnection枚举参数 + //dwScope + const int RESOURCE_CONNECTED = 0x00000001; + const int RESOURCE_GLOBALNET = 0x00000002; + const int RESOURCE_REMEMBERED = 0x00000003; + + //dwType + const int RESOURCETYPE_ANY = 0x00000000; + const int RESOURCETYPE_DISK = 0x00000001; + const int RESOURCETYPE_PRINT = 0x00000002; + + //dwDisplayType + const int RESOURCEDISPLAYTYPE_GENERIC = 0x00000000; + const int RESOURCEDISPLAYTYPE_DOMAIN = 0x00000001; + const int RESOURCEDISPLAYTYPE_SERVER = 0x00000002; + const int RESOURCEDISPLAYTYPE_SHARE = 0x00000003; + const int RESOURCEDISPLAYTYPE_FILE = 0x00000004; + const int RESOURCEDISPLAYTYPE_GROUP = 0x00000005; + + //dwUsage + const int RESOURCEUSAGE_CONNECTABLE = 0x00000001; + const int RESOURCEUSAGE_CONTAINER = 0x00000002; + + //dwFlags + const int CONNECT_INTERACTIVE = 0x00000008; + const int CONNECT_PROMPT = 0x00000010; + const int CONNECT_REDIRECT = 0x00000080; + const int CONNECT_UPDATE_PROFILE = 0x00000001; + const int CONNECT_COMMANDLINE = 0x00000800; + const int CONNECT_CMD_SAVECRED = 0x00001000; + + const int CONNECT_LOCALDRIVE = 0x00000100; + #endregion + + #region Errors参数 + const int NO_ERROR = 0; + + const int ERROR_ACCESS_DENIED = 5; + const int ERROR_ALREADY_ASSIGNED = 85; + const int ERROR_BAD_DEVICE = 1200; + const int ERROR_BAD_NET_NAME = 67; + const int ERROR_BAD_PROVIDER = 1204; + const int ERROR_CANCELLED = 1223; + const int ERROR_EXTENDED_ERROR = 1208; + const int ERROR_INVALID_ADDRESS = 487; + const int ERROR_INVALID_PARAMETER = 87; + const int ERROR_INVALID_PASSWORD = 1216; + const int ERROR_MORE_DATA = 234; + const int ERROR_NO_MORE_ITEMS = 259; + const int ERROR_NO_NET_OR_BAD_PATH = 1203; + const int ERROR_NO_NETWORK = 1222; + + const int ERROR_BAD_PROFILE = 1206; + const int ERROR_CANNOT_OPEN_PROFILE = 1205; + const int ERROR_DEVICE_IN_USE = 2404; + const int ERROR_NOT_CONNECTED = 2250; + const int ERROR_OPEN_FILES = 2401; + + private struct ErrorClass + { + //定义错误类结构体 + public int num; + public string message; + public ErrorClass(int num, string message) + { + this.num = num; + this.message = message; + } + } + + + //连接失败信息汇总 + private static ErrorClass[] ERROR_LIST = new ErrorClass[] { + new ErrorClass(ERROR_ACCESS_DENIED, "Error: Access Denied"), + new ErrorClass(ERROR_ALREADY_ASSIGNED, "Error: Already Assigned"), + new ErrorClass(ERROR_BAD_DEVICE, "Error: Bad Device"), + new ErrorClass(ERROR_BAD_NET_NAME, "Error: Bad Net Name"), + new ErrorClass(ERROR_BAD_PROVIDER, "Error: Bad Provider"), + new ErrorClass(ERROR_CANCELLED, "Error: Cancelled"), + new ErrorClass(ERROR_EXTENDED_ERROR, "Error: Extended Error"), + new ErrorClass(ERROR_INVALID_ADDRESS, "Error: Invalid Address"), + new ErrorClass(ERROR_INVALID_PARAMETER, "Error: Invalid Parameter"), + new ErrorClass(ERROR_INVALID_PASSWORD, "Error: Invalid Password"), + new ErrorClass(ERROR_MORE_DATA, "Error: More Data"), + new ErrorClass(ERROR_NO_MORE_ITEMS, "Error: No More Items"), + new ErrorClass(ERROR_NO_NET_OR_BAD_PATH, "Error: No Net Or Bad Path"), + new ErrorClass(ERROR_NO_NETWORK, "Error: No Network"), + new ErrorClass(ERROR_BAD_PROFILE, "Error: Bad Profile"), + new ErrorClass(ERROR_CANNOT_OPEN_PROFILE, "Error: Cannot Open Profile"), + new ErrorClass(ERROR_DEVICE_IN_USE, "Error: Device In Use"), + new ErrorClass(ERROR_EXTENDED_ERROR, "Error: Extended Error"), + new ErrorClass(ERROR_NOT_CONNECTED, "Error: Not Connected"), + new ErrorClass(ERROR_OPEN_FILES, "Error: Open Files"), + }; + + private static string getErrorForNumber(int errNum) + { + //遍历获得错误代码 + foreach (ErrorClass er in ERROR_LIST) + { + if (er.num == errNum) return er.message; + } + return "Error: Unknown, " + errNum; + } + #endregion + + //调用系统函数WNetUseConnection + //用于连接共享 + [DllImport("Mpr.dll")] + private static extern int WNetUseConnection( + IntPtr hwndOwner, + NETRESOURCE lpNetResource, + string lpPassword, + string lpUserID, + int dwFlags, + string lpAccessName, + string lpBufferSize, + string lpResult + ); + //用于删除连接 + [DllImport("Mpr.dll")] + private static extern int WNetCancelConnection2( + string lpName, + int dwFlags, + bool fForce + ); + + [StructLayout(LayoutKind.Sequential)] + private class NETRESOURCE + { + public int dwScope = 0; + public int dwType = 0; + public int dwDisplayType = 0; + public int dwUsage = 0; + public string lpLocalName = "";//映射到本地的盘符,如"Z:"。不做驱动器映射,可为空 + public string lpRemoteName = "";//共享的网络路径 + public string lpComment = ""; + public string lpProvider = ""; + } + + /// + /// 连接共享 + /// + /// 共享网络路径 + /// 登录用户名 + /// 密码 + /// + public static string connectToShare(string remoteUNC, string username, string password) + { + return connectToRemote(remoteUNC, username, password, false); + } + + /// + /// 没用户密码连接 + /// + /// 共享网络路径 + /// + public static string connectToShare(string remoteUNC) + { + return connectToRemote(remoteUNC, "", "", true); + } + + private static string connectToRemote(string remoteUNC, string username, string password, bool promptUser) + { + NETRESOURCE nr = new NETRESOURCE + { + dwType = RESOURCETYPE_DISK, + lpRemoteName = remoteUNC + }; + + int ret; + if (promptUser) + ret = WNetUseConnection(IntPtr.Zero, nr, "", "", CONNECT_INTERACTIVE | CONNECT_PROMPT, null, null, null); + else + ret = WNetUseConnection(IntPtr.Zero, nr, password, username, 0, null, null, null); + + if (ret == NO_ERROR) return null; + return getErrorForNumber(ret); + } + + public static string disconnectRemote(string remoteUNC) + { + int ret = WNetCancelConnection2(remoteUNC, CONNECT_UPDATE_PROFILE, false); + if (ret == NO_ERROR) return null; + return getErrorForNumber(ret); + } + } + +} diff --git a/Analysis/BaseUnit/PlcObject.cs b/Analysis/BaseUnit/PlcObject.cs new file mode 100644 index 0000000..bd8eb2b --- /dev/null +++ b/Analysis/BaseUnit/PlcObject.cs @@ -0,0 +1,1002 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BaseFunction; +using HslCommunication.Profinet.Siemens; +using System.Drawing; +using PLCModule; +namespace NSAnalysis +{ + class PlcObject + { + public static PlcAddrSetup m_FormPlcAddr = new PlcAddrSetup(3, ConfigDfn.strConfigFile); + //================= + #region 外部操作指令 + + /// + /// + /// + /// + /// 1:Modebus TCP;2:FINS TCP;3:S7 + /// + public static object GetAddr_W(string strName) + { + if (ConfigPlc.PlcType == 1 || ConfigPlc.PlcType == 2) + { + if (m_FormPlcAddr.DictPlcAddr_Write.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Write[strName]; + int Result = GetIntFromString(Value[1]); + if (Result == -1) + Console.WriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[2]); + return Result; + } + else if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + int Result = GetIntFromString(Value[1]); + if (Result == -1) + Console.WriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[2]); + return Result; + } + else + Console.WriteLine("获取PLC地址失败:变量名不存在:" + strName); + return -1; + } + else if (ConfigPlc.PlcType == 3) + { + if (m_FormPlcAddr.DictPlcAddr_Write.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Write[strName]; + string Result = Value[1]; + if (!string.IsNullOrEmpty(Value[2])) + { + Result += "." + Value[2]; + } + if (string.IsNullOrEmpty(Result)) + Console.WriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Result); + return Result; + } + else if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + string Result = Value[1]; + if (string.IsNullOrEmpty(Result)) + Console.WriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[2]); + return Result; + } + else + Console.WriteLine("获取PLC地址失败:变量名不存在:" + strName); + return ""; + } + else + { + return ""; + } + } + + public static int GetIndexLength_W(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Write.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Write[strName]; + int Result = GetIntFromString(Value[2]); + if (Result == -1) + Console.WriteLine("获取PLC写地址Index或长度出错:名字=" + strName + ", 地址=" + Value[1]); + return Result; + } + else + Console.WriteLine("获取PLC写地址:变量名不存在:" + strName); + return -1; + } + + public static int GetAddr_R(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + int Result = GetIntFromString(Value[1]); + if (Result == -1) + Console.WriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[2]); + return Result; + } + else if (m_FormPlcAddr.DictPlcAddr_Write.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Write[strName]; + int Result = GetIntFromString(Value[1]); + if (Result == -1) + Console.WriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[2]); + return Result; + } + else + Console.WriteLine("获取PLC地址失败:变量名不存在:" + strName); + return -1; + } + + public static int GetIndexLength_R(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + int IndLength = GetIntFromString(Value[2]); + if (IndLength == -1) + Console.WriteLine("获取PLC读地址Index或长度出错:名字=" + strName + ", 地址=" + Value[1]); + } + else + Console.WriteLine("获取PLC读地址:变量名不存在:" + strName); + return -1; + } + #endregion + //============================================================================================================= + static int GetIntFromString(string strInput) + { + if (strInput.Length > 0) + { + try + { + int temp = Convert.ToInt32(strInput, 10); + return temp; + } + catch + { + return -1; + } + } + return -1; + } + + public static byte[] GetPlcReadDatas() + { + switch (ConfigPlc.PlcType) + { + case 1: return HslModbusTcpObj.ReadDataBytes; + case 3: return HslSiemensS7Obj.ReadDataBytes; + default: return null; + } + } + + public static int GetData_R(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + if (Value[0] == SignalTypeDfn.Bool) + { + int addr = GetIntFromString(Value[1]); + int index = GetIntFromString(Value[2]); + if (addr >= 0 && index >= 0) + { + //bool bResult = PlcMath.GetPlcBitH2Low(GetPlcReadDatas(), addr, index, PlcAddrSetup.StartAddr); + bool bResult = PlcMath.GetPlcBit(GetPlcReadDatas(), addr, index, PlcAddrSetup.StartAddr); + if (bResult) + return 1; + else + return 0; + } + } + else if (Value[0] == SignalTypeDfn.Word) + { + int addr = GetIntFromString(Value[1]); + if (addr >= 0) + { + int Result = PlcMath.GetPlcData(GetPlcReadDatas(), addr, PlcAddrSetup.StartAddr); + return Result; + } + } + int m_Addr = GetIntFromString(Value[1]); + if (m_Addr == -1) + MyBase.TraceWriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[1]); + } + else + MyBase.TraceWriteLine("获取PLC读地址:变量名不存在:" + strName); + return -1; + } + + public static string GetString_R(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + if (Value[0] == SignalTypeDfn.String) + { + int addr = GetIntFromString(Value[1]); + int Length = GetIntFromString(Value[2]); + if (addr >= 0 && Length >= 0) + { + string Result = PlcMath.GetPlcString(GetPlcReadDatas(), addr, PlcAddrSetup.StartAddr, Length); + Result = Result.Replace('\0', ' '); + return Result; + } + } + else if (Value[0] == SignalTypeDfn.Word) + { + int addr = GetIntFromString(Value[1]); + if (addr >= 0) + { + int Result = PlcMath.GetPlcData(GetPlcReadDatas(), addr, PlcAddrSetup.StartAddr); + return Result.ToString(); + } + } + int m_Addr = GetIntFromString(Value[1]); + if (m_Addr == -1) + MyBase.TraceWriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[1]); + } + else + MyBase.TraceWriteLine("获取PLC读地址:变量名不存在:" + strName); + return ""; + } + + + + //============================================================================================================= + #region ModbusTCP协议写入操作 + public static bool PlcWriteInt(object Addr, int data) + { + try + { + if ((int)Addr >= 0) + { + if (ConfigPlc.PlcType == 1) + { + if (HslModbusTcpObj.bConnected) + { + bool bResult = HslModbusTcpObj.WriteShort(((int)Addr).ToString(), (short)data); + if (bResult == false) + { + MyBase.TraceWriteLine("写入PLC失败:地址为" + ((int)Addr).ToString() + " ;值为:" + data.ToString()); + } + return bResult; + } + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:地址=" + Addr + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool WritePlcValue(object StartAddr, string Value, bool PositiveSequence = true) + { + try + { + if ((ushort)StartAddr > 0) + { + if (ConfigPlc.PlcType == 1) + { + if (HslModbusTcpObj.bConnected) + { + return HslModbusTcpObj.WriteString(((ushort)StartAddr).ToString(), Value); + } + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:StartAddr=" + StartAddr + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool WritePlcValue(object StartAddr, string Value, int length, bool PositiveSequence = true) + { + try + { + if ((ushort)StartAddr > 0) + { + if (ConfigPlc.PlcType == 1) + { + if (HslModbusTcpObj.bConnected) + { + return HslModbusTcpObj.WriteString(((ushort)StartAddr).ToString(), Value, length); + } + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:StartAddr=" + StartAddr + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool WritePlcValue(object StartAddr, float Value, bool PositiveSequence = true) + { + try + { + PositiveSequence = ConfigPlc.bPositiveAequence; + + if ((int)StartAddr > 0) + { + if (ConfigPlc.PlcType == 1) + { + if (HslModbusTcpObj.bConnected) + { + return HslModbusTcpObj.WriteFloat(StartAddr.ToString(), Value); + } + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:StartAddr=" + StartAddr + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool WritePlcValue(object StartAddr, double Value, bool PositiveSequence = true) + { + try + { + PositiveSequence = ConfigPlc.bPositiveAequence; + + if ((ushort)StartAddr > 0) + { + if (ConfigPlc.PlcType == 1) + { + if (HslModbusTcpObj.bConnected) + { + return HslModbusTcpObj.WriteDouble(StartAddr.ToString(), Value); + } + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:StartAddr=" + StartAddr + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool WritePlcValue(string StartAddrName, string Value, bool PositiveSequence = true) + { + try + { + object Addr = GetAddr_W(StartAddrName); + return WritePlcValue(Addr, Value, PositiveSequence); + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:SignalName=" + StartAddrName + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool WritePlcValue(string StartAddrName, float Value, bool PositiveSequence = true) + { + try + { + object Addr = GetAddr_W(StartAddrName); + return WritePlcValue(Addr, Value, ConfigPlc.bPositiveAequence); + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:SignalName=" + StartAddrName + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool WritePlcValue(string StartAddrName, double Value, bool PositiveSequence = true) + { + try + { + object Addr = GetAddr_W(StartAddrName); + return WritePlcValue(Addr, Value, PositiveSequence); + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:SignalName=" + StartAddrName + "\r\n ex=" + ex.ToString()); + } + return false; + } + #endregion + + + //============================================================================================================= + #region S7协议读取操作 + public static int GetS7Data_R(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + if (Value[0] == SignalTypeDfn.Bool) + { + string address = Value[1]; + bool result = false; + if (HslSiemensS7Obj.ReadBool(address, out result)) + { + return result ? 1 : 0; + } + else + { + MyBase.TraceWriteLine("读PLC读地址" + address + "失败!"); + return -1; + } + } + else if (Value[0] == SignalTypeDfn.Word) + { + string address = Value[1]; + short result = 0; + if (HslSiemensS7Obj.ReadShort(address, out result)) + { + return result; + } + else + { + MyBase.TraceWriteLine("读PLC读地址" + address + "失败!"); + return -1; + } + } + } + else + MyBase.TraceWriteLine("获取PLC读地址:变量名不存在:" + strName); + return -1; + } + + public static string GetS7String_R(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + if (Value[0] == SignalTypeDfn.String) + { + string addr = Value[1]; + ushort Length = (ushort)GetIntFromString(Value[2]); + if (!string.IsNullOrEmpty(addr) && Length >= 0) + { + string Result = ""; + if (HslSiemensS7Obj.ReadString(addr, Length, out Result)) + { + Result = Result.Replace('\0', ' '); + return Result; + } + else + { + MyBase.TraceWriteLine("读PLC读地址" + addr + "失败!"); + return ""; + } + } + } + else if (Value[0] == SignalTypeDfn.Word) + { + int addr = GetIntFromString(Value[1]); + if (addr >= 0) + { + int Result = PlcMath.GetPlcData(GetPlcReadDatas(), addr, PlcAddrSetup.StartAddr); + return Result.ToString(); + } + } + } + else + MyBase.TraceWriteLine("获取PLC读地址:变量名不存在:" + strName); + return ""; + } + + public static byte GetS7ByteData(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + if (Value[0] == SignalTypeDfn.Bool) + { + int addr = GetIntFromString(Value[1]); + int index = GetIntFromString(Value[2]); + if (addr >= 0 && index >= 0) + { + bool bResult = PlcMath.GetS7BoolData(GetPlcReadDatas(), addr, int.Parse(PlcAddrSetup.S7ReadOffsetAddr), index); + if (bResult) + return 1; + else + return 0; + } + } + else if (Value[0] == SignalTypeDfn.Byte) + { + int addr = GetIntFromString(Value[1]); + if (addr >= 0) + { + byte Result = PlcMath.GetS7ByteData(GetPlcReadDatas(), addr, int.Parse(PlcAddrSetup.S7ReadOffsetAddr)); + return Result; + } + } + int m_Addr = GetIntFromString(Value[1]); + if (m_Addr == 0) + MyBase.TraceWriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[1]); + } + else + MyBase.TraceWriteLine("获取PLC读地址:变量名不存在:" + strName); + return 0; + } + + public static string GetS7StringData(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + if (Value[0] == SignalTypeDfn.String) + { + int addr = GetIntFromString(Value[1]); + int Length = GetIntFromString(Value[2]); + if (addr >= 0 && Length >= 0) + { + string Result = PlcMath.GetS7StringData(GetPlcReadDatas(), addr, int.Parse(PlcAddrSetup.S7ReadOffsetAddr), Length); + Result = Result.Replace('\0', ' '); + return Result; + } + } + else if (Value[0] == SignalTypeDfn.Word) + { + int addr = GetIntFromString(Value[1]); + if (addr >= 0) + { + int Result = PlcMath.GetPlcData(GetPlcReadDatas(), addr, PlcAddrSetup.StartAddr); + return Result.ToString(); + } + } + int m_Addr = GetIntFromString(Value[1]); + if (m_Addr == -1) + MyBase.TraceWriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[1]); + } + else + MyBase.TraceWriteLine("获取PLC读地址:变量名不存在:" + strName); + return ""; + } + + public static float GetS7Float_R(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + if (Value[0] == SignalTypeDfn.Single) + { + int addr = GetIntFromString(Value[1]); + if (addr >= 0) + { + float Result = PlcMath.GetPlcSingleS7(GetPlcReadDatas(), addr, int.Parse(PlcAddrSetup.S7ReadOffsetAddr), false); + return Result; + } + } + int m_Addr = GetIntFromString(Value[1]); + if (m_Addr == -1) + MyBase.TraceWriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[1]); + return -1; + } + else + MyBase.TraceWriteLine("获取PLC读地址:变量名不存在:" + strName); + return -1; + } + public static double GetS7Double(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Read.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Read[strName]; + if (Value[0] == SignalTypeDfn.Double) + { + int addr = GetIntFromString(Value[1]); + if (addr >= 0) + { + double Result = PlcMath.GetPlcDoubleS7(GetPlcReadDatas(), addr, int.Parse(PlcAddrSetup.S7ReadOffsetAddr), false); + return Result; + } + } + int m_Addr = GetIntFromString(Value[1]); + if (m_Addr == -1) + MyBase.TraceWriteLine("获取Double 类型 PLC读地址出错:名字=" + strName + ", 地址=" + Value[1]); + return -1; + } + else + MyBase.TraceWriteLine("获取Double 类型 PLC读地址:变量名不存在:" + strName); + return -1; + } + #endregion + + + //============================================================================================================= + #region S7协议写入操作 + public static bool S7WriteBool(string Addr, bool data) + { + + try + { + if (ConfigPlc.PlcType == 3) + { + if (HslSiemensS7Obj.bConnected) + { + return HslSiemensS7Obj.WriteBool(Addr, data); + } + } + else + { + + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:地址=" + Addr + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool S7WriteByte(string Addr, byte data) + { + try + { + if (ConfigPlc.PlcType == 3) + { + if (HslSiemensS7Obj.bConnected) + { + bool bWResult= HslSiemensS7Obj.WriteByte(Addr.ToString(), (byte)data); + if (bWResult == false) + { + MyBase.TraceWriteLine("写入PLC失败:地址为:" + Addr + "; 值为:" + data.ToString()); + } + return bWResult; + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:地址=" + Addr + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool S7WriteInt(string StartAddrName, float Value, bool PositiveSequence = true) + { + try + { + if (!string.IsNullOrEmpty((string)StartAddrName)) + { + if (HslSiemensS7Obj.bConnected) + { + return HslSiemensS7Obj.WriteShort((string)StartAddrName, (short)Value); + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:SignalName=" + StartAddrName + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool S7WritePlcValue(string StartAddrName, float Value, bool PositiveSequence = true) + { + try + { + if (HslSiemensS7Obj.bConnected) + { + return HslSiemensS7Obj.WriteFloat(StartAddrName, Value); + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:SignalName=" + StartAddrName + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool S7WritePlcValue(string StartAddrName, double Value, bool PositiveSequence = true) + { + try + { + if (HslSiemensS7Obj.bConnected) + { + return HslSiemensS7Obj.WriteDouble(StartAddrName, Value); + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:SignalName=" + StartAddrName + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool S7WritePlcValue(string StartAddrName, string Value, bool PositiveSequence = true) + { + try + { + if (HslSiemensS7Obj.bConnected) + { + return HslSiemensS7Obj.WriteString(StartAddrName, Value); + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:SignalName=" + StartAddrName + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool S7WritePlcValue(string StartAddrName, string Value, int length, bool PositiveSequence = true) + { + try + { + if (HslSiemensS7Obj.bConnected) + { + return HslSiemensS7Obj.WriteString(StartAddrName, Value, length); + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("写PLC参数出错:SignalName=" + StartAddrName + "\r\n ex=" + ex.ToString()); + } + return false; + } + #endregion + + //============================================================================================================= + public static bool PlcReadBuffer(int StartAddr, int Length) + { + try + { + if (ConfigPlc.PlcType == 1) + { + HslModbusTcpObj.ReadDatas(StartAddr.ToString(), (ushort)Length); + } + else if (ConfigPlc.PlcType == 3) + { + HslSiemensS7Obj.ReadDatas(StartAddr.ToString(), (ushort)Length); + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("读PLC数据出错:StartAddr=" + PlcAddrSetup.StartAddr + ",长度=" + PlcAddrSetup.Length + "\r\n ex=" + ex.ToString()); + } + return false; + } + + public static bool IsPlcConnected() + { + if (ConfigPlc.PlcType == 1) + { + return HslModbusTcpObj.GetConnectStatus(); + } + else if (ConfigPlc.PlcType == 3) + { + return HslSiemensS7Obj.GetConnectStatus(); + } + else + { + return false; + } + } + + public static bool ConnectPlc(bool bShowTip = true) + { + if (ConfigPlc.PlcType == 1) + { + if (HslModbusTcpObj.ConnectPlc(ConfigPlc.strIP, Convert.ToUInt16(ConfigPlc.strPort), ConfigPlc.strMac, bShowTip)) + { + MyBase.TraceWriteLine("PLC Modbus TCP连接成功。"); + return true; + } + else + { + MyBase.TraceWriteLine("PLC Modbus TCP 连接失败"); + } + } + else if (ConfigPlc.PlcType == 3) + { + if (HslSiemensS7Obj.ConnectPlc(SiemensPLCS.S1200, ConfigPlc.strIP)) + { + MyBase.TraceWriteLine("PLC S7连接成功。"); + return true; + } + else + { + MyBase.TraceWriteLine("PLC S7连接失败。"); + } + } + else + { + MyBase.TraceWriteLine("PLC Type is not existed! Type=" + ConfigPlc.PlcType.ToString()); + } + return false; + } + + public static void ClosePlc() + { + if (ConfigPlc.PlcType == 1) + { + HslModbusTcpObj.ClosePlc(); + } + else if (ConfigPlc.PlcType == 3) + { + HslSiemensS7Obj.ClosePlc(); + } + } + + //============================================================================================================= + public static void InsertWriteQueue(string strAddrName, object Value) + { + PlcWriteObj m_DataObj = new PlcWriteObj(); + m_DataObj.WriteAddr = GetAddr_W(strAddrName); + m_DataObj.WriteValue = Value; + PlcWriteManager.Instance.InsertQueue(m_DataObj); + } + public static void InsertWriteQueue(string strAddrName, object Value, int iLength) + { + PlcWriteObj m_DataObj = new PlcWriteObj(); + m_DataObj.WriteAddr = GetAddr_W(strAddrName); + m_DataObj.WriteValue = Value; + m_DataObj.WriteLength = iLength; + PlcWriteManager.Instance.InsertQueue(m_DataObj); + } + public static int GetWriteStringLength(string strName) + { + if (m_FormPlcAddr.DictPlcAddr_Write.ContainsKey(strName)) + { + string[] Value = m_FormPlcAddr.DictPlcAddr_Write[strName]; + if (Value[0] == SignalTypeDfn.String) + { + int addr = GetIntFromString(Value[1]); + int Length = GetIntFromString(Value[2]); + if (addr >= 0 && Length >= 0) + { + return Length; + } + else + { + return -1; + } + } + else + { + return -2; + } + } + else + { + return -3; + } + } + + public static void InsertWriteQueue(object Addr, object Value) + { + PlcWriteObj m_DataObj = new PlcWriteObj(); + m_DataObj.WriteAddr = Addr; + m_DataObj.WriteValue = Value; + PlcWriteManager.Instance.InsertQueue(m_DataObj); + } + + public static void WriteIntoPLC() + { + try + { + if (PlcWriteManager.Instance.isExitData()) + { + if (IsPlcConnected()) + { + PlcWriteObj m_Data = PlcWriteManager.Instance.OutQueue(); + + if (ConfigPlc.PlcType == 1 || ConfigPlc.PlcType == 2) + { + if (m_Data != null) + { + string strType = m_Data.WriteValue.GetType().Name; + string strValue = m_Data.WriteValue.ToString(); + switch (strType.ToLower()) + { + case "byte": + case "int": + case "int32": + case "int16": + case "uint": + case "uint16": + case "uint32": + PlcWriteInt((int)m_Data.WriteAddr, Int32.Parse(strValue)); break; + case "float": + WritePlcValue(Convert.ToUInt16(m_Data.WriteAddr), (float)m_Data.WriteValue); break; + case "double": + WritePlcValue(Convert.ToUInt16(m_Data.WriteAddr), (double)m_Data.WriteValue); break; + case "string": + int iLen = m_Data.WriteLength; + WritePlcValue(Convert.ToUInt16(m_Data.WriteAddr), m_Data.WriteValue.ToString(), iLen); + break; + default: + break; + } + if ((int)m_Data.WriteAddr < 0) + { + System.Windows.Forms.MessageBox.Show("PLC地址格式错误,地址小于0"); + } + } + } + if (ConfigPlc.PlcType == 3) + { + if (m_Data != null) + { + string strType = m_Data.WriteValue.GetType().Name; + string strValue = m_Data.WriteValue.ToString(); + string strWriteAddr = PLCModule.PlcAddrSetup.GetS7WriteAddr((string)(m_Data.WriteAddr)); + switch (strType.ToLower()) + { + case "bool": + case "boolean": + S7WriteBool(strWriteAddr, bool.Parse(strValue)); break; + case "byte": + S7WriteByte(strWriteAddr, byte.Parse(strValue)); break; + case "int": + case "int16": + case "uint": + case "uint16": + case "int32": + case "uint32": + S7WriteInt(strWriteAddr, Int32.Parse(strValue)); break; + case "single": + case "float": + S7WritePlcValue(strWriteAddr, (float)m_Data.WriteValue); break; + case "double": + S7WritePlcValue(strWriteAddr, (double)m_Data.WriteValue); break; + case "string": + int iLen = m_Data.WriteLength; + S7WritePlcValue(strWriteAddr, (string)m_Data.WriteValue, iLen); break; + default: + break; + } + if (string.IsNullOrEmpty(strWriteAddr)) + { + System.Windows.Forms.MessageBox.Show("PLC地址格式错误,地址小于0"); + } + } + } + } + System.Threading.Thread.Sleep(5); + } + else + { + System.Threading.Thread.Sleep(100); + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine(ex.ToString()); + } + } + + static System.Threading.Thread m_ThreadWritePLC = null; + public static bool bStartPlcThread = false; + public static void InitWritePlcThread() + { + bStartPlcThread = true; + m_ThreadWritePLC = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadWritePLC)); + if (!m_ThreadWritePLC.IsAlive) + { + m_ThreadWritePLC.IsBackground = true; + m_ThreadWritePLC.Start(); + MyBase.TraceWriteLine("启动PLC写线程!"); + } + } + + static void ThreadWritePLC() + { + while (bStartPlcThread) + { + WriteIntoPLC(); + } + } + + public static bool bWritePlcThreadStatus + { + get + { + return m_ThreadWritePLC.IsAlive && bStartPlcThread; + } + } + } + + class SignalTypeDfn + { + public const string Bool = "bool"; + public const string Byte = "byte"; + public const string Word = "word"; + public const string DWord = "dword"; + public const string Single = "single"; + public const string String = "string"; + public const string Double = "double"; + } +} diff --git a/Analysis/BaseUnit/PlcSignalDfn.cs b/Analysis/BaseUnit/PlcSignalDfn.cs new file mode 100644 index 0000000..cecce79 --- /dev/null +++ b/Analysis/BaseUnit/PlcSignalDfn.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BaseFunction; + +namespace NSAnalysis +{ + internal class PlcSignalDfn + { + //=========================Write to PLC ================================= + public const string SoftLive = "SoftLive"; //10; + + public const string CMMStatus = "CMMStatus"; //50; //10空闲,20忙碌 + public const string CmmError = "CmmError"; //52; //10报警, 0清除 + public const string CMMResult = "CMMResult"; //56; //10=OK, 20=NG + public const string CMMResultClear = "CMMResultClear"; //56; //10=OK, 20=NG + public const string CMMForceUnload = "CMMForceUnload"; // + public const string CMMResultKField = "CMMResultKField"; //57; //10=OK, 20=NG + + public const string CMMResultBits = "CMMResultBits"; //56; //10=OK, 20=NG + public const string CMMResultDatas = "CMMResultDatas"; //58; + + public const string Year = "Year"; //91 + public const string Mouth = "Mouth"; //92 + public const string Day = "Day"; //93 + public const string Hour = "Hour"; //94 + public const string Minute = "Minute"; //95 + public const string Second = "Second"; //96 + public const string Week = "Week"; //97 + + public const string CoordX = "CoordX"; //11-12 //坐标float,4字节,32位 + public const string CoordY = "CoordY"; //13-14 + public const string CoordZ = "CoordZ"; //15-16 + + public const string WCarType = "WCarType"; + public const string WCarColor = "WCarColor"; + public const string UnloadTray = "UnloadTray"; + public const string CancelUnloadTray = "CancelUnloadTray"; + public const string RFIDResult = "RFIDResult"; + public const string daoguienter = "daoguienter"; + public const string MeasureError = "MeasureError"; //10 :报警 + + //========================Read PLC Address================================== + public const string StartAddr = "StartAddr"; //100; + + public const string PlcLive = "PlcLive"; //110; + public const string StartCmd = "StartCmd"; //131; + public const string CmmHome = "CmmHome"; //132; + public const string CmmPartOk = "CmmPartOk"; //133; + public const string PlcMode = "PlcMode"; //151; + public const string PlcAutoRunning = "PlcAutoRunning"; + + public const string PartID = "PartID"; + public const string MachineID = "MachineID"; + public const string ProgramCode = "ProgramCode"; + public const string CarType = "CarType"; + public const string NSStartMeasure = "NSStartMeasure"; + public const string ReadVINFinishFlag = "ReadVINFinishFlag"; + public const string LeaveFirstFlag = "LeaveFirstFlag"; + public const string LeaveSecondFlag = "LeaveSecondFlag"; + public const string CarPassFlag = "CarPassFlag"; + + public const string Speed1 = "Speed1"; + public const string Speed2 = "Speed2"; + public const string R01_Pules = "R01_Pules"; + public const string R02_Pules = "R02_Pules"; + } +} \ No newline at end of file diff --git a/Analysis/BaseUnit/PlcWriteManager.cs b/Analysis/BaseUnit/PlcWriteManager.cs new file mode 100644 index 0000000..ff1f86f --- /dev/null +++ b/Analysis/BaseUnit/PlcWriteManager.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NSAnalysis +{ + public class PlcWriteObj + { + public object WriteAddr; + public object WriteValue; + public int WriteLength; //长度,主要针对字符串 + /// + /// 0=int, 1= float, 2=double, 3=string + /// + public int DataType = 0; + + public PlcWriteObj() + { + WriteAddr = null; + WriteValue = null; + WriteLength = -1; + } + } + + public class PlcWriteManager + { + private List LstPLcWrite = new List(); + private static readonly object sync = new object(); + private static PlcWriteManager _this = null; + public static PlcWriteManager Instance + { + get + { + if (_this == null) + { + lock (sync) + { + if (_this == null) + { + _this = new PlcWriteManager(); + } + } + } + return _this; + } + } + + public PlcWriteManager() + { + + } + + public PlcWriteObj OutQueue() + { + try + { + PlcWriteObj ccmdObj = null; + lock (this) + { + if (LstPLcWrite != null && LstPLcWrite.Count > 0) + { + ccmdObj = new PlcWriteObj(); + ccmdObj = LstPLcWrite[0]; + LstPLcWrite.RemoveAt(0); + } + } + return ccmdObj; + } + catch + { + throw; + } + } + + public void RemoveQueueTop() + { + if (LstPLcWrite != null && LstPLcWrite.Count > 0) + { + LstPLcWrite.RemoveAt(0); + } + } + + public void InsertQueue(PlcWriteObj data) + { + lock (this) + { + LstPLcWrite.Add(data); + } + } + + public bool isExitData() + { + lock (this) + { + return LstPLcWrite.Count > 0; + } + } + + public static void WritePlc(object Addr, object Value, int DataType) + { + PlcWriteObj m_DataObj = new PlcWriteObj(); + m_DataObj.WriteAddr = Addr; + m_DataObj.WriteValue = Value; + m_DataObj.DataType = DataType; + Instance.InsertQueue(m_DataObj); + } + } +} diff --git a/Analysis/BaseUnit/RichTextUnit.cs b/Analysis/BaseUnit/RichTextUnit.cs new file mode 100644 index 0000000..c922a82 --- /dev/null +++ b/Analysis/BaseUnit/RichTextUnit.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Drawing; +using System.Windows.Forms; + +namespace BaseFunction +{ + public class RichTextUnit + { + public static float m_Size = 16; + public static void SetFont(RichTextBox m_RichTextBox, Color m_Color, bool bBold = false, float Size = 16) + { + m_RichTextBox.SelectionColor = m_Color; + if (bBold) + m_RichTextBox.SelectionFont = new System.Drawing.Font("微软雅黑", Size, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); + else + m_RichTextBox.SelectionFont = new System.Drawing.Font("微软雅黑", Size, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); + } + + public static void SetText(RichTextBox m_RichTextBox, string strText, Color m_Color, bool bBold = false, float Size = 16) + { + m_RichTextBox.Invoke(((EventHandler)delegate + { + RichTextUnit.SetFont(m_RichTextBox, m_Color, bBold, Size); + m_RichTextBox.SelectedText = strText; + })); + } + + public static void SetXmlText(RichTextBox m_RichTextBox, string strText, float Size = 16) + { + m_RichTextBox.Invoke(((EventHandler)delegate + { + int iFirstInx = strText.IndexOf(""); + + #region PARSE THROUGH TEXT DATA + for (int i = 0; i < strText.Length; i++) + { + if (i >= iFirstInx && i <= iSecondInx + 1) + { + RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + } + else + { + switch (strText[i]) + { + case '<': + { + RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + if (strText[i + 1] == '/') + { + m_RichTextBox.SelectedText = strText[i + 1].ToString(); + i++; + } + RichTextUnit.SetFont(m_RichTextBox, Color.DarkRed, false, Size); + } + break; + case '>': + { + RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + RichTextUnit.SetFont(m_RichTextBox, Color.Black, false, Size); + } + break; + case '/': + { + RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + } + break; + case '=': + { + if (strText[i + 1] == '"') + { + RichTextUnit.SetFont(m_RichTextBox, Color.Black, true, Size); + m_RichTextBox.SelectedText = "=" + '"'.ToString(); + i++; + } + } + break; + case '"': + { + RichTextUnit.SetFont(m_RichTextBox, Color.Blue, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + if (strText[i - 1] == '=') + RichTextUnit.SetFont(m_RichTextBox, Color.Black, true, Size); + else + RichTextUnit.SetFont(m_RichTextBox, Color.DarkRed, false, Size); + } + break; + case '!': + { + RichTextUnit.SetFont(m_RichTextBox, Color.Green, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + } + break; + case '\r': + { + if (strText[i + 1] == '\n') + { + m_RichTextBox.SelectedText = "\r\n"; + i++; + } + } + break; + default: + m_RichTextBox.SelectedText = strText[i].ToString(); + break; + } + } + } + #endregion + + m_RichTextBox.SelectedText = Environment.NewLine; + })); + } + + public static void SetCNCText(RichTextBox m_RichTextBox, string strText, float Size = 16) + { + m_RichTextBox.Invoke(((EventHandler)delegate + { + #region PARSE THROUGH TEXT DATA + for (int i = 0; i < strText.Length; i++) + { + switch (strText[i]) + { + case '%': + RichTextUnit.SetFont(m_RichTextBox, Color.Red, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + RichTextUnit.SetFont(m_RichTextBox, Color.DeepSkyBlue, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + break; + default: + RichTextUnit.SetFont(m_RichTextBox, Color.White, false, Size); + m_RichTextBox.SelectedText = strText[i].ToString(); + break; + } + } + #endregion + })); + } + } +} diff --git a/Analysis/CarDataDisplayForm/FEH3LeftCarData.cs b/Analysis/CarDataDisplayForm/FEH3LeftCarData.cs new file mode 100644 index 0000000..3eae46d --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEH3LeftCarData.cs @@ -0,0 +1,319 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using UserControlClass; +using BaseFunction; +using DAL; + +namespace NSAnalysis +{ + public partial class FEH3LeftCarData : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private DataTable dtVINData = new DataTable(); + private string strLastVIN = ""; + CenterControl gCC = null; + #endregion 全局变量 + + public FEH3LeftCarData(CenterControl cc) + { + InitializeComponent(); + gCC = cc; + } + + /// + /// 指定屏幕显示 + /// + public void SpecifyScreenDisplay1() + { + try + { + Screen[] screens = Screen.AllScreens; + // 指定显示在第二个显示器 + Screen secondScreen = screens[1]; //1 + + // 设置窗体位置和大小 + this.StartPosition = FormStartPosition.Manual; + this.Left = secondScreen.WorkingArea.Left; + this.Top = secondScreen.WorkingArea.Top; + this.Width = secondScreen.WorkingArea.Width; + this.Height = secondScreen.WorkingArea.Height; + this.Show(); + } + catch { } + } + #region 初始化控件 + + + private void InitNextSenseControl() + { + string strNSName = ""; + UCVWNextSense ucns = null; + for (int i = 1; i <= 30; i++) + { + strNSName = "";//L0" + i.ToString(); + if(i<=9) + strNSName = "L0" + i.ToString(); + else + { + strNSName = "L" + i.ToString(); + } + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if(ucns != null) + { + ucns.tlpBackColor = Color.White; + ucns.tlpFBackColor = Color.White; + ucns.tlpGBackColor = Color.White; + ucns.labFVal = ""; + ucns.labFLowerUpper = ""; + ucns.labGVal = ""; + ucns.labGLowerUpper = ""; + } + } + } + + #endregion 初始化控件 + + private void FEH3LeftCarData_Load(object sender, EventArgs e) + { + //InitNextSenseOneItemControl(); + InitNextSenseControl(); + labVIN.Text = ""; + tmrRefreshData.Interval = 1000; + tmrRefreshData.Start(); + SpecifyScreenDisplay1(); + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + SpecifyScreenDisplay1(); + string strVIN = tmdal.SelectMaintenanceStation7VIN(); + if (strVIN.ToLower().Contains("empty")) + { + labVIN.Text = "VIN码为空"; + InitNextSenseControl(); + } + else + { + if (strVIN.Length==17) + { + string strSubVIN = strVIN;// strVIN.Substring(0, strVIN.Length - 2); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = tmdal.SelectCarTypeByVIN(strSubVIN); + MyBase.TraceWriteLine("Left EH3 UI Refresh Button (strVIN.Length==17):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EH3")) + { + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "L"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + } + } + if (strVIN.Length == 21) + { + string strSubVIN = strVIN.Substring(0, 17); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = strVIN.Substring(18, 3); + MyBase.TraceWriteLine("Left EH3 UI Refresh Button (strVIN.Length==21):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EH3")) + { + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "L"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + } + } + } + } + + private void tmrRefreshData_Tick(object sender, EventArgs e) + { + tmrRefreshData.Stop(); + string strVIN = tmdal.SelectMaintenanceStation7VIN(); + if (strLastVIN != strVIN) + { + if (strVIN.ToLower().Contains("empty")) + { + labVIN.Text = "VIN码为空"; + //InitNextSenseOneItemControl(); + InitNextSenseControl(); + } + else + { + if (strVIN.Length==17) + { + string strSubVIN = strVIN; + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = tmdal.SelectCarTypeByVIN(strSubVIN); + MyBase.TraceWriteLine("Left EH3 UI Refresh tmrRefreshData (strVIN.Length==17):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EH3")) + { + SpecifyScreenDisplay1(); + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "L"); + if (dtVINData.Rows.Count>0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + gCC.ShowCarMeasureDataByCarType(1); + } + } + if (strVIN.Length == 21) + { + string strSubVIN = strVIN.Substring(0,17); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = strVIN.Substring(18, 3); + MyBase.TraceWriteLine("Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EH3")) + { + SpecifyScreenDisplay1(); + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "L"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + gCC.ShowCarMeasureDataByCarType(1); + } + } + } + } + strLastVIN = strVIN; + tmrRefreshData.Start(); + } + + private Color analysisColorbyStatus(string strStatus) + { + Color colStatus = new Color(); + switch (strStatus.ToLower()) + { + case "best": + colStatus = Color.Lime; + break; + + case "good": + colStatus = Color.Lime; + break; + + case "ng1": + colStatus = Color.Yellow; + break; + + case "ng2": + colStatus = Color.Red; + break; + + + default: + colStatus = Color.LightGray; + break; + } + return colStatus; + } + + private void analysisTitleColor() + { + string strNSName = ""; + UCVWNextSense ucns = null; + for (int i = 1; i <= 25; i++) + { + if (i <= 9) + strNSName = "L0" + i.ToString(); + else + { + strNSName = "L" + i.ToString(); + } + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + if (ucns.tlpFBackColor == Color.Red || ucns.tlpGBackColor == Color.Red) + { + ucns.tlpBackColor = Color.Red; + } + else if (ucns.tlpFBackColor == Color.LightGray && ucns.tlpGBackColor == Color.LightGray) + { + ucns.tlpBackColor = Color.LightGray; + } + else if (ucns.tlpFBackColor == Color.Yellow && ucns.tlpGBackColor == Color.Yellow) + { + ucns.tlpBackColor = Color.Yellow; + } + else + { + ucns.tlpBackColor = Color.Lime; + } + } + } + } + + private void refreshCarUIData(DataTable dtData) + { + string strNSName = ""; + string strFGName = ""; + UCVWNextSense ucns = null; + for (int i = 0; i < dtData.Rows.Count; i++) + { + strNSName = dtData.Rows[i]["MeasPointName"].ToString().Replace("-", ""); + strFGName = dtData.Rows[i]["DimensionName"].ToString(); + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + if (strFGName == "F") + { + ucns.labFVal = dtData.Rows[i]["MeasureValue"].ToString() ; + ucns.labFLowerUpper = dtData.Rows[i]["LowerTolVal"].ToString() + "/" + dtData.Rows[i]["UpperTolVal"].ToString(); + ucns.tlpFBackColor = analysisColorbyStatus(dtData.Rows[i]["MeasureItemResult"].ToString()); + } + else + { + ucns.labGVal = dtData.Rows[i]["MeasureValue"].ToString(); + ucns.labGLowerUpper = dtData.Rows[i]["LowerTolVal"].ToString() + "/" + dtData.Rows[i]["UpperTolVal"].ToString(); + ucns.tlpGBackColor = analysisColorbyStatus(dtData.Rows[i]["MeasureItemResult"].ToString()); + } + } + } + } + + private void FEH3LeftCarData_FormClosing(object sender, FormClosingEventArgs e) + { + e.Cancel = true; + this.Hide(); + } + } +} \ No newline at end of file diff --git a/Analysis/CarDataDisplayForm/FEH3LeftCarData.designer.cs b/Analysis/CarDataDisplayForm/FEH3LeftCarData.designer.cs new file mode 100644 index 0000000..393f056 --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEH3LeftCarData.designer.cs @@ -0,0 +1,562 @@ +namespace NSAnalysis +{ + partial class FEH3LeftCarData + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FEH3LeftCarData)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.labVIN = new System.Windows.Forms.Label(); + this.tmrRefreshData = new System.Windows.Forms.Timer(this.components); + this.L10 = new UserControlClass.UCVWNextSense(); + this.L03 = new UserControlClass.UCVWNextSense(); + this.L06 = new UserControlClass.UCVWNextSense(); + this.L04 = new UserControlClass.UCVWNextSense(); + this.L02 = new UserControlClass.UCVWNextSense(); + this.L13 = new UserControlClass.UCVWNextSense(); + this.L01 = new UserControlClass.UCVWNextSense(); + this.L08 = new UserControlClass.UCVWNextSense(); + this.L12 = new UserControlClass.UCVWNextSense(); + this.L21 = new UserControlClass.UCVWNextSense(); + this.L15 = new UserControlClass.UCVWNextSense(); + this.L18 = new UserControlClass.UCVWNextSense(); + this.L16 = new UserControlClass.UCVWNextSense(); + this.L22 = new UserControlClass.UCVWNextSense(); + this.L14 = new UserControlClass.UCVWNextSense(); + this.btnRefresh = new System.Windows.Forms.Button(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.pbLeftCar = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLeftCar)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(1918, 37); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "左侧车身测量数据"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "左侧车身测量数据"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(875, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(20, 14, 20, 14); + this.label2.Size = new System.Drawing.Size(40, 50); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(911, 7); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(164, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "左侧车身测量数据"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 58F); + this.label3.Location = new System.Drawing.Point(476, 970); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(253, 104); + this.label3.TabIndex = 37; + this.label3.Text = "VIN:"; + // + // labVIN + // + this.labVIN.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labVIN.AutoSize = true; + this.labVIN.Font = new System.Drawing.Font("Segoe UI", 58F); + this.labVIN.Location = new System.Drawing.Point(735, 970); + this.labVIN.Name = "labVIN"; + this.labVIN.Size = new System.Drawing.Size(838, 104); + this.labVIN.TabIndex = 36; + this.labVIN.Text = "LNNACDEBXRDA20251"; + // + // tmrRefreshData + // + this.tmrRefreshData.Interval = 1000; + this.tmrRefreshData.Tick += new System.EventHandler(this.tmrRefreshData_Tick); + // + // L10 + // + this.L10.BackColor = System.Drawing.Color.White; + this.L10.ForeColor = System.Drawing.Color.Black; + this.L10.labFLowerUpper = "-2.0/2.0"; + this.L10.labFText = "F"; + this.L10.labFVal = "0.3"; + this.L10.labGLowerUpper = "1.0/6.0"; + this.L10.labGText = "G"; + this.L10.labGVal = "3.7"; + this.L10.labTitleText = "L-10"; + this.L10.Location = new System.Drawing.Point(794, 787); + this.L10.Name = "L10"; + this.L10.Size = new System.Drawing.Size(220, 145); + this.L10.TabIndex = 38; + this.L10.tlpBackColor = System.Drawing.Color.Lime; + this.L10.tlpFBackColor = System.Drawing.Color.Lime; + this.L10.tlpGBackColor = System.Drawing.Color.Lime; + this.L10.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L03 + // + this.L03.BackColor = System.Drawing.Color.White; + this.L03.ForeColor = System.Drawing.Color.Black; + this.L03.labFLowerUpper = "-3.0/2.0"; + this.L03.labFText = "F"; + this.L03.labFVal = "-0.6"; + this.L03.labGLowerUpper = "1.0/6.0"; + this.L03.labGText = "G"; + this.L03.labGVal = "3.9"; + this.L03.labTitleText = "L-03"; + this.L03.Location = new System.Drawing.Point(303, 91); + this.L03.Name = "L03"; + this.L03.Size = new System.Drawing.Size(220, 145); + this.L03.TabIndex = 40; + this.L03.tlpBackColor = System.Drawing.Color.Lime; + this.L03.tlpFBackColor = System.Drawing.Color.Yellow; + this.L03.tlpGBackColor = System.Drawing.Color.Lime; + this.L03.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L06 + // + this.L06.BackColor = System.Drawing.Color.White; + this.L06.ForeColor = System.Drawing.Color.Black; + this.L06.labFLowerUpper = "-2.0/2.0"; + this.L06.labFText = "F"; + this.L06.labFVal = "-0.1"; + this.L06.labGLowerUpper = "1.0/6.0"; + this.L06.labGText = "G"; + this.L06.labGVal = "3.4"; + this.L06.labTitleText = "L-06"; + this.L06.Location = new System.Drawing.Point(519, 787); + this.L06.Name = "L06"; + this.L06.Size = new System.Drawing.Size(220, 145); + this.L06.TabIndex = 42; + this.L06.tlpBackColor = System.Drawing.Color.Lime; + this.L06.tlpFBackColor = System.Drawing.Color.Lime; + this.L06.tlpGBackColor = System.Drawing.Color.Lime; + this.L06.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L04 + // + this.L04.BackColor = System.Drawing.Color.White; + this.L04.ForeColor = System.Drawing.Color.Black; + this.L04.labFLowerUpper = "-1.0/2.0"; + this.L04.labFText = "F"; + this.L04.labFVal = "-0.1mm"; + this.L04.labGLowerUpper = "1.0/6.0"; + this.L04.labGText = "G"; + this.L04.labGVal = "3.1mm"; + this.L04.labTitleText = "L-04"; + this.L04.Location = new System.Drawing.Point(551, 91); + this.L04.Name = "L04"; + this.L04.Size = new System.Drawing.Size(220, 145); + this.L04.TabIndex = 43; + this.L04.tlpBackColor = System.Drawing.Color.Lime; + this.L04.tlpFBackColor = System.Drawing.Color.Lime; + this.L04.tlpGBackColor = System.Drawing.Color.Lime; + this.L04.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L02 + // + this.L02.BackColor = System.Drawing.Color.White; + this.L02.ForeColor = System.Drawing.Color.Black; + this.L02.labFLowerUpper = "-3.0/2.0"; + this.L02.labFText = "F"; + this.L02.labFVal = "-0.2"; + this.L02.labGLowerUpper = "1.0/6.0"; + this.L02.labGText = "G"; + this.L02.labGVal = "4.4"; + this.L02.labTitleText = "L-02"; + this.L02.Location = new System.Drawing.Point(29, 91); + this.L02.Name = "L02"; + this.L02.Size = new System.Drawing.Size(220, 145); + this.L02.TabIndex = 44; + this.L02.tlpBackColor = System.Drawing.Color.Lime; + this.L02.tlpFBackColor = System.Drawing.Color.Lime; + this.L02.tlpGBackColor = System.Drawing.Color.Lime; + this.L02.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L13 + // + this.L13.BackColor = System.Drawing.Color.White; + this.L13.ForeColor = System.Drawing.Color.Black; + this.L13.labFLowerUpper = "-1.5/1.5"; + this.L13.labFText = "F"; + this.L13.labFVal = "0.6"; + this.L13.labGLowerUpper = "2.2/4.2"; + this.L13.labGText = "G"; + this.L13.labGVal = "4.3"; + this.L13.labTitleText = "L-13"; + this.L13.Location = new System.Drawing.Point(1068, 787); + this.L13.Name = "L13"; + this.L13.Size = new System.Drawing.Size(220, 145); + this.L13.TabIndex = 45; + this.L13.tlpBackColor = System.Drawing.Color.Red; + this.L13.tlpFBackColor = System.Drawing.Color.Lime; + this.L13.tlpGBackColor = System.Drawing.Color.Red; + this.L13.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L01 + // + this.L01.BackColor = System.Drawing.Color.White; + this.L01.ForeColor = System.Drawing.Color.Black; + this.L01.labFLowerUpper = "-3.0/2.0"; + this.L01.labFText = "F"; + this.L01.labFVal = "0.7"; + this.L01.labGLowerUpper = "1.0/5.0"; + this.L01.labGText = "G"; + this.L01.labGVal = "4.1"; + this.L01.labTitleText = "L-01"; + this.L01.Location = new System.Drawing.Point(219, 787); + this.L01.Name = "L01"; + this.L01.Size = new System.Drawing.Size(220, 145); + this.L01.TabIndex = 46; + this.L01.tlpBackColor = System.Drawing.Color.Lime; + this.L01.tlpFBackColor = System.Drawing.Color.Lime; + this.L01.tlpGBackColor = System.Drawing.Color.Lime; + this.L01.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L08 + // + this.L08.BackColor = System.Drawing.Color.White; + this.L08.ForeColor = System.Drawing.Color.Black; + this.L08.labFLowerUpper = "-2.0/2.0"; + this.L08.labFText = "F"; + this.L08.labFVal = "0.3mm"; + this.L08.labGLowerUpper = "1.0/6.0"; + this.L08.labGText = "G"; + this.L08.labGVal = "3.1mm"; + this.L08.labTitleText = "L-08"; + this.L08.Location = new System.Drawing.Point(793, 86); + this.L08.Name = "L08"; + this.L08.Size = new System.Drawing.Size(220, 145); + this.L08.TabIndex = 48; + this.L08.tlpBackColor = System.Drawing.Color.Lime; + this.L08.tlpFBackColor = System.Drawing.Color.Lime; + this.L08.tlpGBackColor = System.Drawing.Color.Lime; + this.L08.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L12 + // + this.L12.BackColor = System.Drawing.Color.White; + this.L12.ForeColor = System.Drawing.Color.Black; + this.L12.labFLowerUpper = "-2.0/2.0"; + this.L12.labFText = "F"; + this.L12.labFVal = "-0.2mm"; + this.L12.labGLowerUpper = "1.0/6.0"; + this.L12.labGText = "G"; + this.L12.labGVal = "3.0mm"; + this.L12.labTitleText = "L-12"; + this.L12.Location = new System.Drawing.Point(1066, 85); + this.L12.Name = "L12"; + this.L12.Size = new System.Drawing.Size(220, 145); + this.L12.TabIndex = 49; + this.L12.tlpBackColor = System.Drawing.Color.Lime; + this.L12.tlpFBackColor = System.Drawing.Color.Lime; + this.L12.tlpGBackColor = System.Drawing.Color.Lime; + this.L12.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L21 + // + this.L21.BackColor = System.Drawing.Color.White; + this.L21.ForeColor = System.Drawing.Color.Black; + this.L21.labFLowerUpper = "-2.0/2.0"; + this.L21.labFText = "F"; + this.L21.labFVal = "-0.2"; + this.L21.labGLowerUpper = "1.0/6.0"; + this.L21.labGText = "G"; + this.L21.labGVal = "6.1"; + this.L21.labTitleText = "L-21"; + this.L21.Location = new System.Drawing.Point(1328, 787); + this.L21.Name = "L21"; + this.L21.Size = new System.Drawing.Size(220, 145); + this.L21.TabIndex = 50; + this.L21.tlpBackColor = System.Drawing.Color.Lime; + this.L21.tlpFBackColor = System.Drawing.Color.Lime; + this.L21.tlpGBackColor = System.Drawing.Color.Lime; + this.L21.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L15 + // + this.L15.BackColor = System.Drawing.Color.White; + this.L15.ForeColor = System.Drawing.Color.Black; + this.L15.labFLowerUpper = "-2.0/2.0"; + this.L15.labFText = "F"; + this.L15.labFVal = "-1.9mm"; + this.L15.labGLowerUpper = "1.0/6.0"; + this.L15.labGText = "G"; + this.L15.labGVal = "2.8mm"; + this.L15.labTitleText = "L-15"; + this.L15.Location = new System.Drawing.Point(1590, 91); + this.L15.Name = "L15"; + this.L15.Size = new System.Drawing.Size(220, 145); + this.L15.TabIndex = 56; + this.L15.tlpBackColor = System.Drawing.Color.Lime; + this.L15.tlpFBackColor = System.Drawing.Color.Lime; + this.L15.tlpGBackColor = System.Drawing.Color.Lime; + this.L15.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L18 + // + this.L18.BackColor = System.Drawing.Color.White; + this.L18.ForeColor = System.Drawing.Color.Black; + this.L18.labFLowerUpper = "0.0/4.0"; + this.L18.labFText = "F"; + this.L18.labFVal = "-2.7"; + this.L18.labGLowerUpper = "1.0/6.0"; + this.L18.labGText = "G"; + this.L18.labGVal = "2.7"; + this.L18.labTitleText = "L-18"; + this.L18.Location = new System.Drawing.Point(1696, 518); + this.L18.Name = "L18"; + this.L18.Size = new System.Drawing.Size(220, 145); + this.L18.TabIndex = 58; + this.L18.tlpBackColor = System.Drawing.Color.Red; + this.L18.tlpFBackColor = System.Drawing.Color.Red; + this.L18.tlpGBackColor = System.Drawing.Color.Lime; + this.L18.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L16 + // + this.L16.BackColor = System.Drawing.Color.White; + this.L16.ForeColor = System.Drawing.Color.Black; + this.L16.labFLowerUpper = "-2.0/2.0"; + this.L16.labFText = "F"; + this.L16.labFVal = "-2.0mm"; + this.L16.labGLowerUpper = "1.0/6.0"; + this.L16.labGText = "G"; + this.L16.labGVal = "2.7mm"; + this.L16.labTitleText = "L-16"; + this.L16.Location = new System.Drawing.Point(1697, 277); + this.L16.Name = "L16"; + this.L16.Size = new System.Drawing.Size(220, 145); + this.L16.TabIndex = 59; + this.L16.tlpBackColor = System.Drawing.Color.Lime; + this.L16.tlpFBackColor = System.Drawing.Color.Lime; + this.L16.tlpGBackColor = System.Drawing.Color.Lime; + this.L16.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L22 + // + this.L22.BackColor = System.Drawing.Color.White; + this.L22.ForeColor = System.Drawing.Color.Black; + this.L22.labFLowerUpper = "-12.0/12.0"; + this.L22.labFText = "F"; + this.L22.labFVal = "-10.0"; + this.L22.labGLowerUpper = "1.0/6.0"; + this.L22.labGText = "G"; + this.L22.labGVal = "6.0"; + this.L22.labTitleText = "L-22"; + this.L22.Location = new System.Drawing.Point(1596, 787); + this.L22.Name = "L22"; + this.L22.Size = new System.Drawing.Size(220, 145); + this.L22.TabIndex = 60; + this.L22.tlpBackColor = System.Drawing.Color.Lime; + this.L22.tlpFBackColor = System.Drawing.Color.Lime; + this.L22.tlpGBackColor = System.Drawing.Color.Lime; + this.L22.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L14 + // + this.L14.BackColor = System.Drawing.Color.White; + this.L14.ForeColor = System.Drawing.Color.Black; + this.L14.labFLowerUpper = "-2.0/2.0"; + this.L14.labFText = "F"; + this.L14.labFVal = "-1.5mm"; + this.L14.labGLowerUpper = "1.0/6.0"; + this.L14.labGText = "G"; + this.L14.labGVal = "3.2mm"; + this.L14.labTitleText = "L-14"; + this.L14.Location = new System.Drawing.Point(1327, 91); + this.L14.Name = "L14"; + this.L14.Size = new System.Drawing.Size(220, 145); + this.L14.TabIndex = 61; + this.L14.tlpBackColor = System.Drawing.Color.Lime; + this.L14.tlpFBackColor = System.Drawing.Color.Lime; + this.L14.tlpGBackColor = System.Drawing.Color.Lime; + this.L14.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // btnRefresh + // + this.btnRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefresh.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.btnRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnRefresh.Font = new System.Drawing.Font("宋体", 3F); + this.btnRefresh.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.btnRefresh.Image = global::NSAnalysis.Properties.Resources.Refresh64; + this.btnRefresh.Location = new System.Drawing.Point(1695, 978); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(86, 92); + this.btnRefresh.TabIndex = 35; + this.btnRefresh.UseVisualStyleBackColor = false; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // pictureBox2 + // + this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.pictureBox2.Image = global::NSAnalysis.Properties.Resources.hexagonlogotransparent; + this.pictureBox2.Location = new System.Drawing.Point(89, 981); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(316, 83); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox2.TabIndex = 34; + this.pictureBox2.TabStop = false; + // + // pbLeftCar + // + this.pbLeftCar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pbLeftCar.Image = ((System.Drawing.Image)(resources.GetObject("pbLeftCar.Image"))); + this.pbLeftCar.Location = new System.Drawing.Point(3, 40); + this.pbLeftCar.Name = "pbLeftCar"; + this.pbLeftCar.Size = new System.Drawing.Size(1916, 925); + this.pbLeftCar.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLeftCar.TabIndex = 1; + this.pbLeftCar.TabStop = false; + // + // FEH3LeftCarData + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(1920, 1080); + this.Controls.Add(this.L14); + this.Controls.Add(this.L22); + this.Controls.Add(this.L16); + this.Controls.Add(this.L18); + this.Controls.Add(this.L15); + this.Controls.Add(this.L21); + this.Controls.Add(this.L12); + this.Controls.Add(this.L08); + this.Controls.Add(this.L01); + this.Controls.Add(this.L13); + this.Controls.Add(this.L03); + this.Controls.Add(this.L02); + this.Controls.Add(this.L04); + this.Controls.Add(this.L06); + this.Controls.Add(this.labVIN); + this.Controls.Add(this.L10); + this.Controls.Add(this.label3); + this.Controls.Add(this.btnRefresh); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.pbLeftCar); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9F); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximumSize = new System.Drawing.Size(1920, 1080); + this.Name = "FEH3LeftCarData"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "左侧车身测量数据"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FEH3LeftCarData_FormClosing); + this.Load += new System.EventHandler(this.FEH3LeftCarData_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLeftCar)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label labVIN; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Timer tmrRefreshData; + private System.Windows.Forms.PictureBox pbLeftCar; + private UserControlClass.UCVWNextSense L10; + private UserControlClass.UCVWNextSense L03; + private UserControlClass.UCVWNextSense L06; + private UserControlClass.UCVWNextSense L04; + private UserControlClass.UCVWNextSense L02; + private UserControlClass.UCVWNextSense L13; + private UserControlClass.UCVWNextSense L01; + private UserControlClass.UCVWNextSense L08; + private UserControlClass.UCVWNextSense L12; + private UserControlClass.UCVWNextSense L21; + private UserControlClass.UCVWNextSense L15; + private UserControlClass.UCVWNextSense L18; + private UserControlClass.UCVWNextSense L16; + private UserControlClass.UCVWNextSense L22; + private UserControlClass.UCVWNextSense L14; + } +} diff --git a/Analysis/CarDataDisplayForm/FEH3LeftCarData.resx b/Analysis/CarDataDisplayForm/FEH3LeftCarData.resx new file mode 100644 index 0000000..8042751 --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEH3LeftCarData.resx @@ -0,0 +1,2307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + 17, 17 + + + + /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYa + HSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgo + KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAKTBOQDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6n2r6D8qNq+g/Knc+tHPrQBDK8EX+taNfrio/tVn/AM9YfzFc + r8Q/+XL/AIF/SuVs7Ke+kK28bFQeXPAFAHqv2q1/56w/mKPtVr/z1h/MV5s+nWlr/wAfV+C3dYRkimeZ + pY+VILqY+pfFAHpn2q1/56w/mKPtVr/z1h/MVx9tp+mw2yzanALZG+6rSZY1DqljZ28X2i3s2uLQ9JIp + On1oA7b7Va/89YfzFH2q1/56w/mK8zD6TL94XMX0bIqRdJS5B/s+9SU9fLc7TQB6P9qtM/6yL8xQLmzz + /rYc/UV5LPBLBL5cyPG/vTHLKcZzQB66bq0BP72L/voULdWhH+ti/MV5hbaVf3EXmQW7EfWpv7C1LqLd + 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 + su05tDMP3srHpjnH4VLc+C4NK1PV/DvjfTxH4fNlFPFr9jEEMUUIUGOQ4PG7H/6qAOj+Dlk+o6v8VbGO + 7uLKSe9jjFxbkCSImI/MpIPIryn4p2seh/EK80m91LWNUuIoIpPtl7fwKzhhkDm2bp9a9X+AWp2Dat8S + 9Zt7gS6R9uWVLoAlWjSMknpzgV5n4k8bRXfjvVfEGkahdWst0BCJbPVIohJEnCZV42I9etAHCWupWVxc + zwJFdK8JAJfUbYK2fQ/Y+a90/Z3sft+jza/HrmtWWnafdyo9g11FJbyFV+ZiEhT2P4V4z4Z8X6rZeIvE + F1HrmqWz3UyM0i6hAhmwCMszREMR6gCvaf2cvEmlxzap4emuQ01/O11CktwtxJMzgmUkooUDgce9AHe/ + 8Lv+HP8A0NFt/wB+Zf8A4ij/AIXf8Of+hotv+/Mv/wARXTf8IT4X/wChe0r/AMBU/wAKP+EJ8L/9C9pX + /gKn+FAHMf8AC7/hz/0NFt/35l/+Iryr9o3WP7Y174Zar4WaC/M87S2Rkyscrbo9uc4IBI9q98/4Qnwv + /wBC9pX/AICp/hXl/wAc/AfiHVtS8H3XgbSrSVdFlaXyGkWGNcFSowSOPlPSgDsvh3qPxEvNRuk8d6No + 2n2KxZgexlLsz5HBy7cYya8I8E3vjWz+MvxFPgLTNL1CdrxhcLfylAi+Y20rhlzzn1r2LwdrHxYuPENr + D4p8OaLZ6O2fOnguNzrwcYG898dqo/CjwTrnh/4o+OtZ1S1SKw1SbfausqsWG8nkA5HB70AeUfHTUPiJ + eWvhlfHmjaLYWY1SMwvYyl2Z/Qgu3GK+m/EGml7N9R0zTbC68QW8J+xyXSD5XxwN3UD6GuE/aE8G614y + 03w5DoFsk8lnqSXMwaVUwgHJ5PNWPib4b8aSa/pfiLwNqmZrJNkuk3M7Jb3HXqAQM89/QUAedLPqsnxu + 8M3Pxet1sbxQV0dNPAe1MhP8bEs2cnp9K+lq8JtfB3jzxx470HXPH1vpuk6foj+bFZ2kvmtM+cgk5IH5 + 9K92oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig + AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig + AooooAKKKKACiiigCOWCKXHmxo+Om4A1F9htf+eEX/fAqwKWgCt9htf+feL/AL4FH2G1/wCfeL/vgVZo + oAq/YLT/AJ9ov++BR9gtP+faL/vgVaooArfYLT/n2h/74FH2G0/594f++RVmjNAFb7Daf8+8P/fIo+w2 + n/PvD/3yKs5ozQBW+w2n/PvD/wB8ij7Da/8APvD/AN8irOaM0AVvsNp/z7w/98ij7Baf8+0P/fIqzmjN + AFb7Baf8+0P/AHyKPsFp/wA+0P8A3yKs5ozQBW+wWn/PtD/3yKPsNp/z7Q/98irOaM0AVfsNp/z7Q/8A + fApfsNp/z7Q/98CrNFAFb7Baf8+0P/fIo+w2n/PtD/3yKs5ozQBW+w2n/PtD/wB8ipFhjRQqIqqOgHGK + looAQADoBR+FLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAmKMUtFABRRRQAUUUUAFFFFABRRRQAUUU + UAFFFFABRRRQAUUUUAFFFFAGe+kadJq8eqPY27alGhiS6MY8xV/uhuuOTWhRRQBUbTbJtQF+9pbtehQg + nMY3hR2z1pmq6Rp2rrAuqWNtdiCQTRCaMP5bjowz0PvV6igCNoo5EZJEUqVKEEdQe30qLT9Ps9Og8mwt + YbaL+5EgUfpVmigApkUUcQIiUIuc4UYFPooACARg8imIixrtjVVX0UYFPooASilooAMVS1bSrDV7X7Nq + lnBeW24N5U8YdcjocGrtFACdKUUUUAFQXNnbXTRNdW8MzQtvjMiBtjYxkZ6Gp6KAK2pWFpqdnJaajbQ3 + VrIMPDMgdG+oPBotLK1tLSK1tbeKG3iGEijUKqj2AqzRQBALO3F59r8iL7Vs2ebtG7b6Z644p13bQ3lt + Lb3UUc0EqlJI5FDK6nggg9RUtFAFOx0ux0+z+yWFnb21rgjyoowq8+wp62Fqv3baEfRB/hVmigCv9itO + 9tB/37H+FKlpbRuHjgiVx0ZUAIqeigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo + oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooozQAUUUUAFFGaM0AFFGaM0AFFGaM0AF + FGaM0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ + AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ + AUUUUAFFFFABRRmigAooooAKKKKACiiigAooooAKKKM0AFFGaM0AFFGaM0AFFGaM0AFFGaM0AFFGaM0A + FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFcLoN/4q1jQ9P1KPUdEgS8t47gRHS5 + W2b1Dbc/aRnGcZwPpQB3VFcrt8Wf9BjQv/BTN/8AJNG3xZ/0GNC/8FM3/wAk0AdVRXK7fFn/AEGNC/8A + BTN/8k0bPFn/AEGNC/8ABTN/8k0AdVRXK7fFn/QY0L/wUzf/ACTRs8Wf9BjQv/BTN/8AJNAHVUVyuzxZ + /wBBjQv/AAUzf/JNGzxZ/wBBjQv/AAUzf/JNAHVUVyuzxZ/0GNC/8FM3/wAk1hXXifU7TWf7Kn8Q6Ml5 + 5kcRH9g3RQPIMopk8/YCewLU0m9kVGLlsrno9Fctt8Wf9BfQv/BTL/8AJNWfBuqXup2+oJqZtnubO8e2 + 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 + v97+goATj0o49KTcP8ijcP8AIoAWik3L/kGjcv8AkGgBcUYpNw/yKNw/yKAFxRik3D/Io3D/ACKAFxRi + k3D/ACKNw/yKAFqaz/18n+6v9ag3D/Iqay5mkPONq9vrQBcooooAKKKKACiiigAooooAq3v3ov8Ae/pU + FWrqJpNmzGVOeT7VD5EvpH/30f8ACgBlFP8As83pH/30f8KPs83pH/30f8KAGUU/7PN6R/8AfR/wo+zz + ekf/AH0f8KAGUU/7PN6R/wDfR/wo+zzekf8A30f8KAGUU/7PN6R/99H/AAo+zzekf/fR/wAKAGUU/wCz + zekf/fR/wo+zzekf/fR/woAjPVP99f5itGqXkTbl3CPqCfmPY/SrtABRRRQAUUUUAFFFFABWb/G/++38 + 60qptbSb2KlMEk80ARUVL9ml9U/Wj7NL6p+tAEVFS/ZpfVP1o+zS+qfrQBFRUv2aX1T9aPs0vqn60ARU + VL9ml9U/Wj7NL6p+tAEVFS/ZpfVP1o+zS+qfrQBFU9n/AK2X6L/Wm/Zpf7yfrUttC0TOWIO7HSmBPRRR + SAKKKKACiiigAooooAz5mCzybiOo/lTPMj/vD8608Um1fQflQBm70/vL+dG9P7y/nWltHoPyo2j0H5UA + Zu9P76fnRvT++n51pbR6D8qNo9B+VAGbvT++n50b0/vp+daW0eg/KjaPQflQBm70/vp+dG9P76fnWltH + oPyo2j0H5UAZu9P76fnRvT++n51pbR6D8qNo9B+VAFK0IM/DKflPQ+4q8OlJge1LQAUUUUAFFFFABRRR + QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABVUW + Y/56y/p/hVqigCt9jH/PWT9P8KPsY/56yfp/hVmigCt9jH/PWT9P8KPsY/56yfp/hVmigCt9jH/PWT9P + 8KPsY/56yfp/hVmigCt9jH/PWT9P8KPsY/56yfp/hVmigCt9jH/PWT9P8KPsY/56yfp/hVmigCt9jH/P + WT9P8KlgiEMe0EnnOTUlFABRRRQAUUUUAFFFFABRRRQAUUUUAMnjEqbSSOQeKh+yr/ff9P8ACrNFAFb7 + Kv8Aff8AT/Cj7Kv99/0/wqzRQBW+yr/ff9P8KPsq/wB9/wBP8Ks0UAVvsq/33/T/AAo+yr/ff9P8Ks0U + AVvsq/33/T/Cj7Kv99/0/wAKs0UAVvsq/wB9/wBP8KPsq/33/T/CrNFAFb7Iv/PST9P8Ks0UUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB + RRRQAUUUUAFFFFABRRRQAUUUUAf/2Q== + + + + 36 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/CarDataDisplayForm/FEH3RightCarData.cs b/Analysis/CarDataDisplayForm/FEH3RightCarData.cs new file mode 100644 index 0000000..0a58d08 --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEH3RightCarData.cs @@ -0,0 +1,323 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using DAL; +using UserControlClass; +using BaseFunction; + +namespace NSAnalysis +{ + public partial class FEH3RightCarData : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private DataTable dtVINData = new DataTable(); + private string strLastVIN = ""; + CenterControl gCC = null; + #endregion 全局变量 + + #region 初始化控件 + + #endregion 初始化控件 + + public FEH3RightCarData(CenterControl cc) + { + InitializeComponent(); + gCC = cc; + } + + /// + /// 指定屏幕显示 + /// + public void SpecifyScreenDisplay1() + { + try + { + Screen[] screens = Screen.AllScreens; + // 指定显示在第二个显示器 + Screen secondScreen = screens[1]; //1 + + // 设置窗体位置和大小 + this.StartPosition = FormStartPosition.Manual; + this.Left = secondScreen.WorkingArea.Left; + this.Top = secondScreen.WorkingArea.Top; + this.Width = secondScreen.WorkingArea.Width; + this.Height = secondScreen.WorkingArea.Height; + this.Show(); + } + catch { } + } + #region 初始化控件 + + + private void InitNextSenseControl() + { + string strNSName = ""; + UCVWNextSense ucns = null; + for (int i = 1; i <= 25; i++) + { + strNSName = "";//L0" + i.ToString(); + if (i <= 9) + strNSName = "R0" + i.ToString(); + else + { + strNSName = "R" + i.ToString(); + } + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + ucns.tlpBackColor = Color.White; + ucns.tlpFBackColor = Color.White; + ucns.tlpGBackColor = Color.White; + ucns.labFVal = ""; + ucns.labFLowerUpper = ""; + ucns.labGVal = ""; + ucns.labGLowerUpper = ""; + } + } + } + + #endregion 初始化控件 + + private void FEH3RightCarData_Load(object sender, EventArgs e) + { + //InitNextSenseOneItemControl(); + InitNextSenseControl(); + labVIN.Text = ""; + tmrRefreshData.Interval = 1100; + tmrRefreshData.Start(); + SpecifyScreenDisplay1(); + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + SpecifyScreenDisplay1(); + string strVIN = tmdal.SelectMaintenanceStation7VIN(); + if (strVIN.ToLower().Contains("empty")) + { + labVIN.Text = "VIN码为空"; + InitNextSenseControl(); + } + else + { + if (strVIN.Length==17) + { + string strSubVIN = strVIN;// strVIN.Substring(0, strVIN.Length - 2); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = tmdal.SelectCarTypeByVIN(strSubVIN); + MyBase.TraceWriteLine("Right EH3 UI Refresh Button (strVIN.Length==17):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EH3")) + { + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "R"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + } + } + if (strVIN.Length == 21) + { + string strSubVIN = strVIN.Substring(0, strVIN.Length - 4); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = strVIN.Substring(strVIN.Length - 3, 3); + MyBase.TraceWriteLine("Right EH3 UI Refresh Button (strVIN.Length==21):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EH3")) + { + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "R"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + } + } + + } + } + + private void tmrRefreshData_Tick(object sender, EventArgs e) + { + tmrRefreshData.Stop(); + string strVIN = tmdal.SelectMaintenanceStation7VIN(); + if (strLastVIN != strVIN) + { + if (strVIN.ToLower().Contains("empty")) + { + labVIN.Text = "VIN码为空"; + //InitNextSenseOneItemControl(); + InitNextSenseControl(); + } + else + { + if (strVIN.Length == 17) + { + string strSubVIN = strVIN;//.Substring(0, strVIN.Length - 2); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = tmdal.SelectCarTypeByVIN(strSubVIN); + MyBase.TraceWriteLine("Right EH3 UI Refresh tmrRefreshData (strVIN.Length==17):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EH3")) + { + SpecifyScreenDisplay1(); + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "R"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + gCC.ShowCarMeasureDataByCarType(1); + } + } + if (strVIN.Length == 21) + { + string strSubVIN = strVIN.Substring(0, 17); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = strVIN.Substring(18, 3); + MyBase.TraceWriteLine("Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EH3")) + { + SpecifyScreenDisplay1(); + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "R"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + gCC.ShowCarMeasureDataByCarType(1); + } + } + } + } + strLastVIN = strVIN; + tmrRefreshData.Start(); + } + + private Color analysisColorbyStatus(string strStatus) + { + Color colStatus = new Color(); + switch (strStatus.ToLower()) + { + case "best": + colStatus = Color.Lime; + break; + + case "good": + colStatus = Color.Lime; + break; + + case "ng1": + colStatus = Color.Yellow; + break; + + case "ng2": + colStatus = Color.Red; + break; + + default: + colStatus = Color.LightGray; + break; + } + return colStatus; + } + + private void analysisTitleColor() + { + string strNSName = ""; + UCVWNextSense ucns = null; + for (int i = 1; i <= 25; i++) + { + if (i <= 9) + strNSName = "R0" + i.ToString(); + else + { + strNSName = "R" + i.ToString(); + } + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + if (ucns.tlpFBackColor == Color.Red || ucns.tlpGBackColor == Color.Red) + { + ucns.tlpBackColor = Color.Red; + } + else if (ucns.tlpFBackColor == Color.LightGray && ucns.tlpGBackColor == Color.LightGray) + { + ucns.tlpBackColor = Color.LightGray; + } + else if (ucns.tlpFBackColor == Color.Yellow && ucns.tlpGBackColor == Color.Yellow) + { + ucns.tlpBackColor = Color.Yellow; + } + else + { + ucns.tlpBackColor = Color.Lime; + } + } + } + } + + private void refreshCarUIData(DataTable dtData) + { + string strNSName = ""; + string strFGName = ""; + UCVWNextSense ucns = null; + for (int i = 0; i < dtData.Rows.Count; i++) + { + strNSName = dtData.Rows[i]["MeasPointName"].ToString().Replace("-", ""); + strFGName = dtData.Rows[i]["DimensionName"].ToString(); + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + if (strFGName == "F") + { + ucns.labFVal = dtData.Rows[i]["MeasureValue"].ToString(); + ucns.labFLowerUpper = dtData.Rows[i]["LowerTolVal"].ToString() + "/" + dtData.Rows[i]["UpperTolVal"].ToString(); + ucns.tlpFBackColor = analysisColorbyStatus(dtData.Rows[i]["MeasureItemResult"].ToString()); + } + else + { + ucns.labGVal = dtData.Rows[i]["MeasureValue"].ToString(); + ucns.labGLowerUpper = dtData.Rows[i]["LowerTolVal"].ToString() + "/" + dtData.Rows[i]["UpperTolVal"].ToString(); + ucns.tlpGBackColor = analysisColorbyStatus(dtData.Rows[i]["MeasureItemResult"].ToString()); + } + } + } + } + + private void FEH3RightCarData_FormClosing(object sender, FormClosingEventArgs e) + { + e.Cancel = true; + this.Hide(); + } + } +} \ No newline at end of file diff --git a/Analysis/CarDataDisplayForm/FEH3RightCarData.designer.cs b/Analysis/CarDataDisplayForm/FEH3RightCarData.designer.cs new file mode 100644 index 0000000..3be3a4f --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEH3RightCarData.designer.cs @@ -0,0 +1,516 @@ +namespace NSAnalysis +{ + partial class FEH3RightCarData + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FEH3RightCarData)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.labTitle = new System.Windows.Forms.Label(); + this.labVIN = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.tmrRefreshData = new System.Windows.Forms.Timer(this.components); + this.R14 = new UserControlClass.UCVWNextSense(); + this.R15 = new UserControlClass.UCVWNextSense(); + this.R16 = new UserControlClass.UCVWNextSense(); + this.R18 = new UserControlClass.UCVWNextSense(); + this.R10 = new UserControlClass.UCVWNextSense(); + this.R08 = new UserControlClass.UCVWNextSense(); + this.R12 = new UserControlClass.UCVWNextSense(); + this.R04 = new UserControlClass.UCVWNextSense(); + this.R02 = new UserControlClass.UCVWNextSense(); + this.R13 = new UserControlClass.UCVWNextSense(); + this.R01 = new UserControlClass.UCVWNextSense(); + this.R03 = new UserControlClass.UCVWNextSense(); + this.R06 = new UserControlClass.UCVWNextSense(); + this.btnRefresh = new System.Windows.Forms.Button(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.pbRightCar = new System.Windows.Forms.PictureBox(); + this.label2 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbRightCar)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(1918, 37); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "右侧车身测量数据"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "右侧车身测量数据"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(911, 7); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(164, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "右侧车身测量数据"; + // + // labVIN + // + this.labVIN.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labVIN.AutoSize = true; + this.labVIN.Font = new System.Drawing.Font("Segoe UI", 58F); + this.labVIN.Location = new System.Drawing.Point(755, 970); + this.labVIN.Name = "labVIN"; + this.labVIN.Size = new System.Drawing.Size(838, 104); + this.labVIN.TabIndex = 32; + this.labVIN.Text = "LNNACDEBXRDA20251"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 58F); + this.label3.Location = new System.Drawing.Point(495, 969); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(253, 104); + this.label3.TabIndex = 33; + this.label3.Text = "VIN:"; + // + // tmrRefreshData + // + this.tmrRefreshData.Interval = 1000; + this.tmrRefreshData.Tick += new System.EventHandler(this.tmrRefreshData_Tick); + // + // R14 + // + this.R14.BackColor = System.Drawing.Color.White; + this.R14.ForeColor = System.Drawing.Color.Black; + this.R14.labFLowerUpper = "-2.0/2.0"; + this.R14.labFText = "F"; + this.R14.labFVal = "-0.7"; + this.R14.labGLowerUpper = "1.0/6.0"; + this.R14.labGText = "G"; + this.R14.labGVal = "3.6"; + this.R14.labTitleText = "R-14"; + this.R14.Location = new System.Drawing.Point(354, 99); + this.R14.Name = "R14"; + this.R14.Size = new System.Drawing.Size(220, 145); + this.R14.TabIndex = 34; + this.R14.tlpBackColor = System.Drawing.Color.Lime; + this.R14.tlpFBackColor = System.Drawing.Color.Lime; + this.R14.tlpGBackColor = System.Drawing.Color.Lime; + this.R14.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R15 + // + this.R15.BackColor = System.Drawing.Color.White; + this.R15.ForeColor = System.Drawing.Color.Black; + this.R15.labFLowerUpper = "-2.0/2.0"; + this.R15.labFText = "F"; + this.R15.labFVal = "-1.4"; + this.R15.labGLowerUpper = "1.0/6.0"; + this.R15.labGText = "G"; + this.R15.labGVal = "4.2"; + this.R15.labTitleText = "R-15"; + this.R15.Location = new System.Drawing.Point(94, 100); + this.R15.Name = "R15"; + this.R15.Size = new System.Drawing.Size(220, 145); + this.R15.TabIndex = 35; + this.R15.tlpBackColor = System.Drawing.Color.Lime; + this.R15.tlpFBackColor = System.Drawing.Color.Lime; + this.R15.tlpGBackColor = System.Drawing.Color.Lime; + this.R15.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R16 + // + this.R16.BackColor = System.Drawing.Color.White; + this.R16.ForeColor = System.Drawing.Color.Black; + this.R16.labFLowerUpper = "-2.0/2.0"; + this.R16.labFText = "F"; + this.R16.labFVal = "-0.9mm"; + this.R16.labGLowerUpper = "1.0/6.0"; + this.R16.labGText = "G"; + this.R16.labGVal = "2.5mm"; + this.R16.labTitleText = "R-16"; + this.R16.Location = new System.Drawing.Point(3, 288); + this.R16.Name = "R16"; + this.R16.Size = new System.Drawing.Size(220, 145); + this.R16.TabIndex = 37; + this.R16.tlpBackColor = System.Drawing.Color.Lime; + this.R16.tlpFBackColor = System.Drawing.Color.Lime; + this.R16.tlpGBackColor = System.Drawing.Color.Lime; + this.R16.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R18 + // + this.R18.BackColor = System.Drawing.Color.White; + this.R18.ForeColor = System.Drawing.Color.Black; + this.R18.labFLowerUpper = "-2.0/2.0"; + this.R18.labFText = "F"; + this.R18.labFVal = "-2.0"; + this.R18.labGLowerUpper = "1.0/6.0"; + this.R18.labGText = "G"; + this.R18.labGVal = "3.8"; + this.R18.labTitleText = "R-18"; + this.R18.Location = new System.Drawing.Point(3, 608); + this.R18.Name = "R18"; + this.R18.Size = new System.Drawing.Size(220, 145); + this.R18.TabIndex = 38; + this.R18.tlpBackColor = System.Drawing.Color.Lime; + this.R18.tlpFBackColor = System.Drawing.Color.Lime; + this.R18.tlpGBackColor = System.Drawing.Color.Lime; + this.R18.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R10 + // + this.R10.BackColor = System.Drawing.Color.White; + this.R10.ForeColor = System.Drawing.Color.Black; + this.R10.labFLowerUpper = "-2.0/2.0"; + this.R10.labFText = "F"; + this.R10.labFVal = "0.2"; + this.R10.labGLowerUpper = "1.0/6.0"; + this.R10.labGText = "G"; + this.R10.labGVal = "2.9"; + this.R10.labTitleText = "R-10"; + this.R10.Location = new System.Drawing.Point(752, 795); + this.R10.Name = "R10"; + this.R10.Size = new System.Drawing.Size(220, 145); + this.R10.TabIndex = 42; + this.R10.tlpBackColor = System.Drawing.Color.Lime; + this.R10.tlpFBackColor = System.Drawing.Color.Lime; + this.R10.tlpGBackColor = System.Drawing.Color.Lime; + this.R10.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R08 + // + this.R08.BackColor = System.Drawing.Color.White; + this.R08.ForeColor = System.Drawing.Color.Black; + this.R08.labFLowerUpper = "-2.0/2.0"; + this.R08.labFText = "F"; + this.R08.labFVal = "0.1mm"; + this.R08.labGLowerUpper = "1.0/6.0"; + this.R08.labGText = "G"; + this.R08.labGVal = "2.8mm"; + this.R08.labTitleText = "R-08"; + this.R08.Location = new System.Drawing.Point(880, 95); + this.R08.Name = "R08"; + this.R08.Size = new System.Drawing.Size(220, 145); + this.R08.TabIndex = 44; + this.R08.tlpBackColor = System.Drawing.Color.Lime; + this.R08.tlpFBackColor = System.Drawing.Color.Lime; + this.R08.tlpGBackColor = System.Drawing.Color.Lime; + this.R08.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R12 + // + this.R12.BackColor = System.Drawing.Color.White; + this.R12.ForeColor = System.Drawing.Color.Black; + this.R12.labFLowerUpper = "-2.0/2.0"; + this.R12.labFText = "F"; + this.R12.labFVal = "0.2mm"; + this.R12.labGLowerUpper = "1.0/6.0"; + this.R12.labGText = "G"; + this.R12.labGVal = "3.5mm"; + this.R12.labTitleText = "R-12"; + this.R12.Location = new System.Drawing.Point(617, 92); + this.R12.Name = "R12"; + this.R12.Size = new System.Drawing.Size(220, 145); + this.R12.TabIndex = 46; + this.R12.tlpBackColor = System.Drawing.Color.Lime; + this.R12.tlpFBackColor = System.Drawing.Color.Lime; + this.R12.tlpGBackColor = System.Drawing.Color.Lime; + this.R12.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R04 + // + this.R04.BackColor = System.Drawing.Color.White; + this.R04.ForeColor = System.Drawing.Color.Black; + this.R04.labFLowerUpper = "-2.0/2.0"; + this.R04.labFText = "F"; + this.R04.labFVal = "0.5mm"; + this.R04.labGLowerUpper = "1.0/6.0"; + this.R04.labGText = "G"; + this.R04.labGVal = "3.5mm"; + this.R04.labTitleText = "R-04"; + this.R04.Location = new System.Drawing.Point(1133, 95); + this.R04.Name = "R04"; + this.R04.Size = new System.Drawing.Size(220, 145); + this.R04.TabIndex = 48; + this.R04.tlpBackColor = System.Drawing.Color.Lime; + this.R04.tlpFBackColor = System.Drawing.Color.Lime; + this.R04.tlpGBackColor = System.Drawing.Color.Lime; + this.R04.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R02 + // + this.R02.BackColor = System.Drawing.Color.White; + this.R02.ForeColor = System.Drawing.Color.Black; + this.R02.labFLowerUpper = "-2.0/2.0"; + this.R02.labFText = "F"; + this.R02.labFVal = "-0.5mm"; + this.R02.labGLowerUpper = "1.0/6.0"; + this.R02.labGText = "G"; + this.R02.labGVal = "4.0mm"; + this.R02.labTitleText = "R-02"; + this.R02.Location = new System.Drawing.Point(1662, 95); + this.R02.Name = "R02"; + this.R02.Size = new System.Drawing.Size(220, 145); + this.R02.TabIndex = 49; + this.R02.tlpBackColor = System.Drawing.Color.Lime; + this.R02.tlpFBackColor = System.Drawing.Color.Lime; + this.R02.tlpGBackColor = System.Drawing.Color.Lime; + this.R02.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R13 + // + this.R13.BackColor = System.Drawing.Color.White; + this.R13.ForeColor = System.Drawing.Color.Black; + this.R13.labFLowerUpper = "-2.0/2.0"; + this.R13.labFText = "F"; + this.R13.labFVal = "0.1"; + this.R13.labGLowerUpper = "1.0/6.0"; + this.R13.labGText = "G"; + this.R13.labGVal = "3.8"; + this.R13.labTitleText = "R-13"; + this.R13.Location = new System.Drawing.Point(399, 795); + this.R13.Name = "R13"; + this.R13.Size = new System.Drawing.Size(220, 145); + this.R13.TabIndex = 54; + this.R13.tlpBackColor = System.Drawing.Color.Lime; + this.R13.tlpFBackColor = System.Drawing.Color.Lime; + this.R13.tlpGBackColor = System.Drawing.Color.Lime; + this.R13.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R01 + // + this.R01.BackColor = System.Drawing.Color.White; + this.R01.ForeColor = System.Drawing.Color.Black; + this.R01.labFLowerUpper = "-2.0/2.0"; + this.R01.labFText = "F"; + this.R01.labFVal = "0.4mm"; + this.R01.labGLowerUpper = "1.0/6.0"; + this.R01.labGText = "G"; + this.R01.labGVal = "3.7mm"; + this.R01.labTitleText = "R-01"; + this.R01.Location = new System.Drawing.Point(1450, 790); + this.R01.Name = "R01"; + this.R01.Size = new System.Drawing.Size(220, 145); + this.R01.TabIndex = 55; + this.R01.tlpBackColor = System.Drawing.Color.Lime; + this.R01.tlpFBackColor = System.Drawing.Color.Lime; + this.R01.tlpGBackColor = System.Drawing.Color.Lime; + this.R01.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R03 + // + this.R03.BackColor = System.Drawing.Color.White; + this.R03.ForeColor = System.Drawing.Color.Black; + this.R03.labFLowerUpper = "-3.0/2.0"; + this.R03.labFText = "F"; + this.R03.labFVal = "0.5mm"; + this.R03.labGLowerUpper = "1.0/6.0"; + this.R03.labGText = "G"; + this.R03.labGVal = "3.2mm"; + this.R03.labTitleText = "R-03"; + this.R03.Location = new System.Drawing.Point(1398, 95); + this.R03.Name = "R03"; + this.R03.Size = new System.Drawing.Size(220, 145); + this.R03.TabIndex = 56; + this.R03.tlpBackColor = System.Drawing.Color.Lime; + this.R03.tlpFBackColor = System.Drawing.Color.Lime; + this.R03.tlpGBackColor = System.Drawing.Color.Lime; + this.R03.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R06 + // + this.R06.BackColor = System.Drawing.Color.White; + this.R06.ForeColor = System.Drawing.Color.Black; + this.R06.labFLowerUpper = "-2.0/2.0"; + this.R06.labFText = "F"; + this.R06.labFVal = "0.1mm"; + this.R06.labGLowerUpper = "1.0/6.0"; + this.R06.labGText = "G"; + this.R06.labGVal = "3.6mm"; + this.R06.labTitleText = "R-06"; + this.R06.Location = new System.Drawing.Point(1137, 795); + this.R06.Name = "R06"; + this.R06.Size = new System.Drawing.Size(220, 145); + this.R06.TabIndex = 57; + this.R06.tlpBackColor = System.Drawing.Color.Lime; + this.R06.tlpFBackColor = System.Drawing.Color.Lime; + this.R06.tlpGBackColor = System.Drawing.Color.Lime; + this.R06.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // btnRefresh + // + this.btnRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefresh.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.btnRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnRefresh.Font = new System.Drawing.Font("宋体", 3F); + this.btnRefresh.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.btnRefresh.Image = global::NSAnalysis.Properties.Resources.Refresh64; + this.btnRefresh.Location = new System.Drawing.Point(1705, 978); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(92, 97); + this.btnRefresh.TabIndex = 31; + this.btnRefresh.UseVisualStyleBackColor = false; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // pictureBox2 + // + this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.pictureBox2.Image = global::NSAnalysis.Properties.Resources.hexagonlogotransparent; + this.pictureBox2.Location = new System.Drawing.Point(92, 982); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(316, 83); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox2.TabIndex = 30; + this.pictureBox2.TabStop = false; + // + // pbRightCar + // + this.pbRightCar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pbRightCar.Image = ((System.Drawing.Image)(resources.GetObject("pbRightCar.Image"))); + this.pbRightCar.Location = new System.Drawing.Point(2, 40); + this.pbRightCar.Name = "pbRightCar"; + this.pbRightCar.Size = new System.Drawing.Size(1916, 923); + this.pbRightCar.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbRightCar.TabIndex = 2; + this.pbRightCar.TabStop = false; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(875, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(20, 14, 20, 14); + this.label2.Size = new System.Drawing.Size(40, 50); + this.label2.TabIndex = 1; + // + // FEH3RightCarData + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(1920, 1080); + this.Controls.Add(this.R02); + this.Controls.Add(this.R06); + this.Controls.Add(this.R03); + this.Controls.Add(this.R01); + this.Controls.Add(this.R13); + this.Controls.Add(this.R04); + this.Controls.Add(this.R12); + this.Controls.Add(this.R08); + this.Controls.Add(this.R10); + this.Controls.Add(this.R18); + this.Controls.Add(this.R16); + this.Controls.Add(this.R15); + this.Controls.Add(this.R14); + this.Controls.Add(this.label3); + this.Controls.Add(this.labVIN); + this.Controls.Add(this.btnRefresh); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.pbRightCar); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9F); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximumSize = new System.Drawing.Size(1920, 1080); + this.Name = "FEH3RightCarData"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "右侧车身测量数据"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FEH3RightCarData_FormClosing); + this.Load += new System.EventHandler(this.FEH3RightCarData_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbRightCar)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private System.Windows.Forms.PictureBox pbRightCar; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.Label labVIN; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Timer tmrRefreshData; + private UserControlClass.UCVWNextSense R14; + private UserControlClass.UCVWNextSense R15; + private UserControlClass.UCVWNextSense R16; + private UserControlClass.UCVWNextSense R18; + private UserControlClass.UCVWNextSense R10; + private UserControlClass.UCVWNextSense R08; + private UserControlClass.UCVWNextSense R12; + private UserControlClass.UCVWNextSense R04; + private UserControlClass.UCVWNextSense R02; + private UserControlClass.UCVWNextSense R13; + private UserControlClass.UCVWNextSense R01; + private UserControlClass.UCVWNextSense R03; + private UserControlClass.UCVWNextSense R06; + } +} diff --git a/Analysis/CarDataDisplayForm/FEH3RightCarData.resx b/Analysis/CarDataDisplayForm/FEH3RightCarData.resx new file mode 100644 index 0000000..2026d07 --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEH3RightCarData.resx @@ -0,0 +1,2286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + 17, 17 + + + + /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYa + HSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgo + KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAKSBO0DASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6n2r6D8qNq+g/Knc+tHPrQA3avoPyo2L6D8qUiuGuvGN3HcSo + trFtRioyeaAO42r6D8qNq+g/KuC/4TS7/wCfWL8zVqDxLq067o9NDL6gGgDs9q+g/KjavoPyrlE1rWG6 + 2MKf7z4qVtT1tY95srbb6+YaAOm2L/dH5UbF9B+Vco2t6yBxYxP/ALr1Vn8T6tBzNYBF9TQB2uxP7oo2 + J/dFcH/wml5/z7RfmaX/AITS8/59ovzNAHd7E/uijYn90Vwn/CaXf/PvF+Zo/wCE0vP+faL8zQB3exP7 + oo2J/dFcH/wmt3/z7RfmaX/hNLz/AJ9ovzNAHd7E/uijYn90Vwn/AAml3/z7xfmaT/hNbv8A59ovzNAH + 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 + /wDfArsaKAOO/wCEHh/5+3/74FWdN8JR2N/DcrdO7RnO0rjNdRRQByOofDrwxqF7Ld3elxvPKdzt5jjJ + /A1VHwq8GLMZl0WISkYLh33EfXNdxRQBy2k+AvDmj3y3mnaeIblQQr72OM9epq/4Z8N6X4bt54dIthAs + 8pmlOSS7nqSTW1SCgBQKMUUUAc3feCNCvruS5ubR2mkOWImcfoDVK3+GvhS2Di30tYg53N5crruPqcHk + 12NFAGdo2i2ej2otrCMxwg52li3P1JNTalYW2pWc1pfQpNbTKUeNhwwNW6KAOLj+GXheONY47CREUYCr + cSAAfTNbmj+G9J0ewWy06wghtVYv5eN3zHqee9bFFAFT+zrP/n1g/wC/a/4Uv9nWf/PrB/37X/CrVGaA + MKLwxpMXiGTWxaIdRaMRLK3OxR2Udvwqpe+BvD1z4jg12XTYv7ThbeJhxlvUjua6ijigDj7b4faFH4pX + xA8Es2oqzMjyzMwQnrgZwK7CiigAooooAKKKKACiiigAooooAKrS2FpLex3cttA93GuxJmjBdR6BuoFW + aKACq72No92t09rA1yowJTGC4HoG61YooAr3tla30aJe20FyiOJFWaMOFYdGAPQj1qZ0RwQ6qwII5GeD + 1FOooAr2lja2abLO3hgT+7EgUfpU+BgjHHpS0UARxxRxALEiovXaowKkxkYNFFACKir0UD8KWiigAooo + oArX9jaajB5F/bQXMOQ3lzRhxkdDg1YHSlooATFLRRQBFPbQXDRtPDFKYzuQugbafUZ6GkvLS2vrdoL2 + 3huIG6xyoHU/geKmooAhhtbeC3SCCCKKBMbY0QKq/QDgUotoBc/aPJj+0bdvmbRux6Z64qWigCKe3iuI + XiuI0licYZHUMGHoQetR21haWsBgtrWCGE/8s40CqfwHFWaKAK32C0/59bf/AL9ij7BZ/wDPrb/9+xVn + FGBQBBFZ20Th4reFHHRlQA1PRiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo + oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo + oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACq8/3x9Ks + VXn++PpQBYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAqvP98fSrFV5/vj6UAWKKKKACiiigAooooAKKKKACiiigAooooAKKKK + ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK + ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK + ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK + ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK + ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKrz/AHx9KsVXn++PpQBY + ooooAKKKKACiiigAooooAKKKKACiiigAozUN5d21lD5t5cQ28WQu+Vwi5PbJqh/wkmif9BnTf/ApP8aA + NXNGayv+Ek0T/oM6b/4Ep/jR/wAJJon/AEGdN/8AAlP8aANXNGayv+Ek0T/oM6b/AOBKf40f8JJon/QZ + 03/wJT/GgDVzRmsr/hJNE/6DOm/+BKf40f8ACSaJ/wBBnTf/AAJT/GgDVzRmsr/hJNE/6DOm/wDgSn+N + H/CSaJ/0GdN/8CU/xoA1c0Vlf8JJon/QZ03/AMCU/wAaT/hJNE/6DOm/+BKf40Aa1FZP/CR6H/0GdN/8 + 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 + uf8AeX/0IVWq9PGJYyhJGcHI9jUH2T/pq/6f4UAQUVP9k/6av+n+FH2T/pq/6f4UAQUVP9k/6av+n+FH + 2T/pq/6f4UAQUVP9k/6av+n+FH2T/pq/6f4UAQUVP9k/6av+n+FH2T/pq/6f4UAQUVP9k/6av+n+FH2T + /pq/6f4UAQVasv8Aj3H+838zTPsn/TV/0/wqaCPyowuc8n+dAElFFFABRRRQAUUUUAFFFFABRRRQAUUU + UAFFFFABRRRQAUUUUAFFFFABVef74+lWKrz/AHx9KALFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA + BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVXlt98hbfjPbGe1WKKAKv2Q/8A + PU/98ij7If8Anqf++RVrmjn1oAq/ZW/56n/vkUfZW/56n/vkVaooAq/ZW/56n/vkUfZW/wCep/75FWqK + AKv2Vv8Anqf++RR9lb/nqf8AvkVaooAq/ZW/56n/AL5FH2Vv+ep/75FWqKAKv2Vv+ep/75FCWpV1YyE4 + OcYq1RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABgE9BRgegoooAMD0ooooAKKKKACiii + gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBjxrJjcKZ9mh/uf + qamooAh+zQ/3f1NH2aH+7+pqaigCH7ND/d/U0fZof7v6mpqKAIfs0P8Ad/U0fZof7v6mpqKAIfssP939 + TR9lh/u/qamooAg+yw/3f1NH2WH+7+pqfFGKAIPskP8AdP5mplUKAB0FLRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABVef74+lWKrz/fH0oAsUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF + FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF + FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF + FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF + FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF + FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVXn++PpViq8/wB8fSgCxRRR + QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR + QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR + QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR + QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR + QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR + QAUUUUAFFFFABVef74+lWKrz/fH0oAsUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU + UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU + UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU + UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU + UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU + UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVXn++PpViq8/3x9KALFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFV5/vj6UUUAf//Z + + + + 86 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/CarDataDisplayForm/FEHYLeftCarData.cs b/Analysis/CarDataDisplayForm/FEHYLeftCarData.cs new file mode 100644 index 0000000..8cd21f3 --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEHYLeftCarData.cs @@ -0,0 +1,317 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using UserControlClass; +using BaseFunction; +using DAL; + +namespace NSAnalysis +{ + public partial class FEHYLeftCarData : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private DataTable dtVINData = new DataTable(); + private string strLastVIN = ""; + CenterControl gCC = null; + #endregion 全局变量 + + public FEHYLeftCarData(CenterControl cc) + { + InitializeComponent(); + gCC = cc; + } + + /// + /// 指定屏幕显示 + /// + public void SpecifyScreenDisplay1() + { + try + { + Screen[] screens = Screen.AllScreens; + // 指定显示在第二个显示器 + Screen secondScreen = screens[1]; //1 + + // 设置窗体位置和大小 + this.StartPosition = FormStartPosition.Manual; + this.Left = secondScreen.WorkingArea.Left; + this.Top = secondScreen.WorkingArea.Top; + this.Width = secondScreen.WorkingArea.Width; + this.Height = secondScreen.WorkingArea.Height; + this.Show(); + } + catch { } + } + #region 初始化控件 + + + private void InitNextSenseControl() + { + string strNSName = ""; + UCVWNextSense ucns = null; + for (int i = 1; i <= 25; i++) + { + strNSName = "";//L0" + i.ToString(); + if (i <= 9) + strNSName = "L0" + i.ToString(); + else + { + strNSName = "L" + i.ToString(); + } + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + ucns.tlpBackColor = Color.White; + ucns.tlpFBackColor = Color.White; + ucns.tlpGBackColor = Color.White; + ucns.labFVal = ""; + ucns.labFLowerUpper = ""; + ucns.labGVal = ""; + ucns.labGLowerUpper = ""; + } + } + } + + #endregion 初始化控件 + + private void FEHYLeftCarData_Load(object sender, EventArgs e) + { + //InitNextSenseOneItemControl(); + InitNextSenseControl(); + labVIN.Text = ""; + tmrRefreshData.Interval = 1000; + tmrRefreshData.Start(); + SpecifyScreenDisplay1(); + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + SpecifyScreenDisplay1(); + string strVIN = tmdal.SelectMaintenanceStation7VIN(); + if (strVIN.ToLower().Contains("empty")) + { + labVIN.Text = "VIN码为空"; + InitNextSenseControl(); + } + else + { + if (strVIN.Length==17) + { + string strSubVIN = strVIN;// strVIN.Substring(0, strVIN.Length - 2); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = tmdal.SelectCarTypeByVIN(strSubVIN); + MyBase.TraceWriteLine("Left EHY UI Refresh Button (strVIN.Length==17):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EHY")) + { + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "L"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + } + } + if (strVIN.Length == 21) + { + string strSubVIN =strVIN.Substring(0, 17); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = strVIN.Substring(18, 3); + MyBase.TraceWriteLine("Left EHY UI Refresh Button (strVIN.Length==21):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EHY")) + { + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "L"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + } + } + } + } + + private void tmrRefreshData_Tick(object sender, EventArgs e) + { + tmrRefreshData.Stop(); + string strVIN = tmdal.SelectMaintenanceStation7VIN(); + if (strLastVIN != strVIN) + { + if (strVIN.ToLower().Contains("empty")) + { + labVIN.Text = "VIN码为空"; + InitNextSenseControl(); + } + else + { + if (strVIN.Length==17) + { + string strSubVIN = strVIN;//.Substring(0, strVIN.Length - 2); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = tmdal.SelectCarTypeByVIN(strSubVIN); + MyBase.TraceWriteLine("Left EHY UI Refresh tmrRefreshData (strVIN.Length==17):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EHY")) + { + SpecifyScreenDisplay1(); + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "L"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + gCC.ShowCarMeasureDataByCarType(2); + } + } + if (strVIN.Length == 21) + { + string strSubVIN = strVIN.Substring(0, 17); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = strVIN.Substring(18, 3); + MyBase.TraceWriteLine("Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EHY")) + { + SpecifyScreenDisplay1(); + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "L"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + gCC.ShowCarMeasureDataByCarType(2); + } + } + } + } + strLastVIN = strVIN; + tmrRefreshData.Start(); + } + + private Color analysisColorbyStatus(string strStatus) + { + Color colStatus = new Color(); + switch (strStatus.ToLower()) + { + case "best": + colStatus = Color.Lime; + break; + + case "good": + colStatus = Color.Lime; + break; + + case "ng1": + colStatus = Color.Yellow; + break; + + case "ng2": + colStatus = Color.Red; + break; + + default: + colStatus = Color.LightGray; + break; + } + return colStatus; + } + + private void analysisTitleColor() + { + string strNSName = ""; + UCVWNextSense ucns = null; + for (int i = 1; i <= 25; i++) + { + if (i <= 9) + strNSName = "L0" + i.ToString(); + else + { + strNSName = "L" + i.ToString(); + } + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + if (ucns.tlpFBackColor == Color.Red || ucns.tlpGBackColor == Color.Red) + { + ucns.tlpBackColor = Color.Red; + } + else if (ucns.tlpFBackColor == Color.LightGray && ucns.tlpGBackColor == Color.LightGray) + { + ucns.tlpBackColor = Color.LightGray; + } + else if (ucns.tlpFBackColor == Color.Yellow && ucns.tlpGBackColor == Color.Yellow) + { + ucns.tlpBackColor = Color.Yellow; + } + else + { + ucns.tlpBackColor = Color.Lime; + } + } + } + } + + private void refreshCarUIData(DataTable dtData) + { + string strNSName = ""; + string strFGName = ""; + UCVWNextSense ucns = null; + for (int i = 0; i < dtData.Rows.Count; i++) + { + strNSName = dtData.Rows[i]["MeasPointName"].ToString().Replace("-", ""); + strFGName = dtData.Rows[i]["DimensionName"].ToString(); + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + if (strFGName == "F") + { + ucns.labFVal = dtData.Rows[i]["MeasureValue"].ToString(); + ucns.labFLowerUpper = dtData.Rows[i]["LowerTolVal"].ToString() + "/" + dtData.Rows[i]["UpperTolVal"].ToString(); + ucns.tlpFBackColor = analysisColorbyStatus(dtData.Rows[i]["MeasureItemResult"].ToString()); + } + else + { + ucns.labGVal = dtData.Rows[i]["MeasureValue"].ToString(); + ucns.labGLowerUpper = dtData.Rows[i]["LowerTolVal"].ToString() + "/" + dtData.Rows[i]["UpperTolVal"].ToString(); + ucns.tlpGBackColor = analysisColorbyStatus(dtData.Rows[i]["MeasureItemResult"].ToString()); + } + } + } + } + + private void FEHYLeftCarData_FormClosing(object sender, FormClosingEventArgs e) + { + e.Cancel = true; + this.Hide(); + } + } +} \ No newline at end of file diff --git a/Analysis/CarDataDisplayForm/FEHYLeftCarData.designer.cs b/Analysis/CarDataDisplayForm/FEHYLeftCarData.designer.cs new file mode 100644 index 0000000..8ffdedb --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEHYLeftCarData.designer.cs @@ -0,0 +1,562 @@ +namespace NSAnalysis +{ + partial class FEHYLeftCarData + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FEHYLeftCarData)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.labVIN = new System.Windows.Forms.Label(); + this.tmrRefreshData = new System.Windows.Forms.Timer(this.components); + this.btnRefresh = new System.Windows.Forms.Button(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.pbLeftCar = new System.Windows.Forms.PictureBox(); + this.L13 = new UserControlClass.UCVWNextSense(); + this.L14 = new UserControlClass.UCVWNextSense(); + this.L22 = new UserControlClass.UCVWNextSense(); + this.L16 = new UserControlClass.UCVWNextSense(); + this.L18 = new UserControlClass.UCVWNextSense(); + this.L15 = new UserControlClass.UCVWNextSense(); + this.L21 = new UserControlClass.UCVWNextSense(); + this.L12 = new UserControlClass.UCVWNextSense(); + this.L08 = new UserControlClass.UCVWNextSense(); + this.L01 = new UserControlClass.UCVWNextSense(); + this.L03 = new UserControlClass.UCVWNextSense(); + this.L02 = new UserControlClass.UCVWNextSense(); + this.L04 = new UserControlClass.UCVWNextSense(); + this.L06 = new UserControlClass.UCVWNextSense(); + this.L10 = new UserControlClass.UCVWNextSense(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLeftCar)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(1918, 37); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "左侧车身测量数据"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "左侧车身测量数据"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(875, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(20, 14, 20, 14); + this.label2.Size = new System.Drawing.Size(40, 50); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(911, 7); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(164, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "左侧车身测量数据"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 58F); + this.label3.Location = new System.Drawing.Point(502, 970); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(253, 104); + this.label3.TabIndex = 37; + this.label3.Text = "VIN:"; + // + // labVIN + // + this.labVIN.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labVIN.AutoSize = true; + this.labVIN.Font = new System.Drawing.Font("Segoe UI", 58F); + this.labVIN.Location = new System.Drawing.Point(761, 970); + this.labVIN.Name = "labVIN"; + this.labVIN.Size = new System.Drawing.Size(838, 104); + this.labVIN.TabIndex = 36; + this.labVIN.Text = "LNNACDEBXRDA20251"; + // + // tmrRefreshData + // + this.tmrRefreshData.Interval = 1000; + this.tmrRefreshData.Tick += new System.EventHandler(this.tmrRefreshData_Tick); + // + // btnRefresh + // + this.btnRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefresh.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.btnRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnRefresh.Font = new System.Drawing.Font("宋体", 3F); + this.btnRefresh.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.btnRefresh.Image = global::NSAnalysis.Properties.Resources.Refresh64; + this.btnRefresh.Location = new System.Drawing.Point(1695, 978); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(86, 92); + this.btnRefresh.TabIndex = 35; + this.btnRefresh.UseVisualStyleBackColor = false; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // pictureBox2 + // + this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.pictureBox2.Image = global::NSAnalysis.Properties.Resources.hexagonlogotransparent; + this.pictureBox2.Location = new System.Drawing.Point(100, 981); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(316, 83); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox2.TabIndex = 34; + this.pictureBox2.TabStop = false; + // + // pbLeftCar + // + this.pbLeftCar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pbLeftCar.Image = ((System.Drawing.Image)(resources.GetObject("pbLeftCar.Image"))); + this.pbLeftCar.Location = new System.Drawing.Point(3, 40); + this.pbLeftCar.Name = "pbLeftCar"; + this.pbLeftCar.Size = new System.Drawing.Size(1916, 925); + this.pbLeftCar.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLeftCar.TabIndex = 1; + this.pbLeftCar.TabStop = false; + // + // L13 + // + this.L13.BackColor = System.Drawing.Color.White; + this.L13.ForeColor = System.Drawing.Color.Black; + this.L13.labFLowerUpper = "-2.0/2.0"; + this.L13.labFText = "F"; + this.L13.labFVal = "0.3"; + this.L13.labGLowerUpper = "1.0/6.0"; + this.L13.labGText = "G"; + this.L13.labGVal = "3.7"; + this.L13.labTitleText = "L-13"; + this.L13.Location = new System.Drawing.Point(1023, 801); + this.L13.Name = "L13"; + this.L13.Size = new System.Drawing.Size(220, 145); + this.L13.TabIndex = 62; + this.L13.tlpBackColor = System.Drawing.Color.Lime; + this.L13.tlpFBackColor = System.Drawing.Color.Lime; + this.L13.tlpGBackColor = System.Drawing.Color.Lime; + this.L13.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L14 + // + this.L14.BackColor = System.Drawing.Color.White; + this.L14.ForeColor = System.Drawing.Color.Black; + this.L14.labFLowerUpper = "-2.0/2.0"; + this.L14.labFText = "F"; + this.L14.labFVal = "-1.5mm"; + this.L14.labGLowerUpper = "1.0/6.0"; + this.L14.labGText = "G"; + this.L14.labGVal = "3.2mm"; + this.L14.labTitleText = "L-14"; + this.L14.Location = new System.Drawing.Point(1508, 100); + this.L14.Name = "L14"; + this.L14.Size = new System.Drawing.Size(220, 145); + this.L14.TabIndex = 61; + this.L14.tlpBackColor = System.Drawing.Color.Lime; + this.L14.tlpFBackColor = System.Drawing.Color.Lime; + this.L14.tlpGBackColor = System.Drawing.Color.Lime; + this.L14.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L22 + // + this.L22.BackColor = System.Drawing.Color.White; + this.L22.ForeColor = System.Drawing.Color.Black; + this.L22.labFLowerUpper = "-2.0/2.0"; + this.L22.labFText = "F"; + this.L22.labFVal = "0.0"; + this.L22.labGLowerUpper = "1.0/6.0"; + this.L22.labGText = "G"; + this.L22.labGVal = "6.0"; + this.L22.labTitleText = "L-22"; + this.L22.Location = new System.Drawing.Point(1641, 801); + this.L22.Name = "L22"; + this.L22.Size = new System.Drawing.Size(220, 145); + this.L22.TabIndex = 60; + this.L22.tlpBackColor = System.Drawing.Color.Lime; + this.L22.tlpFBackColor = System.Drawing.Color.Lime; + this.L22.tlpGBackColor = System.Drawing.Color.Lime; + this.L22.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L16 + // + this.L16.BackColor = System.Drawing.Color.White; + this.L16.ForeColor = System.Drawing.Color.Black; + this.L16.labFLowerUpper = "-2.0/2.0"; + this.L16.labFText = "F"; + this.L16.labFVal = "-2.0mm"; + this.L16.labGLowerUpper = "1.0/6.0"; + this.L16.labGText = "G"; + this.L16.labGVal = "2.7mm"; + this.L16.labTitleText = "L-16"; + this.L16.Location = new System.Drawing.Point(1696, 413); + this.L16.Name = "L16"; + this.L16.Size = new System.Drawing.Size(220, 145); + this.L16.TabIndex = 59; + this.L16.tlpBackColor = System.Drawing.Color.Lime; + this.L16.tlpFBackColor = System.Drawing.Color.Lime; + this.L16.tlpGBackColor = System.Drawing.Color.Lime; + this.L16.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L18 + // + this.L18.BackColor = System.Drawing.Color.White; + this.L18.ForeColor = System.Drawing.Color.Black; + this.L18.labFLowerUpper = "0.0/4.0"; + this.L18.labFText = "F"; + this.L18.labFVal = "-2.7"; + this.L18.labGLowerUpper = "1.0/6.0"; + this.L18.labGText = "G"; + this.L18.labGVal = "2.7"; + this.L18.labTitleText = "L-18"; + this.L18.Location = new System.Drawing.Point(1694, 596); + this.L18.Name = "L18"; + this.L18.Size = new System.Drawing.Size(220, 145); + this.L18.TabIndex = 58; + this.L18.tlpBackColor = System.Drawing.Color.Red; + this.L18.tlpFBackColor = System.Drawing.Color.Red; + this.L18.tlpGBackColor = System.Drawing.Color.Lime; + this.L18.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L15 + // + this.L15.BackColor = System.Drawing.Color.White; + this.L15.ForeColor = System.Drawing.Color.Black; + this.L15.labFLowerUpper = "-2.0/2.0"; + this.L15.labFText = "F"; + this.L15.labFVal = "-1.9mm"; + this.L15.labGLowerUpper = "1.0/6.0"; + this.L15.labGText = "G"; + this.L15.labGVal = "2.8mm"; + this.L15.labTitleText = "L-15"; + this.L15.Location = new System.Drawing.Point(1692, 255); + this.L15.Name = "L15"; + this.L15.Size = new System.Drawing.Size(220, 145); + this.L15.TabIndex = 56; + this.L15.tlpBackColor = System.Drawing.Color.Lime; + this.L15.tlpFBackColor = System.Drawing.Color.Lime; + this.L15.tlpGBackColor = System.Drawing.Color.Lime; + this.L15.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L21 + // + this.L21.BackColor = System.Drawing.Color.White; + this.L21.ForeColor = System.Drawing.Color.Black; + this.L21.labFLowerUpper = "-2.0/2.0"; + this.L21.labFText = "F"; + this.L21.labFVal = "-0.2mm"; + this.L21.labGLowerUpper = "1.0/6.0"; + this.L21.labGText = "G"; + this.L21.labGVal = "6.1mm"; + this.L21.labTitleText = "L-21"; + this.L21.Location = new System.Drawing.Point(1354, 801); + this.L21.Name = "L21"; + this.L21.Size = new System.Drawing.Size(220, 145); + this.L21.TabIndex = 50; + this.L21.tlpBackColor = System.Drawing.Color.Lime; + this.L21.tlpFBackColor = System.Drawing.Color.Lime; + this.L21.tlpGBackColor = System.Drawing.Color.Lime; + this.L21.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L12 + // + this.L12.BackColor = System.Drawing.Color.White; + this.L12.ForeColor = System.Drawing.Color.Black; + this.L12.labFLowerUpper = "-2.0/2.0"; + this.L12.labFText = "F"; + this.L12.labFVal = "-0.2mm"; + this.L12.labGLowerUpper = "1.0/6.0"; + this.L12.labGText = "G"; + this.L12.labGVal = "3.0mm"; + this.L12.labTitleText = "L-12"; + this.L12.Location = new System.Drawing.Point(1195, 105); + this.L12.Name = "L12"; + this.L12.Size = new System.Drawing.Size(220, 145); + this.L12.TabIndex = 49; + this.L12.tlpBackColor = System.Drawing.Color.Lime; + this.L12.tlpFBackColor = System.Drawing.Color.Lime; + this.L12.tlpGBackColor = System.Drawing.Color.Lime; + this.L12.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L08 + // + this.L08.BackColor = System.Drawing.Color.White; + this.L08.ForeColor = System.Drawing.Color.Black; + this.L08.labFLowerUpper = "-2.0/2.0"; + this.L08.labFText = "F"; + this.L08.labFVal = "0.3mm"; + this.L08.labGLowerUpper = "1.0/6.0"; + this.L08.labGText = "G"; + this.L08.labGVal = "3.1mm"; + this.L08.labTitleText = "L-08"; + this.L08.Location = new System.Drawing.Point(879, 103); + this.L08.Name = "L08"; + this.L08.Size = new System.Drawing.Size(220, 145); + this.L08.TabIndex = 48; + this.L08.tlpBackColor = System.Drawing.Color.Lime; + this.L08.tlpFBackColor = System.Drawing.Color.Lime; + this.L08.tlpGBackColor = System.Drawing.Color.Lime; + this.L08.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L01 + // + this.L01.BackColor = System.Drawing.Color.White; + this.L01.ForeColor = System.Drawing.Color.Black; + this.L01.labFLowerUpper = "-3.0/2.0"; + this.L01.labFText = "F"; + this.L01.labFVal = "0.7mm"; + this.L01.labGLowerUpper = "1.0/5.0"; + this.L01.labGText = "G"; + this.L01.labGVal = "4.1mm"; + this.L01.labTitleText = "L-01"; + this.L01.Location = new System.Drawing.Point(7, 581); + this.L01.Name = "L01"; + this.L01.Size = new System.Drawing.Size(220, 145); + this.L01.TabIndex = 46; + this.L01.tlpBackColor = System.Drawing.Color.Lime; + this.L01.tlpFBackColor = System.Drawing.Color.Lime; + this.L01.tlpGBackColor = System.Drawing.Color.Lime; + this.L01.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L03 + // + this.L03.BackColor = System.Drawing.Color.White; + this.L03.ForeColor = System.Drawing.Color.Black; + this.L03.labFLowerUpper = "-3.0/2.0"; + this.L03.labFText = "F"; + this.L03.labFVal = "-0.6"; + this.L03.labGLowerUpper = "1.0/6.0"; + this.L03.labGText = "G"; + this.L03.labGVal = "3.9"; + this.L03.labTitleText = "L-03"; + this.L03.Location = new System.Drawing.Point(323, 109); + this.L03.Name = "L03"; + this.L03.Size = new System.Drawing.Size(220, 145); + this.L03.TabIndex = 40; + this.L03.tlpBackColor = System.Drawing.Color.Lime; + this.L03.tlpFBackColor = System.Drawing.Color.Lime; + this.L03.tlpGBackColor = System.Drawing.Color.Lime; + this.L03.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L02 + // + this.L02.BackColor = System.Drawing.Color.White; + this.L02.ForeColor = System.Drawing.Color.Black; + this.L02.labFLowerUpper = "-3.0/2.0"; + this.L02.labFText = "F"; + this.L02.labFVal = "-0.2"; + this.L02.labGLowerUpper = "1.0/6.0"; + this.L02.labGText = "G"; + this.L02.labGVal = "4.4"; + this.L02.labTitleText = "L-02"; + this.L02.Location = new System.Drawing.Point(46, 109); + this.L02.Name = "L02"; + this.L02.Size = new System.Drawing.Size(220, 145); + this.L02.TabIndex = 44; + this.L02.tlpBackColor = System.Drawing.Color.Lime; + this.L02.tlpFBackColor = System.Drawing.Color.Lime; + this.L02.tlpGBackColor = System.Drawing.Color.Lime; + this.L02.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L04 + // + this.L04.BackColor = System.Drawing.Color.White; + this.L04.ForeColor = System.Drawing.Color.Black; + this.L04.labFLowerUpper = "-1.0/2.0"; + this.L04.labFText = "F"; + this.L04.labFVal = "-0.1"; + this.L04.labGLowerUpper = "1.0/6.0"; + this.L04.labGText = "G"; + this.L04.labGVal = "3.1"; + this.L04.labTitleText = "L-04"; + this.L04.Location = new System.Drawing.Point(604, 109); + this.L04.Name = "L04"; + this.L04.Size = new System.Drawing.Size(220, 145); + this.L04.TabIndex = 43; + this.L04.tlpBackColor = System.Drawing.Color.Lime; + this.L04.tlpFBackColor = System.Drawing.Color.Lime; + this.L04.tlpGBackColor = System.Drawing.Color.Lime; + this.L04.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L06 + // + this.L06.BackColor = System.Drawing.Color.White; + this.L06.ForeColor = System.Drawing.Color.Black; + this.L06.labFLowerUpper = "-2.0/2.0"; + this.L06.labFText = "F"; + this.L06.labFVal = "-0.1"; + this.L06.labGLowerUpper = "1.0/6.0"; + this.L06.labGText = "G"; + this.L06.labGVal = "3.4"; + this.L06.labTitleText = "L-06"; + this.L06.Location = new System.Drawing.Point(423, 801); + this.L06.Name = "L06"; + this.L06.Size = new System.Drawing.Size(220, 145); + this.L06.TabIndex = 42; + this.L06.tlpBackColor = System.Drawing.Color.Lime; + this.L06.tlpFBackColor = System.Drawing.Color.Lime; + this.L06.tlpGBackColor = System.Drawing.Color.Lime; + this.L06.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // L10 + // + this.L10.BackColor = System.Drawing.Color.White; + this.L10.ForeColor = System.Drawing.Color.Black; + this.L10.labFLowerUpper = "-2.0/2.0"; + this.L10.labFText = "F"; + this.L10.labFVal = "0.3"; + this.L10.labGLowerUpper = "1.0/6.0"; + this.L10.labGText = "G"; + this.L10.labGVal = "3.7"; + this.L10.labTitleText = "L-10"; + this.L10.Location = new System.Drawing.Point(715, 801); + this.L10.Name = "L10"; + this.L10.Size = new System.Drawing.Size(220, 145); + this.L10.TabIndex = 38; + this.L10.tlpBackColor = System.Drawing.Color.Lime; + this.L10.tlpFBackColor = System.Drawing.Color.Lime; + this.L10.tlpGBackColor = System.Drawing.Color.Lime; + this.L10.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // FEHYLeftCarData + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(1920, 1080); + this.Controls.Add(this.L13); + this.Controls.Add(this.L14); + this.Controls.Add(this.L22); + this.Controls.Add(this.L16); + this.Controls.Add(this.L18); + this.Controls.Add(this.L15); + this.Controls.Add(this.L21); + this.Controls.Add(this.L12); + this.Controls.Add(this.L08); + this.Controls.Add(this.L01); + this.Controls.Add(this.L03); + this.Controls.Add(this.L02); + this.Controls.Add(this.L04); + this.Controls.Add(this.L06); + this.Controls.Add(this.labVIN); + this.Controls.Add(this.L10); + this.Controls.Add(this.label3); + this.Controls.Add(this.btnRefresh); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.pbLeftCar); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9F); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximumSize = new System.Drawing.Size(1920, 1080); + this.Name = "FEHYLeftCarData"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "左侧车身测量数据"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FEHYLeftCarData_FormClosing); + this.Load += new System.EventHandler(this.FEHYLeftCarData_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLeftCar)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label labVIN; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Timer tmrRefreshData; + private System.Windows.Forms.PictureBox pbLeftCar; + private UserControlClass.UCVWNextSense L10; + private UserControlClass.UCVWNextSense L03; + private UserControlClass.UCVWNextSense L06; + private UserControlClass.UCVWNextSense L04; + private UserControlClass.UCVWNextSense L02; + private UserControlClass.UCVWNextSense L01; + private UserControlClass.UCVWNextSense L08; + private UserControlClass.UCVWNextSense L12; + private UserControlClass.UCVWNextSense L21; + private UserControlClass.UCVWNextSense L15; + private UserControlClass.UCVWNextSense L18; + private UserControlClass.UCVWNextSense L16; + private UserControlClass.UCVWNextSense L22; + private UserControlClass.UCVWNextSense L14; + private UserControlClass.UCVWNextSense L13; + } +} diff --git a/Analysis/CarDataDisplayForm/FEHYLeftCarData.resx b/Analysis/CarDataDisplayForm/FEHYLeftCarData.resx new file mode 100644 index 0000000..50cce2e --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEHYLeftCarData.resx @@ -0,0 +1,2182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + 17, 17 + + + + /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYa + HSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgo + KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAKSBNcDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6popssiRIWkYKPUmq/wDaFt/z2j/76oAtUVV/tC2/57R/99Uf + 2hbf89o/++qALVFVf7Qtv+e0f/fVH9oW3/PaP/vqgC1RVX+0Lb/ntH/31R/aFt/z2j/76oAtUVV/tC2/ + 57R/99Uf2hbf89o/++qALVFVf7Qtv+e0f/fVH9oW3/PaP/vqgC1RVX+0Lb/ntH/31R/aFt/z2j/76oAt + UVV/tC2/57R/99Uf2hbf89o/++qALVFVf7Qtv+e0f/fVH9oW3/PaP/vqgC1RVX+0Lb/ntH/31R/aFt/z + 2j/76oAtUVV/tC2/57R/99Uf2hbf89o/++qALVFVf7Qtv+e0f/fVH9oW3/PaP/vqgC1RVX7fbf8APaP/ + AL6q0DkAjoaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii + gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii + gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii + gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii + gAooooAKKKKACiiigAooooAKKKKACiiigAooooA57xx/yA5PqK86hieV1jiQu7dAK9F8cf8AIDk/3hWZ + 4XtkXQLi4tQGuyCMnnH0oAwxojQoGvbmG1z0Ut835U0x6RF96S4nI9ABWdcmd5yZw5lPUNnNb2i+GnuV + FzfEwW684PU0AJpdvZ3su2205zGPvSu5wK1W03RZg0VqI5LleqeZ1rK1jWk8s2WmL5dsvDMOrVz6O0bh + kJDA5B70AbFythbzNFdadPA47hutRrbaTMf3dzPCx/56dK1dOv7bW4hZ6oAJ8Yjl6Z9qy9a0K50tixBk + h7OKAGXGizohltnW6i7mNs4rOIwcNuU+h4rQ0Br3+0oPsW7lhuHYj3rT8c2sEF3C8QCyyA71HSgDm8Cr + 0Gj388YkitJWQ9Dim6LHFJqtuk/+rLfnWr4kvNQj1WWNGmSFcbAnTHrxQBnf2FqX/PnL+VQJp1y8zRLC + 5kQZYAdBT/7Q1H/ntcfma2PBhZ9RuTMW3GM5LUAc0VwcHrUttay3Unl26F3xnArYaz0TzWJvZf8AvmtT + w7b6ZHqStZXMjy7T8pGO1AHK29jc3MjxwQPI6feA7VbGg6kR/wAecn5V0ei7Vs9WeR2jzM2XUciqoltP + +gpe/k1AGHNo1/DE0ktrIqL1JFMttLvLqESW8DyKeOKt6xOQmy2ubqZD97eDir9lawW2jQXc2oTwJKfu + p0zQBlf2Fqf/AD6SflUMul3kLKs0LIW4XI6mtzz9P/6C9z+tP8SyJZaVFZrI8/m/OsrdvoaAOau7S4tG + C3ETIT0yKjhjeaVY4lLO3QAVv6VqguljsNUHmxv8qP8AxLVnUGtvDe63sk8y8dQTK/OwGgDm7mzntZUW + 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 + ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKADFFFFA + CUtFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU + AFFFFABRRRQAUUUUAFFFFABRRRQAUUZooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo + oAKKKKACiiigAooooAKKKKACiiigAooooAKKKx9Z8Sado91DbXrXRuJUMiR29pNcNtBAJIjRsDJHWgDY + ormv+E20j/nnrP8A4Jrz/wCNUf8ACbaR/wA8tZ/8E15/8aoA6Wiua/4TbSP+ees/+Ca8/wDjVH/CbaR/ + zz1n/wAE15/8aoA6Wiua/wCE20j/AJ56z/4Jrz/41R/wm2kf889Z/wDBNef/ABqgDpaK5r/hNtI/556z + /wCCa8/+NUf8JtpH/PPWf/BNef8AxqgDpaK5r/hNtI/556z/AOCa8/8AjVH/AAm2kf8APPWf/BNef/Gq + AOlormv+E20j/nnrP/gmvP8A41R/wm2kf889Z/8ABNef/GqAOloqppOo2urafDfafL5trMCUfaVJwcHI + IBByDwRVugAooooAKKKKACiiigAooooAKKKKACisvWfEGl6LNbxaldCGWdWaNNjMzBdoY4UHgbl/MVQ/ + 4Tfw/wD8/wA3/gPL/wDE0AdHRXN/8Jv4f/5/n/8AAeX/AOJo/wCE38P/APP8/wD4Dy//ABNAHSUVzf8A + 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 + UtA4PldyK1njubeOaBg8UihlYdwalrGiB0nUTGeLG7clCTxFKeSPoxOfrn1ArZpJjnHl22CiiimSFFFF + ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF + ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABVLVbs2dk8qANKS + EjQnG5ycKPzP9au1jr/xMNZZxgwWPyr/ALUrDk/8BU4/4E3pSbLgle72Rc0u0FjYxQby7KCXcjG9ics3 + 4kk/jVygUUWJbbd2FFFFAgooopgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRQaACsvVriRnjs + bRttzODlx/yyQdW+vYe/sDVu/u47O2eeQMQuAFUZLEnAUe5JAqtpVo8CyXF1ta9uCGlYdBjoo9gPz5Pe + lK+yLgkveZdtLaK0t44LdAkSDCqO1S0lFFiW29WLRRRQIKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFF + FABRRRQAUYooNABisfS/9O1C5vzkxr+4t+eAoPzt+LDH0VTUuu3EkdqsFs2Lq5byYiOoJ6t+Cgt+FW7O + 2jtLaK3gXbFEoRV9AOlJmq92DfV/1/XzJ6KKKZkFFFFAC0UUUAFFFFABRRRQAUYHpRRQAYHoKTaPQUtF + ADSintTTChqSigCLyEpfJT0qSigBojUdqXaPSlzRkUAFFGRRkUAFZV6NviDTH/6ZTx/idh/9lNauRWTq + 3y6jozelywP0MT/1xUy2NKXxfJ/ka2KMCiimZiUUUUwFooooAKKKKACiiigAooooAKKKKACiiigAoooo + AKKKKACiiigCve2sV5bSQTDMbjBwefqD2PvVTRrqRvMsrxs3lvgM2MeYpztf8QOfQg+1adZmsWsknk3V + moN5b52DON6nG5CffHXsQDQaQaa5JbfqadFVrK6iu7WOeEko4yM8Eex9+2Ks0ENNOzCiiigQUUUUAFFF + FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF + FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRXOS+NNHjubiADVJnglaGRoNKupkDqcMA6RlTg8cE0Ad + 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 + kVLRQBF9mg/54x/98ij7NB/zxj/75FS0UARfZoP+eMf/AHyKPs0H/PGP/vkVLRQBF9mg/wCeMf8A3yKP + s0H/ADxj/wC+RUtFAEX2aD/njH/3yKPs0H/PGP8A75FS0UARfZoP+eMf/fIo+zQf88Y/++RUtFAEYgiH + SNB+FSUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAYoxRRQAYoxRRQAYoxRRQAYooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA + KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k= + + + + 36 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/CarDataDisplayForm/FEHYRightCarData.cs b/Analysis/CarDataDisplayForm/FEHYRightCarData.cs new file mode 100644 index 0000000..944d868 --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEHYRightCarData.cs @@ -0,0 +1,322 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using DAL; +using UserControlClass; +using BaseFunction; + +namespace NSAnalysis +{ + public partial class FEHYRightCarData : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private DataTable dtVINData = new DataTable(); + private string strLastVIN = ""; + CenterControl gCC = null; + #endregion 全局变量 + + #region 初始化控件 + + #endregion 初始化控件 + + public FEHYRightCarData(CenterControl cc) + { + InitializeComponent(); + gCC = cc; + } + + /// + /// 指定屏幕显示 + /// + public void SpecifyScreenDisplay1() + { + try + { + Screen[] screens = Screen.AllScreens; + // 指定显示在第二个显示器 + Screen secondScreen = screens[1]; //1 + + // 设置窗体位置和大小 + this.StartPosition = FormStartPosition.Manual; + this.Left = secondScreen.WorkingArea.Left; + this.Top = secondScreen.WorkingArea.Top; + this.Width = secondScreen.WorkingArea.Width; + this.Height = secondScreen.WorkingArea.Height; + this.Show(); + } + catch { } + } + #region 初始化控件 + + + private void InitNextSenseControl() + { + string strNSName = ""; + UCVWNextSense ucns = null; + for (int i = 1; i <= 25; i++) + { + strNSName = "";//L0" + i.ToString(); + if (i <= 9) + strNSName = "R0" + i.ToString(); + else + { + strNSName = "R" + i.ToString(); + } + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + ucns.tlpBackColor = Color.White; + ucns.tlpFBackColor = Color.White; + ucns.tlpGBackColor = Color.White; + ucns.labFVal = ""; + ucns.labFLowerUpper = ""; + ucns.labGVal = ""; + ucns.labGLowerUpper = ""; + } + } + } + + #endregion 初始化控件 + + private void FEHYRightCarData_Load(object sender, EventArgs e) + { + //InitNextSenseOneItemControl(); + InitNextSenseControl(); + labVIN.Text = ""; + tmrRefreshData.Interval = 1100; + tmrRefreshData.Start(); + SpecifyScreenDisplay1(); + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + SpecifyScreenDisplay1(); + string strVIN = tmdal.SelectMaintenanceStation7VIN(); + if (strVIN.ToLower().Contains("empty")) + { + labVIN.Text = "VIN码为空"; + InitNextSenseControl(); + } + else + { + if (strVIN.Length == 17) + { + string strSubVIN = strVIN;//.Substring(0, strVIN.Length - 2); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = tmdal.SelectCarTypeByVIN(strSubVIN); + MyBase.TraceWriteLine("Right EHY UI Refresh Button (strVIN.Length==17):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EHY")) + { + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "R"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + } + } + if (strVIN.Length == 21) + { + string strSubVIN = strVIN.Substring(0, 17); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = strVIN.Substring(18, 3); + MyBase.TraceWriteLine("Right EHY UI Refresh Button (strVIN.Length==21):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EHY")) + { + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "R"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + } + } + } + } + + private void tmrRefreshData_Tick(object sender, EventArgs e) + { + tmrRefreshData.Stop(); + string strVIN = tmdal.SelectMaintenanceStation7VIN(); + if (strLastVIN != strVIN) + { + if (strVIN.ToLower().Contains("empty")) + { + labVIN.Text = "VIN码为空"; + //InitNextSenseOneItemControl(); + InitNextSenseControl(); + } + else + { + if (strVIN.Length == 17) + { + string strSubVIN = strVIN;//.Substring(0, strVIN.Length - 2); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = tmdal.SelectCarTypeByVIN(strSubVIN); + MyBase.TraceWriteLine("Right EHY UI Refresh tmrRefreshData (strVIN.Length==17):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EHY")) + { + SpecifyScreenDisplay1(); + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "R"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + gCC.ShowCarMeasureDataByCarType(2); + } + } + if (strVIN.Length == 21) + { + string strSubVIN = strVIN.Substring(0, 17); + dtVINData.Clear(); + labVIN.Text = strSubVIN; + string strCarType = strVIN.Substring(18, 3); + MyBase.TraceWriteLine("Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:" + strCarType + " ;VIN: " + strSubVIN); + if (strCarType.ToUpper().Contains("EHY")) + { + SpecifyScreenDisplay1(); + dtVINData = tmdal.SelectTMeasureDataByCarIDAndMPN(strSubVIN, "R"); + if (dtVINData.Rows.Count > 0) + { + refreshCarUIData(dtVINData); + analysisTitleColor(); + } + else + { + InitNextSenseControl(); + } + gCC.ShowCarMeasureDataByCarType(2); + } + } + } + } + strLastVIN = strVIN; + tmrRefreshData.Start(); + } + + private Color analysisColorbyStatus(string strStatus) + { + Color colStatus = new Color(); + switch (strStatus.ToLower()) + { + case "best": + colStatus = Color.Lime; + break; + + case "good": + colStatus = Color.Lime; + break; + + case "ng1": + colStatus = Color.Yellow; + break; + + case "ng2": + colStatus = Color.Red; + break; + + default: + colStatus = Color.LightGray; + break; + } + return colStatus; + } + + private void analysisTitleColor() + { + string strNSName = ""; + UCVWNextSense ucns = null; + for (int i = 1; i <= 25; i++) + { + if (i <= 9) + strNSName = "R0" + i.ToString(); + else + { + strNSName = "R" + i.ToString(); + } + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + if (ucns.tlpFBackColor == Color.Red || ucns.tlpGBackColor == Color.Red) + { + ucns.tlpBackColor = Color.Red; + } + else if (ucns.tlpFBackColor == Color.LightGray && ucns.tlpGBackColor == Color.LightGray) + { + ucns.tlpBackColor = Color.LightGray; + } + else if (ucns.tlpFBackColor == Color.Yellow && ucns.tlpGBackColor == Color.Yellow) + { + ucns.tlpBackColor = Color.Yellow; + } + else + { + ucns.tlpBackColor = Color.Lime; + } + } + } + } + + private void refreshCarUIData(DataTable dtData) + { + string strNSName = ""; + string strFGName = ""; + UCVWNextSense ucns = null; + for (int i = 0; i < dtData.Rows.Count; i++) + { + strNSName = dtData.Rows[i]["MeasPointName"].ToString().Replace("-", ""); + strFGName = dtData.Rows[i]["DimensionName"].ToString(); + ucns = ((UCVWNextSense)MyBase.GetChildControl(this, strNSName)); + if (ucns != null) + { + if (strFGName == "F") + { + ucns.labFVal = dtData.Rows[i]["MeasureValue"].ToString(); + ucns.labFLowerUpper = dtData.Rows[i]["LowerTolVal"].ToString() + "/" + dtData.Rows[i]["UpperTolVal"].ToString(); + ucns.tlpFBackColor = analysisColorbyStatus(dtData.Rows[i]["MeasureItemResult"].ToString()); + } + else + { + ucns.labGVal = dtData.Rows[i]["MeasureValue"].ToString(); + ucns.labGLowerUpper = dtData.Rows[i]["LowerTolVal"].ToString() + "/" + dtData.Rows[i]["UpperTolVal"].ToString(); + ucns.tlpGBackColor = analysisColorbyStatus(dtData.Rows[i]["MeasureItemResult"].ToString()); + } + } + } + } + + private void FEHYRightCarData_FormClosing(object sender, FormClosingEventArgs e) + { + e.Cancel = true; + this.Hide(); + } + } +} \ No newline at end of file diff --git a/Analysis/CarDataDisplayForm/FEHYRightCarData.designer.cs b/Analysis/CarDataDisplayForm/FEHYRightCarData.designer.cs new file mode 100644 index 0000000..3e4a35b --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEHYRightCarData.designer.cs @@ -0,0 +1,516 @@ +namespace NSAnalysis +{ + partial class FEHYRightCarData + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FEHYRightCarData)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.labVIN = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.tmrRefreshData = new System.Windows.Forms.Timer(this.components); + this.R14 = new UserControlClass.UCVWNextSense(); + this.R15 = new UserControlClass.UCVWNextSense(); + this.R16 = new UserControlClass.UCVWNextSense(); + this.R18 = new UserControlClass.UCVWNextSense(); + this.R10 = new UserControlClass.UCVWNextSense(); + this.R08 = new UserControlClass.UCVWNextSense(); + this.R12 = new UserControlClass.UCVWNextSense(); + this.R13 = new UserControlClass.UCVWNextSense(); + this.R04 = new UserControlClass.UCVWNextSense(); + this.R02 = new UserControlClass.UCVWNextSense(); + this.R01 = new UserControlClass.UCVWNextSense(); + this.R03 = new UserControlClass.UCVWNextSense(); + this.R06 = new UserControlClass.UCVWNextSense(); + this.btnRefresh = new System.Windows.Forms.Button(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.pbRightCar = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbRightCar)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(1918, 37); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "右侧车身测量数据"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "右侧车身测量数据"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(875, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(20, 14, 20, 14); + this.label2.Size = new System.Drawing.Size(40, 50); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(911, 7); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(164, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "右侧车身测量数据"; + // + // labVIN + // + this.labVIN.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labVIN.AutoSize = true; + this.labVIN.Font = new System.Drawing.Font("Segoe UI", 58F); + this.labVIN.Location = new System.Drawing.Point(760, 970); + this.labVIN.Name = "labVIN"; + this.labVIN.Size = new System.Drawing.Size(838, 104); + this.labVIN.TabIndex = 32; + this.labVIN.Text = "LNNACDEBXRDA20251"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 58F); + this.label3.Location = new System.Drawing.Point(500, 969); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(253, 104); + this.label3.TabIndex = 33; + this.label3.Text = "VIN:"; + // + // tmrRefreshData + // + this.tmrRefreshData.Interval = 1000; + this.tmrRefreshData.Tick += new System.EventHandler(this.tmrRefreshData_Tick); + // + // R14 + // + this.R14.BackColor = System.Drawing.Color.White; + this.R14.ForeColor = System.Drawing.Color.Black; + this.R14.labFLowerUpper = "-2.0/2.0"; + this.R14.labFText = "F"; + this.R14.labFVal = "-0.7"; + this.R14.labGLowerUpper = "1.0/6.0"; + this.R14.labGText = "G"; + this.R14.labGVal = "3.4"; + this.R14.labTitleText = "R-14"; + this.R14.Location = new System.Drawing.Point(280, 115); + this.R14.Name = "R14"; + this.R14.Size = new System.Drawing.Size(220, 145); + this.R14.TabIndex = 34; + this.R14.tlpBackColor = System.Drawing.Color.Lime; + this.R14.tlpFBackColor = System.Drawing.Color.Lime; + this.R14.tlpGBackColor = System.Drawing.Color.Lime; + this.R14.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R15 + // + this.R15.BackColor = System.Drawing.Color.White; + this.R15.ForeColor = System.Drawing.Color.Black; + this.R15.labFLowerUpper = "-2.0/2.0"; + this.R15.labFText = "F"; + this.R15.labFVal = "-1.4"; + this.R15.labGLowerUpper = "1.0/6.0"; + this.R15.labGText = "G"; + this.R15.labGVal = "4.2"; + this.R15.labTitleText = "R-15"; + this.R15.Location = new System.Drawing.Point(4, 113); + this.R15.Name = "R15"; + this.R15.Size = new System.Drawing.Size(220, 145); + this.R15.TabIndex = 35; + this.R15.tlpBackColor = System.Drawing.Color.Lime; + this.R15.tlpFBackColor = System.Drawing.Color.Lime; + this.R15.tlpGBackColor = System.Drawing.Color.Lime; + this.R15.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R16 + // + this.R16.BackColor = System.Drawing.Color.White; + this.R16.ForeColor = System.Drawing.Color.Black; + this.R16.labFLowerUpper = "-2.0/2.0"; + this.R16.labFText = "F"; + this.R16.labFVal = "-0.9mm"; + this.R16.labGLowerUpper = "1.0/6.0"; + this.R16.labGText = "G"; + this.R16.labGVal = "2.5mm"; + this.R16.labTitleText = "R-16"; + this.R16.Location = new System.Drawing.Point(3, 358); + this.R16.Name = "R16"; + this.R16.Size = new System.Drawing.Size(220, 145); + this.R16.TabIndex = 37; + this.R16.tlpBackColor = System.Drawing.Color.Lime; + this.R16.tlpFBackColor = System.Drawing.Color.Lime; + this.R16.tlpGBackColor = System.Drawing.Color.Lime; + this.R16.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R18 + // + this.R18.BackColor = System.Drawing.Color.White; + this.R18.ForeColor = System.Drawing.Color.Black; + this.R18.labFLowerUpper = "-2.0/2.0"; + this.R18.labFText = "F"; + this.R18.labFVal = "-2.0"; + this.R18.labGLowerUpper = "1.0/6.0"; + this.R18.labGText = "G"; + this.R18.labGVal = "3.8"; + this.R18.labTitleText = "R-18"; + this.R18.Location = new System.Drawing.Point(2, 560); + this.R18.Name = "R18"; + this.R18.Size = new System.Drawing.Size(220, 145); + this.R18.TabIndex = 38; + this.R18.tlpBackColor = System.Drawing.Color.Lime; + this.R18.tlpFBackColor = System.Drawing.Color.Lime; + this.R18.tlpGBackColor = System.Drawing.Color.Lime; + this.R18.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R10 + // + this.R10.BackColor = System.Drawing.Color.White; + this.R10.ForeColor = System.Drawing.Color.Black; + this.R10.labFLowerUpper = "-2.0/2.0"; + this.R10.labFText = "F"; + this.R10.labFVal = "0.2mm"; + this.R10.labGLowerUpper = "1.0/6.0"; + this.R10.labGText = "G"; + this.R10.labGVal = "2.9mm"; + this.R10.labTitleText = "R-10"; + this.R10.Location = new System.Drawing.Point(844, 799); + this.R10.Name = "R10"; + this.R10.Size = new System.Drawing.Size(220, 145); + this.R10.TabIndex = 42; + this.R10.tlpBackColor = System.Drawing.Color.Lime; + this.R10.tlpFBackColor = System.Drawing.Color.Lime; + this.R10.tlpGBackColor = System.Drawing.Color.Lime; + this.R10.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R08 + // + this.R08.BackColor = System.Drawing.Color.White; + this.R08.ForeColor = System.Drawing.Color.Black; + this.R08.labFLowerUpper = "-2.0/2.0"; + this.R08.labFText = "F"; + this.R08.labFVal = "0.1"; + this.R08.labGLowerUpper = "1.0/6.0"; + this.R08.labGText = "G"; + this.R08.labGVal = "2.8"; + this.R08.labTitleText = "R-08"; + this.R08.Location = new System.Drawing.Point(856, 99); + this.R08.Name = "R08"; + this.R08.Size = new System.Drawing.Size(220, 145); + this.R08.TabIndex = 44; + this.R08.tlpBackColor = System.Drawing.Color.Lime; + this.R08.tlpFBackColor = System.Drawing.Color.Lime; + this.R08.tlpGBackColor = System.Drawing.Color.Lime; + this.R08.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R12 + // + this.R12.BackColor = System.Drawing.Color.White; + this.R12.ForeColor = System.Drawing.Color.Black; + this.R12.labFLowerUpper = "-2.0/2.0"; + this.R12.labFText = "F"; + this.R12.labFVal = "0.2mm"; + this.R12.labGLowerUpper = "1.0/6.0"; + this.R12.labGText = "G"; + this.R12.labGVal = "3.5mm"; + this.R12.labTitleText = "R-12"; + this.R12.Location = new System.Drawing.Point(560, 99); + this.R12.Name = "R12"; + this.R12.Size = new System.Drawing.Size(220, 145); + this.R12.TabIndex = 46; + this.R12.tlpBackColor = System.Drawing.Color.Lime; + this.R12.tlpFBackColor = System.Drawing.Color.Lime; + this.R12.tlpGBackColor = System.Drawing.Color.Lime; + this.R12.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R13 + // + this.R13.BackColor = System.Drawing.Color.White; + this.R13.ForeColor = System.Drawing.Color.Black; + this.R13.labFLowerUpper = "-4.0/1.0"; + this.R13.labFText = "F"; + this.R13.labFVal = "-0.6"; + this.R13.labGLowerUpper = "3.0/9.0"; + this.R13.labGText = "G"; + this.R13.labGVal = "7.3"; + this.R13.labTitleText = "R-13"; + this.R13.Location = new System.Drawing.Point(457, 799); + this.R13.Name = "R13"; + this.R13.Size = new System.Drawing.Size(220, 145); + this.R13.TabIndex = 47; + this.R13.tlpBackColor = System.Drawing.Color.Lime; + this.R13.tlpFBackColor = System.Drawing.Color.Lime; + this.R13.tlpGBackColor = System.Drawing.Color.Lime; + this.R13.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R04 + // + this.R04.BackColor = System.Drawing.Color.White; + this.R04.ForeColor = System.Drawing.Color.Black; + this.R04.labFLowerUpper = "-2.0/2.0"; + this.R04.labFText = "F"; + this.R04.labFVal = "0.5mm"; + this.R04.labGLowerUpper = "1.0/6.0"; + this.R04.labGText = "G"; + this.R04.labGVal = "3.5mm"; + this.R04.labTitleText = "R-04"; + this.R04.Location = new System.Drawing.Point(1128, 111); + this.R04.Name = "R04"; + this.R04.Size = new System.Drawing.Size(220, 145); + this.R04.TabIndex = 48; + this.R04.tlpBackColor = System.Drawing.Color.Lime; + this.R04.tlpFBackColor = System.Drawing.Color.Lime; + this.R04.tlpGBackColor = System.Drawing.Color.Lime; + this.R04.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R02 + // + this.R02.BackColor = System.Drawing.Color.White; + this.R02.ForeColor = System.Drawing.Color.Black; + this.R02.labFLowerUpper = "-2.0/2.0"; + this.R02.labFText = "F"; + this.R02.labFVal = "-0.5mm"; + this.R02.labGLowerUpper = "1.0/6.0"; + this.R02.labGText = "G"; + this.R02.labGVal = "4.0mm"; + this.R02.labTitleText = "R-02"; + this.R02.Location = new System.Drawing.Point(1688, 115); + this.R02.Name = "R02"; + this.R02.Size = new System.Drawing.Size(220, 145); + this.R02.TabIndex = 49; + this.R02.tlpBackColor = System.Drawing.Color.Lime; + this.R02.tlpFBackColor = System.Drawing.Color.Lime; + this.R02.tlpGBackColor = System.Drawing.Color.Lime; + this.R02.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R01 + // + this.R01.BackColor = System.Drawing.Color.White; + this.R01.ForeColor = System.Drawing.Color.Black; + this.R01.labFLowerUpper = "-2.0/2.0"; + this.R01.labFText = "F"; + this.R01.labFVal = "0.4mm"; + this.R01.labGLowerUpper = "1.0/6.0"; + this.R01.labGText = "G"; + this.R01.labGVal = "3.7mm"; + this.R01.labTitleText = "R-01"; + this.R01.Location = new System.Drawing.Point(1687, 723); + this.R01.Name = "R01"; + this.R01.Size = new System.Drawing.Size(220, 145); + this.R01.TabIndex = 55; + this.R01.tlpBackColor = System.Drawing.Color.Lime; + this.R01.tlpFBackColor = System.Drawing.Color.Lime; + this.R01.tlpGBackColor = System.Drawing.Color.Lime; + this.R01.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R03 + // + this.R03.BackColor = System.Drawing.Color.White; + this.R03.ForeColor = System.Drawing.Color.Black; + this.R03.labFLowerUpper = "-3.0/2.0"; + this.R03.labFText = "F"; + this.R03.labFVal = "0.5mm"; + this.R03.labGLowerUpper = "1.0/6.0"; + this.R03.labGText = "G"; + this.R03.labGVal = "3.2mm"; + this.R03.labTitleText = "R-03"; + this.R03.Location = new System.Drawing.Point(1393, 115); + this.R03.Name = "R03"; + this.R03.Size = new System.Drawing.Size(220, 145); + this.R03.TabIndex = 56; + this.R03.tlpBackColor = System.Drawing.Color.Lime; + this.R03.tlpFBackColor = System.Drawing.Color.Lime; + this.R03.tlpGBackColor = System.Drawing.Color.Lime; + this.R03.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // R06 + // + this.R06.BackColor = System.Drawing.Color.White; + this.R06.ForeColor = System.Drawing.Color.Black; + this.R06.labFLowerUpper = "-2.0/2.0"; + this.R06.labFText = "F"; + this.R06.labFVal = "0.1mm"; + this.R06.labGLowerUpper = "1.0/6.0"; + this.R06.labGText = "G"; + this.R06.labGVal = "3.6mm"; + this.R06.labTitleText = "R-06"; + this.R06.Location = new System.Drawing.Point(1186, 799); + this.R06.Name = "R06"; + this.R06.Size = new System.Drawing.Size(220, 145); + this.R06.TabIndex = 57; + this.R06.tlpBackColor = System.Drawing.Color.Lime; + this.R06.tlpFBackColor = System.Drawing.Color.Lime; + this.R06.tlpGBackColor = System.Drawing.Color.Lime; + this.R06.tlpTitleBackSize = new System.Drawing.Size(216, 49); + // + // btnRefresh + // + this.btnRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefresh.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.btnRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnRefresh.Font = new System.Drawing.Font("宋体", 3F); + this.btnRefresh.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.btnRefresh.Image = global::NSAnalysis.Properties.Resources.Refresh64; + this.btnRefresh.Location = new System.Drawing.Point(1705, 978); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(92, 97); + this.btnRefresh.TabIndex = 31; + this.btnRefresh.UseVisualStyleBackColor = false; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // pictureBox2 + // + this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.pictureBox2.Image = global::NSAnalysis.Properties.Resources.hexagonlogotransparent; + this.pictureBox2.Location = new System.Drawing.Point(98, 982); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(316, 83); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox2.TabIndex = 30; + this.pictureBox2.TabStop = false; + // + // pbRightCar + // + this.pbRightCar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pbRightCar.Image = ((System.Drawing.Image)(resources.GetObject("pbRightCar.Image"))); + this.pbRightCar.Location = new System.Drawing.Point(2, 40); + this.pbRightCar.Name = "pbRightCar"; + this.pbRightCar.Size = new System.Drawing.Size(1916, 923); + this.pbRightCar.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbRightCar.TabIndex = 2; + this.pbRightCar.TabStop = false; + // + // FEHYRightCarData + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(1920, 1080); + this.Controls.Add(this.R02); + this.Controls.Add(this.R06); + this.Controls.Add(this.R03); + this.Controls.Add(this.R01); + this.Controls.Add(this.R04); + this.Controls.Add(this.R13); + this.Controls.Add(this.R12); + this.Controls.Add(this.R08); + this.Controls.Add(this.R10); + this.Controls.Add(this.R18); + this.Controls.Add(this.R16); + this.Controls.Add(this.R15); + this.Controls.Add(this.R14); + this.Controls.Add(this.label3); + this.Controls.Add(this.labVIN); + this.Controls.Add(this.btnRefresh); + this.Controls.Add(this.pictureBox2); + this.Controls.Add(this.pbRightCar); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9F); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximumSize = new System.Drawing.Size(1920, 1080); + this.Name = "FEHYRightCarData"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "右侧车身测量数据"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FEHYRightCarData_FormClosing); + this.Load += new System.EventHandler(this.FEHYRightCarData_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbRightCar)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private System.Windows.Forms.PictureBox pbRightCar; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.Label labVIN; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Timer tmrRefreshData; + private UserControlClass.UCVWNextSense R14; + private UserControlClass.UCVWNextSense R15; + private UserControlClass.UCVWNextSense R16; + private UserControlClass.UCVWNextSense R18; + private UserControlClass.UCVWNextSense R10; + private UserControlClass.UCVWNextSense R08; + private UserControlClass.UCVWNextSense R12; + private UserControlClass.UCVWNextSense R13; + private UserControlClass.UCVWNextSense R04; + private UserControlClass.UCVWNextSense R02; + private UserControlClass.UCVWNextSense R01; + private UserControlClass.UCVWNextSense R03; + private UserControlClass.UCVWNextSense R06; + } +} diff --git a/Analysis/CarDataDisplayForm/FEHYRightCarData.resx b/Analysis/CarDataDisplayForm/FEHYRightCarData.resx new file mode 100644 index 0000000..0a028bc --- /dev/null +++ b/Analysis/CarDataDisplayForm/FEHYRightCarData.resx @@ -0,0 +1,2229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + 17, 17 + + + + /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYa + HSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgo + KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAKQBRIDASIAAhEBAxEB/8QA + HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh + MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW + V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG + x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF + BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV + YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE + hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq + 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6nT/Vj6U7uaan+rH0p3c0AAooHSuI1jxRe2mpTW8SRlEPdaAO + 3orzweL9Q/uRflTo/FepyNtjhR29FGaAPQaK4qPWdecZFooHuMVPFqWuyHAhgB9CaAOuorkptQ1+JgHg + hGfeon1bX16Wsbf7vNAHZUVwM3ibWIT++tVT3IqL/hMNQ/55x/lQB6HRXnn/AAmGof8APOP8qP8AhMNQ + /wCecf5UAeh0V55/wl+of884fyo/4S/UP+eUP5UAeh0V55/wl+of88ofyo/4S/UP+eUP5UAeh0V55/wl + +of88ofyo/4S/UP+eUP5UAeh0V55/wAJfqH/ADyh/Kj/AIS/UP8AnlD+VAHodFeef8JfqH/PKH8qP+Ev + 1D/nlD+VAHodFeef8JfqH/PKH8qP+Ev1D/nlD+VAHodFeef8JfqH/PKH8qP+Ev1D/nlD+VAHodFcd4c8 + RXeo6j5EyRqMZ4Fb+ta3YaJarc6pcpbwswQM5wMmgDSorCm8VaTDr9torXKf2hcR+ZHHn7y1uUALRRWT + rviHTNBW3bVrpLZbiQRRs5wCx7UAa1FNjdZI0dCCjAMCO4NOoAKKxdL8T6Vqmr32m2dyJLuy/wBcv92k + 8Q+J9L8PtZrqlwITeSeVDn+JvT9aANuimI+aztG1/TdZkuo9Nuo53tX8uVVPKn3oA1KKxfEPifS/D8lg + mq3Aha+lEEGf4nPatqgAooooAKKKyrXxDpl3c39vbXUckthxcqp/1fGeaANWisW28U6Lc6cl/HqEH2R3 + Mays2AWHUVLaeItIvLhYLTUbWaVuiJICTQBq0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR + RTZX2Rs2C2ATgdTQA6iuB+H/AMT9J8YTX9n5cum6vZM4m0+64lVVJ+b3GMH2pv8AwuT4f/8AQz2P5n/C + gD0CiuR8PfEfwl4j1NNP0TW7a8vHBZYo85IAyT0qn4/+J+geBdQtLPXGnWa5jMkYjQtkA4NAHdUVwngv + 4o+HvF6Xs2mSTR2lntEtxcL5aBmOAuT3qpY/FTTpfHWt+H7y3Npb6XsD6hLMoiZnxsXHXJz+lAHo1FVN + S1G103TbjUL2ZYrOCJppJTyFQDJPHtXFf8Lk+H//AEM9j+bf4UAegUV5/wD8Lk+H/wD0M9j+bf4Uf8Lk + +H//AEM9j+bf4UAegUVU0rUrTVtOt7/Tp1ntLhd8Ui5wy+ozXJ6z8R9K0PxxbeHNYinsxdRBre+lGIJX + J/1YPrQB29FcR8RfiJY+Cp9KtZLS41HUNSm8qC0tSDIw7sB7cV2NpP8AaLeOQo0bMoYxv95c9j70ATUU + VwPxG+JNt4K1nQdLbTLrUr3V5THDFbsoYcgd+Dyw7igDvqKjt5DLbxSNG0bOoYo3VcjoakoAKK4bw/8A + EjTNc8fav4Wsra6afTQPMuVXdET3XI6GmfFb4i2/w9j0Z7rTp71dSuTbL5LhSjcY69etAHeUVzHgfxzo + PjS3uJNBvVmktnMc8RBV4z7g9veq/wATPHVp4A0e31PULG8urSScRSPbqD5IP8bZ7UAdfRXEz/FXwRbN + Etx4k0+IyxrKheTAKt0Oau6L8QvCetzyw6Tr1jdPEAz+XJkKD056UAdTRXD+E/HyeIPG/iHw6mnyRNo5 + XfceYGSQN0wMZq74y+IPhzwbeWdt4ivjaSXas0P7pn3Y6/dBoA6vNFecf8Lq8B/9Bpv/AAEm/wDiK0fD + vxS8I+I9Zh0rRtU+030wZlj8mROFGScsoFAHbUUUUAFFFFABRUck8URxLLGh/wBpgKal1buwVJ4mY9lY + GgCaimedEZNgkTeP4c80sjhFLMQAOpJwBQA6iojcQhA5ljCHo24YqUEEAg5B9KACimLNG0hQOpcdVzzT + 6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK + KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAbH/ + AKtfpThTY/8AVr9KcKACvL9fieXxJcRRjc7sABXqFea6vdfYvFb3GN2x849aALE9hY6GiPeqbi6bkRnh + RWfda7cyDbDst07LGBxXTalaWviaKKe0nVbhB0J/SqGm+DpvPDXzqIx2U8mgDI0221HVptqSPs7ux4Fa + 1zdW3h9BDaYnvP45GOQKteJ9Q/sq1Sw0+MxhhhmA6CuKZssWYksepNAHTWmuR6gDb6yoZW+7KOCtVdU0 + m80399azyPbtyrKelYfUV0nhTVpkuFspgZYJOACM7aAMu31m9hPMgkHo4zWjZPYazMIJoRa3LD5JE6E+ + 4rX13wok7NNp5CueSnY1HpHh+LS5BeanMuY+QvYUAcxqdhNp120M4JI6HsaitYXurqOCMfM5xWh4o1Rd + T1APD/qkG1T6+9UdNuvsd/BcYyEPP0oA2bu00TTZPs915k1wPvEcYqHzNA/54TfnVu/06z1O5a7t76KI + yclXPINVT4ei/wCglB/31QBHp0Flf66kEULra7c47k1Sv7KaK8njihlMYbCnb1FaWiRxaf4jRPtCMiLy + wPFLqPiK9W9nWKSIoG44oAybSzme4iV4JdrMAeO1bcmhQN4iFjEWSEJvPNVrPxHem7hWSSPyy4BO3Fba + 3cH/AAlhl86MoYsZz3oAzZINIilKm0umK8ZwaY66OF3NZ3QUdyDWtI928zFNUtgpOcE9KhuIbi6jMcms + WwjPBAPWgDnYPsj374t5GtuyjqPetPytI/59Lz/vk0vhhorHVLxXmUqIyFf1NVJPEWoCRgHiKAk9KAL0 + FnpN1KsItLtS5xuIPFVIrXTIb2bT7/Kspwkwbj8a0dB8QS3bzW15Kib1OyReNprl7sMl3KJH8zLfe/vU + AXtQ0W6tJ0SJTMjnEbL0P41ck0yy0y0DakxluXGREp6Vc8L6kY9Mu45p/mRSY93bjtXLTSvNM0krFmNA + G34KIOu5UYXacD0rifibcXvxB+JeneGdAWN7fRnW6upZM+WWH8BFdr4J/wCQ5/wE1ta/4e1T7cbjwxcW + envL/r2MWWkP1oA8a1lPFS/HXRA/2AaiLZhGVU7AMelev6f/AMJyL+E3z6a1ru/eBFw23vivHNd03xQv + x20WKTVrc6gbdikvlcKMc8V7PoWmeLLfUo5dW1a2urQfejSLBP0NAEnj3Q/7YggDeILjR/Lyd0TKN59O + a8J0Lw4vi7VNY0Dxt4kuj/Z8u+FxIvlyL2YH1rsf2k0F5d+ELA7iJtQG5Qcbl4yK9B/4Vp4TP3tGtf8A + vmgDxbwrbTax4z1TR7PxlexaDpaLGtyZFBaQdhnqK99Ok2+peHo7Ga8kuYiuPPRsM3vkVkr8MfCCbtmi + Wwz1wuM1H4zt4tD8Mxiw1iHw/Z2o++wBBHoM96APn2w0yHSvij4ptYlMsaEAedeNE3X171W+INsl5qXh + mCSNUWS92/u74zHnHbtVfw1qSNrXifxDd68sMTZ2Ge3/AHlxjkEA9BUfiy+TXPDuia5p+uRzTwT+a1ok + G2VOR0A69KAPqAWE3g7QZf7BtJtTmZgRDJOc/gTmvBfhfr2qWsfjof2SsEU08jTTNc7fJbngcc16t4B8 + T2o0K71rUPFkV7YouXEihDAfRh614z4Vxr9n4wtjod5d6ZdXMlzHekFEA5IOT1oA5/VPGSap4V8B2Np9 + ov8AV7PUvMIkyAzbhtXca97+FXjTxPrnj7xBovii3t7Y2SK6RQtu25PQmvHp7WZfhv8ADa4sdPmuDBqh + kkWCPc2Aw64r1v4W2N83xN8V6/qNo9hFfgC3gnIEjAHOcelAHRat4K8QXepT3Ft4xvbaGRtyxCJcJ7VW + /wCED8T/APQ9X3/fla9IEqH+JfzpfMj/ALyfnQByfhzwvqmm295HqPiO71AzLhGdApiPqMV826VYy2Hi + v4hWp1XWmeJiGltowxl+Xq/pX1tf30dnaSTlTLsGdkfLH6CvleBJZfFnje9uDrWnpfsXhjgwCwK4+cfW + gDktP08af4V8F6ldXN5fWs+qyK1ht46dgOpr0dbuwuPjv4a/svSLnS18l96Sps3dOcGuLtzqiab4G0C1 + tpLbW4dQluY2ulwjKRwc96768TxGnx58LL4nksnl8l/L+zZwBgdc0AfR9FFFABRRRQAUUUUAFFFFABRR + RQAUUUUAFFFFABRRRQAVyfxY1C80r4ceIL/TZ2t7y2tJJYpUxlWAyDzXWVxXxr/5JP4r/wCwfL/6DQB5 + j4b8baP4a8F+FPF3inTpdS8Qa5HJayX8EIaaTDEBSBgHIwPWrd18Q/B1tPZQXHw/vbN7udLeNr3SVhVm + Y/3mHPrXmniyVofg18JDDcQW8y37NHJOfkQiX7zew6mrvxI1nWtS1DwhFq3i7w1rcaaxCyw6X99Dn7zc + nigD0XSrKysv2nJIrKzgtY/7FRwkMaooJLdgK5/9oTXY/DXxZ8LavJnNrptzImFzl8fLx9a6iEf8ZRyf + 9gOP+bVg/G+70yy+NfguXXpY4tM+xTrO0h+XaeCDQB5rc2l3YfDrwrF4knS18K+IL9tS1K7gJeSV2+cR + lB0HA6dzWlba/wDDJvEPit9UuZZdC1eGKKG3WzkDW5jGAwPY96xV06/1f4RrFpcE0+jWviaR7VvOWHEG + 3ACsxGOSMe9VbzTLud9X0tdF8Ux31lCDcLPrS7It4whfJwQcigD6M+AdhcyeAZoLzVf7a0CaRo9NM8WH + +zYxtce53cH+tcn4l8WDT/GviHw/oHw30bVU0SFJ55sRx4jZA+cFe2T+Vei/AnS7vRvhbodhqMDW91DE + Q8bEEg7ieo4715za/wDJZvjF/wBgVP8A0QKAPM9K1LVIdR1D4oT+AtPufD1xAYoIPMjEcAB2khcZJyp5 + x3r0bw74z+2+LfDmja38NdG02PWl3wT/ALuTMeM7sBfbvXiEaaf/AMKc/wBT4y+3bW+Zd/8AZv8ArD/w + HH9c17Lcf8lM+Df/AGD/AP2maAPd/EOgWOoeF7nR2jaGxeIp5dufLIHouOlfJ+vR6PDazyXvgHxu8VmW + kWeW/nMUZXP7zJXgDGc19P8AxI0Wx1rRY11TXLzRLe3k85rm1uhbtgAjBb05r5V+Ictpe3kWleCNZ8a6 + 3p/meVqN558tzCYz1RVHDHr14oAzvBkNvd6PaahqvgrxjrWoFmaPUbW5mCFM4AUhT24r6i+C/hvT9O0M + azY2mr2M+op+9tNSuXmkjKsRzu5B4/WvCdFvPBnkGy0jUvim32X5HitQ+Ij6FV+7zng17P8AB/w3Zlk8 + Q2Gr+LJYyHg+ya3OxIPHzFD0NAEvxG8DeD/tV54m8U6jqdksrIskkV/JDGOAqjCn2rx/4dfDrTfG+q6/ + 4pP9rjw7ZbodISS8k8yUqMlxITkDI7cZPtUn7R0HxC1PRtUuNdNlp/hqwuI1jgt3J+17iMMc9ce/evSr + z4Y3VxpUVxpPi7WNF04WURj0+yC+VHtiGcA+pBP40Acz8H/Auh+O/DM2q3sOuaeUupLdUj1uaTdswCev + HORj2r0HxJA3wu+Feor4UtL3UJYAxgjeRppN8jY3EnJIBOcV5V8DPh9qmueCJLqz8b67pUYvriPyLbbt + JDctz3Ne6eJ7vVfDPgSabSbWbXNVtYFSOM8NO/A3H+ZoA+YvDmo6m+j6d4G8Mwavp/inWbtb7WNQuYGj + dFzksB12jA9M496Z8WvGes63beErK40DUlk0nUkVb68wi3sikKMfKByR79a634Y6f8TdO1vUtVu/C9lD + qWqz77vU9QlwYoyR8qID0AycVT+O2k/EO68IDWPEWoaQdNsbxJIYrGI+YqlwFk3HgYGDQB1fh/QPGc/x + Ms/FNx4Q0fQfMPlXjreb3kjJ5O0cFq6n4w+M7rwpeWa6z4fXUPBV2nk39yvztExPdMdMdz614/4b0i48 + afFaHT7DxDr/AIg0HT0jmvL2S72RrNnICgZU9hjvzXvXxi1618MfDXVr29hgugkIiSC4UMszngAjvQB8 + 46xHpHg74lanP4Y0+wvdMs9BW5tobseYjqShJ578msvxc63F14uuVtba0Fxp+nzmG2TbGpds4A/Grvjx + tYk1TVdd1vR7iyW78NxQZSFvIEr7AqK2MfhUPifTr2PS/EN/LbSLZNYabbrMcbTIm3cuR3FAHrXwdeHT + /ix8R22hIbeG2Yqg4CrH2FeefHfxtoXjPxL4dvdDu98WnI5mSbz7diSeFDKpI+or0j4Mssnxm+IxADI0 + dqRnuCtYX7S0+oJ498I6dpWqHTorm3k35vjZxHDDBZx0+tAHlH/CQ2/9z/yuX/8A8RWr8PPFOmaL8TtM + 8QajcrDZW8EsLotzc3bksMAgyJx9Kztci8QWPiPRtPTxZbMt4z7nh8TPJENuP9ZJ/wAs+vvmup8HLq2l + /FLwpbXniGK9trmWQvHaa416p2hcBx268etAH1R4Y16x8S6LBqulO72c+SjOhUnHsa1ax/FN3faV4av7 + vQ7Fb3UIYi8Fr0ErenFeT+H/AIgfFS912xttT+H8VpYTTKk04dj5aE8t17CgD3CiuQ+J2ueItA0CO78J + aKus3plCNbsxGEPVuK5b4b+MviDrniRbTxX4Oj0fTTGzG5VifmHQcnvQB5j+0HpVnr37Qvg3SdV3fYLu + 3jim2vtO0yPnntXq/gn4OeCvCuv2+saDHcfboAwRmuzIMMCDkfQ15L+0Potr4j/aE8HaRftItreW8UUh + jbawBkfoa9j+G3wi8PeANWuNS0Sa/kuJ4fIYXE29du4NwMDnIFAHmGguqftg6wzvtX7K33jgf6ta9d+M + VzC/wu8Tqk0TMbCXChxk8V8/674O07xz+1NrWkaw1wtqYPMzBJsbIRcc4PrXSfEL9n3wjoHgjXNVsZtW + a6s7V5oxJc5XIGRn5eaALXwx8HQeOv2ZbfSLhgs7tJJBKeqSKxIOf0qz8LPiomh/CvV7fxMQms+F1a1e + CRgGmK8J+vy/hXT/ALLn/JGdH/35f/QjXlfxu8J6ZcftEeFrRoSlvrLRteqhwJSG7/gBQB6D+zd4Tuo7 + G/8AG2viRta1+RpgJOfLhJ3DH1z+QFe20yGJIYkiiUJGgCqoGAAO1PoAKKKKACiiigAooooAKKKKACii + igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii + igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBsf+rX6U4U2P8A1a/SnCgArzfxHp15 + NrM7x28jIxyCBXpFFAHlEem6jEwaOCZWHcDFbFpqWv2ygNDJKB/eWu/ooA49dcvnXFzpDSf5+lO/tGJh + 8+hPn2A/wrrqKAOQF/AOmhy/p/hS/wBsXEZzb6K49DgD+lddRQBw91rGuyg+TZvGPpmsO6ttXu3LXCTs + T2xxXqmBRQB5J/ZV/j/j1l/75o/su/8A+fWX8q9booA8kGlXw6Wsw/A0v9l3/wDz7Tfka9aooA8l/su+ + zn7LLn1xSf2Ve8/6JLz/ALNet0UAeSf2Ve/8+cvHtS/2ZfZz9kmz64r1qigDyT+y7/8A59pqT+y7/wD5 + 9Zq9cooA8iGm36k4tJRnrgUf2Zff8+cn5V67RQB5ENMvgcizlB9hR/Zl9nP2OXP0r12igDyQabfDpayj + 8KT+zL3/AJ9Jfyr1vP1/KjP1/KgDz7whY3UGseZLA6JsIyRUd/o3xDkvJnsvEOmx2zMSiNbElR9c16LS + 0AeIXfw18c3PjC08RyeJtPF9bIUTFqcYPqM10cWi/Eb7RGZPEmmtEGBdfspG4dwOa9MooA8017wPf678 + TND1u/uYzpelxkrCF5eUjr19a9L7UYooATNYnizQbbX9MMFzBBO0bCSMTLlQw6EitygjNAHlGs+CfEWr + aTc2Mj+H0WeIxF0s8FQe4qp4S+H3iTwzolrptrcaFKLYHbLJafMc+vNew45ooA5jRvDFv/ZksGtWOmyz + zndN5MAVHPuK077SoJNHn063jjhhliaMBEwFyMdBWrSUAeR+DfBvjfwnokWk2Op6XPawsxjaSE7gCc46 + 1c0nwDq914zute8T6nFK72v2aOG1BQID1PWvUaSgDy//AIUxov8A0EtY/wDAt/8AGj/hS+if9BLWP/Ax + /wDGvUaKAPOdI+GFhoV6L/TL3UZbyJT5S3FyzIWI7gmqPhT4b3CWevz+Krv7VquthlmaM7ViXsF5r1Si + gDxTwl8K9b0vxrp+o6xrCahY6TAyWAZCGXPqc84FXLTwd4o1n4mWPiLxAbO3tbBHSKOIZZwenOa9eooA + WiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK4z4zRyTfCzxPFBE8ssljIiIilmYkYAAFdnRQ + B5X8GvDlhqfwg8LweIdJguJLeKTEV7bhjGTI2flYcHiuuPgfwtAplt/DOj+enzJttI1O4dOccfWumooA + 8K+H39teJ/jXfeKbnw9d6RpkNgLJTcEfOyswyvTjmm/FnRxqvxx8DLeae93prQSRTkwl4xuPAY9Bn3r3 + eigDwj4g+D/EHibxTFaT6Rb2/gfQoftdvZwsB9tlAOE+X7vQcY/nWd8PPDN1458QeNr7xJ4cudH0fWLa + CCGGVhkFOARjB4wDX0RRQB518GNC8UeGNKv9E8TXUd5Y2c/l6bcZ+d4cfxfj68157q/gfx1qPxe8b32g + TW2laZqVtFbm5vIvMW4TywpCgHIIOea+h6KAPnOH4NeP4/Ag8IDxXo/9igFfL+yvuwWLH5uvU0mnfD3x + 7p/xM8D3Os3Nrq2l6Uhi8+1j8sQJtKjdk5PWvo3FFAHK/EDwXo/jXR0s9ctDcrA3mxKshQlh23DseMiu + G0F/iF4f02Kw0jwB4ft7aMYAi1NY93uQE6/U5r2OigD54+H3h/4neDtX8Q30fhjSrltYuPtDK+pqoi5P + AO3nr7V6f4O1Hxvd6y0fifw/YaZp/lEiS2vRMWfIxwAMd67iigDyj9p2zub74S38FlbzXE5ngIjhQux+ + cdhUX9ifE+5tMab4h0O302WJRFDPZMzxpsA2k56165RQB4b4O+H3xM8IaS2m6N4m8Pi1aZ5yJbJ2O5zk + 85rrtTs/iJbfD9obHUtNuvFYn3ed5G2Joy3QAnggc59q9EooA8Hl+EXinxABcePvGV3qCKmTpth/o6Sd + wpbOOvtWVqcPxA+JmnN4ZstGTwr4UjX7LPNeETSyBDgbRx/d7fnX0bRQB8mQR+PvAWmQ/D/SdGkF++pJ + NZ63aJiKWPcM+aO4/wB49OK9K+IHhDxJ4y8d+DrLV4Y5fDFkgub2VCAJZwOQVzkDPT6mvaaKAPD/ABLp + niT4n+N49Ev9Mk0bwdo1wktw0pDNfOMFQoGML9M4+tSQ+D9V+H+ueJ9RsbZdZ8ITRNfjTHw0gn3fMEBz + 0GT79K9sooA8O+BNvqt/4z8Z+LLzRbrSrDVTF9mhuQA525zXIeOY/H3iXxDJfw+F9UtoAvlxwyWdrdbQ + O6s7ZAPpivqCigD4m1fwF8Qb/WtNvm8NXzJals50+0XGQP4A21v+BVuaX4b8c2OrWN6vhbUW+zTpNiLT + LKBm2nON6vkZr69ooAzfD99c6lo1neXtjLp9zNGHktZWDNCf7pI6mtIdKKKACiiigDyD4s/BqTx74ssN + etvEc+j3NnAsMZig3sCGZtwbeuPvVX8IfB3X9B8SWGp3fxF1jUoLaQSNaSowSUeh/eHj8DXs9FAHnGnf + C9LP4v3njs6qzvcRGL7F5GAuVAzv3c9PSuu8ZaJ/wknhbVNGNwbYX0DQGYLuKbhjOMjP51s0UAcl8L/B + w8CeDrTQVvjfC3Zj55j8vdk5+7k4/Osfxh8M18SfEbw94rbVWt20jpbC3D+bzn724Y/I16LRQAUUUUAF + FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF + FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA2P/Vr9 + KcKbH/q1+lOFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR + RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR + RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR + RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR + RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR + RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADY/uL9KMiuc1LxO9lq7aXaaLqOpXEdtHcSN + bPAqors6qCZJEJOY26A1H/wk+o/9Cfrf/f8Asv8A5IoA6nIoyK5b/hJ9R/6E/W/+/wDZf/JFH/CT6j/0 + J+t/9/7L/wCSKAOpyKMiuW/4SfUf+hP1v/v/AGX/AMkUf8JPqP8A0J+t/wDf+y/+SKAOpyKM1y3/AAk+ + o/8AQn63/wB/7L/5Io/4SfUf+hP1v/v/AGX/AMkUAdTRXLf8JPqX/Qoa3/3/ALL/AOSKX/hJ9S/6FDW/ + +/8AZf8AyRQB1FFcv/wk+pf9Chrf/f8Asv8A5Io/4SfUv+hQ1v8A7/2X/wAkUAdRRXL/APCT6l/0KGt/ + 9/7L/wCSKbF4vkXVdOstR0DVNP8At0phimnkt3TeEZ8Hy5WPRT2oA6qiiigAooooAKKKKACiiigAoooo + AKKKzNa13TtF8galceU05IiURs7PgZOAoJ4oA06M1zH/AAnXh/8A5+5//AOb/wCIpf8AhOvD/wDz9z/+ + Ac3/AMRQB02aM1zP/CdeH/8An7n/APAOb/4ij/hOvD//AD9z/wDgHN/8RQB02aM1zP8AwnXh/wD5+5// + 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 + r/aP2U/aPN8/b5z+V5uMeZ5Wdm//AGtufetiuV/4QXS/+frWP/BlP/8AFUf8ILpX/PzrH/gyn/8AiqAO + qorlf+EF0r/n51j/AMGU/wD8VR/wgulf8/Osf+DKf/4qgDqqK5X/AIQXSv8An51j/wAGU/8A8VR/wgul + f8/Osf8Agyn/APiqAOqorlf+EF0r/n51j/wZT/8AxVJ/wgulf8/Wsf8Agyn/APiqALNj/wAlUuf+wLH/ + AOj3rs65fwz4YsNF1We7tDdyTyQCJnuLl5jt3ZAG4nHNdQOlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF + ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF + ABRRRQAUUUUAFFFFADV+4v0FOpq/cX6CnUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU + UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFQXv/AB7P+H86nqC9/wCPZ/w/nQBV + ooooAKKKKACiiigAooooAKKKKACiiigAq5Z/8ekH+4v8qp1cs/8Aj0g/3F/lQBLRRRQAUUUUAFFFFABR + RRQAUUUUAFFFFABRRRQAUUUUAFFFFAFK8/4+E/3TUZ71Jef8fCf7pqM96AAUUCigAooooAKKKKACiiig + AooooAO1Kn+vh/3v6Gk7Uqf6+H/e/oaANCiiigAooooAKKKKACiiigAooooAKKKKACiiigArPb/Xy/73 + 9BWhWe3+ul/3v6CgBKKKKACiiigAooooAKKKKACiiigAooooAltP9e/+6P5mrhqnaf69/wDdH8zVw0AF + FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF + FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANX7i/QU6mr9xfoKdQAUUUUAFFFFABRRRQ + AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ + AVFcqzQMFGWqWigDPEc3eJvzH+NO2Sf88m/Mf41eooAoeXL/AM8m/Mf40eXL/wA8m/Mf41fooAz/AC5f + +eTfmP8AGjy5f+eTfmP8a0MUYoAoeXL/AM8m/Mf40eXL/wA8m/Mf41fooAz/AC5f+eTfmP8AGjy5f+eT + fmP8a0MUYoAoeXL/AM8m/Mf40eXL/wA8m/Mf41fooAoeXL/zyb8x/jVu2BW3iDdQoH6VJRQAUUUUAFFF + FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBSvP+PhP901HV6SNJB86K31GaZ9lt/wDnjH/3yKAK + lFW/stv/AM8Y/wDvkUfZbf8A54x/98igCpRVv7Lb/wDPGP8A75FH2W3/AOeMf/fIoAqUVb+y2/8Azxj/ + AO+RR9lt/wDnjH/3yKAKmKMVc+zQf88Y/wDvkUfZoP8AnjH/AN8igCnijFXPs0H/ADxj/wC+RR9mg/54 + x/8AfIoAp0qf6+H/AHv6GrX2a3/54x/98inLBCrBkjRSO4UCgCSiiigAooooAKKKKACiiigAooooAKKK + KACiiigAqk8EvmOV2bWORliO30q7RQBQ+zz/AN2L/vs/4Uv2ef8Auxf99n/Cr1FAFH7PP/di/wC+z/hR + 9nn/ALsX/fZ/wq9RQBR+zz/3Yv8Avs/4UfZ5/wC7F/32f8KvUUAUfs8/92L/AL7P+FH2ef8Auxf99n/C + r1FAFH7PP/di/wC+z/hR9nn/ALsX/fZ/wq9RQBR8if8Aux/99n/CjyJ/7sf/AH2f8KvUUAVbeJ0lZnC/ + dA4JNWqKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA + ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGr9xfoKdTV+4v0FOoAKKKK + ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK + ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK + ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK + ACiiigAooooAKKKKACiiigAooooAMUYoooAMUYoooAMUYoooAMUYoooAKKKKACiiigAooooAKKKKACii + igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii + igAooooAKKKKACiiigAooooAKKKKACiiigBq/cX6CnU1fuL9BTqACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK + KKKAP//Z + + + + 86 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/CenterControl.cs b/Analysis/CenterControl.cs new file mode 100644 index 0000000..1c7f1bb --- /dev/null +++ b/Analysis/CenterControl.cs @@ -0,0 +1,3202 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; +using BaseFunction; +using Telerik.WinControls.UI; +using Telerik.WinControls; +using System.Linq; +using System.Windows.Forms.DataVisualization.Charting; +using NSAnalysis.Properties; +using static Telerik.WinControls.UI.ValueMapper; +using PLCModule; +using HslCommunication.Profinet.Siemens; +using static System.Windows.Forms.VisualStyles.VisualStyleElement.TrackBar; +using System.Threading; +using UserControlClass; +using DAL; +using System.Linq.Expressions; +using Newtonsoft.Json; +using System.Net; +using System.Xml.Linq; +using System.IO.Ports; +using System.Drawing.Printing; + +namespace NSAnalysis +{ + public partial class CenterControl : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + + private int[] yValues = new int[3]; + private string[] xValues = new string[3]; + private DataTable dtCSVContent = new DataTable(); + private DataTable dtRangeData = new DataTable(); + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private string strSaveReprotPath = ""; + private bool bReadCSVFlag = false; + private List ListPostIOTData = new List(); + private FEHYLeftCarData fLEHY = null; + private FEHYRightCarData fREHY = null; + + private FEH3LeftCarData fLEH3 = null; + private FEH3RightCarData fREH3 = null; + + private int iCurrentMeasureItemsFailedCount = 0; + #region PLC相关变量 + + private bool bStopPlcNormal = false; + private static int HeartBeatCount = 0; + private bool bPlcLiveTickLast = false; + + private Thread m_ThreadReconnectPLC = null; + private int m_ReConnectNum = 0; + private bool bTickt = true; + private int iLastNSStartMeasure = 0; + private int iLastCarPassFlag = 0; + private int iLastStation1To2 = 0; + private int iLastStation2To3 = 0; + private int iLastReadVINFinishFlag = 0; + + private SerialPort serialTestPort = null; + + private SerialPort serialPort = null; + private int iLastMesureCount = 0; + + #endregion PLC相关变量 + + #region 分页全局变量 + + private DataTable PageTable = new DataTable(); + + /// + /// 每页记录数 + /// + public int pageSize = 20; + + /// + /// 总记录数 + /// + public int recordCount = 0; + + /// + /// 总页数 + /// + public int pageCount = 0; + + /// + /// 当前页 + /// + public int currentPage = 0; + + #endregion 分页全局变量 + + #endregion 全局变量 + + #region 主窗口事件 + + public CenterControl() + { + InitializeComponent(); + SQLHelper.connStr = DatabaseDfn.SqlConnectStr(); + + // + + #region 加载皮肤 + + ThemeResolutionService.LoadPackageFile(ConfigDfn.strTheme); + this.ThemeName = ConfigDfn.strSkinName.Substring(0, ConfigDfn.strSkinName.Length - 5); + RPV.ThemeName = ConfigDfn.strSkinName.Substring(0, ConfigDfn.strSkinName.Length - 5); + + #endregion 加载皮肤 + } + + private void CenterControl_Load(object sender, EventArgs e) + { + #region 初始化全局变量 + fLEHY = new FEHYLeftCarData(this); + fREHY = new FEHYRightCarData(this); + fLEH3 = new FEH3LeftCarData(this); + fREH3 = new FEH3RightCarData(this); + MyBase.rleMessage = rleMessage; + rdtpStartTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); + rdtpEndTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); + + #endregion + //需要显示车身数据 不分析csv文件 + if (ConfigDfn.iShowCarDataFlag == 1) + { + MyBase.TraceWriteLine(" 进入显示车身模式!显示车身界面。"); + lpcShowCarData_Click(null, null); + //serialPort = new SerialPort(ConfigDfn.strCOMPort, 115200, Parity.None, 8, StopBits.One); // 设置串口参数 + //serialPort.DataReceived += new SerialDataReceivedEventHandler(DataAutoReceivedHandler); // 注册数据接收事件处理方法 + //serialPort.Open(); // 打开串口 + //if (serialPort.IsOpen) + //{ + // MyBase.TraceWriteLine(ConfigDfn.strCOMPort + "打开成功O(∩_∩)O"); + //} + //else + //{ + // MyBase.TraceWriteLine(ConfigDfn.strCOMPort + "打开失败!"); + // MessageBox.Show(ConfigDfn.strCOMPort + "打开失败!请检查扫抢串口设置是否正确。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + //} + + } + else + { + MyBase.TraceWriteLine(" 进入不显示车身模式!"); + } + if (ConfigDfn.iAnalysisCSVFlag == 1) + { + btnConnectPlc_Click(null, null); + MyBase.TraceWriteLine(" 进入解析CSV文件模式,开始解析扫码CSV文件!"); + tmReadNextsenseCSV.Interval = 500; + tmReadNextsenseCSV.Start(); + //tmdal.updateMaintenceInfoEmpty(); + } + else + { + MyBase.TraceWriteLine(" 进入不解析CSV文件模式!"); + tmReadNextsenseCSV.Stop(); + } + + if (Directory.Exists(ConfigDfn.strNextSenseCSVEH3Path)) + { + MyBase.TraceWriteLine("软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:" + ConfigDfn.strNextSenseCSVEH3Path); + } + else + { + string strTip = "错误:软件首次启动,读取NextSense生成EH3 CSV报告的路径:" + ConfigDfn.strNextSenseCSVEH3Path + " 不存在!请检查并进行修改!点击是按钮,软件将自动创建该路径!"; + MyBase.TraceWriteLine(strTip); + Directory.CreateDirectory(ConfigDfn.strNextSenseCSVEH3Path); + //DialogResult dResult = MessageBox.Show(strTip, "错误", MessageBoxButtons.YesNo, MessageBoxIcon.Error); + //if (dResult == DialogResult.Yes) + //{ + // Directory.CreateDirectory(ConfigDfn.strNextSenseCSVEH3Path); + // MyBase.TraceWriteLine(strTip + " ; 点击了是按钮,软件自动创建读取目录:" + ConfigDfn.strNextSenseCSVEH3Path); + //} + //else + //{ + // MyBase.TraceWriteLine(strTip + " ;点击了否按钮,不创建目录!"); + //} + } + if (Directory.Exists(ConfigDfn.strNextSenseCSVEHYPath)) + { + MyBase.TraceWriteLine("软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:" + ConfigDfn.strNextSenseCSVEHYPath); + } + else + { + string strTip = "错误:软件首次启动,读取NextSense生成EHY CSV报告的路径:" + ConfigDfn.strNextSenseCSVEHYPath + " 不存在!请检查并进行修改!点击是按钮,软件将自动创建该路径!"; + MyBase.TraceWriteLine(strTip); + Directory.CreateDirectory(ConfigDfn.strNextSenseCSVEHYPath); + //DialogResult dResult = MessageBox.Show(strTip, "错误", MessageBoxButtons.YesNo, MessageBoxIcon.Error); + //if (dResult == DialogResult.Yes) + //{ + // Directory.CreateDirectory(ConfigDfn.strNextSenseCSVEHYPath); + // MyBase.TraceWriteLine(strTip + " ; 点击了是按钮,软件自动创建读取目录:" + ConfigDfn.strNextSenseCSVEHYPath); + //} + //else + //{ + // MyBase.TraceWriteLine(strTip + " ;点击了否按钮,不创建目录!"); + //} + } + initLPCControl(); + + + rddlSizeName.SelectedIndex = 0; + DataTable dtMPName = tmdal.SelectAllMeasPointName(); + if (dtMPName.Rows.Count > 0) + { + for (int i = 0; i < dtMPName.Rows.Count; i++) + { + rddlMeasurePoint.Items.Add(dtMPName.Rows[i][0].ToString()); + } + rddlMeasurePoint.SelectedIndex = 0; + } + //tmdal.updateMaintenceInfoEmpty(); + //iLastMesureCount = tmdal.SelectTMeasureResultCount(); + + #region 清空信息 + + labVIN.Text = ""; + labOKCount.Text = ""; + labNGCount.Text = ""; + labRejectCount.Text = ""; + labSumMeasureCount.Text = ""; + labMeaTime.Text = ""; + labResultPercent.Text = ""; + labResult.Text = ""; + labCarType.Text = ""; + + #endregion 清空信息 + + InitTableColumns(); + strSaveReprotPath = ConfigDfn.strReportPath + @"\"; + } + + private void InitTableColumns() + { + #region 测量数据表始化表 + + //创建虚拟表 + DataColumn column2 = new DataColumn("CarID", Type.GetType("System.String")); + DataColumn dcCarType = new DataColumn("CarType", Type.GetType("System.String")); + DataColumn column3 = new DataColumn("MeasPointName", Type.GetType("System.String")); + DataColumn column4 = new DataColumn("DimensionName", Type.GetType("System.String")); + DataColumn column5 = new DataColumn("NormalValue", Type.GetType("System.String")); + DataColumn column6 = new DataColumn("LowerTolVal", Type.GetType("System.String")); + DataColumn column7 = new DataColumn("UpperTolVal", Type.GetType("System.String")); + DataColumn column8 = new DataColumn("MeasureValue", Type.GetType("System.String")); + DataColumn column10 = new DataColumn("MeasureItemResult", Type.GetType("System.String")); + DataColumn column9 = new DataColumn("MeasureDate", Type.GetType("System.DateTime")); + DataColumn column1 = new DataColumn("Remark", Type.GetType("System.String")); + //将列添加到table表中 + + dtCSVContent.Columns.Add(column2); + dtCSVContent.Columns.Add(dcCarType); + dtCSVContent.Columns.Add(column3); + dtCSVContent.Columns.Add(column4); + dtCSVContent.Columns.Add(column5); + dtCSVContent.Columns.Add(column6); + dtCSVContent.Columns.Add(column7); + dtCSVContent.Columns.Add(column8); + dtCSVContent.Columns.Add(column10); + dtCSVContent.Columns.Add(column9); + dtCSVContent.Columns.Add(column1); + + #endregion 测量数据表始化表 + + #region 极差数据Table初始化 + + //创建虚拟表 + DataColumn dcCarID = new DataColumn("CarID", Type.GetType("System.String")); + DataColumn dcRangeName = new DataColumn("RangeName", Type.GetType("System.String")); + DataColumn dcRangeValue = new DataColumn("RangeValue", Type.GetType("System.String")); + DataColumn dcRangeLowUpp = new DataColumn("RangeLowUpp", Type.GetType("System.String")); + DataColumn dcResult = new DataColumn("Result", Type.GetType("System.String")); + DataColumn dcCreateTime = new DataColumn("CreateTime", Type.GetType("System.DateTime")); + DataColumn dcRemark = new DataColumn("Remark", Type.GetType("System.String")); + //将列添加到table表中 + + dtRangeData.Columns.Add(dcCarID); + dtRangeData.Columns.Add(dcRangeName); + dtRangeData.Columns.Add(dcRangeValue); + dtRangeData.Columns.Add(dcRangeLowUpp); + dtRangeData.Columns.Add(dcResult); + dtRangeData.Columns.Add(dcCreateTime); + dtRangeData.Columns.Add(dcRemark); + + #endregion 测量数据表始化表 + + #region 分页相关 + + //创建分页虚拟表 + DataColumn column11 = new DataColumn("CarID", Type.GetType("System.String")); + DataColumn column12 = new DataColumn("MeasPointName", Type.GetType("System.String")); + DataColumn column13 = new DataColumn("DimensionName", Type.GetType("System.String")); + DataColumn column14 = new DataColumn("NormalValue", Type.GetType("System.String")); + DataColumn column15 = new DataColumn("LowerTolVal", Type.GetType("System.String")); + DataColumn column16 = new DataColumn("UpperTolVal", Type.GetType("System.String")); + DataColumn column17 = new DataColumn("MeasureValue", Type.GetType("System.String")); + DataColumn column18 = new DataColumn("MeasureDate", Type.GetType("System.String")); + DataColumn column19 = new DataColumn("MeasureItemResult", Type.GetType("System.String")); + + //将列添加到table表中 + PageTable.Columns.Add(column11); + PageTable.Columns.Add(column12); + PageTable.Columns.Add(column13); + PageTable.Columns.Add(column14); + PageTable.Columns.Add(column15); + PageTable.Columns.Add(column16); + PageTable.Columns.Add(column17); + PageTable.Columns.Add(column18); + PageTable.Columns.Add(column19); + + labCurrentPage.Text = "当前页:" + currentPage.ToString(); //当前页 + labSumPages.Text = "共 " + pageCount.ToString() + " 页";//总页数 + labSumRecorders.Text = "总共 " + recordCount.ToString() + " 条记录";//总记录数 + rddlPageRecorderCount.SelectedIndex = 0; + + #endregion 分页相关 + } + + private void DataAutoReceivedHandler(object sender, SerialDataReceivedEventArgs e) + { + SerialPort sp = (SerialPort)sender; + string strScanVIN = sp.ReadExisting(); + MyBase.TraceWriteLine("扫抢获取的VIN码为:" + strScanVIN); + if (strScanVIN.Length > 0) + { + tmdal.updateMaintenceInfo(strScanVIN, 3); + MyBase.TraceWriteLine("更新数据库中存储的VIN码:" + strScanVIN); + } + } + + private void initLPCControl() + { + lpcSoftwareSetup.labPicture.Click += new EventHandler(lpcSoftwareSetup_Click); + lpcSoftwareSetup.labText.Click += new EventHandler(lpcSoftwareSetup_Click); + + lpcToleranceSetup.labPicture.Click += new EventHandler(lpcToleranceSetup_Click); + lpcToleranceSetup.labText.Click += new EventHandler(lpcToleranceSetup_Click); + + lpcRange.labPicture.Click += new EventHandler(lpcRange_Click); + lpcRange.labText.Click += new EventHandler(lpcRange_Click); + + lpcPLCAddress.labPicture.Click += new EventHandler(lpcPLCAddress_Click); + lpcPLCAddress.labText.Click += new EventHandler(lpcPLCAddress_Click); + + lpcPLCTest.labPicture.Click += new EventHandler(lpcPLCTest_Click); + lpcPLCTest.labText.Click += new EventHandler(lpcPLCTest_Click); + + lpcAboutSoftware.labPicture.Click += new EventHandler(lpcAboutSoftware_Click); + lpcAboutSoftware.labText.Click += new EventHandler(lpcAboutSoftware_Click); + + lpcUploadIOTTest.labPicture.Click += new EventHandler(lpcUploadIOTTest_Click); + lpcUploadIOTTest.labText.Click += new EventHandler(lpcUploadIOTTest_Click); + + lpcTestGetCarTye.labPicture.Click += new EventHandler(lpcTestGetCarTye_Click); + lpcTestGetCarTye.labText.Click += new EventHandler(lpcTestGetCarTye_Click); + + lpcShowCarData.labPicture.Click += new EventHandler(lpcShowCarData_Click); + lpcShowCarData.labText.Click += new EventHandler(lpcShowCarData_Click); + + lpcShowLog.labPicture.Click += new EventHandler(lpcShowLog_Click); + lpcShowLog.labText.Click += new EventHandler(lpcShowLog_Click); + } + + private void CenterControl_FormClosing(object sender, FormClosingEventArgs e) + { + if (DialogResult.Yes == MessageBox.Show("警告:您确定要退出该软件系统吗?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) + { + + } + else + { + e.Cancel = true; + } + } + + private void CenterControl_FormClosed(object sender, FormClosedEventArgs e) + { + MyBase.TraceWriteLine("-------------海克斯康面隙分析软件程序关闭---------------------"); + LogDebugDfn.strEndTime = DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss"); + string CopyFileName = ConfigDfn.strFileFolder + "\\DebugFiles\\" + "Debug(" + LogDebugDfn.strStartTime + " To " + LogDebugDfn.strEndTime + ")" + ".txt"; + if (File.Exists(LogDebugDfn.strDebugFile)) + File.Copy(LogDebugDfn.strDebugFile, CopyFileName); + System.Environment.Exit(0); + } + + private void tmSystem_Tick(object sender, EventArgs e) + { + rleTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + if (ConfigDfn.iAnalysisCSVFlag == 1) + rleReadCSVStatus.ForeColor = bReadCSVFlag ? Color.Green : Color.White; + bReadCSVFlag = !bReadCSVFlag; + } + + #endregion 主窗口事件 + + private void tmReadNextsenseCSV_Tick(object sender, EventArgs e) + { + tmReadNextsenseCSV.Stop(); + AnalysisNextSenseSelfMeasureCSV(); + AnalysisNextSenseEH3CSV(); + AnalysisNextSenseEHYCSV(); + tmReadNextsenseCSV.Start(); + } + + #region⭐⭐⭐⭐⭐ 解析Nextsense CSV文件功能 核心算法 ⭐⭐⭐⭐⭐ + + private double CalculateStrictLowerTolerance(double dLower, double dUpper) + { + double dStrictLower = 0; + double dNormalValue = (dLower + dUpper) / 2; + dStrictLower = dNormalValue + (dLower - dNormalValue) * ConfigDfn.dTolerancePer; + return dStrictLower; + } + + private double CalculateStrictUpperTolerance(double dLower, double dUpper) + { + double dStrictUpper = 0; + double dNormalValue = (dLower + dUpper) / 2; + dStrictUpper = dNormalValue + (dUpper - dNormalValue) * ConfigDfn.dTolerancePer; + return dStrictUpper; + } + private double CalculateExceptionLowerTolerance(double dLower, double dUpper) + { + double dStrictLower = 0; + double dNormalValue = (dLower + dUpper) / 2; + dStrictLower = dNormalValue + (dLower - dNormalValue) * ConfigDfn.dExceptionTolerancePer; + return dStrictLower; + } + + private double CalculateExceptionUpperTolerance(double dLower, double dUpper) + { + double dStrictUpper = 0; + double dNormalValue = (dLower + dUpper) / 2; + dStrictUpper = dNormalValue + (dUpper - dNormalValue) * ConfigDfn.dExceptionTolerancePer; + return dStrictUpper; + } + /// + /// 解析EH3 CSV文件函数;后续如果Nextsense的csv报告模板变了,修改该函数的行号即可LineNum wsp + /// + private void AnalysisNextSenseEH3CSV() + { + try + { + lbCSVFiles.Items.Clear(); + FileInfo[] fileInfos = null; + if (Directory.Exists(ConfigDfn.strNextSenseCSVEH3Path)) + { + DirectoryInfo di = new DirectoryInfo(ConfigDfn.strNextSenseCSVEH3Path); + fileInfos = di.GetFiles("*.CSV"); + if (fileInfos.Count() >= 1) + { + MyBase.TraceWriteLine("存在EH3 CSV文件,开始解析:"); + List listCSVTitleInfo = new List(); + string strCarID = ""; + foreach (FileInfo fi in fileInfos) + { + listCSVTitleInfo.Clear(); + ListPostIOTData.Clear(); + dtCSVContent.Clear(); + dgvMeasureContent.Rows.Clear(); + string strCSVName = fi.FullName; + File.Copy(fi.FullName, ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name, true); + MyBase.TraceWriteLine("Copy " + fi.FullName + " TO " + ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name + " Done. 备份完成"); + lbCSVFiles.Items.Add(fi.Name); + + #region 解析EH3 CSV报告 + + MyBase.TraceWriteLine("开始解析NextSense EH3 CSV 报告:" + strCSVName); + Encoding encoding = GetType(strCSVName); + FileStream fs = new FileStream(strCSVName, FileMode.Open, FileAccess.Read); + StreamReader sr = new StreamReader(fs, encoding); + //记录每次读取的一行记录 + string strLine = ""; + //记录每行记录中的各字段内容 + string[] aryLineContent = null; + + //逐行读取CSV中的数据 + int LineNum = 0; + //表格行数 + int dtRowCount = 0; + //超差个数 + double OutCount = 0; + //Ok个数 + double OKCount = 0; + //异常个数 + double RejectedCount = 0; + //合格率 + double FPYPercent = 0; + double dStrictTLower = 0; + double dStrictTUpper = 0; + double dLowerValue = 0; + double dUpperValue = 0; + double dExcepitonTLower = 0; + double dExceptionTUpper = 0; + double dMeasureValue = 0.0; + DataTable dt = null; + while ((strLine = sr.ReadLine()) != null) + { + LineNum++; + if (LineNum >= 3 & LineNum <= 16) + { + listCSVTitleInfo.Add(strLine); + } + if (LineNum == 10) + { + aryLineContent = strLine.Split(','); + MyBase.TraceWriteLine("解析出NextSense CSV中的VIN为:" + aryLineContent[1]); + strCarID = tmdal.SelectVINByCSVVIN(aryLineContent[1]); + MyBase.TraceWriteLine("通过CSV VIN从数据库中获取的完整VIN为:" + strCarID); + if (strCarID.ToLower().Contains("nofind")) + { + MyBase.TraceWriteLine("数据库中没有查找到VIN码,NoFind, +L 使用CSV码"); + labVIN.Text = "L" + aryLineContent[1]; + strCarID = "L" + aryLineContent[1]; + } + else + { + labVIN.Text = strCarID; + tmdal.DeleteOneTTempVIN(strCarID); + MyBase.TraceWriteLine("在数据库表TTempSaveVIN中删除该VIN:" + strCarID); + } + } + if (LineNum >= 19) + { + aryLineContent = strLine.Split(','); + //ConfigDfn.strMeasureTime = aryLineContent[6].Substring(0, 4) + "-" + aryLineContent[6].Substring(4, 2) + "-" + aryLineContent[6].Substring(6, 2) + " " + aryLineContent[7].Substring(0, 2) + ":" + aryLineContent[7].Substring(2, 2) + ":" + aryLineContent[7].Substring(4, 2); + ConfigDfn.strMeasureTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + double dNormalValue = 0.0d; + + dt = tmdal.SelectOneToleranceByCondition("EH3", aryLineContent[0], aryLineContent[1]); + if (dt.Rows.Count == 1) + { + dLowerValue = double.Parse(dt.Rows[0]["TolLower"].ToString()); + dUpperValue = double.Parse(dt.Rows[0]["TolUpper"].ToString()); + dNormalValue = (dLowerValue + dUpperValue) / 2; + dStrictTLower = CalculateStrictLowerTolerance(dLowerValue, dUpperValue); + dStrictTUpper = CalculateStrictUpperTolerance(dLowerValue, dUpperValue); + dExcepitonTLower = CalculateExceptionLowerTolerance(dLowerValue, dUpperValue); + dExceptionTUpper = CalculateExceptionUpperTolerance(dLowerValue, dUpperValue); + } + else + { + dStrictTLower = 0; + dStrictTUpper = 0; + dLowerValue = 0; + dUpperValue = 0; + MyBase.TraceWriteLine("EH3 " + aryLineContent[0] + " " + aryLineContent[1] + " 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置!"); + } + + if (aryLineContent[2].ToLower().Contains("inv")) + { + aryLineContent[4] = "UNCLASSIFIED"; + } + else + { + dMeasureValue = double.Parse(aryLineContent[2]); + if (dMeasureValue >= dLowerValue && dMeasureValue <= dUpperValue) + { + aryLineContent[4] = "good"; + } + else if (dMeasureValue >= dStrictTLower && dMeasureValue <= dStrictTUpper) + { + aryLineContent[4] = "ng1"; + } + else if (dMeasureValue >= dExceptionTUpper || dMeasureValue <= dExcepitonTLower) + { + aryLineContent[4] = "ng3"; + aryLineContent[2] = "inv"; + } + else + { + aryLineContent[4] = "ng2"; + } + } + + //测量数据存储到table里 + dtCSVContent.Rows.Add(strCarID, "EH3", aryLineContent[0], aryLineContent[1], dNormalValue.ToString("F1"), dLowerValue.ToString("F1"), dUpperValue.ToString("F1"), aryLineContent[2], aryLineContent[4], DateTime.Now, ""); + string strMeasureResult = aryLineContent[4].ToLower(); + if (strMeasureResult.Contains("good") || strMeasureResult.Contains("best")) + { + OKCount++; + aryLineContent[4] = "OK"; + } + else if (strMeasureResult.Contains("ng1") || strMeasureResult.Contains("ng2")) + { + OutCount++; + aryLineContent[4] = "NG"; + } + else + { + RejectedCount++; + aryLineContent[4] = ""; + aryLineContent[2] = ""; + } + + dgvMeasureContent.Rows.Add(aryLineContent[0], aryLineContent[1], dNormalValue.ToString("F1"), dLowerValue.ToString("F1"), dUpperValue.ToString("F1"), aryLineContent[2], ConfigDfn.strMeasureTime, aryLineContent[4]); + + CheryIOTData cIOTData = new CheryIOTData(); + cIOTData.vin = strCarID; + cIOTData.gfNo = aryLineContent[1]; + cIOTData.pointNumber = aryLineContent[0]; + cIOTData.actualValue = aryLineContent[2]; + cIOTData.controlLine = dLowerValue.ToString("F1") + @"/" + dUpperValue.ToString("F1"); + if (strMeasureResult.Contains("good") || strMeasureResult.Contains("best") || strMeasureResult.Contains("ng1")) + { + cIOTData.measurementResult = "OK"; + } + else + { + cIOTData.measurementResult = "NG"; + } + ListPostIOTData.Add(cIOTData); + dtRowCount++; + dgvMeasureContent.Rows[dtRowCount - 1].HeaderCell.Value = dtRowCount.ToString(); + } + }//End While + sr.Close(); + fs.Close(); + tmdal.InsertTMeasureDatabyDataTable(dtCSVContent); + MyBase.TraceWriteLine("解析EH3数据完成,并将所有测量数据插入到数据库完毕。"); + MyBase.TraceWriteLine("解析NextSense EH3 CSV 报告完毕!检测项数=" + dtRowCount.ToString()); + if (dtRowCount <= ConfigDfn.iMeasureItemsCount) + { + iCurrentMeasureItemsFailedCount++; + } + else + { + iCurrentMeasureItemsFailedCount = 0; + } + + // 连续多个车异常 + if (iCurrentMeasureItemsFailedCount >= ConfigDfn.iFailedCarCount) + { + MyBase.TraceWriteLine("iCurrentMeasureItemsFailedCount=" + iCurrentMeasureItemsFailedCount.ToString() + "超过报警数量" + ConfigDfn.iFailedCarCount.ToString() + " ;给PLC发送报警10。"); + PlcObject.InsertWriteQueue(PlcSignalDfn.MeasureError, (byte)10); + } + + // 单个报告内 invalued 项超过某个值 + + + + // 机器人忙碌状态 且 多个小时无测量报告 + + + + + + #endregion 解析EH3 CSV报告 + + #region 计算极差 + CalculateRange(strCarID, "EH3"); + Thread.Sleep(20); + DataTable dtAllRangeDate = tmdal.SelectRangeDatabyCarID(strCarID); + if (dtAllRangeDate.Rows.Count > 0) + { + foreach (DataRow row in dtAllRangeDate.Rows) + { + if (ConfigDfn.iIncludeRangeFlag == 1) + { + if (row.ItemArray[5].ToString().Contains("OK")) + { + OKCount++; + } + else + { + OutCount++; + } + } + + dgvMeasureContent.Rows.Add(row.ItemArray[2].ToString(), "G", "0", row.ItemArray[4].ToString().Substring(0, 3), row.ItemArray[4].ToString().Substring(4, 3), row.ItemArray[3].ToString(), ConfigDfn.strMeasureTime, row.ItemArray[5].ToString()); + } + } + + if (ConfigDfn.iIncludeRangeFlag == 1) + { + dtRowCount = dtRowCount + dtAllRangeDate.Rows.Count; + for (int i = 1; i <= dtRowCount; i++) + { + dgvMeasureContent.Rows[i - 1].HeaderCell.Value = i.ToString(); + } + + MyBase.TraceWriteLine("计算合格率的时:包含极差计算项!"); + } + #endregion + + #region 界面显示功能 + + labCarType.Text = "EH3"; + TMeasureResultModel tmrm = new TMeasureResultModel(); + labNGCount.Text = OutCount.ToString(); + labOKCount.Text = OKCount.ToString(); + labRejectCount.Text = RejectedCount.ToString(); + labMeaTime.Text = ConfigDfn.strMeasureTime; + labSumMeasureCount.Text = dtRowCount.ToString(); + FPYPercent = OKCount / (OKCount + OutCount); + if (FPYPercent >= ConfigDfn.dFPY) + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "合格"; + labResultPercent.ForeColor = Color.LimeGreen; + labResult.ForeColor = Color.LimeGreen; + pbResult.Image = Resources.OK; + tmrm.Result = 1; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)10); + } + else if (FPYPercent >= ConfigDfn.dFPY2 && FPYPercent < ConfigDfn.dFPY) + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "合格"; + labResultPercent.ForeColor = Color.Yellow; + labResult.ForeColor = Color.Yellow; + pbResult.Image = Resources.OK; + tmrm.Result = 1; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)20); + } + else + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "不合格"; + labResultPercent.ForeColor = Color.Red; + labResult.ForeColor = Color.Red; + pbResult.Image = Resources.NG; + tmrm.Result = 2; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)30); + } + xValues[0] = "合格 : " + OKCount.ToString(); + xValues[1] = "不合格 : " + OutCount.ToString(); + xValues[2] = "异常 : " + RejectedCount.ToString(); + yValues[0] = (int)OKCount; + yValues[1] = (int)OutCount; + yValues[2] = (int)RejectedCount; + chartResultPie.Series[0].Points.DataBindXY(xValues, yValues); + + string strTargetRate = Math.Round(ConfigDfn.dFPY2 * 100.00d, 2).ToString("F2") + "%"; + + tmrm.CarID = strCarID; + tmrm.CarType = "EH3"; + tmrm.SumMeasureItems = dtRowCount; + tmrm.GoodMeasureItems = (int)OKCount; + tmrm.NoGoodMeasureItems = (int)OutCount; + tmrm.RejectMeasureItems = (int)RejectedCount; + tmrm.FPY = FPYPercent.ToString("F4"); + tmrm.Remark = ""; + tmrm.MeasureDate = ConfigDfn.strMeasureTime; + tmdal.InsertTMeasureResult(tmrm); + MyBase.TraceWriteLine("将EH3总结果插入数据库完毕。"); + MyBase.TraceWriteLine("全部插入解析完毕,删除文件:" + fi.Name); + fi.Delete(); + dgvMeasureContent.Rows.Add(); + dgvMeasureContent.Rows[dgvMeasureContent.Rows.Count - 1].Cells["MResult"].Value = (dtRowCount - OutCount - RejectedCount).ToString() + "/" + dtRowCount.ToString(); + this.dgvMeasureContent.Rows[dgvMeasureContent.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.White; + if (dgvMeasureContent.Rows.Count > 0) + { + SetdgvRowBgColor(dgvMeasureContent); + for (int i = 0; i < dgvMeasureContent.Rows.Count; i++) + { + //if (dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString().ToLower().Contains("ok")) + //{ + // dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + //} + if (dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString().ToLower().Contains("ng")) + { + dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + } + else if (string.IsNullOrEmpty(dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString())) + { + dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Red; + } + else + { + } + } + } + + #endregion 界面显示功能 + + + //生成客户的 CSV文件 + if (ConfigDfn.iCreateReportFlag == 1) + { + #region 解析完报告后,重新生成客户模板报告 + + string filePath = strSaveReprotPath + DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + strCarID + ".csv"; //wsp 后期还要再改 + string strWithoutLCarVin = strCarID.Substring(1); + StringBuilder sb = new StringBuilder(); + //添加表头 + sb.Append("Measurement Info Name"); + sb.Append(","); + sb.Append("Measurement Info"); + sb.AppendLine(); + sb.Append("Date_Time"); + sb.Append(","); + sb.Append(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); + sb.AppendLine(); + for (int i = 0; i < listCSVTitleInfo.Count; i++) + { + if (listCSVTitleInfo[i].Contains("prodnum")) + { + listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace("prodnum", "Part_ident"); + } + if (listCSVTitleInfo[i].Contains(strWithoutLCarVin)) + { + listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace(strWithoutLCarVin, strCarID); + } + sb.Append(listCSVTitleInfo[i]); + sb.AppendLine(); + } + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + //添加测量数据 + sb.Append("Characteristic"); + sb.Append(","); + sb.Append("Extension"); + sb.Append(","); + sb.Append("Measured_Value"); + sb.AppendLine(); + foreach (DataRow row in dtCSVContent.Rows) + { + sb.Append(row.ItemArray[2]); + sb.Append(","); + sb.Append(row.ItemArray[3]); + sb.Append(","); + sb.Append(row.ItemArray[7]); + sb.AppendLine(); + } + if (dtAllRangeDate.Rows.Count > 0) + { + foreach (DataRow row in dtAllRangeDate.Rows) + { + sb.Append(row.ItemArray[2]); + sb.Append(","); + sb.Append("G"); + sb.Append(","); + sb.Append(row.ItemArray[3]); + sb.AppendLine(); + } + } + sb.Append("POP"); + sb.Append(","); + sb.Append("P"); + sb.Append(","); + sb.Append(Math.Round(FPYPercent * 100.00d, 2).ToString("F2")); + sb.AppendLine(); + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + MyBase.TraceWriteLine("客户csv报告生成完毕,路径为:" + filePath); + + #endregion 解析完报告后,重新生成客户模板报告 + } + else + { + MyBase.TraceWriteLine("EH3数据生成报告功能未启用!"); + } + + #region Update Data To IOT + + if (ConfigDfn.iStartIOTFlag == 1) + { + bool bVINMeasuedFlag = tmdal.CheckVINExistInDB(strCarID); + if (bVINMeasuedFlag) + { + MyBase.TraceWriteLine("VIN:" + strCarID + " 该VIN码已经在数据库中存在了,说明已经测量过了,不再进行IOT数据上传操作。"); + } + else + { + #region IOT上传功能 + if (dtAllRangeDate.Rows.Count > 0) + { + foreach (DataRow row in dtAllRangeDate.Rows) + { + CheryIOTData cIOTData = new CheryIOTData(); + cIOTData.vin = strCarID; + cIOTData.gfNo = "G"; + cIOTData.pointNumber = row.ItemArray[2].ToString(); + cIOTData.actualValue = row.ItemArray[3].ToString(); + cIOTData.controlLine = row.ItemArray[4].ToString(); + cIOTData.measurementResult = row.ItemArray[5].ToString(); + if (cIOTData.measurementResult.ToUpper().Contains("NG")) + { + if (!cIOTData.actualValue.ToLower().Contains("inv")) + { + dLowerValue = double.Parse(row.ItemArray[4].ToString().Substring(0, 3)); + dUpperValue = double.Parse(row.ItemArray[4].ToString().Substring(4, 3)); + dStrictTLower = CalculateStrictLowerTolerance(dLowerValue, dUpperValue); + dStrictTUpper = CalculateStrictUpperTolerance(dLowerValue, dUpperValue); + double dValue = double.Parse(row.ItemArray[3].ToString()); + if (dValue > dStrictTLower && dValue < dStrictTUpper) + { + cIOTData.measurementResult = "OK"; + } + } + } + ListPostIOTData.Add(cIOTData); + } + } + string strGapList = JsonHelper.ObjectToJson(ListPostIOTData); + string strCaliResult = "OK"; + if (labResult.Text == "合格") + { + strCaliResult = "OK"; + } + else + { + strCaliResult = "NG"; + } + string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"" + strCarID + "\",\"model\":\"EH3\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"" + strCaliResult + "\",\"detectionTime\":\"" + ConfigDfn.strMeasureTime + "\",\"targetRate\":\"" + strTargetRate + "\",\"rate\":\"" + labResultPercent.Text + "\",\"GapList\":" + strGapList + "}]}"; + MyBase.TraceWriteLine("Update To IOT Data Content: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); + MyBase.TraceWriteLine("EH3数据上传IOT完成,结果返回为:" + strPostResult); + if (strPostResult.Contains("成功")) + { + MyBase.TraceWriteLine("EH3数据上传IOT成功 ^_^"); + } + else + { + MyBase.TraceWriteLine("EH3数据上传IOT失败!"); + } + + #endregion IOT上传功能 + } + } + else + { + MyBase.TraceWriteLine("数据上传IOT功能未启用!"); + } + + #endregion Update Data To IOT + } + } + } + //else + //{ + // MyBase.TraceWriteLine("错误:AnalysisNextSenseEH3CSV函数中,检测EH3 CSV 路径不存在:" + ConfigDfn.strNextSenseCSVPath); + //} + } + catch (Exception ex) + { + MyBase.TraceWriteLine("AnalysisNextSenseCSV 函数分析异常:" + ex.ToString()); + } + } + + private void AnalysisNextSenseEHYCSV() + { + try + { + lbCSVFiles.Items.Clear(); + FileInfo[] fileInfos = null; + if (Directory.Exists(ConfigDfn.strNextSenseCSVEHYPath)) + { + DirectoryInfo di = new DirectoryInfo(ConfigDfn.strNextSenseCSVEHYPath); + fileInfos = di.GetFiles("*.CSV"); + if (fileInfos.Count() >= 1) + { + MyBase.TraceWriteLine("存在EHY CSV文件,开始解析:"); + List listCSVTitleInfo = new List(); + string strCarID = ""; + foreach (FileInfo fi in fileInfos) + { + listCSVTitleInfo.Clear(); + ListPostIOTData.Clear(); + dtCSVContent.Clear(); + dgvMeasureContent.Rows.Clear(); + string strCSVName = fi.FullName; + File.Copy(fi.FullName, ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name, true); + MyBase.TraceWriteLine("Copy " + fi.FullName + " TO " + ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name + " Done. 备份完成"); + lbCSVFiles.Items.Add(fi.Name); + + #region 解析EHY CSV报告 + + MyBase.TraceWriteLine("开始解析NextSense EHY CSV 报告:" + strCSVName); + Encoding encoding = GetType(strCSVName); + FileStream fs = new FileStream(strCSVName, FileMode.Open, FileAccess.Read); + StreamReader sr = new StreamReader(fs, encoding); + //记录每次读取的一行记录 + string strLine = ""; + //记录每行记录中的各字段内容 + string[] aryLineContent = null; + + //逐行读取CSV中的数据 + int LineNum = 0; + //表格行数 + int dtRowCount = 0; + //超差个数 + double OutCount = 0; + //Ok个数 + double OKCount = 0; + //异常个数 + double RejectedCount = 0; + //合格率 + double FPYPercent = 0; + double dStrictTLower = 0; + double dStrictTUpper = 0; + double dLowerValue = 0; + double dUpperValue = 0; + double dExcepitonTLower = 0; + double dExceptionTUpper = 0; + double dMeasureValue = 0.0; + DataTable dt = null; + while ((strLine = sr.ReadLine()) != null) + { + LineNum++; + if (LineNum >= 3 & LineNum <= 16) + { + listCSVTitleInfo.Add(strLine); + } + if (LineNum == 10) + { + aryLineContent = strLine.Split(','); + MyBase.TraceWriteLine("解析出NextSense CSV中的VIN为:" + aryLineContent[1]); + strCarID = tmdal.SelectVINByCSVVIN(aryLineContent[1]); + MyBase.TraceWriteLine("通过CSV VIN从数据库中获取的完整VIN为:" + strCarID); + if (strCarID.ToLower().Contains("nofind")) + { + MyBase.TraceWriteLine("数据库中没有查找到VIN码,NoFind, +L 使用CSV码"); + labVIN.Text = "L" + aryLineContent[1]; + strCarID = "L" + aryLineContent[1]; + } + else + { + labVIN.Text = strCarID; + tmdal.DeleteOneTTempVIN(strCarID); + MyBase.TraceWriteLine("在数据库表TTempSaveVIN中删除该VIN:" + strCarID); + } + } + if (LineNum >= 19) + { + aryLineContent = strLine.Split(','); + ConfigDfn.strMeasureTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + double dNormalValue = 0.0d; + + dt = tmdal.SelectOneToleranceByCondition("EHY", aryLineContent[0], aryLineContent[1]); + if (dt.Rows.Count == 1) + { + dLowerValue = double.Parse(dt.Rows[0]["TolLower"].ToString()); + dUpperValue = double.Parse(dt.Rows[0]["TolUpper"].ToString()); + dNormalValue = (dLowerValue + dUpperValue) / 2; + dStrictTLower = CalculateStrictLowerTolerance(dLowerValue, dUpperValue); + dStrictTUpper = CalculateStrictUpperTolerance(dLowerValue, dUpperValue); + dExcepitonTLower = CalculateExceptionLowerTolerance(dLowerValue, dUpperValue); + dExceptionTUpper = CalculateExceptionUpperTolerance(dLowerValue, dUpperValue); + } + else + { + dStrictTLower = 0; + dStrictTUpper = 0; + dLowerValue = 0; + dUpperValue = 0; + MyBase.TraceWriteLine("EHY " + aryLineContent[0] + " " + aryLineContent[1] + " 查询数据获取公差带失败!数据库中数量不唯一或不存在,请检查公差带配置!"); + } + + if (aryLineContent[2].ToLower().Contains("inv")) + { + aryLineContent[4] = "UNCLASSIFIED"; + } + else + { + dMeasureValue = double.Parse(aryLineContent[2]); + if (dMeasureValue >= dLowerValue && dMeasureValue <= dUpperValue) + { + aryLineContent[4] = "good"; + } + else if (dMeasureValue >= dStrictTLower && dMeasureValue <= dStrictTUpper) + { + aryLineContent[4] = "ng1"; + } + else if (dMeasureValue >= dExceptionTUpper || dMeasureValue <= dExcepitonTLower) + { + aryLineContent[4] = "ng3"; + aryLineContent[2] = "inv"; + } + else + { + aryLineContent[4] = "ng2"; + } + } + + //测量数据存储到table里 + dtCSVContent.Rows.Add(strCarID, "EHY", aryLineContent[0], aryLineContent[1], dNormalValue.ToString("F1"), dLowerValue.ToString("F1"), dUpperValue.ToString("F1"), aryLineContent[2], aryLineContent[4], DateTime.Now, ""); + string strMeasureResult = aryLineContent[4].ToLower(); + if (strMeasureResult.Contains("good") || strMeasureResult.Contains("best")) + { + OKCount++; + aryLineContent[4] = "OK"; + } + else if (strMeasureResult.Contains("ng1") || strMeasureResult.Contains("ng2")) + { + OutCount++; + aryLineContent[4] = "NG"; + } + else + { + RejectedCount++; + aryLineContent[4] = ""; + aryLineContent[2] = ""; + } + + dgvMeasureContent.Rows.Add(aryLineContent[0], aryLineContent[1], dNormalValue.ToString("F1"), dLowerValue.ToString("F1"), dUpperValue.ToString("F1"), aryLineContent[2], ConfigDfn.strMeasureTime, aryLineContent[4]); + + CheryIOTData cIOTData = new CheryIOTData(); + cIOTData.vin = strCarID; + cIOTData.gfNo = aryLineContent[1]; + cIOTData.pointNumber = aryLineContent[0]; + cIOTData.actualValue = aryLineContent[2]; + cIOTData.controlLine = dLowerValue.ToString("F1") + @"/" + dUpperValue.ToString("F1"); + if (strMeasureResult.Contains("good") || strMeasureResult.Contains("best") || strMeasureResult.Contains("ng1")) + { + cIOTData.measurementResult = "OK"; + } + else + { + cIOTData.measurementResult = "NG"; + } + ListPostIOTData.Add(cIOTData); + dtRowCount++; + dgvMeasureContent.Rows[dtRowCount - 1].HeaderCell.Value = dtRowCount.ToString(); + } + }//End While + sr.Close(); + fs.Close(); + tmdal.InsertTMeasureDatabyDataTable(dtCSVContent); + MyBase.TraceWriteLine("解析EHY数据完成,并将所有测量数据插入到数据库完毕。"); + MyBase.TraceWriteLine("解析NextSense EHY CSV 报告完毕!检查数量=" + dtRowCount.ToString()); + if (dtRowCount <= ConfigDfn.iMeasureItemsCount) + { + iCurrentMeasureItemsFailedCount++; + } + else + { + iCurrentMeasureItemsFailedCount = 0; + } + + if (iCurrentMeasureItemsFailedCount >= ConfigDfn.iFailedCarCount) + { + MyBase.TraceWriteLine("iCurrentMeasureItemsFailedCount=" + iCurrentMeasureItemsFailedCount.ToString() + "超过报警数量" + ConfigDfn.iFailedCarCount.ToString() + " ;给PLC发送报警10。"); + PlcObject.InsertWriteQueue(PlcSignalDfn.MeasureError, (byte)10); + } + #endregion 解析EHY CSV报告 + + #region 计算极差 + CalculateRange(strCarID, "EHY"); + Thread.Sleep(20); + DataTable dtAllRangeDate = tmdal.SelectRangeDatabyCarID(strCarID); + if (dtAllRangeDate.Rows.Count > 0) + { + foreach (DataRow row in dtAllRangeDate.Rows) + { + if (ConfigDfn.iIncludeRangeFlag == 1) + { + if (row.ItemArray[5].ToString().Contains("OK")) + { + OKCount++; + } + else + { + OutCount++; + } + } + + dgvMeasureContent.Rows.Add(row.ItemArray[2].ToString(), "G", "0", row.ItemArray[4].ToString().Substring(0, 3), row.ItemArray[4].ToString().Substring(4, 3), row.ItemArray[3].ToString(), ConfigDfn.strMeasureTime, row.ItemArray[5].ToString()); + } + } + + if (ConfigDfn.iIncludeRangeFlag == 1) + { + dtRowCount = dtRowCount + dtAllRangeDate.Rows.Count; + for (int i = 1; i <= dtRowCount; i++) + { + dgvMeasureContent.Rows[i - 1].HeaderCell.Value = i.ToString(); + } + MyBase.TraceWriteLine("计算合格率的时:包含极差计算项!"); + } + + #endregion + + #region 界面显示功能 + + labCarType.Text = "EHY"; + TMeasureResultModel tmrm = new TMeasureResultModel(); + labNGCount.Text = OutCount.ToString(); + labOKCount.Text = OKCount.ToString(); + labRejectCount.Text = RejectedCount.ToString(); + labMeaTime.Text = ConfigDfn.strMeasureTime; + labSumMeasureCount.Text = dtRowCount.ToString(); + FPYPercent = OKCount / (OKCount + OutCount); + if (FPYPercent >= ConfigDfn.dFPY) + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "合格"; + labResultPercent.ForeColor = Color.LimeGreen; + labResult.ForeColor = Color.LimeGreen; + pbResult.Image = Resources.OK; + tmrm.Result = 1; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)10); + } + else if (FPYPercent >= ConfigDfn.dFPY2 && FPYPercent < ConfigDfn.dFPY) + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "合格"; + labResultPercent.ForeColor = Color.Yellow; + labResult.ForeColor = Color.Yellow; + pbResult.Image = Resources.OK; + tmrm.Result = 1; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)20); + } + else + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "不合格"; + labResultPercent.ForeColor = Color.Red; + labResult.ForeColor = Color.Red; + pbResult.Image = Resources.NG; + tmrm.Result = 2; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)30); + } + xValues[0] = "合格 : " + OKCount.ToString(); + xValues[1] = "不合格 : " + OutCount.ToString(); + xValues[2] = "异常 : " + RejectedCount.ToString(); + yValues[0] = (int)OKCount; + yValues[1] = (int)OutCount; + yValues[2] = (int)RejectedCount; + chartResultPie.Series[0].Points.DataBindXY(xValues, yValues); + + string strTargetRate = Math.Round(ConfigDfn.dFPY2 * 100.00d, 2).ToString("F2") + "%"; + + tmrm.CarID = strCarID; + tmrm.CarType = "EHY"; + tmrm.SumMeasureItems = dtRowCount; + tmrm.GoodMeasureItems = (int)OKCount; + tmrm.NoGoodMeasureItems = (int)OutCount; + tmrm.RejectMeasureItems = (int)RejectedCount; + tmrm.FPY = FPYPercent.ToString("F4"); + tmrm.Remark = ""; + tmrm.MeasureDate = ConfigDfn.strMeasureTime; + tmdal.InsertTMeasureResult(tmrm); + MyBase.TraceWriteLine("将总结果插入数据库完毕。"); + MyBase.TraceWriteLine("全部插入解析完毕,删除文件:" + fi.Name); + fi.Delete(); + + dgvMeasureContent.Rows.Add(); + dgvMeasureContent.Rows[dgvMeasureContent.Rows.Count - 1].Cells["MResult"].Value = (dtRowCount - OutCount - RejectedCount).ToString() + "/" + dtRowCount.ToString(); + this.dgvMeasureContent.Rows[dgvMeasureContent.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.White; + if (dgvMeasureContent.Rows.Count > 0) + { + SetdgvRowBgColor(dgvMeasureContent); + for (int i = 0; i < dgvMeasureContent.Rows.Count; i++) + { + //if (dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString().ToLower().Contains("ok")) + //{ + // dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + //} + if (dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString().ToLower().Contains("ng")) + { + dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + } + else if (string.IsNullOrEmpty(dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString())) + { + dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Red; + } + else + { + } + } + } + + #endregion 界面显示功能 + + + if (ConfigDfn.iCreateReportFlag == 1) + { + #region 解析完报告后,重新生成客户模板报告 + + MyBase.TraceWriteLine("开始生成客户所需要的CSV格式文件:"); + string filePath = strSaveReprotPath + DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + strCarID + ".csv"; //wsp 后期还要再改 + string strWithoutLCarVin = strCarID.Substring(1); + StringBuilder sb = new StringBuilder(); + //添加表头 + sb.Append("Measurement Info Name"); + sb.Append(","); + sb.Append("Measurement Info"); + sb.AppendLine(); + sb.Append("Date_Time"); + sb.Append(","); + sb.Append(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); + sb.AppendLine(); + for (int i = 0; i < listCSVTitleInfo.Count; i++) + { + if (listCSVTitleInfo[i].Contains("prodnum")) + { + listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace("prodnum", "Part_ident"); + } + if (listCSVTitleInfo[i].Contains(strWithoutLCarVin)) + { + listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace(strWithoutLCarVin, strCarID); + } + sb.Append(listCSVTitleInfo[i]); + sb.AppendLine(); + } + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + //添加测量数据 + sb.Append("Characteristic"); + sb.Append(","); + sb.Append("Extension"); + sb.Append(","); + sb.Append("Measured_Value"); + sb.AppendLine(); + foreach (DataRow row in dtCSVContent.Rows) + { + sb.Append(row.ItemArray[2]); + sb.Append(","); + sb.Append(row.ItemArray[3]); + sb.Append(","); + sb.Append(row.ItemArray[7]); + sb.AppendLine(); + } + if (dtAllRangeDate.Rows.Count > 0) + { + foreach (DataRow row in dtAllRangeDate.Rows) + { + sb.Append(row.ItemArray[2]); + sb.Append(","); + sb.Append("G"); + sb.Append(","); + sb.Append(row.ItemArray[3]); + sb.AppendLine(); + } + } + sb.Append("POP"); + sb.Append(","); + sb.Append("P"); + sb.Append(","); + sb.Append(Math.Round(FPYPercent * 100.00d, 2).ToString("F2")); + sb.AppendLine(); + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + MyBase.TraceWriteLine("客户EHY csv报告生成完毕,路径为:" + filePath); + + #endregion 解析完报告后,重新生成客户模板报告 + } + else + { + MyBase.TraceWriteLine("iCreateReportFlag=0 : EHY数据生成报告功能未启用!"); + } + + + #region Update Data To IOT + + if (ConfigDfn.iStartIOTFlag == 1) + { + bool bVINMeasuedFlag = tmdal.CheckVINExistInDB(strCarID); + if (bVINMeasuedFlag) + { + MyBase.TraceWriteLine("VIN:" + strCarID + " 该VIN码已经在数据库中存在了,说明已经测量过了,不再进行IOT数据上传操作。"); + } + else + { + #region IOT上传功能 + + if (dtAllRangeDate.Rows.Count > 0) + { + foreach (DataRow row in dtAllRangeDate.Rows) + { + + CheryIOTData cIOTData = new CheryIOTData(); + cIOTData.vin = strCarID; + cIOTData.gfNo = "G"; + cIOTData.pointNumber = row.ItemArray[2].ToString(); + cIOTData.actualValue = row.ItemArray[3].ToString(); + cIOTData.controlLine = row.ItemArray[4].ToString(); + cIOTData.measurementResult = row.ItemArray[5].ToString(); + if (cIOTData.measurementResult.ToUpper().Contains("NG")) + { + if (!cIOTData.actualValue.ToLower().Contains("inv")) + { + dLowerValue = double.Parse(row.ItemArray[4].ToString().Substring(0, 3)); + dUpperValue = double.Parse(row.ItemArray[4].ToString().Substring(4, 3)); + dStrictTLower = CalculateStrictLowerTolerance(dLowerValue, dUpperValue); + dStrictTUpper = CalculateStrictUpperTolerance(dLowerValue, dUpperValue); + double dValue = double.Parse(row.ItemArray[3].ToString()); + if (dValue > dStrictTLower && dValue < dStrictTUpper) + { + cIOTData.measurementResult = "OK"; + } + } + } + ListPostIOTData.Add(cIOTData); + } + } + string strGapList = JsonHelper.ObjectToJson(ListPostIOTData); + string strCaliResult = "OK"; + if (labResult.Text == "合格") + { + strCaliResult = "OK"; + } + else + { + strCaliResult = "NG"; + } + string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"" + strCarID + "\",\"model\":\"EHY\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"" + strCaliResult + "\",\"detectionTime\":\"" + ConfigDfn.strMeasureTime + "\",\"targetRate\":\"" + strTargetRate + "\",\"rate\":\"" + labResultPercent.Text + "\",\"GapList\":" + strGapList + "}]}"; + MyBase.TraceWriteLine("Update To IOT Data Content: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); + MyBase.TraceWriteLine("EHY数据上传IOT完成,结果返回为:" + strPostResult); + if (strPostResult.Contains("成功")) + { + MyBase.TraceWriteLine("EHY数据上传IOT成功 ^_^"); + } + else + { + MyBase.TraceWriteLine("EHY数据上传IOT失败!"); + } + + #endregion IOT上传功能 + } + } + else + { + MyBase.TraceWriteLine("EHY数据上传IOT功能未启用!"); + } + + #endregion Update Data To IOT + } + } + } + //else + //{ + // MyBase.TraceWriteLine("错误:AnalysisNextSenseEHYCSV 函数中,检测EHY CSV 路径不存在:" + ConfigDfn.strNextSenseCSVEHYPath); + //} + } + catch (Exception ex) + { + MyBase.TraceWriteLine("AnalysisNextSenseEHYCSV 函数分析异常:" + ex.ToString()); + } + } + + private void CalculateRange(string strVIN, string strCarType) + { + MyBase.TraceWriteLine(strVIN + " " + strCarType + "开始计算极差:============"); + tmdal.DeleteRangeData(strVIN); + dtRangeData.Clear(); + DataTable dtRange = tmdal.SelectRangeByCarType(strCarType); + if (dtRange != null && dtRange.Rows.Count > 0) + { + string strRangeValue = ""; + string strRangeLowUpp = ""; + string strRangeResult = ""; + DateTime dtTime = DateTime.Now; + string strRemark = ""; + for (int i = 0; i < dtRange.Rows.Count; i++) + { + string[] strArrRangePoint = dtRange.Rows[i]["RangePoint"].ToString().Split(','); + double[] dMeasureData = new double[strArrRangePoint.Length]; + int iCalcCount = 0; + for (int j = 0; j < strArrRangePoint.Length; j++) + { + string strMeasureValue = tmdal.SelectOneMeasureValueByCondition(strVIN, strArrRangePoint[j].Substring(0, 4)); + if (strMeasureValue.ToLower().Contains("inv")) + { + strRangeValue = "inv"; + strRangeResult = "NG"; + MyBase.TraceWriteLine(strArrRangePoint[j] + " G 查询的测量值为inv"); + break; + } + else if (strMeasureValue.ToLower().Contains("nofind")) + { + strRangeValue = "inv"; + strRangeResult = "NG"; + MyBase.TraceWriteLine(strArrRangePoint[j] + " G 查询的测量值为no find"); + break; + } + else + { + dMeasureData[j] = Convert.ToDouble(strMeasureValue); + iCalcCount++; + } + } + if (iCalcCount == strArrRangePoint.Length) + { + double dMax = dMeasureData.Max(); + double dMin = dMeasureData.Min(); + double dRangeData = dMax - dMin; + strRangeValue = dRangeData.ToString("F1"); + if (dRangeData >= Convert.ToDouble(dtRange.Rows[i]["RangeLower"]) && dRangeData <= Convert.ToDouble(dtRange.Rows[i]["RangeUpper"])) + { + strRangeResult = "OK"; + } + else + { + strRangeResult = "NG"; + } + } + strRangeLowUpp = dtRange.Rows[i]["RangeLower"].ToString() + @"/" + dtRange.Rows[i]["RangeUpper"].ToString(); + dtRangeData.Rows.Add(strVIN, dtRange.Rows[i]["RangeName"].ToString(), strRangeValue, strRangeLowUpp, strRangeResult, dtTime, strRemark); + } + tmdal.InsertTRangeDatabyDataTable(dtRangeData); + MyBase.TraceWriteLine(strVIN + " " + strCarType + "计算极差完成,并插入数据库:============"); + } + + } + + public string PostJsonToIOT(string url, string jsonData, int? timeout = null) + { + try + { + HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); + + if (null != timeout && 0 != timeout) + { + req.Timeout = timeout.Value; + } + Encoding encoding = Encoding.UTF8; + byte[] bs = Encoding.UTF8.GetBytes(jsonData); + string responseData; + req.Method = "POST"; + req.ContentType = "application/json"; + req.ContentLength = bs.Length; + using (Stream reqStream = req.GetRequestStream()) + { + reqStream.Write(bs, 0, bs.Length); + reqStream.Close(); + } + using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) + { + using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) + { + responseData = reader.ReadToEnd(); + } + } + return responseData; + } + catch (Exception ex) + { + return "Error: " + ex.ToString(); + } + } + + /// 通过给定的文件流,判断文件的编码类型 + /// 文件流 + /// 文件的编码类型 + public static Encoding GetType(FileStream fs) + { + byte[] Unicode = new byte[] { 0xFF, 0xFE, 0x41 }; + byte[] UnicodeBIG = new byte[] { 0xFE, 0xFF, 0x00 }; + byte[] UTF8 = new byte[] { 0xEF, 0xBB, 0xBF }; //带BOM + System.Text.Encoding reVal = System.Text.Encoding.Default; + + System.IO.BinaryReader r = new System.IO.BinaryReader(fs, System.Text.Encoding.Default); + int i; + int.TryParse(fs.Length.ToString(), out i); + byte[] ss = r.ReadBytes(i); + if (IsUTF8Bytes(ss) || (ss[0] == 0xEF && ss[1] == 0xBB && ss[2] == 0xBF)) + { + reVal = System.Text.Encoding.UTF8; + } + else if (ss[0] == 0xFE && ss[1] == 0xFF && ss[2] == 0x00) + { + reVal = System.Text.Encoding.BigEndianUnicode; + } + else if (ss[0] == 0xFF && ss[1] == 0xFE && ss[2] == 0x41) + { + reVal = System.Text.Encoding.Unicode; + } + r.Close(); + return reVal; + } + + /// 判断是否是不带 BOM 的 UTF8 格式 + /// + /// + private static bool IsUTF8Bytes(byte[] data) + { + int charByteCounter = 1; //计算当前正分析的字符应还有的字节数 + byte curByte; //当前分析的字节. + for (int i = 0; i < data.Length; i++) + { + curByte = data[i]; + if (charByteCounter == 1) + { + if (curByte >= 0x80) + { + //判断当前 + while (((curByte <<= 1) & 0x80) != 0) + { + charByteCounter++; + } + //标记位首位若为非0 则至少以2个1开始 如:110XXXXX...........1111110X  + if (charByteCounter == 1 || charByteCounter > 6) + { + return false; + } + } + } + else + { + //若是UTF-8 此时第一位必须为1 + if ((curByte & 0xC0) != 0x80) + { + return false; + } + charByteCounter--; + } + } + if (charByteCounter > 1) + { + throw new Exception("非预期的byte格式"); + } + return true; + } + + public Encoding GetType(string FileName) + { + FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read); + Encoding er = GetType(fs); + fs.Close(); + return er; + } + + + private void AnalysisNextSenseSelfMeasureCSV() + { + try + { + lbCSVFiles.Items.Clear(); + FileInfo[] fileInfos = null; + if (Directory.Exists(ConfigDfn.strNextSenseSelfMeasurePath)) + { + DirectoryInfo di = new DirectoryInfo(ConfigDfn.strNextSenseSelfMeasurePath); + fileInfos = di.GetFiles("*.CSV"); + if (fileInfos.Count() >= 1) + { + MyBase.TraceWriteLine("存在EHY CSV文件,开始解析:"); + List listCSVTitleInfo = new List(); + string strCarID = "SelfMeasure" + DateTime.Now.ToString("yyyyMMddHHmmss"); + foreach (FileInfo fi in fileInfos) + { + listCSVTitleInfo.Clear(); + ListPostIOTData.Clear(); + dtCSVContent.Clear(); + dgvMeasureContent.Rows.Clear(); + string strCSVName = fi.FullName; + File.Copy(fi.FullName, ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name, true); + MyBase.TraceWriteLine("Copy " + fi.FullName + " TO " + ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name + " Done. 备份完成"); + lbCSVFiles.Items.Add(fi.Name); + + #region 解析NextSense自检CSV报告 + + MyBase.TraceWriteLine("开始解析NextSense EHY CSV 报告:" + strCSVName); + Encoding encoding = GetType(strCSVName); + FileStream fs = new FileStream(strCSVName, FileMode.Open, FileAccess.Read); + StreamReader sr = new StreamReader(fs, encoding); + //记录每次读取的一行记录 + string strLine = ""; + //记录每行记录中的各字段内容 + string[] aryLineContent = null; + + //逐行读取CSV中的数据 + int LineNum = 0; + //表格行数 + int dtRowCount = 0; + + while ((strLine = sr.ReadLine()) != null) + { + LineNum++; + if (LineNum >= 1 & LineNum <= 17) + { + listCSVTitleInfo.Add(strLine); + } + if (LineNum >= 19) + { + aryLineContent = strLine.Split(','); + ConfigDfn.strMeasureTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + + if (aryLineContent[2].ToLower().Contains("inv")) + { + aryLineContent[10] = "NG"; + } + string strMeasPointName = ""; + if (aryLineContent[0].ToUpper().Contains("L")) + { + strMeasPointName = "L-ZJ1"; + } + else + { + strMeasPointName = "R-ZJ1"; + } + //测量数据存储到table里 + dtCSVContent.Rows.Add(strCarID, "SelfMeasure", strMeasPointName, aryLineContent[1], aryLineContent[4], aryLineContent[8], aryLineContent[9], aryLineContent[2], aryLineContent[10], DateTime.Now, ""); + + + dgvMeasureContent.Rows.Add(strMeasPointName, aryLineContent[1], aryLineContent[4], aryLineContent[8], aryLineContent[9], aryLineContent[2], ConfigDfn.strMeasureTime, aryLineContent[10]); + + dtRowCount++; + dgvMeasureContent.Rows[dtRowCount - 1].HeaderCell.Value = dtRowCount.ToString(); + } + }//End While + sr.Close(); + fs.Close(); + + MyBase.TraceWriteLine("解析NextSense 自检报告完毕!检查数量=" + dtRowCount.ToString()); + labCarType.Text = "自检报告"; + + fi.Delete(); + #endregion 解析EHY CSV报告 + + if (ConfigDfn.iCreateReportFlag == 1) + { + #region 解析完报告后,重新生成客户模板报告 + + MyBase.TraceWriteLine("开始生成客户所需要的CSV格式文件:"); + string filePath = strSaveReprotPath + DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + strCarID + ".csv"; //wsp 后期还要再改 + StringBuilder sb = new StringBuilder(); + //添加表头 + sb.Append("Measurement Info Name"); + sb.Append(","); + sb.Append("Measurement Info"); + sb.AppendLine(); + sb.Append("Date_Time"); + sb.Append(","); + sb.Append(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); + sb.AppendLine(); + for (int i = 2; i < listCSVTitleInfo.Count-1; i++) + { + if (listCSVTitleInfo[i].Contains("prodnum")) + { + listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace("prodnum,", "Part_ident,"+ DateTime.Now.ToString("yyyyMMdd")); + } + + sb.Append(listCSVTitleInfo[i]); + sb.AppendLine(); + } + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + //添加测量数据 + sb.Append("Characteristic"); + sb.Append(","); + sb.Append("Extension"); + sb.Append(","); + sb.Append("Measured_Value"); + sb.AppendLine(); + foreach (DataRow row in dtCSVContent.Rows) + { + sb.Append(row.ItemArray[2]); + sb.Append(","); + sb.Append(row.ItemArray[3]); + sb.Append(","); + sb.Append(row.ItemArray[7]); + sb.AppendLine(); + } + sb.AppendLine(); + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + MyBase.TraceWriteLine("客户自检报告生成完毕,路径为:" + filePath); + + #endregion 解析完报告后,重新生成客户模板报告 + } + else + { + MyBase.TraceWriteLine("iCreateReportFlag=0 : 数据生成报告功能未启用!"); + } + } + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("AnalysisNextSenseSelfMeasureCSV 函数分析异常:" + ex.ToString()); + } + } + #endregion 解析Nextsense CSV文件功能 + + #region Home Page + + /// + /// 设置DataGridView各行变色 + /// + /// DataGridView + public void SetdgvRowBgColor(DataGridView dgv) + { + if (dgv.Rows.Count > 0) + { + foreach (DataGridViewRow item in dgv.Rows) + { + if (item.Index % 2 == 0) + { + item.DefaultCellStyle.BackColor = Color.FromArgb(19, 46, 53); + } + else + { + item.DefaultCellStyle.BackColor = Color.FromArgb(27, 60, 68); + } + } + } + } + + //TODO: + + #endregion Home Page + + #region Search Data + + #region datagridview分页功能 + + /// + /// LoadPage方法 + /// + private void LoadPage() + { + if (currentPage < 1) currentPage = 1; + if (currentPage > pageCount) currentPage = pageCount; + + int beginRecord; //开始指针 + int endRecord; //结束指针 + DataTable dtTemp; + dtTemp = PageTable.Clone();//Clone方法只会复制DataTable的结构(列定义),而不会复制数据行的引用。 + + beginRecord = pageSize * (currentPage - 1); + if (currentPage == 1) beginRecord = 0; + endRecord = pageSize * currentPage; + + if (currentPage == pageCount) endRecord = recordCount; + for (int i = beginRecord; i < endRecord; i++) + { + // 使用ImportRow方法将源PageTable的行导入到目标dtTemp + dtTemp.ImportRow(PageTable.Rows[i]); + } + + dgvSelectMeasureData.Rows.Clear(); + + for (int i = 0; i < dtTemp.Rows.Count; i++) + { + dgvSelectMeasureData.Rows.Add(new object[] { dtTemp.Rows[i][0], dtTemp.Rows[i][1], dtTemp.Rows[i][2], dtTemp.Rows[i][3], dtTemp.Rows[i][4], dtTemp.Rows[i][5], dtTemp.Rows[i][6], dtTemp.Rows[i][7], dtTemp.Rows[i][8] }); + } + SetdgvRowBgColor(dgvSelectMeasureData); + for (int i = 0; i < dgvSelectMeasureData.Rows.Count; i++) + { + string strResult = dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Value.ToString(); + if (strResult.ToLower().Contains("ng")) + { + //dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Style.ForeColor = Color.Orange; + dgvSelectMeasureData.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + } + if (strResult.ToLower().Contains("rej")) + { + dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Style.ForeColor = Color.Red; + } + } + labCurrentPage.Text = "当前页:" + currentPage.ToString(); //当前页 + labSumPages.Text = "共 " + pageCount.ToString() + " 页";//总页数 + labSumRecorders.Text = "总共 " + recordCount.ToString() + " 条记录";//总记录数 + } + + private void rbtnFirtstPage_Click(object sender, EventArgs e) + { + if (currentPage == 1) + { return; } + currentPage = 1; + LoadPage(); + } + + private void rbtnPrevPage_Click(object sender, EventArgs e) + { + if (currentPage == 1) + { return; } + currentPage--; + LoadPage(); + } + + private void rbtnNextPage_Click(object sender, EventArgs e) + { + if (currentPage == pageCount) + { return; } + currentPage++; + LoadPage(); + } + + private void rbtnLastPage_Click(object sender, EventArgs e) + { + if (currentPage == pageCount) + { return; } + currentPage = pageCount; + LoadPage(); + } + + private void rddlPageRecorderCount_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e) + { + pageSize = int.Parse(rddlPageRecorderCount.Text.Trim()); + //PageSorter(); + } + + #endregion datagridview分页功能 + + private void rbtnSearchMeaserData_Click(object sender, EventArgs e) + { + dgvFPYResult.Visible = false; + chartFPYLine.Visible = false; + rbtnExportCSVReport.Visible = false; + string strStartTime = rdtpStartTime.Value.ToString("yyyy-MM-dd") + " 00:00:00"; + string strEndTime = rdtpEndTime.Value.ToString("yyyy-MM-dd") + " 23:59:59"; + string strCarID = rtbPartID.Text.Trim(); + PageTable.Clear(); + PageTable = tmdal.SelectTMeasureDataByCarIDAndTime(strCarID, strStartTime, strEndTime); + if (PageTable.Rows.Count > 0) + { + recordCount = PageTable.Rows.Count; //记录总行数 + pageCount = (recordCount / pageSize); + if ((recordCount % pageSize) > 0) + { + pageCount++; + } + + //默认第一页 + currentPage = 1; + + LoadPage();//调用加载数据的方法 + dgvSelectMeasureData.Visible = true; + rbtnExportCSVReport.Visible = true; + pnlPage.Visible = true; + labSearchResult.Visible = false; + pnlPage.Visible = true; + } + else + { + dgvSelectMeasureData.Visible = false; + labSearchResult.Visible = true; + rbtnExportCSVReport.Visible = false; + pnlPage.Visible = false; + } + } + + private void rbtSelectFPY_Click(object sender, EventArgs e) + { + dgvSelectMeasureData.Visible = false; + rbtnExportCSVReport.Visible = false; + pnlPage.Visible = false; + string strStartTime = rdtpStartTime.Value.ToString("yyyy-MM-dd") + " 00:00:00"; + string strEndTime = rdtpEndTime.Value.ToString("yyyy-MM-dd") + " 23:59:59"; + string strCarID = rtbPartID.Text.Trim(); + DataTable dtFPY = new DataTable(); + dtFPY = tmdal.SelectTMeasureResultByTime(strCarID, strStartTime, strEndTime); + if (dtFPY.Rows.Count > 0) + { + dgvFPYResult.Visible = true; + labSearchResult.Visible = false; + rbtnExportCSVReport.Visible = true; + chartFPYLine.Visible = true; + dgvFPYResult.DataSource = dtFPY; + SetdgvRowBgColor(dgvFPYResult); + for (int i = 0; i < dgvFPYResult.Rows.Count; i++) + { + if (dgvFPYResult.Rows[i].Cells["SMResult"].Value.ToString().ToLower().Contains("不合格")) + { + dgvFPYResult.Rows[i].Cells["SMResult"].Style.ForeColor = Color.Red; + } + } + + #region 合格率折线图 + + //合格率折线图 + string[] strXDate = new string[dtFPY.Rows.Count]; + double[] dFPYResult = new double[dtFPY.Rows.Count]; + for (int i = 0; i < dtFPY.Rows.Count; i++) + { + strXDate[i] = dtFPY.Rows[i]["CarID"].ToString(); + } + for (int i = 0; i < dtFPY.Rows.Count; i++) + { + double dResult = double.Parse(dtFPY.Rows[i]["FPY"].ToString()); + dFPYResult[i] = dResult * 100.00; + } + chartFPYLine.ChartAreas[0].AxisX.LabelStyle.Angle = -50; //X轴标签倾斜角度设置 + chartFPYLine.ChartAreas[0].AxisY.LabelStyle.Format = "{0:F2}" + "%"; //设置Y轴值的格式化 带% + chartFPYLine.Series[0].Label = "#VAL%"; //设置显示Y的值 + chartFPYLine.Series[0].LabelForeColor = Color.White; + chartFPYLine.Series[0].ToolTip = "车身编号 : #VALX \r\n合格率 : #VAL%"; //鼠标移动到对应点显示数值 + chartFPYLine.Series[0].Points.DataBindXY(strXDate, dFPYResult); + + #endregion 合格率折线图 + } + else + { + dgvFPYResult.Visible = false; + labSearchResult.Visible = true; + rbtnExportCSVReport.Visible = false; + chartFPYLine.Visible = false; + } + } + + public static void ExportdgvDataToCsv(DataGridView dataGridView, string filePath) + { + StringBuilder sb = new StringBuilder(); + + // 添加列标题 + foreach (DataGridViewColumn column in dataGridView.Columns) + { + sb.Append(column.HeaderText); + sb.Append(","); + } + sb.Remove(sb.Length - 1, 1); + sb.AppendLine(); + + // 添加行数据 + foreach (DataGridViewRow row in dataGridView.Rows) + { + foreach (DataGridViewCell cell in row.Cells) + { + sb.Append(cell.Value); + sb.Append(","); + } + sb.Remove(sb.Length - 1, 1); + sb.AppendLine(); + } + + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + } + + public static void ExportDataTableDataToCsv(DataTable dt, string filePath) + { + StringBuilder sb = new StringBuilder(); + + // 添加列标题 + foreach (DataColumn column in dt.Columns) + { + sb.Append(column.ColumnName); + sb.Append(","); + } + sb.Remove(sb.Length - 1, 1); + sb.AppendLine(); + + // 添加行数据 + foreach (DataRow row in dt.Rows) + { + foreach (object item in row.ItemArray) + { + sb.Append(item); + sb.Append(","); + } + sb.Remove(sb.Length - 1, 1); + sb.AppendLine(); + } + + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + } + + private void rbtnExportCSVReport_Click(object sender, EventArgs e) + { + string strCSVExportPath = ""; + string strExportTime = DateTime.Now.ToString("yyyyMMddHHmmssfff"); + FolderBrowserDialog m_Folder = new FolderBrowserDialog(); + m_Folder.Description = "请选择要导出的CSV文件的路径"; + m_Folder.RootFolder = Environment.SpecialFolder.Desktop; + if (dgvFPYResult.Visible == true && dgvFPYResult.Rows.Count > 0) + { + m_Folder.ShowDialog(); + if (Directory.Exists(m_Folder.SelectedPath)) + { + strCSVExportPath = m_Folder.SelectedPath + "\\合格率" + strExportTime + ".CSV"; + ExportdgvDataToCsv(dgvFPYResult, strCSVExportPath); + } + } + if (dgvSelectMeasureData.Visible == true && dgvSelectMeasureData.Rows.Count > 0) + { + m_Folder.ShowDialog(); + if (Directory.Exists(m_Folder.SelectedPath)) + { + strCSVExportPath = m_Folder.SelectedPath + "\\车身尺寸数据" + strExportTime + ".CSV"; + ExportDataTableDataToCsv(PageTable, strCSVExportPath); + } + } + } + + private void dgvFPYResult_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e) + { + e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1); + } + + private void dgvSelectMeasureData_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e) + { + e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1); + } + + #endregion Search Data + + #region CP CPK + + private void rbtnSearchCPCPK_Click(object sender, EventArgs e) + { + DataTable dtCPCPK = new DataTable(); + string strMeasureName = rddlMeasurePoint.Text; + string strSizeName = rddlSizeName.Text.Trim().Substring(0, 1); + int iLimitCount = (int)nudMeasureCount.Value; + dtCPCPK = tmdal.SelectMeasureValuebyMeasureNameAndSize(strMeasureName, strSizeName, iLimitCount); + int iSelectRows = dtCPCPK.Rows.Count; + if (iSelectRows < 5) + { + chartCPCPK.Visible = false; + labSearchCPCPKResult.Visible = true; + pnlCPCPK.Visible = false; + } + else + { + double dNormalValue = double.Parse(dtCPCPK.Rows[0]["NormalValue"].ToString()); + double dLowerTolValue = double.Parse(dtCPCPK.Rows[0]["LowerTolVal"].ToString()); + double dUpperTolValue = double.Parse(dtCPCPK.Rows[0]["UpperTolVal"].ToString()); + double dLSL = dNormalValue + dLowerTolValue; + double dUSL = dNormalValue + dUpperTolValue; + + List listMDoubleData = new List(); + List listMStrData = new List(); + listMStrData.Clear(); + listMDoubleData.Clear(); + for (int i = 0; i < iSelectRows; i++) + { + listMDoubleData.Add(double.Parse(dtCPCPK.Rows[i]["MeasureValue"].ToString())); + listMStrData.Add(dtCPCPK.Rows[i]["MeasureValue"].ToString()); + } + + #region 数据赋值 + + labLSL.Text = dLSL.ToString("F2"); + labUSL.Text = dUSL.ToString("F2"); + labTarget.Text = dNormalValue.ToString("F2"); + labSampleSize.Text = iSelectRows.ToString(); + labAverage.Text = CpCpkHelper.GetAverage(listMStrData).ToString("F4"); + labStdDev.Text = CpCpkHelper.GetSigma(listMStrData).ToString("F4"); + List listCpCpk = CpCpkHelper.GetCpList(listMStrData, dUSL, dLSL); + labCp.Text = listCpCpk[0].ToString("F4"); + labCpl.Text = listCpCpk[1].ToString("F4"); + labCpu.Text = listCpCpk[2].ToString("F4"); + labCpk.Text = listCpCpk[3].ToString("F4"); + List listPpPpk = CpCpkHelper.GetPpList(listMStrData, dUSL, dLSL); + labPp.Text = listPpPpk[0].ToString("F4"); + labPpl.Text = listPpPpk[1].ToString("F4"); + labPpu.Text = listPpPpk[2].ToString("F4"); + labPpk.Text = listPpPpk[3].ToString("F4"); + + #endregion 数据赋值 + + #region 画柱状图 + + Dictionary histogramDataDic = new Dictionary(); + histogramDataDic = CpCpkHelper.GetHistogramData(listMDoubleData); + string[] strXValue = new string[histogramDataDic.Count]; + int[] dYValue = new int[histogramDataDic.Count]; + for (int i = 0; i <= histogramDataDic.Count - 1; i++) + { + strXValue[i] = (histogramDataDic.ElementAt(i).Key); + dYValue[i] = int.Parse(histogramDataDic.ElementAt(i).Value); + } + chartCPCPK.Series[0].Label = "#VAL"; //设置显示Y的值 + chartCPCPK.Series[0].LabelForeColor = Color.White; + chartCPCPK.Series[0].ToolTip = "区间范围 : #VALX \r\n数量 : #VAL"; //鼠标移动到对应点显示数值 + chartCPCPK.Series[0].Points.DataBindXY(strXValue, dYValue); + + #endregion 画柱状图 + + chartCPCPK.Visible = true; + labSearchCPCPKResult.Visible = false; + pnlCPCPK.Visible = true; + } + } + + #endregion CP CPK + + #region 软件设置 + + private void lpcSoftwareSetup_Click(object sender, EventArgs e) + { + string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); + if (strInputPwd.Contains("-999.999")) + { + return; + } + else if (strInputPwd == ConfigDfn.strPwd) + { + FSoftwareSetup fss = new FSoftwareSetup(); + fss.ShowDialog(this); + } + else + { + MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void lpcToleranceSetup_Click(object sender, EventArgs e) + { + string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); + if (strInputPwd.Contains("-999.999")) + { + return; + } + else if (strInputPwd == ConfigDfn.strPwd) + { + FToleranceSetup fts = new FToleranceSetup(); + fts.ShowDialog(this); + } + else + { + MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void lpcRange_Click(object sender, EventArgs e) + { + string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); + if (strInputPwd.Contains("-999.999")) + { + return; + } + else if (strInputPwd == ConfigDfn.strPwd) + { + FRangeSetup frs = new FRangeSetup(); + frs.ShowDialog(this); + } + else + { + MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void lpcPLCAddress_Click(object sender, EventArgs e) + { + string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); + if (strInputPwd.Contains("-999.999")) + { + return; + } + else if (strInputPwd == ConfigDfn.strPwd) + { + PlcAddrSetup PLCAS = new PlcAddrSetup(3, ConfigDfn.strConfigFile); + PLCAS.Show(); + } + else + { + MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void lpcPLCTest_Click(object sender, EventArgs e) + { + FormDebugSiemensS7 FDS7 = new FormDebugSiemensS7(SiemensPLCS.S1200); + FDS7.Show(); + } + + private void lpcAboutSoftware_Click(object sender, EventArgs e) + { + AboutSoftwareInfo asi = new AboutSoftwareInfo(); + asi.ShowDialog(); + } + + private void lpcShowLog_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("notepad.exe", LogDebugDfn.strDebugFile); + } + + #endregion 软件设置 + + #region RadButton鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion RadButton鼠标事件 + + #region PLC相关函数 + + #region PLC重连操作 + + private void tmrReadPLCData_Tick(object sender, EventArgs e) + { + tmrReadPLCData.Stop(); + + #region 判断PLC是否正常运行 + + if (ConfigPlc.PlcType == 3 && ConfigPlc.bReConnect && !HslSiemensS7Obj.bConnected) + { + MyBase.TraceWriteLine("PLC断开,重连!"); + tmrHeartBeatConnect.Stop(); + ReConnectPLC(); + return; + } + + byte[] m_Datas = null; + if (!HslSiemensS7Obj.ReadDatas(PlcAddrSetup.S7ReadStartAddr, (ushort)PlcAddrSetup.S7ReadByteCount, ref m_Datas)) + { + tmrReadPLCData.Start(); + return; + } + if (m_Datas == null) + { + tmrReadPLCData.Start(); + MyBase.TraceWriteLine("PLC读取数据对象为空,退出!"); + return; + } + + #endregion 判断PLC是否正常运行 + + try + { + #region 循环读取PLC数据块中的信息 + + if (m_Datas.Length >= PlcAddrSetup.S7ReadByteCount) + { + PLCDfn.bPlcLiveTick = PlcObject.GetS7ByteData(PlcSignalDfn.PlcLive) == 1; + PLCDfn.ReadVINFinishFlag = PlcObject.GetS7ByteData(PlcSignalDfn.ReadVINFinishFlag); + //从PLC获取VIN码后,通过访问IOT接口 获取汽车类型,再反馈给PLC + if (iLastReadVINFinishFlag == 0 && PLCDfn.ReadVINFinishFlag == 10) + { + string strCarID = PlcObject.GetS7StringData(PlcSignalDfn.PartID); + //PLCDfn.CarType = PlcObject.GetS7ByteData(PlcSignalDfn.CarType); + MyBase.TraceWriteLine("PLC读码完成信号:0->10;Read PLC VIN is: " + strCarID); + if (strCarID.Length > 10) + { + string strCarColor = ""; + string strCarType = GetCarTypeByIOTAPI(strCarID, out strCarColor); + if (!strCarType.ToUpper().Contains("ERR")) + { + if (strCarType.ToUpper().Contains("EH3")) + { + PlcObject.InsertWriteQueue(PlcSignalDfn.WCarType, (byte)1); + } + else + { + PlcObject.InsertWriteQueue(PlcSignalDfn.WCarType, (byte)2); + } + PlcObject.InsertWriteQueue(PlcSignalDfn.WCarColor, strCarColor); + MyBase.TraceWriteLine("往PLC写入车型: " + strCarType + " ;车身颜色:" + strCarColor); + tmdal.InsertVIN(strCarID); + MyBase.TraceWriteLine(strCarID + " 插入到数据库表TTempSaveVIN中完成。"); + } + else + { + MyBase.TraceWriteLine("报错:根据VIN从IOT上获取车型信息失败,不发送给PLC车型信息和颜色信息。 "); + } + } + } + PLCDfn.CarPassFlag = PlcObject.GetS7ByteData(PlcSignalDfn.CarPassFlag); + if (iLastCarPassFlag == 0 && PLCDfn.CarPassFlag == 10) + { + string strCarID = PlcObject.GetS7StringData(PlcSignalDfn.PartID); + MyBase.TraceWriteLine("读取PLC CarPassFlag 完成信号:0->10;Read PLC VIN is: " + strCarID); + string strSecondPosCarID = tmdal.SelectMaintenanceStationVINbyStationNo(2); + if (strSecondPosCarID.Length == 21) + { + string strTempCarID = strSecondPosCarID.Substring(0, 17); + string strTempCarType = strSecondPosCarID.Substring(18, 3); + if (tmdal.CheckMRVINExistOrNotByVIN(strTempCarID) == 0) + { + string strTargetRate = Math.Round(ConfigDfn.dFPY2 * 100.00d, 2).ToString("F2") + "%"; + + MyBase.TraceWriteLine(strSecondPosCarID + " ;该VIN码只扫码没有测量,没有测量结果,上传IOT NG消息。"); + string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"" + strTempCarID + "\",\"model\":\"" + strTempCarType + "\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"NG\",\"detectionTime\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"targetRate\":\"" + strTargetRate + "\",\"rate\":\"0.00%\",\"GapList\":[]}]}"; + MyBase.TraceWriteLine("Update NG To IOT Data Content: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); + MyBase.TraceWriteLine("NG数据上传IOT完成,结果返回为:" + strPostResult); + } + } + + if (!string.IsNullOrEmpty(strCarID) && strCarID.Length > 10) + { + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(6), 7); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(5), 6); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(4), 5); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(3), 4); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(2), 3); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(1), 2); + Thread.Sleep(20); + string strCarColor = ""; + string strCarType = GetCarTypeByIOTAPI(strCarID, out strCarColor); + if (!strCarType.ToUpper().Contains("ERR")) + { + if (strCarType.ToUpper().Contains("EH3")) + { + strCarID = strCarID + "_EH3"; + } + else + { + strCarID = strCarID + "_EHY"; + } + } + tmdal.updateMaintenceInfo(strCarID, 1); + MyBase.TraceWriteLine("CarPassFlag 0->10 更新到MaintenceInfo数据库位置1中的VIN为: " + strCarID); + } + else + { + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(6), 7); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(5), 6); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(4), 5); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(3), 4); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(2), 3); + Thread.Sleep(20); + tmdal.updateMaintenceInfo(tmdal.SelectMaintenanceStationVINbyStationNo(1), 2); + Thread.Sleep(20); + tmdal.updateMaintenceInfo("empty", 1); + MyBase.TraceWriteLine("CarPassFlag 0->10 更新到MaintenceInfo数据库位置1中的VIN为:empty "); + } + + } + if (ConfigDfn.iRecordEncoderFlag == 1) + { + double dSpeed1 = PlcObject.GetS7Double(PlcSignalDfn.Speed1); + double dSpeed2 = PlcObject.GetS7Double(PlcSignalDfn.Speed2); + double dR01 = PlcObject.GetS7Double(PlcSignalDfn.R01_Pules); + double dR02 = PlcObject.GetS7Double(PlcSignalDfn.R02_Pules); + NLogger.Fatal(dSpeed1 + "," + dSpeed2 + "," + dR01 + "," + dR02); + } + } + iLastCarPassFlag = PLCDfn.CarPassFlag; + iLastReadVINFinishFlag = PLCDfn.ReadVINFinishFlag; + #endregion 循环读取PLC数据块中的信息 + } + catch (Exception ex) + { + MyBase.TraceWriteLine("tmrReadPLCData_Tick exception: " + ex.ToString()); + } + + + tmrReadPLCData.Start(); + } + + private void tmrRefreshPLCStatus_Tick(object sender, EventArgs e) + { + if (labelTimeStatus_Tip.Text == "─") { labelTimeStatus_Tip.Text = "╲"; } + else if (labelTimeStatus_Tip.Text == "╲") { labelTimeStatus_Tip.Text = "│"; } + else if (labelTimeStatus_Tip.Text == "│") { labelTimeStatus_Tip.Text = "╱"; } + else if (labelTimeStatus_Tip.Text == "╱") { labelTimeStatus_Tip.Text = "─"; } + + lampPLCHeart.State = PLCDfn.bPlcLiveTick ? LampColor.Green : LampColor.Silver; + rlePLCHeart.ForeColor = PLCDfn.bPlcLiveTick ? Color.Lime : Color.White; + } + + private void tmrHeartBeatConnect_Tick(object sender, EventArgs e) + { + if (bPlcLiveTickLast != PLCDfn.bPlcLiveTick) + { + HeartBeatCount = 0; + } + else + { + HeartBeatCount++; + } + + if (HeartBeatCount >= 600) + { + HeartBeatCount = 0; + if (!bStopPlcNormal) + { + MyBase.TraceWriteLine("PLC心跳检测10分钟内未变化,断开PLC,进行PLC重连!"); + PlcObject.ClosePlc(); + } + } + bPlcLiveTickLast = PLCDfn.bPlcLiveTick; + } + + private void tmrWritePLCLive_Tick(object sender, EventArgs e) + { + bTickt = !bTickt; + PlcObject.InsertWriteQueue(PlcSignalDfn.SoftLive, Convert.ToByte(bTickt ? 1 : 0)); + } + + private void ReConnectPLC() + { + m_ThreadReconnectPLC = null; + m_ThreadReconnectPLC = new Thread(new ThreadStart(ReConnectPlcProcess)); + if (!m_ThreadReconnectPLC.IsAlive) + { + m_ThreadReconnectPLC.Start(); + } + } + + private void ReConnectPlcProcess() + { + while (!PlcObject.IsPlcConnected()) + { + bool bConnectResult = PlcObject.ConnectPlc(); + if (!bConnectResult) + { + m_ReConnectNum++; + MyBase.TraceWriteLine("重连PLC,第" + m_ReConnectNum + "次!"); + } + Thread.Sleep(1000); + } + MyBase.TraceWriteLine("重新连接PLC成功!"); + lampConnectPLCStatus.State = LampColor.Green; + rlePLCStatus.ForeColor = Color.Lime; + this.BeginInvoke((EventHandler)delegate + { + tmrHeartBeatConnect.Start(); + }); + bStopPlcNormal = false; + m_ReConnectNum = 0; + this.Invoke((EventHandler)(delegate + { + tmrReadPLCData.Start(); + tmrWritePLCLive.Start();//启动给PLC写入心跳 1s写一次 0 1 + tmrRefreshPLCStatus.Start();//刷新PLC等的状态 + })); + m_ThreadReconnectPLC.Abort(); + } + + #endregion PLC重连操作 + + private void ConnectThread() + { + MyBase.TraceWriteLine("连接PLC...."); + + bool bConnectResult = PlcObject.ConnectPlc(); + this.Invoke((EventHandler)(delegate + { + if (bConnectResult) + { + lampConnectPLCStatus.State = LampColor.Green; + rlePLCStatus.ForeColor = Color.Lime; + MyBase.TraceWriteLine("连接PLC成功"); + } + else + { + lampConnectPLCStatus.State = LampColor.Red; + rlePLCStatus.ForeColor = Color.Red; + tmrReadPLCData.Stop(); + MyBase.TraceWriteLine("连接PLC失败"); + return; + } + + tmrReadPLCData.Start(); //读取PLC数据信息 + tmrWritePLCLive.Start();//启动给PLC写入心跳 1s写一次 0 1 + tmrRefreshPLCStatus.Start();//刷新PLC等的状态 + if (ConfigPlc.bReConnect) + tmrHeartBeatConnect.Start(); //监测来自plc的心跳5分钟内没有变化,重新连接PLC + })); + } + + private void btnConnectPlc_Click(object sender, EventArgs e) + { + try + { + PlcObject.InitWritePlcThread(); + bStopPlcNormal = false; + Thread m_Thread = new Thread(ConnectThread); + m_Thread.Start(); + return; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + } + + private void btnClosePlc_Click(object sender, EventArgs e) + { + try + { + MyBase.TraceWriteLine("点击了断开PLC按钮,断开PLC!"); + tmrReadPLCData.Stop(); + tmrHeartBeatConnect.Stop(); + tmrWritePLCLive.Stop(); + tmrRefreshPLCStatus.Stop(); + lampConnectPLCStatus.State = LampColor.White; + rlePLCStatus.ForeColor = Color.White; + rlePLCHeart.ForeColor = Color.White; + lampPLCHeart.State = LampColor.White; + bStopPlcNormal = true; + PlcObject.ClosePlc(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + } + + #endregion PLC相关函数 + + private void lpcUploadIOTTest_Click(object sender, EventArgs e) + { + string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"test001\",\"model\":\"EHY\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"OK\",\"detectionTime\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"GapList\":[{\"vin\":\"test001\",\"gfNo\":\"F\",\"pointNumber\":\"L-01\",\"actualValue\":\"-0.30\",\"controlLine\":\"-1.00/1.00\",\"measurementResult\":\"OK\"}]}]}"; + MyBase.TraceWriteLine("Test Post Data: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); + MessageBox.Show("测试上传数据完成,获取到的返回值为: " + strPostResult, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + MyBase.TraceWriteLine("测试上传数据完成,获取到的返回值为: " + strPostResult); + } + private void lpcTestGetCarTye_Click(object sender, EventArgs e) + { + string strPostData = "{\"serno\":\"312314141\",\"vin\":\"LNNAJDDU9RDA00213\"}"; + MyBase.TraceWriteLine("Test Post Data: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTCarTypeAddress, strPostData, 10000); + MessageBox.Show("测试从IOT获取车型信息完成,获取到的返回值为: " + strPostResult, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + MyBase.TraceWriteLine("测试从IOT获取车型信息完成,获取到的原返回值为: " + strPostResult); + string strNewResult = strPostResult.Substring(1, strPostResult.Length - 2).Replace("]", ""); + MessageBox.Show("测试从IOT获取车型信息完成,处理后 获取到的返回值为: " + strNewResult, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + MyBase.TraceWriteLine("测试从IOT获取车型信息完成,处理后 获取到的返回值为: " + strNewResult); + CheryCarTypeInfo ccti = new CheryCarTypeInfo(); + ccti = JsonConvert.DeserializeObject(strNewResult); + MessageBox.Show("测试从IOT获取车型信息完成,获取到的返回值为: " + strNewResult + "; 解析出的车型:" + ccti.data.model + " ;解析出的物料号为" + ccti.data.material + " ;解析出颜色编号:" + ccti.data.material.Substring(7, 2), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + private string GetCarTypeByIOTAPI(string strVIN, out string strMaterialNo) + { + string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"vin\":\"" + strVIN + "\"}"; + MyBase.TraceWriteLine(" Post VIN Data: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTCarTypeAddress, strPostData, 5000); + MyBase.TraceWriteLine("GetCarTypeByIOTAPI IOT Return CarType Infomation : " + strPostResult); + string strNewResult = strPostResult.Substring(1, strPostResult.Length - 2).Replace("]", ""); + MyBase.TraceWriteLine("GetCarTypeByIOTAPI IOT Return New CarType Infomation : " + strNewResult); + CheryCarTypeInfo ccti = new CheryCarTypeInfo(); + ccti = JsonConvert.DeserializeObject(strNewResult); + if (ccti.message.Contains("成功")) + { + + if (ccti.data.material != null && ccti.data.material.Length > 9) + { + strMaterialNo = ccti.data.material.Substring(7, 2); + MyBase.TraceWriteLine(" IOT Return CarType Infomation : " + strNewResult + "; 解析出的车型:" + ccti.data.model + "解析出车颜色编号:" + strMaterialNo); + } + else + { + strMaterialNo = "TE"; + MyBase.TraceWriteLine(" IOT Return CarType Infomation : " + strNewResult + "; 解析出的车型:" + ccti.data.model + ";未解析出车颜色编号"); + } + return ccti.data.model; + } + else + { + MyBase.TraceWriteLine(" IOT Return CarType Infomation ERROR : " + strPostResult); + strMaterialNo = "ER"; + return "ERR"; + } + } + + private void lpcShowCarData_Click(object sender, EventArgs e) + { + if (ConfigDfn.strShowCarLR == "L") + { + if (ConfigDfn.strCarModel.ToUpper().Contains("EH3")) + { + fLEH3.Show(); + fLEHY.Show(); + fLEHY.Hide(); + } + else + { + fLEH3.Show(); + fLEH3.Hide(); + fLEHY.Show(); + } + } + else + { + if (ConfigDfn.strCarModel.ToUpper().Contains("EH3")) + { + fREH3.Show(); + fREHY.Show(); + fREHY.Hide(); + } + else + { + fREH3.Show(); + fREH3.Hide(); + fREHY.Show(); + } + } + } + public void ShowCarMeasureDataByCarType(int iCarType) + { + if (ConfigDfn.strShowCarLR == "L") + { + if (iCarType == 1) + { + fLEH3.Show(); + fLEHY.Show(); + fLEHY.Hide(); + MyBase.TraceWriteLine("显示左侧EH3车身数据界面。"); + } + else + { + fLEH3.Show(); + fLEH3.Hide(); + fLEHY.Show(); + MyBase.TraceWriteLine("显示左侧EHY车身数据界面。"); + } + } + else + { + if (iCarType == 1) + { + fREH3.Show(); + fREHY.Show(); + fREHY.Hide(); + MyBase.TraceWriteLine("显示右侧EH3车身数据界面。"); + } + else + { + fREH3.Show(); + fREH3.Hide(); + fREHY.Show(); + MyBase.TraceWriteLine("显示右侧EHY车身数据界面。"); + } + } + } + private void rbtnTestCOM_Click(object sender, EventArgs e) + { + if (rbtnTestCOM.Text == "打开串口") + { + serialTestPort = new SerialPort(rtbPort.Text.Trim(), 115200, Parity.None, 8, StopBits.One); // 设置串口参数 + serialTestPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); // 注册数据接收事件处理方法 + serialTestPort.Open(); // 打开串口 + if (serialTestPort.IsOpen) + { + rbtnTestCOM.Text = "关闭串口"; + } + } + else + { + serialTestPort.DataReceived -= new SerialDataReceivedEventHandler(DataReceivedHandler); + serialTestPort.Close(); + serialTestPort.Dispose(); + rbtnTestCOM.Text = "打开串口"; + } + } + + private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) + { + SerialPort sp = (SerialPort)sender; + string indata = sp.ReadExisting(); + MyBase.TraceWriteLine(indata); + rtbCOMContent.Text = indata; + } + + private void tmrMonitorDBToCreateReport_Tick(object sender, EventArgs e) + { + tmrMonitorDBToCreateReport.Stop(); + int iCurrentMeasureCount = tmdal.SelectTMeasureResultCount(); + if (iCurrentMeasureCount > iLastMesureCount && (iCurrentMeasureCount == (iLastMesureCount + 1))) + { + MyBase.TraceWriteLine("监控数据库,开始生成ipn文件:"); + DataTable dtMeaResult = tmdal.SelectNewestTMeasureResult(); + string strVIN = dtMeaResult.Rows[0]["CarID"].ToString(); + DateTime dateMeaDate = Convert.ToDateTime(dtMeaResult.Rows[0]["Remark"].ToString()); + DataTable dtMeaContent = tmdal.SelectTMeasureDataByVIN(strVIN); + string strCarType = dtMeaContent.Rows[0][2].ToString(); + int iMeaCount = dtMeaContent.Rows.Count; + + #region 解析完报告后,重新生成客户模板报告 + + string filePath = ""; + if (strCarType.ToLower().Contains("tava")) + { + filePath = ConfigDfn.strReportPath + "\\" + strCarType + "_" + strVIN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".ipn"; + } + else + { + filePath = ConfigDfn.strReportPath2 + "\\" + strCarType + "_" + strVIN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".ipn"; + } + + StringBuilder sb = new StringBuilder(); + + #region 添加表头 + + sb.Append("GAUGE ID"); + sb.Append("\t"); + sb.Append("JSN"); + sb.Append("\t"); + sb.Append("MO"); + sb.Append("\t"); + sb.Append("DAY"); + sb.Append("\t"); + sb.Append("YR"); + sb.Append("\t"); + sb.Append("HR"); + sb.Append("\t"); + sb.Append("MIN"); + sb.Append("\t"); + sb.Append("SEC"); + sb.Append("\t"); + sb.Append("MODEL"); + sb.Append("\t"); + sb.Append("AuxID1"); + sb.Append("\t"); + sb.Append("AuxID2"); + sb.Append("\t"); + sb.Append("QUAL"); + sb.Append("\t"); + sb.Append("SHIFT"); + sb.Append("\t"); + sb.Append("DATA TYPE"); + sb.Append("\t"); + sb.Append("FIXTURE"); + sb.Append("\t"); + for (int i = 0; i < iMeaCount / 2; i++) + { + string strMeaPointName = dtMeaContent.Rows[i * 2]["MeasPointName"].ToString(); + string strMPF = strMeaPointName + " Flush"; + string strMPG = strMeaPointName + " Gap"; + sb.Append("D " + strMPF); + sb.Append("\t"); + sb.Append("D " + strMPG); + sb.Append("\t"); + + sb.Append("B " + strMPF); + sb.Append("\t"); + sb.Append("B " + strMPG); + sb.Append("\t"); + + sb.Append("A " + strMPF); + sb.Append("\t"); + sb.Append("A " + strMPG); + sb.Append("\t"); + + sb.Append("US " + strMPF); + sb.Append("\t"); + sb.Append("LS " + strMPF); + sb.Append("\t"); + sb.Append("US " + strMPG); + sb.Append("\t"); + sb.Append("LS " + strMPG); + sb.Append("\t"); + + sb.Append("UR " + strMPF); + sb.Append("\t"); + sb.Append("LR " + strMPF); + sb.Append("\t"); + sb.Append("UR " + strMPG); + sb.Append("\t"); + sb.Append("LR " + strMPG); + sb.Append("\t"); + + sb.Append("UT " + strMPF); + sb.Append("\t"); + sb.Append("LT " + strMPF); + sb.Append("\t"); + sb.Append("UT " + strMPG); + sb.Append("\t"); + sb.Append("LT " + strMPG); + sb.Append("\t"); + } + + #endregion 添加表头 + + sb.AppendLine(); + + #region 添加内容 + + sb.Append(ConfigDfn.strStationName); + sb.Append("\t"); + sb.Append(strVIN); + sb.Append("\t"); + sb.Append(dateMeaDate.Month.ToString()); + sb.Append("\t"); + sb.Append(dateMeaDate.Day.ToString()); + sb.Append("\t"); + sb.Append(dateMeaDate.Year.ToString().Substring(2)); + sb.Append("\t"); + sb.Append(dateMeaDate.Hour.ToString()); + sb.Append("\t"); + sb.Append(dateMeaDate.Minute.ToString()); + sb.Append("\t"); + sb.Append(dateMeaDate.Second.ToString()); + sb.Append("\t"); + if (strCarType.ToLower().Contains("tava")) + sb.Append(ConfigDfn.strUploadPath); + else + { + sb.Append(ConfigDfn.strUploadPath2); + } + sb.Append("\t"); + sb.Append("Unknow"); + sb.Append("\t"); + sb.Append("Unknow"); + sb.Append("\t"); + sb.Append("2"); + sb.Append("\t"); + sb.Append(""); + sb.Append("\t"); + sb.Append("AUTO"); + sb.Append("\t"); + sb.Append("NONE"); + sb.Append("\t"); + + double dDevFVal = 0; + double dDevGVal = 0; + + double dMeaFVal = 0; + double dMeaGVal = 0; + + double dNorFVal = 0; + double dNorGVal = 0; + + double dFUpper = 0; + double dFLower = 0; + double dGUpper = 0; + double dGLower = 0; + + double dFUpper2 = 0; + double dFLower2 = 0; + double dGUpper2 = 0; + double dGLower2 = 0; + + double dFUpper3 = 0; + double dFLower3 = 0; + double dGUpper3 = 0; + double dGLower3 = 0; + for (int i = 0; i < iMeaCount / 2; i++) + { + string strMeasureFValue = dtMeaContent.Rows[i * 2]["MeasureValue"].ToString(); + string strMeasureGValue = dtMeaContent.Rows[i * 2 + 1]["MeasureValue"].ToString(); + string strNormalFValue = dtMeaContent.Rows[i * 2]["NormalValue"].ToString(); + string strNormalGValue = dtMeaContent.Rows[i * 2 + 1]["NormalValue"].ToString(); + + dNorFVal = double.Parse(strNormalFValue); + dNorGVal = double.Parse(strNormalGValue); + dFUpper = double.Parse(dtMeaContent.Rows[i * 2]["UpperTolVal"].ToString()); + dFLower = double.Parse(dtMeaContent.Rows[i * 2]["LowerTolVal"].ToString()); + dGUpper = double.Parse(dtMeaContent.Rows[i * 2 + 1]["UpperTolVal"].ToString()); + dGLower = double.Parse(dtMeaContent.Rows[i * 2 + 1]["LowerTolVal"].ToString()); + + dFUpper2 = dFUpper * ConfigDfn.dLevel2; + dFLower2 = dFLower * ConfigDfn.dLevel2; + dGUpper2 = dGUpper * ConfigDfn.dLevel2; + dGLower2 = dGLower * ConfigDfn.dLevel2; + + dFUpper3 = dFUpper * ConfigDfn.dLevel3; + dFLower3 = dFLower * ConfigDfn.dLevel3; + dGUpper3 = dGUpper * ConfigDfn.dLevel3; + dGLower3 = dGLower * ConfigDfn.dLevel3; + + if (strMeasureFValue.Contains("inv")) + { + sb.Append("inv"); + sb.Append("\t"); + } + else + { + dMeaFVal = double.Parse(strMeasureFValue); + dDevFVal = dMeaFVal - dNorFVal; + sb.Append(dDevFVal.ToString("F3")); + sb.Append("\t"); + } + if (strMeasureGValue.Contains("inv")) + { + sb.Append("inv"); + sb.Append("\t"); + } + else + { + dMeaGVal = double.Parse(strMeasureGValue); + dDevGVal = dMeaGVal - dNorGVal; + sb.Append(dDevGVal.ToString("F3")); + sb.Append("\t"); + } + + sb.Append(strNormalFValue); + sb.Append("\t"); + sb.Append(strNormalGValue); + sb.Append("\t"); + + sb.Append(strMeasureFValue); + sb.Append("\t"); + sb.Append(strMeasureGValue); + sb.Append("\t"); + + sb.Append(dFUpper.ToString("F3")); + sb.Append("\t"); + sb.Append(dFLower.ToString("F3")); + sb.Append("\t"); + sb.Append(dGUpper.ToString("F3")); + sb.Append("\t"); + sb.Append(dGLower.ToString("F3")); + sb.Append("\t"); + + sb.Append(dFUpper2.ToString("F3")); + sb.Append("\t"); + sb.Append(dFLower2.ToString("F3")); + sb.Append("\t"); + sb.Append(dGUpper2.ToString("F3")); + sb.Append("\t"); + sb.Append(dGLower2.ToString("F3")); + sb.Append("\t"); + + sb.Append(dFUpper3.ToString("F3")); + sb.Append("\t"); + sb.Append(dFLower3.ToString("F3")); + sb.Append("\t"); + sb.Append(dGUpper3.ToString("F3")); + sb.Append("\t"); + sb.Append(dGLower3.ToString("F3")); + sb.Append("\t"); + } + + #endregion 添加内容 + + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + MyBase.TraceWriteLine("客户定制ipn报告生成完毕,路径为:" + filePath); + + #endregion 解析完报告后,重新生成客户模板报告 + } + iLastMesureCount = iCurrentMeasureCount; + tmrMonitorDBToCreateReport.Start(); + } + + + } + + public class CheryIOTData + { + /// VIN号 + public string vin { get; set; } + + /// FG + public string gfNo { get; set; } + + /// 测点编号 + public string pointNumber { get; set; } + + /// 实测值 + public string actualValue { get; set; } + + /// 控制线 + public string controlLine { get; set; } + + /// 测量结果 + public string measurementResult { get; set; } + } + public class CarInfoData + { + public string material { get; set; } + public string model { get; set; } + } + public class CheryCarTypeInfo + { + /// data + public CarInfoData data { get; set; } + + /// message + public string message { get; set; } + + /// serno + public string serno { get; set; } + + /// success + public string success { get; set; } + + } + + public static class JsonHelper + { + /// + /// 对象转成JSON 格式字符串 + /// + /// 对象 + /// JSON格式的字符串 + public static string ObjectToJson(object obj) + { + return JsonConvert.SerializeObject(obj); + } + + /// + /// 解析JSON字符串生成对象实体 + /// + /// 对象类型 + /// json字符串 + /// 对象实体 + public static T DeserializeJsonToObject(string json) where T : class + { + Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer(); + StringReader sr = new StringReader(json); + object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T)); + T t = o as T; + return t; + } + + /// + /// 解析JSON数组生成对象实体集合 + /// + /// 对象类型 + /// json数组字符串(eg.[{"ID":"112","Name":"石子儿"}]) + /// 对象实体集合 + public static List DeserializeJsonToList(string json) where T : class + { + Newtonsoft.Json.JsonSerializer serializer = new JsonSerializer(); + StringReader sr = new StringReader(json); + object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List)); + List list = o as List; + return list; + } + + /// + /// 数据表转键值对集合 + /// 把DataTable转成 List集合, 存每一行 + /// 集合中放的是键值对字典,存每一列 + /// + /// 数据表 + /// 哈希表数组 + public static List> DataTableToList(DataTable dt) + { + List> list = new List>(); + + foreach (DataRow dr in dt.Rows) + { + Dictionary dic = new Dictionary(); + foreach (DataColumn dc in dt.Columns) + { + dic.Add(dc.ColumnName, dr[dc.ColumnName]); + } + list.Add(dic); + } + return list; + } + + /// + /// 数据集转键值对数组字典 + /// + /// 键值对数组字典 + public static Dictionary>> DataSetToDic(DataSet ds) + { + Dictionary>> result = new Dictionary>>(); + + foreach (DataTable dt in ds.Tables) + result.Add(dt.TableName, DataTableToList(dt)); + + return result; + } + + /// + /// 数据表转JSON + /// + /// 数据表 + /// JSON字符串 + public static string DataTableToJson(DataTable dt) + { + return ObjectToJson(DataTableToList(dt)); + } + + /// + /// JSON文本转对象,泛型方法 常用 + /// + /// 类型 + /// JSON文本 + /// 指定类型的对象 + public static T JsonToObject(string jsonText) + { + return JsonConvert.DeserializeObject(jsonText); + } + + /// + /// 将JSON文本转换为数据表数据 + /// + /// JSON文本 + /// 数据表字典 + public static Dictionary>> TablesDataFromJson(string jsonText) + { + return JsonToObject>>>(jsonText); + } + + /// + /// 将JSON文本转换成数据行 + /// + /// JSON文本 + /// 数据行的字典 + public static Dictionary DataRowFromJson(string jsonText) + { + return JsonToObject>(jsonText); + } + } +} \ No newline at end of file diff --git a/Analysis/CenterControl.designer.cs b/Analysis/CenterControl.designer.cs new file mode 100644 index 0000000..caf7cb8 --- /dev/null +++ b/Analysis/CenterControl.designer.cs @@ -0,0 +1,3605 @@ +namespace NSAnalysis +{ + partial class CenterControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CenterControl)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title(); + Telerik.WinControls.UI.RadListDataItem radListDataItem1 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem2 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem3 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem4 = new Telerik.WinControls.UI.RadListDataItem(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Title title2 = new System.Windows.Forms.DataVisualization.Charting.Title(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Title title3 = new System.Windows.Forms.DataVisualization.Charting.Title(); + Telerik.WinControls.UI.RadListDataItem radListDataItem5 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem6 = new Telerik.WinControls.UI.RadListDataItem(); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.radStatusStrip1 = new Telerik.WinControls.UI.RadStatusStrip(); + this.rleTimeText = new Telerik.WinControls.UI.RadLabelElement(); + this.rleTime = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator4 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.radLabelElement2 = new Telerik.WinControls.UI.RadLabelElement(); + this.rleReadCSVStatus = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator1 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.rlePLCText = new Telerik.WinControls.UI.RadLabelElement(); + this.rlePLCStatus = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator2 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.radLabelElement1 = new Telerik.WinControls.UI.RadLabelElement(); + this.rlePLCHeart = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator3 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.radLabelElement3 = new Telerik.WinControls.UI.RadLabelElement(); + this.rleReadDBStatus = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator5 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.rleMessageText = new Telerik.WinControls.UI.RadLabelElement(); + this.rleMessage = new Telerik.WinControls.UI.RadLabelElement(); + this.RPV = new Telerik.WinControls.UI.RadPageView(); + this.rpvpAnalysis = new Telerik.WinControls.UI.RadPageViewPage(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.label4 = new System.Windows.Forms.Label(); + this.lbCSVFiles = new System.Windows.Forms.ListBox(); + this.dgvMeasureContent = new System.Windows.Forms.DataGridView(); + this.DimensionID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DimensionName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.NormalVal = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.LowerTolVal = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.UpperTolVal = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MeasureValue = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MDate = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.labCarType = new System.Windows.Forms.Label(); + this.label24 = new System.Windows.Forms.Label(); + this.labSumMeasureCount = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.labRejectCount = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.pbResult = new System.Windows.Forms.PictureBox(); + this.labResult = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.labResultPercent = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.labMeaTime = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.labNGCount = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.labOKCount = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.labVIN = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.chartResultPie = new System.Windows.Forms.DataVisualization.Charting.Chart(); + this.rpvpSearch = new Telerik.WinControls.UI.RadPageViewPage(); + this.pnlPage = new System.Windows.Forms.Panel(); + this.rddlPageRecorderCount = new Telerik.WinControls.UI.RadDropDownList(); + this.rbtnFirtstPage = new Telerik.WinControls.UI.RadButton(); + this.rbtnLastPage = new Telerik.WinControls.UI.RadButton(); + this.rbtnPrevPage = new Telerik.WinControls.UI.RadButton(); + this.rbtnNextPage = new Telerik.WinControls.UI.RadButton(); + this.label3 = new System.Windows.Forms.Label(); + this.labSumRecorders = new System.Windows.Forms.Label(); + this.labSumPages = new System.Windows.Forms.Label(); + this.labCurrentPage = new System.Windows.Forms.Label(); + this.labSearchResult = new System.Windows.Forms.Label(); + this.radGroupBox1 = new Telerik.WinControls.UI.RadGroupBox(); + this.rtbPartID = new Telerik.WinControls.UI.RadTextBox(); + this.rbtSelectFPY = new Telerik.WinControls.UI.RadButton(); + this.rbtnExportCSVReport = new Telerik.WinControls.UI.RadButton(); + this.rdtpStartTime = new Telerik.WinControls.UI.RadDateTimePicker(); + this.rdtpEndTime = new Telerik.WinControls.UI.RadDateTimePicker(); + this.rbtnSearchMeaserData = new Telerik.WinControls.UI.RadButton(); + this.radLabel15 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel1 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel11 = new Telerik.WinControls.UI.RadLabel(); + this.chartFPYLine = new System.Windows.Forms.DataVisualization.Charting.Chart(); + this.dgvSelectMeasureData = new System.Windows.Forms.DataGridView(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MeasureItemResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgvFPYResult = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn12 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn13 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn14 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn16 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SMResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rpvpCpCpk = new Telerik.WinControls.UI.RadPageViewPage(); + this.pnlCPCPK = new System.Windows.Forms.Panel(); + this.radGroupBox6 = new Telerik.WinControls.UI.RadGroupBox(); + this.labPpk = new Telerik.WinControls.UI.RadLabel(); + this.radLabel7 = new Telerik.WinControls.UI.RadLabel(); + this.labPpu = new Telerik.WinControls.UI.RadLabel(); + this.radLabel12 = new Telerik.WinControls.UI.RadLabel(); + this.labPpl = new Telerik.WinControls.UI.RadLabel(); + this.radLabel17 = new Telerik.WinControls.UI.RadLabel(); + this.labPp = new Telerik.WinControls.UI.RadLabel(); + this.radLabel27 = new Telerik.WinControls.UI.RadLabel(); + this.labCpk = new Telerik.WinControls.UI.RadLabel(); + this.radLabel13 = new Telerik.WinControls.UI.RadLabel(); + this.labCpu = new Telerik.WinControls.UI.RadLabel(); + this.radLabel10 = new Telerik.WinControls.UI.RadLabel(); + this.labCpl = new Telerik.WinControls.UI.RadLabel(); + this.radLabel8 = new Telerik.WinControls.UI.RadLabel(); + this.labCp = new Telerik.WinControls.UI.RadLabel(); + this.radLabel4 = new Telerik.WinControls.UI.RadLabel(); + this.radGroupBox5 = new Telerik.WinControls.UI.RadGroupBox(); + this.labSampleSize = new Telerik.WinControls.UI.RadLabel(); + this.radLabel30 = new Telerik.WinControls.UI.RadLabel(); + this.labStdDev = new Telerik.WinControls.UI.RadLabel(); + this.radLabel32 = new Telerik.WinControls.UI.RadLabel(); + this.labAverage = new Telerik.WinControls.UI.RadLabel(); + this.radLabel34 = new Telerik.WinControls.UI.RadLabel(); + this.labUSL = new Telerik.WinControls.UI.RadLabel(); + this.radLabel16 = new Telerik.WinControls.UI.RadLabel(); + this.labTarget = new Telerik.WinControls.UI.RadLabel(); + this.radLabel18 = new Telerik.WinControls.UI.RadLabel(); + this.labLSL = new Telerik.WinControls.UI.RadLabel(); + this.radLabel24 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel25 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel26 = new Telerik.WinControls.UI.RadLabel(); + this.labSearchCPCPKResult = new System.Windows.Forms.Label(); + this.chartCPCPK = new System.Windows.Forms.DataVisualization.Charting.Chart(); + this.radGroupBox2 = new Telerik.WinControls.UI.RadGroupBox(); + this.rddlMeasurePoint = new Telerik.WinControls.UI.RadDropDownList(); + this.rddlSizeName = new Telerik.WinControls.UI.RadDropDownList(); + this.radLabel2 = new Telerik.WinControls.UI.RadLabel(); + this.nudMeasureCount = new System.Windows.Forms.NumericUpDown(); + this.radButton10 = new Telerik.WinControls.UI.RadButton(); + this.radLabel3 = new Telerik.WinControls.UI.RadLabel(); + this.rbtnSearchCPCPK = new Telerik.WinControls.UI.RadButton(); + this.radLabel5 = new Telerik.WinControls.UI.RadLabel(); + this.rpvpSetup = new Telerik.WinControls.UI.RadPageViewPage(); + this.lpcRange = new UserControlClass.LabPictureControl(); + this.lpcTestGetCarTye = new UserControlClass.LabPictureControl(); + this.lpcShowLog = new UserControlClass.LabPictureControl(); + this.radGroupBox7 = new Telerik.WinControls.UI.RadGroupBox(); + this.rtbCOMContent = new Telerik.WinControls.UI.RadTextBox(); + this.label25 = new System.Windows.Forms.Label(); + this.rtbPort = new Telerik.WinControls.UI.RadTextBox(); + this.rbtnTestCOM = new Telerik.WinControls.UI.RadButton(); + this.radGroupBox3 = new Telerik.WinControls.UI.RadGroupBox(); + this.rbtnClosePLC = new Telerik.WinControls.UI.RadButton(); + this.rbtnConnectPLC = new Telerik.WinControls.UI.RadButton(); + this.rgbMeasreSeq = new Telerik.WinControls.UI.RadGroupBox(); + this.lampError = new UserControlClass.Lamp(); + this.lampMode = new UserControlClass.Lamp(); + this.lampPLCHeart = new UserControlClass.Lamp(); + this.lampConnectPLCStatus = new UserControlClass.Lamp(); + this.labelTimeStatus_Tip = new System.Windows.Forms.Label(); + this.radLabel20 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel21 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel22 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel23 = new Telerik.WinControls.UI.RadLabel(); + this.lpcToleranceSetup = new UserControlClass.LabPictureControl(); + this.lpcSoftwareSetup = new UserControlClass.LabPictureControl(); + this.lpcShowCarData = new UserControlClass.LabPictureControl(); + this.lpcUploadIOTTest = new UserControlClass.LabPictureControl(); + this.lpcAboutSoftware = new UserControlClass.LabPictureControl(); + this.lpcPLCTest = new UserControlClass.LabPictureControl(); + this.lpcPLCAddress = new UserControlClass.LabPictureControl(); + this.tmSystem = new System.Windows.Forms.Timer(this.components); + this.tmReadNextsenseCSV = new System.Windows.Forms.Timer(this.components); + this.tmrReadPLCData = new System.Windows.Forms.Timer(this.components); + this.tmrRefreshPLCStatus = new System.Windows.Forms.Timer(this.components); + this.tmrHeartBeatConnect = new System.Windows.Forms.Timer(this.components); + this.tmrWritePLCLive = new System.Windows.Forms.Timer(this.components); + this.tmrMonitorDBToCreateReport = new System.Windows.Forms.Timer(this.components); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radStatusStrip1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.RPV)).BeginInit(); + this.RPV.SuspendLayout(); + this.rpvpAnalysis.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvMeasureContent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbResult)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartResultPie)).BeginInit(); + this.rpvpSearch.SuspendLayout(); + this.pnlPage.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rddlPageRecorderCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnFirtstPage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnLastPage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnPrevPage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnNextPage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox1)).BeginInit(); + this.radGroupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPartID)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtSelectFPY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnExportCSVReport)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rdtpStartTime)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rdtpEndTime)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnSearchMeaserData)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartFPYLine)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectMeasureData)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvFPYResult)).BeginInit(); + this.rpvpCpCpk.SuspendLayout(); + this.pnlCPCPK.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox6)).BeginInit(); + this.radGroupBox6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.labPpk)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labPpu)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labPpl)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel17)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labPp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel27)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labCpk)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labCpu)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labCpl)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labCp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox5)).BeginInit(); + this.radGroupBox5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.labSampleSize)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel30)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labStdDev)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel32)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labAverage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel34)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labUSL)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel16)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labTarget)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel18)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.labLSL)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel24)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel25)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel26)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartCPCPK)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox2)).BeginInit(); + this.radGroupBox2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rddlMeasurePoint)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlSizeName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMeasureCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnSearchCPCPK)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).BeginInit(); + this.rpvpSetup.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox7)).BeginInit(); + this.radGroupBox7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCOMContent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPort)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnTestCOM)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox3)).BeginInit(); + this.radGroupBox3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnClosePLC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnConnectPLC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rgbMeasreSeq)).BeginInit(); + this.rgbMeasreSeq.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel20)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel21)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel22)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel23)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(1918, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "海克斯康间隙面差分析系统"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "海克斯康间隙面差分析系统"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(793, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(835, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(240, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "海克斯康间隙面差分析系统"; + // + // radStatusStrip1 + // + this.radStatusStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radStatusStrip1.Dock = System.Windows.Forms.DockStyle.None; + this.radStatusStrip1.Font = new System.Drawing.Font("Segoe UI", 9F); + this.radStatusStrip1.ForeColor = System.Drawing.Color.White; + this.radStatusStrip1.Items.AddRange(new Telerik.WinControls.RadItem[] { + this.rleTimeText, + this.rleTime, + this.commandBarSeparator4, + this.radLabelElement2, + this.rleReadCSVStatus, + this.commandBarSeparator1, + this.rlePLCText, + this.rlePLCStatus, + this.commandBarSeparator2, + this.radLabelElement1, + this.rlePLCHeart, + this.commandBarSeparator3, + this.radLabelElement3, + this.rleReadDBStatus, + this.commandBarSeparator5, + this.rleMessageText, + this.rleMessage}); + this.radStatusStrip1.Location = new System.Drawing.Point(1, 1052); + this.radStatusStrip1.Name = "radStatusStrip1"; + this.radStatusStrip1.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.radStatusStrip1.Size = new System.Drawing.Size(1918, 26); + this.radStatusStrip1.TabIndex = 126; + ((Telerik.WinControls.UI.RadStatusBarElement)(this.radStatusStrip1.GetChildAt(0))).Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + // + // rleTimeText + // + this.rleTimeText.Name = "rleTimeText"; + this.radStatusStrip1.SetSpring(this.rleTimeText, false); + this.rleTimeText.Text = "当前时间 :"; + this.rleTimeText.TextWrap = true; + this.rleTimeText.UseCompatibleTextRendering = false; + // + // rleTime + // + this.rleTime.Name = "rleTime"; + this.radStatusStrip1.SetSpring(this.rleTime, false); + this.rleTime.Text = "2023-06-01 12:23:34"; + this.rleTime.TextWrap = true; + this.rleTime.UseCompatibleTextRendering = false; + // + // commandBarSeparator4 + // + this.commandBarSeparator4.Name = "commandBarSeparator4"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator4, false); + this.commandBarSeparator4.VisibleInOverflowMenu = false; + // + // radLabelElement2 + // + this.radLabelElement2.Name = "radLabelElement2"; + this.radStatusStrip1.SetSpring(this.radLabelElement2, false); + this.radLabelElement2.Text = "读取CSV文件状态:"; + this.radLabelElement2.TextWrap = true; + // + // rleReadCSVStatus + // + this.rleReadCSVStatus.Font = new System.Drawing.Font("宋体", 11F); + this.rleReadCSVStatus.Name = "rleReadCSVStatus"; + this.radStatusStrip1.SetSpring(this.rleReadCSVStatus, false); + this.rleReadCSVStatus.Text = "●"; + this.rleReadCSVStatus.TextWrap = true; + // + // commandBarSeparator1 + // + this.commandBarSeparator1.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator1.Name = "commandBarSeparator1"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator1, false); + this.commandBarSeparator1.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator1.UseCompatibleTextRendering = false; + this.commandBarSeparator1.VisibleInOverflowMenu = false; + // + // rlePLCText + // + this.rlePLCText.Name = "rlePLCText"; + this.radStatusStrip1.SetSpring(this.rlePLCText, false); + this.rlePLCText.Text = "PLC连接状态:"; + this.rlePLCText.TextWrap = true; + this.rlePLCText.UseCompatibleTextRendering = false; + // + // rlePLCStatus + // + this.rlePLCStatus.Font = new System.Drawing.Font("宋体", 11F); + this.rlePLCStatus.Name = "rlePLCStatus"; + this.radStatusStrip1.SetSpring(this.rlePLCStatus, false); + this.rlePLCStatus.Text = "●"; + this.rlePLCStatus.TextWrap = true; + this.rlePLCStatus.UseCompatibleTextRendering = false; + // + // commandBarSeparator2 + // + this.commandBarSeparator2.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator2.Name = "commandBarSeparator2"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator2, false); + this.commandBarSeparator2.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator2.UseCompatibleTextRendering = false; + this.commandBarSeparator2.VisibleInOverflowMenu = false; + // + // radLabelElement1 + // + this.radLabelElement1.Name = "radLabelElement1"; + this.radStatusStrip1.SetSpring(this.radLabelElement1, false); + this.radLabelElement1.Text = "PLC心跳:"; + this.radLabelElement1.TextWrap = true; + this.radLabelElement1.UseCompatibleTextRendering = false; + // + // rlePLCHeart + // + this.rlePLCHeart.Font = new System.Drawing.Font("宋体", 11F); + this.rlePLCHeart.Name = "rlePLCHeart"; + this.radStatusStrip1.SetSpring(this.rlePLCHeart, false); + this.rlePLCHeart.Text = "●"; + this.rlePLCHeart.TextWrap = true; + this.rlePLCHeart.UseCompatibleTextRendering = false; + // + // commandBarSeparator3 + // + this.commandBarSeparator3.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator3.Name = "commandBarSeparator3"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator3, false); + this.commandBarSeparator3.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator3.UseCompatibleTextRendering = false; + this.commandBarSeparator3.VisibleInOverflowMenu = false; + // + // radLabelElement3 + // + this.radLabelElement3.Name = "radLabelElement3"; + this.radStatusStrip1.SetSpring(this.radLabelElement3, false); + this.radLabelElement3.Text = "读取数据库状态:"; + this.radLabelElement3.TextWrap = true; + // + // rleReadDBStatus + // + this.rleReadDBStatus.Font = new System.Drawing.Font("宋体", 11F); + this.rleReadDBStatus.Name = "rleReadDBStatus"; + this.radStatusStrip1.SetSpring(this.rleReadDBStatus, false); + this.rleReadDBStatus.Text = "●"; + this.rleReadDBStatus.TextWrap = true; + // + // commandBarSeparator5 + // + this.commandBarSeparator5.Name = "commandBarSeparator5"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator5, false); + this.commandBarSeparator5.VisibleInOverflowMenu = false; + // + // rleMessageText + // + this.rleMessageText.Name = "rleMessageText"; + this.radStatusStrip1.SetSpring(this.rleMessageText, false); + this.rleMessageText.Text = "消息 :"; + this.rleMessageText.TextWrap = true; + this.rleMessageText.UseCompatibleTextRendering = false; + // + // rleMessage + // + this.rleMessage.Name = "rleMessage"; + this.radStatusStrip1.SetSpring(this.rleMessage, false); + this.rleMessage.Text = "软件正常启动"; + this.rleMessage.TextWrap = true; + this.rleMessage.UseCompatibleTextRendering = false; + // + // RPV + // + this.RPV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.RPV.Controls.Add(this.rpvpAnalysis); + this.RPV.Controls.Add(this.rpvpSearch); + this.RPV.Controls.Add(this.rpvpCpCpk); + this.RPV.Controls.Add(this.rpvpSetup); + this.RPV.DefaultPage = this.rpvpAnalysis; + this.RPV.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.RPV.ItemSizeMode = ((Telerik.WinControls.UI.PageViewItemSizeMode)((Telerik.WinControls.UI.PageViewItemSizeMode.EqualWidth | Telerik.WinControls.UI.PageViewItemSizeMode.EqualHeight))); + this.RPV.Location = new System.Drawing.Point(1, 42); + this.RPV.Name = "RPV"; + this.RPV.SelectedPage = this.rpvpCpCpk; + this.RPV.Size = new System.Drawing.Size(1918, 1008); + this.RPV.TabIndex = 127; + this.RPV.ViewMode = Telerik.WinControls.UI.PageViewMode.NavigationView; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).DisplayMode = Telerik.WinControls.UI.NavigationViewDisplayModes.Compact; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).HeaderHeight = 35; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ExpandedPaneWidth = 150; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).CollapsedPaneWidth = 48; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ShowItemPinButton = true; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).StripButtons = Telerik.WinControls.UI.StripViewButtons.None; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemAlignment = Telerik.WinControls.UI.StripViewItemAlignment.Near; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemFitMode = Telerik.WinControls.UI.StripViewItemFitMode.None; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ShowItemCloseButton = true; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemDragMode = Telerik.WinControls.UI.PageViewItemDragMode.None; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemSpacing = 1; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemSizeMode = ((Telerik.WinControls.UI.PageViewItemSizeMode)((Telerik.WinControls.UI.PageViewItemSizeMode.EqualWidth | Telerik.WinControls.UI.PageViewItemSizeMode.EqualHeight))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderInnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderInnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderLeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderTopColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderRightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderLeftShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderTopShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderRightShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderBottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).Font = new System.Drawing.Font("Segoe UI", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).MinSize = new System.Drawing.Size(48, 0); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).MaxSize = new System.Drawing.Size(48, 0); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderLeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderTopColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderRightColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderLeftShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderTopShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderRightShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).FocusBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderInnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderInnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).FocusBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderInnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderInnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).HorizontalLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).Text = " Cp/Cpk,Pp/Ppk分析"; + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).FocusBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.HamburgerButtonElement)(this.RPV.GetChildAt(0).GetChildAt(3))).FocusBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.HamburgerButtonElement)(this.RPV.GetChildAt(0).GetChildAt(3))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.HamburgerButtonElement)(this.RPV.GetChildAt(0).GetChildAt(3))).StretchHorizontally = false; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).GradientStyle = Telerik.WinControls.GradientStyles.OfficeGlass; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.ImagePrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.ImagePrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rpvpAnalysis + // + this.rpvpAnalysis.AutoScroll = true; + this.rpvpAnalysis.BackColor = System.Drawing.Color.Transparent; + this.rpvpAnalysis.Controls.Add(this.splitContainer1); + this.rpvpAnalysis.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rpvpAnalysis.Image = ((System.Drawing.Image)(resources.GetObject("rpvpAnalysis.Image"))); + this.rpvpAnalysis.ItemSize = new System.Drawing.SizeF(46F, 46F); + this.rpvpAnalysis.Location = new System.Drawing.Point(49, 35); + this.rpvpAnalysis.Name = "rpvpAnalysis"; + this.rpvpAnalysis.Size = new System.Drawing.Size(1868, 972); + this.rpvpAnalysis.Text = " 分析主界面"; + // + // splitContainer1 + // + this.splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.label4); + this.splitContainer1.Panel1.Controls.Add(this.lbCSVFiles); + this.splitContainer1.Panel1.Controls.Add(this.dgvMeasureContent); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); + this.splitContainer1.Size = new System.Drawing.Size(1868, 972); + this.splitContainer1.SplitterDistance = 1128; + this.splitContainer1.TabIndex = 0; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label4.ForeColor = System.Drawing.Color.White; + this.label4.Location = new System.Drawing.Point(21, 14); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(233, 21); + this.label4.TabIndex = 175; + this.label4.Text = "等待读取的CSV报告文件列表:"; + // + // lbCSVFiles + // + this.lbCSVFiles.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lbCSVFiles.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.lbCSVFiles.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbCSVFiles.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.lbCSVFiles.ForeColor = System.Drawing.Color.White; + this.lbCSVFiles.FormattingEnabled = true; + this.lbCSVFiles.ItemHeight = 19; + this.lbCSVFiles.Location = new System.Drawing.Point(19, 39); + this.lbCSVFiles.Name = "lbCSVFiles"; + this.lbCSVFiles.Size = new System.Drawing.Size(1084, 59); + this.lbCSVFiles.TabIndex = 174; + // + // dgvMeasureContent + // + this.dgvMeasureContent.AllowUserToAddRows = false; + this.dgvMeasureContent.AllowUserToDeleteRows = false; + this.dgvMeasureContent.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.dgvMeasureContent.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.dgvMeasureContent.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvMeasureContent.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvMeasureContent.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgvMeasureContent.ColumnHeadersHeight = 38; + this.dgvMeasureContent.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.DimensionID, + this.DimensionName, + this.NormalVal, + this.LowerTolVal, + this.UpperTolVal, + this.MeasureValue, + this.MDate, + this.MResult}); + this.dgvMeasureContent.EnableHeadersVisualStyles = false; + this.dgvMeasureContent.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); + this.dgvMeasureContent.Location = new System.Drawing.Point(21, 104); + this.dgvMeasureContent.Name = "dgvMeasureContent"; + this.dgvMeasureContent.ReadOnly = true; + this.dgvMeasureContent.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvMeasureContent.RowHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvMeasureContent.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle3.Font = new System.Drawing.Font("Segoe UI", 10F); + dataGridViewCellStyle3.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvMeasureContent.RowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvMeasureContent.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Segoe UI", 10F); + this.dgvMeasureContent.RowTemplate.Height = 38; + this.dgvMeasureContent.Size = new System.Drawing.Size(1082, 846); + this.dgvMeasureContent.TabIndex = 173; + // + // DimensionID + // + this.DimensionID.DataPropertyName = "DimensionID"; + this.DimensionID.HeaderText = "测量点名称"; + this.DimensionID.Name = "DimensionID"; + this.DimensionID.ReadOnly = true; + this.DimensionID.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.DimensionID.Width = 150; + // + // DimensionName + // + this.DimensionName.DataPropertyName = "DimensionName"; + this.DimensionName.HeaderText = "尺寸名"; + this.DimensionName.Name = "DimensionName"; + this.DimensionName.ReadOnly = true; + this.DimensionName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.DimensionName.Width = 80; + // + // NormalVal + // + this.NormalVal.DataPropertyName = "NormalVal"; + this.NormalVal.HeaderText = "理论值"; + this.NormalVal.Name = "NormalVal"; + this.NormalVal.ReadOnly = true; + this.NormalVal.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.NormalVal.Visible = false; + // + // LowerTolVal + // + this.LowerTolVal.DataPropertyName = "LowerTolVal"; + this.LowerTolVal.HeaderText = "下限值"; + this.LowerTolVal.Name = "LowerTolVal"; + this.LowerTolVal.ReadOnly = true; + this.LowerTolVal.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // UpperTolVal + // + this.UpperTolVal.DataPropertyName = "UpperTolVal"; + this.UpperTolVal.HeaderText = "上限值"; + this.UpperTolVal.Name = "UpperTolVal"; + this.UpperTolVal.ReadOnly = true; + this.UpperTolVal.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // MeasureValue + // + this.MeasureValue.HeaderText = "实测值"; + this.MeasureValue.Name = "MeasureValue"; + this.MeasureValue.ReadOnly = true; + this.MeasureValue.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // MDate + // + this.MDate.HeaderText = "测量时间"; + this.MDate.Name = "MDate"; + this.MDate.ReadOnly = true; + this.MDate.Width = 190; + // + // MResult + // + this.MResult.HeaderText = "结果"; + this.MResult.Name = "MResult"; + this.MResult.ReadOnly = true; + this.MResult.Width = 150; + // + // splitContainer2 + // + this.splitContainer2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.labCarType); + this.splitContainer2.Panel1.Controls.Add(this.label24); + this.splitContainer2.Panel1.Controls.Add(this.labSumMeasureCount); + this.splitContainer2.Panel1.Controls.Add(this.label13); + this.splitContainer2.Panel1.Controls.Add(this.labRejectCount); + this.splitContainer2.Panel1.Controls.Add(this.label7); + this.splitContainer2.Panel1.Controls.Add(this.pbResult); + this.splitContainer2.Panel1.Controls.Add(this.labResult); + this.splitContainer2.Panel1.Controls.Add(this.label16); + this.splitContainer2.Panel1.Controls.Add(this.labResultPercent); + this.splitContainer2.Panel1.Controls.Add(this.label14); + this.splitContainer2.Panel1.Controls.Add(this.labMeaTime); + this.splitContainer2.Panel1.Controls.Add(this.label12); + this.splitContainer2.Panel1.Controls.Add(this.labNGCount); + this.splitContainer2.Panel1.Controls.Add(this.label10); + this.splitContainer2.Panel1.Controls.Add(this.labOKCount); + this.splitContainer2.Panel1.Controls.Add(this.label8); + this.splitContainer2.Panel1.Controls.Add(this.labVIN); + this.splitContainer2.Panel1.Controls.Add(this.label5); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.chartResultPie); + this.splitContainer2.Size = new System.Drawing.Size(736, 972); + this.splitContainer2.SplitterDistance = 359; + this.splitContainer2.TabIndex = 0; + // + // labCarType + // + this.labCarType.AutoSize = true; + this.labCarType.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labCarType.ForeColor = System.Drawing.Color.White; + this.labCarType.Location = new System.Drawing.Point(183, 60); + this.labCarType.Name = "labCarType"; + this.labCarType.Size = new System.Drawing.Size(45, 24); + this.labCarType.TabIndex = 194; + this.labCarType.Text = "EH3"; + // + // label24 + // + this.label24.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label24.ForeColor = System.Drawing.Color.White; + this.label24.Location = new System.Drawing.Point(25, 59); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(155, 24); + this.label24.TabIndex = 193; + this.label24.Text = "车辆类型 : "; + this.label24.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labSumMeasureCount + // + this.labSumMeasureCount.AutoSize = true; + this.labSumMeasureCount.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labSumMeasureCount.ForeColor = System.Drawing.Color.White; + this.labSumMeasureCount.Location = new System.Drawing.Point(183, 209); + this.labSumMeasureCount.Name = "labSumMeasureCount"; + this.labSumMeasureCount.Size = new System.Drawing.Size(32, 24); + this.labSumMeasureCount.TabIndex = 192; + this.labSumMeasureCount.Text = "54"; + // + // label13 + // + this.label13.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label13.ForeColor = System.Drawing.Color.White; + this.label13.Location = new System.Drawing.Point(25, 208); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(155, 24); + this.label13.TabIndex = 191; + this.label13.Text = "测量总项数 : "; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labRejectCount + // + this.labRejectCount.AutoSize = true; + this.labRejectCount.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labRejectCount.ForeColor = System.Drawing.Color.White; + this.labRejectCount.Location = new System.Drawing.Point(183, 171); + this.labRejectCount.Name = "labRejectCount"; + this.labRejectCount.Size = new System.Drawing.Size(21, 24); + this.labRejectCount.TabIndex = 190; + this.labRejectCount.Text = "2"; + // + // label7 + // + this.label7.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label7.ForeColor = System.Drawing.Color.White; + this.label7.Location = new System.Drawing.Point(8, 170); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(173, 24); + this.label7.TabIndex = 189; + this.label7.Text = "异常测量项数 : "; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // pbResult + // + this.pbResult.Location = new System.Drawing.Point(410, 22); + this.pbResult.Name = "pbResult"; + this.pbResult.Size = new System.Drawing.Size(304, 313); + this.pbResult.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pbResult.TabIndex = 188; + this.pbResult.TabStop = false; + // + // labResult + // + this.labResult.AutoSize = true; + this.labResult.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.labResult.ForeColor = System.Drawing.Color.Lime; + this.labResult.Location = new System.Drawing.Point(183, 311); + this.labResult.Name = "labResult"; + this.labResult.Size = new System.Drawing.Size(62, 31); + this.labResult.TabIndex = 187; + this.labResult.Text = "合格"; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.label16.ForeColor = System.Drawing.Color.White; + this.label16.Location = new System.Drawing.Point(54, 311); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(131, 31); + this.label16.TabIndex = 186; + this.label16.Text = "测量结果 : "; + // + // labResultPercent + // + this.labResultPercent.AutoSize = true; + this.labResultPercent.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.labResultPercent.ForeColor = System.Drawing.Color.Lime; + this.labResultPercent.Location = new System.Drawing.Point(183, 275); + this.labResultPercent.Name = "labResultPercent"; + this.labResultPercent.Size = new System.Drawing.Size(118, 31); + this.labResultPercent.TabIndex = 185; + this.labResultPercent.Text = "80.316%"; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.label14.ForeColor = System.Drawing.Color.White; + this.label14.Location = new System.Drawing.Point(78, 273); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(107, 31); + this.label14.TabIndex = 184; + this.label14.Text = "合格率 : "; + // + // labMeaTime + // + this.labMeaTime.AutoSize = true; + this.labMeaTime.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labMeaTime.ForeColor = System.Drawing.Color.White; + this.labMeaTime.Location = new System.Drawing.Point(183, 242); + this.labMeaTime.Name = "labMeaTime"; + this.labMeaTime.Size = new System.Drawing.Size(193, 24); + this.labMeaTime.TabIndex = 183; + this.labMeaTime.Text = "2023-06-01 12:23:33"; + // + // label12 + // + this.label12.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label12.ForeColor = System.Drawing.Color.White; + this.label12.Location = new System.Drawing.Point(16, 242); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(165, 24); + this.label12.TabIndex = 182; + this.label12.Text = "测量时间 : "; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labNGCount + // + this.labNGCount.AutoSize = true; + this.labNGCount.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labNGCount.ForeColor = System.Drawing.Color.White; + this.labNGCount.Location = new System.Drawing.Point(183, 134); + this.labNGCount.Name = "labNGCount"; + this.labNGCount.Size = new System.Drawing.Size(21, 24); + this.labNGCount.TabIndex = 181; + this.labNGCount.Text = "7"; + // + // label10 + // + this.label10.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label10.ForeColor = System.Drawing.Color.White; + this.label10.Location = new System.Drawing.Point(12, 133); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(169, 24); + this.label10.TabIndex = 180; + this.label10.Text = "不合格测量项数 : "; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labOKCount + // + this.labOKCount.AutoSize = true; + this.labOKCount.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labOKCount.ForeColor = System.Drawing.Color.White; + this.labOKCount.Location = new System.Drawing.Point(183, 98); + this.labOKCount.Name = "labOKCount"; + this.labOKCount.Size = new System.Drawing.Size(32, 24); + this.labOKCount.TabIndex = 179; + this.labOKCount.Text = "45"; + // + // label8 + // + this.label8.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label8.ForeColor = System.Drawing.Color.White; + this.label8.Location = new System.Drawing.Point(8, 97); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(173, 24); + this.label8.TabIndex = 178; + this.label8.Text = "合格测量项数 : "; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labVIN + // + this.labVIN.AutoSize = true; + this.labVIN.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labVIN.ForeColor = System.Drawing.Color.White; + this.labVIN.Location = new System.Drawing.Point(183, 25); + this.labVIN.Name = "labVIN"; + this.labVIN.Size = new System.Drawing.Size(215, 24); + this.labVIN.TabIndex = 177; + this.labVIN.Text = "LNNAJDDU1RDA00030"; + // + // label5 + // + this.label5.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label5.ForeColor = System.Drawing.Color.White; + this.label5.Location = new System.Drawing.Point(29, 24); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(152, 24); + this.label5.TabIndex = 176; + this.label5.Text = "车身编号 : "; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // chartResultPie + // + this.chartResultPie.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.chartResultPie.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea1.Name = "ChartArea1"; + this.chartResultPie.ChartAreas.Add(chartArea1); + legend1.Alignment = System.Drawing.StringAlignment.Center; + legend1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + legend1.Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Bottom; + legend1.Font = new System.Drawing.Font("Segoe UI", 10F); + legend1.ForeColor = System.Drawing.Color.White; + legend1.IsTextAutoFit = false; + legend1.Name = "Legend1"; + legend1.TitleForeColor = System.Drawing.Color.White; + this.chartResultPie.Legends.Add(legend1); + this.chartResultPie.Location = new System.Drawing.Point(3, 3); + this.chartResultPie.Name = "chartResultPie"; + this.chartResultPie.Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.None; + this.chartResultPie.PaletteCustomColors = new System.Drawing.Color[] { + System.Drawing.Color.Green, + System.Drawing.Color.Orange, + System.Drawing.Color.Red}; + series1.ChartArea = "ChartArea1"; + series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie; + series1.Font = new System.Drawing.Font("微软雅黑", 10F); + series1.LabelForeColor = System.Drawing.Color.White; + series1.Legend = "Legend1"; + series1.Name = "Series1"; + this.chartResultPie.Series.Add(series1); + this.chartResultPie.Size = new System.Drawing.Size(728, 584); + this.chartResultPie.TabIndex = 0; + this.chartResultPie.Text = "chartFPY"; + title1.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + title1.ForeColor = System.Drawing.Color.White; + title1.Name = "Title1"; + title1.Text = "合格率"; + this.chartResultPie.Titles.Add(title1); + // + // rpvpSearch + // + this.rpvpSearch.Controls.Add(this.pnlPage); + this.rpvpSearch.Controls.Add(this.labSearchResult); + this.rpvpSearch.Controls.Add(this.radGroupBox1); + this.rpvpSearch.Controls.Add(this.chartFPYLine); + this.rpvpSearch.Controls.Add(this.dgvSelectMeasureData); + this.rpvpSearch.Controls.Add(this.dgvFPYResult); + this.rpvpSearch.Image = ((System.Drawing.Image)(resources.GetObject("rpvpSearch.Image"))); + this.rpvpSearch.ItemSize = new System.Drawing.SizeF(46F, 46F); + this.rpvpSearch.Location = new System.Drawing.Point(49, 35); + this.rpvpSearch.Name = "rpvpSearch"; + this.rpvpSearch.Size = new System.Drawing.Size(1868, 972); + this.rpvpSearch.Text = " 查询界面"; + // + // pnlPage + // + this.pnlPage.Controls.Add(this.rddlPageRecorderCount); + this.pnlPage.Controls.Add(this.rbtnFirtstPage); + this.pnlPage.Controls.Add(this.rbtnLastPage); + this.pnlPage.Controls.Add(this.rbtnPrevPage); + this.pnlPage.Controls.Add(this.rbtnNextPage); + this.pnlPage.Controls.Add(this.label3); + this.pnlPage.Controls.Add(this.labSumRecorders); + this.pnlPage.Controls.Add(this.labSumPages); + this.pnlPage.Controls.Add(this.labCurrentPage); + this.pnlPage.Location = new System.Drawing.Point(29, 930); + this.pnlPage.Name = "pnlPage"; + this.pnlPage.Size = new System.Drawing.Size(1205, 42); + this.pnlPage.TabIndex = 177; + // + // rddlPageRecorderCount + // + this.rddlPageRecorderCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rddlPageRecorderCount.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlPageRecorderCount.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.rddlPageRecorderCount.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rddlPageRecorderCount.ForeColor = System.Drawing.Color.White; + radListDataItem1.Text = "20"; + radListDataItem2.Text = "50"; + radListDataItem3.Text = "100"; + radListDataItem4.Text = "200"; + this.rddlPageRecorderCount.Items.Add(radListDataItem1); + this.rddlPageRecorderCount.Items.Add(radListDataItem2); + this.rddlPageRecorderCount.Items.Add(radListDataItem3); + this.rddlPageRecorderCount.Items.Add(radListDataItem4); + this.rddlPageRecorderCount.Location = new System.Drawing.Point(718, 9); + this.rddlPageRecorderCount.Name = "rddlPageRecorderCount"; + // + // + // + this.rddlPageRecorderCount.RootElement.BorderHighlightColor = System.Drawing.Color.White; + this.rddlPageRecorderCount.RootElement.EnableBorderHighlight = true; + this.rddlPageRecorderCount.RootElement.HighlightColor = System.Drawing.Color.Red; + this.rddlPageRecorderCount.Size = new System.Drawing.Size(60, 27); + this.rddlPageRecorderCount.TabIndex = 177; + this.rddlPageRecorderCount.SelectedIndexChanged += new Telerik.WinControls.UI.Data.PositionChangedEventHandler(this.rddlPageRecorderCount_SelectedIndexChanged); + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlPageRecorderCount.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlPageRecorderCount.GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadDropDownListEditableAreaElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadDropDownTextBoxElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0))).Text = ""; + ((Telerik.WinControls.UI.RadDropDownTextBoxElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadDropDownTextBoxElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Hidden; + ((Telerik.WinControls.UI.RadTextBoxItem)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(3).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(3).GetChildAt(0))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(3).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).Image = null; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).RippleAnimationColor = System.Drawing.Color.Red; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).FocusBorderColor = System.Drawing.Color.DarkRed; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).HighlightColor = System.Drawing.Color.Red; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BoxStyle = Telerik.WinControls.BorderBoxStyle.SingleBorder; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(226)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.ArrowPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).Direction = Telerik.WinControls.ArrowDirection.Down; + ((Telerik.WinControls.Primitives.ArrowPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).ForeColor = System.Drawing.Color.Crimson; + ((Telerik.WinControls.Primitives.ArrowPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).RightToLeft = true; + ((Telerik.WinControls.Primitives.OverflowPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3))).ShadowColor = System.Drawing.Color.Red; + ((Telerik.WinControls.Primitives.ImagePrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(4))).Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); + ((Telerik.WinControls.Primitives.ImagePrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(4))).ForeColor = System.Drawing.Color.Crimson; + // + // rbtnFirtstPage + // + this.rbtnFirtstPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbtnFirtstPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnFirtstPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.rbtnFirtstPage.ForeColor = System.Drawing.Color.White; + this.rbtnFirtstPage.Image = global::NSAnalysis.Properties.Resources.FirstPage; + this.rbtnFirtstPage.Location = new System.Drawing.Point(2, 8); + this.rbtnFirtstPage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.rbtnFirtstPage.Name = "rbtnFirtstPage"; + this.rbtnFirtstPage.Size = new System.Drawing.Size(65, 30); + this.rbtnFirtstPage.TabIndex = 68; + this.rbtnFirtstPage.Text = "首页"; + this.rbtnFirtstPage.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + this.rbtnFirtstPage.Click += new System.EventHandler(this.rbtnFirtstPage_Click); + this.rbtnFirtstPage.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnFirtstPage.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.FirstPage; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).ImageAlignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).DisplayStyle = Telerik.WinControls.DisplayStyle.ImageAndText; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).Text = "首页"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent; + // + // rbtnLastPage + // + this.rbtnLastPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbtnLastPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnLastPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.rbtnLastPage.ForeColor = System.Drawing.Color.White; + this.rbtnLastPage.Image = global::NSAnalysis.Properties.Resources.LastPage; + this.rbtnLastPage.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight; + this.rbtnLastPage.Location = new System.Drawing.Point(235, 9); + this.rbtnLastPage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.rbtnLastPage.Name = "rbtnLastPage"; + this.rbtnLastPage.Size = new System.Drawing.Size(65, 30); + this.rbtnLastPage.TabIndex = 71; + this.rbtnLastPage.Text = "末页"; + this.rbtnLastPage.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + this.rbtnLastPage.Click += new System.EventHandler(this.rbtnLastPage_Click); + this.rbtnLastPage.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnLastPage.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.LastPage; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).ImageAlignment = System.Drawing.ContentAlignment.MiddleRight; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).DisplayStyle = Telerik.WinControls.DisplayStyle.ImageAndText; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).Text = "末页"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent; + // + // rbtnPrevPage + // + this.rbtnPrevPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbtnPrevPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnPrevPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.rbtnPrevPage.ForeColor = System.Drawing.Color.White; + this.rbtnPrevPage.Image = global::NSAnalysis.Properties.Resources.PrevPage; + this.rbtnPrevPage.Location = new System.Drawing.Point(73, 8); + this.rbtnPrevPage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.rbtnPrevPage.Name = "rbtnPrevPage"; + this.rbtnPrevPage.Size = new System.Drawing.Size(75, 30); + this.rbtnPrevPage.TabIndex = 69; + this.rbtnPrevPage.Text = "上一页"; + this.rbtnPrevPage.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + this.rbtnPrevPage.Click += new System.EventHandler(this.rbtnPrevPage_Click); + this.rbtnPrevPage.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnPrevPage.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.PrevPage; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).ImageAlignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).DisplayStyle = Telerik.WinControls.DisplayStyle.ImageAndText; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).Text = "上一页"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent; + // + // rbtnNextPage + // + this.rbtnNextPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbtnNextPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnNextPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.rbtnNextPage.ForeColor = System.Drawing.Color.White; + this.rbtnNextPage.Image = global::NSAnalysis.Properties.Resources.NextPage; + this.rbtnNextPage.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight; + this.rbtnNextPage.Location = new System.Drawing.Point(154, 8); + this.rbtnNextPage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.rbtnNextPage.Name = "rbtnNextPage"; + this.rbtnNextPage.Size = new System.Drawing.Size(75, 30); + this.rbtnNextPage.TabIndex = 70; + this.rbtnNextPage.Text = "下一页"; + this.rbtnNextPage.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + this.rbtnNextPage.Click += new System.EventHandler(this.rbtnNextPage_Click); + this.rbtnNextPage.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnNextPage.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.NextPage; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).ImageAlignment = System.Drawing.ContentAlignment.MiddleRight; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).DisplayStyle = Telerik.WinControls.DisplayStyle.ImageAndText; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).Text = "下一页"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 11F); + this.label3.ForeColor = System.Drawing.Color.White; + this.label3.Location = new System.Drawing.Point(631, 13); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(89, 20); + this.label3.TabIndex = 75; + this.label3.Text = "每页条数:"; + // + // labSumRecorders + // + this.labSumRecorders.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labSumRecorders.AutoSize = true; + this.labSumRecorders.Font = new System.Drawing.Font("Segoe UI", 11F); + this.labSumRecorders.ForeColor = System.Drawing.Color.White; + this.labSumRecorders.Location = new System.Drawing.Point(504, 13); + this.labSumRecorders.Name = "labSumRecorders"; + this.labSumRecorders.Size = new System.Drawing.Size(121, 20); + this.labSumRecorders.TabIndex = 74; + this.labSumRecorders.Text = "总共 12234 记录"; + // + // labSumPages + // + this.labSumPages.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labSumPages.AutoSize = true; + this.labSumPages.Font = new System.Drawing.Font("Segoe UI", 11F); + this.labSumPages.ForeColor = System.Drawing.Color.White; + this.labSumPages.Location = new System.Drawing.Point(306, 13); + this.labSumPages.Name = "labSumPages"; + this.labSumPages.Size = new System.Drawing.Size(81, 20); + this.labSumPages.TabIndex = 73; + this.labSumPages.Text = "共 1234 页"; + // + // labCurrentPage + // + this.labCurrentPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labCurrentPage.AutoSize = true; + this.labCurrentPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.labCurrentPage.ForeColor = System.Drawing.Color.White; + this.labCurrentPage.Location = new System.Drawing.Point(393, 13); + this.labCurrentPage.Name = "labCurrentPage"; + this.labCurrentPage.Size = new System.Drawing.Size(105, 20); + this.labCurrentPage.TabIndex = 72; + this.labCurrentPage.Text = "当前页:1223"; + // + // labSearchResult + // + this.labSearchResult.Anchor = System.Windows.Forms.AnchorStyles.None; + this.labSearchResult.AutoSize = true; + this.labSearchResult.BackColor = System.Drawing.Color.Transparent; + this.labSearchResult.Font = new System.Drawing.Font("Segoe UI", 12F); + this.labSearchResult.ForeColor = System.Drawing.Color.Red; + this.labSearchResult.Location = new System.Drawing.Point(417, 484); + this.labSearchResult.Name = "labSearchResult"; + this.labSearchResult.Size = new System.Drawing.Size(452, 21); + this.labSearchResult.TabIndex = 176; + this.labSearchResult.Text = "查询完毕,未查询到任何结果,请检查查询条件是否正确!"; + this.labSearchResult.Visible = false; + // + // radGroupBox1 + // + this.radGroupBox1.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radGroupBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.radGroupBox1.Controls.Add(this.rtbPartID); + this.radGroupBox1.Controls.Add(this.rbtSelectFPY); + this.radGroupBox1.Controls.Add(this.rbtnExportCSVReport); + this.radGroupBox1.Controls.Add(this.rdtpStartTime); + this.radGroupBox1.Controls.Add(this.rdtpEndTime); + this.radGroupBox1.Controls.Add(this.rbtnSearchMeaserData); + this.radGroupBox1.Controls.Add(this.radLabel15); + this.radGroupBox1.Controls.Add(this.radLabel1); + this.radGroupBox1.Controls.Add(this.radLabel11); + this.radGroupBox1.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radGroupBox1.ForeColor = System.Drawing.Color.White; + this.radGroupBox1.HeaderText = "查询条件"; + this.radGroupBox1.Location = new System.Drawing.Point(29, 29); + this.radGroupBox1.Name = "radGroupBox1"; + this.radGroupBox1.Size = new System.Drawing.Size(1807, 86); + this.radGroupBox1.TabIndex = 20; + this.radGroupBox1.Text = "查询条件"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox1.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(158)))), ((int)(((byte)(25)))), ((int)(((byte)(25))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.Black; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.Black; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).CustomFontSize = 10F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Opacity = 0.3D; + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox1.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.Aqua; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.Black; + // + // rtbPartID + // + this.rtbPartID.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rtbPartID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rtbPartID.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbPartID.ForeColor = System.Drawing.Color.White; + this.rtbPartID.Location = new System.Drawing.Point(183, 37); + this.rtbPartID.MaxLength = 50; + this.rtbPartID.Name = "rtbPartID"; + this.rtbPartID.Size = new System.Drawing.Size(192, 27); + this.rtbPartID.TabIndex = 1; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbPartID.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbPartID.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rbtSelectFPY + // + this.rbtSelectFPY.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtSelectFPY.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtSelectFPY.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtSelectFPY.ForeColor = System.Drawing.Color.White; + this.rbtSelectFPY.Image = global::NSAnalysis.Properties.Resources.search16; + this.rbtSelectFPY.Location = new System.Drawing.Point(1357, 28); + this.rbtSelectFPY.Name = "rbtSelectFPY"; + this.rbtSelectFPY.Size = new System.Drawing.Size(146, 40); + this.rbtSelectFPY.TabIndex = 8; + this.rbtSelectFPY.Text = "查询合格率"; + this.rbtSelectFPY.Click += new System.EventHandler(this.rbtSelectFPY_Click); + this.rbtSelectFPY.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtSelectFPY.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtSelectFPY.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.search16; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtSelectFPY.GetChildAt(0))).Text = "查询合格率"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rbtnExportCSVReport + // + this.rbtnExportCSVReport.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtnExportCSVReport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnExportCSVReport.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnExportCSVReport.ForeColor = System.Drawing.Color.White; + this.rbtnExportCSVReport.Image = global::NSAnalysis.Properties.Resources.export; + this.rbtnExportCSVReport.Location = new System.Drawing.Point(1584, 27); + this.rbtnExportCSVReport.Name = "rbtnExportCSVReport"; + this.rbtnExportCSVReport.Size = new System.Drawing.Size(144, 40); + this.rbtnExportCSVReport.TabIndex = 8; + this.rbtnExportCSVReport.Text = "导出CSV报告"; + this.rbtnExportCSVReport.Visible = false; + this.rbtnExportCSVReport.Click += new System.EventHandler(this.rbtnExportCSVReport_Click); + this.rbtnExportCSVReport.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnExportCSVReport.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnExportCSVReport.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.export; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnExportCSVReport.GetChildAt(0))).Text = "导出CSV报告"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rdtpStartTime + // + this.rdtpStartTime.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rdtpStartTime.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rdtpStartTime.ForeColor = System.Drawing.Color.White; + this.rdtpStartTime.Location = new System.Drawing.Point(545, 37); + this.rdtpStartTime.MinDate = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + this.rdtpStartTime.Name = "rdtpStartTime"; + this.rdtpStartTime.Size = new System.Drawing.Size(140, 27); + this.rdtpStartTime.TabIndex = 39; + this.rdtpStartTime.TabStop = false; + this.rdtpStartTime.Text = "2023年6月1日"; + this.rdtpStartTime.Value = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.rdtpStartTime.GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.rdtpStartTime.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderLeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadCheckBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadCheckmark)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.CheckPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).Text = "2023年6月1日"; + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadTextBoxItem)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + // + // rdtpEndTime + // + this.rdtpEndTime.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rdtpEndTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rdtpEndTime.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rdtpEndTime.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rdtpEndTime.Location = new System.Drawing.Point(896, 37); + this.rdtpEndTime.MinDate = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + this.rdtpEndTime.Name = "rdtpEndTime"; + this.rdtpEndTime.Size = new System.Drawing.Size(140, 27); + this.rdtpEndTime.TabIndex = 38; + this.rdtpEndTime.TabStop = false; + this.rdtpEndTime.Text = "2023年6月1日"; + this.rdtpEndTime.Value = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.rdtpEndTime.GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.rdtpEndTime.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderLeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadCheckBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadCheckmark)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.CheckPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).Text = "2023年6月1日"; + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadTextBoxItem)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + // + // rbtnSearchMeaserData + // + this.rbtnSearchMeaserData.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtnSearchMeaserData.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnSearchMeaserData.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnSearchMeaserData.ForeColor = System.Drawing.Color.White; + this.rbtnSearchMeaserData.Image = global::NSAnalysis.Properties.Resources.search16; + this.rbtnSearchMeaserData.Location = new System.Drawing.Point(1142, 28); + this.rbtnSearchMeaserData.Name = "rbtnSearchMeaserData"; + this.rbtnSearchMeaserData.Size = new System.Drawing.Size(139, 40); + this.rbtnSearchMeaserData.TabIndex = 7; + this.rbtnSearchMeaserData.Text = "查询报告"; + this.rbtnSearchMeaserData.Click += new System.EventHandler(this.rbtnSearchMeaserData_Click); + this.rbtnSearchMeaserData.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnSearchMeaserData.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnSearchMeaserData.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.search16; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnSearchMeaserData.GetChildAt(0))).Text = "查询报告"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // radLabel15 + // + this.radLabel15.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel15.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel15.ForeColor = System.Drawing.Color.White; + this.radLabel15.Location = new System.Drawing.Point(800, 38); + this.radLabel15.Name = "radLabel15"; + this.radLabel15.Size = new System.Drawing.Size(94, 25); + this.radLabel15.TabIndex = 36; + this.radLabel15.Text = "结束时间:"; + // + // radLabel1 + // + this.radLabel1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel1.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel1.ForeColor = System.Drawing.Color.White; + this.radLabel1.Location = new System.Drawing.Point(449, 39); + this.radLabel1.Name = "radLabel1"; + this.radLabel1.Size = new System.Drawing.Size(94, 25); + this.radLabel1.TabIndex = 34; + this.radLabel1.Text = "开始时间:"; + // + // radLabel11 + // + this.radLabel11.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel11.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel11.ForeColor = System.Drawing.Color.White; + this.radLabel11.Location = new System.Drawing.Point(92, 37); + this.radLabel11.Name = "radLabel11"; + this.radLabel11.Size = new System.Drawing.Size(94, 25); + this.radLabel11.TabIndex = 28; + this.radLabel11.Text = "车身编号:"; + // + // chartFPYLine + // + this.chartFPYLine.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.chartFPYLine.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea2.AxisX.LabelStyle.ForeColor = System.Drawing.Color.White; + chartArea2.AxisX.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MajorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; + chartArea2.AxisX.MajorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MinorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MinorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.TitleForeColor = System.Drawing.Color.White; + chartArea2.AxisY.LabelStyle.ForeColor = System.Drawing.Color.White; + chartArea2.AxisY.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MajorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; + chartArea2.AxisY.MajorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MinorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MinorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.TitleForeColor = System.Drawing.Color.White; + chartArea2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea2.Name = "ChartArea1"; + this.chartFPYLine.ChartAreas.Add(chartArea2); + this.chartFPYLine.Location = new System.Drawing.Point(1240, 127); + this.chartFPYLine.Name = "chartFPYLine"; + series2.BorderWidth = 3; + series2.ChartArea = "ChartArea1"; + series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series2.Color = System.Drawing.Color.Lime; + series2.MarkerSize = 9; + series2.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle; + series2.Name = "Series1"; + this.chartFPYLine.Series.Add(series2); + this.chartFPYLine.Size = new System.Drawing.Size(596, 517); + this.chartFPYLine.TabIndex = 77; + this.chartFPYLine.Text = "chartFPY"; + title2.Font = new System.Drawing.Font("微软雅黑", 12F); + title2.ForeColor = System.Drawing.Color.White; + title2.Name = "Title1"; + title2.Text = "合格率"; + this.chartFPYLine.Titles.Add(title2); + this.chartFPYLine.Visible = false; + // + // dgvSelectMeasureData + // + this.dgvSelectMeasureData.AllowUserToAddRows = false; + this.dgvSelectMeasureData.AllowUserToDeleteRows = false; + this.dgvSelectMeasureData.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.dgvSelectMeasureData.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.dgvSelectMeasureData.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvSelectMeasureData.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvSelectMeasureData.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + this.dgvSelectMeasureData.ColumnHeadersHeight = 37; + this.dgvSelectMeasureData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Column2, + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2, + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn6, + this.dataGridViewTextBoxColumn7, + this.MeasureItemResult}); + this.dgvSelectMeasureData.EnableHeadersVisualStyles = false; + this.dgvSelectMeasureData.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); + this.dgvSelectMeasureData.Location = new System.Drawing.Point(30, 126); + this.dgvSelectMeasureData.Name = "dgvSelectMeasureData"; + this.dgvSelectMeasureData.ReadOnly = true; + this.dgvSelectMeasureData.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle5.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle5.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle5.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvSelectMeasureData.RowHeadersDefaultCellStyle = dataGridViewCellStyle5; + this.dgvSelectMeasureData.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 10F); + dataGridViewCellStyle6.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvSelectMeasureData.RowsDefaultCellStyle = dataGridViewCellStyle6; + this.dgvSelectMeasureData.RowTemplate.Height = 37; + this.dgvSelectMeasureData.Size = new System.Drawing.Size(1204, 805); + this.dgvSelectMeasureData.TabIndex = 174; + this.dgvSelectMeasureData.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.dgvSelectMeasureData_RowStateChanged); + // + // Column2 + // + this.Column2.DataPropertyName = "CarID"; + this.Column2.HeaderText = "车身编号"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + this.Column2.Width = 170; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.DataPropertyName = "MeasPointName"; + this.dataGridViewTextBoxColumn1.HeaderText = "测量点名称"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + this.dataGridViewTextBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn1.Width = 150; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.DataPropertyName = "DimensionName"; + this.dataGridViewTextBoxColumn2.HeaderText = "尺寸名"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.ReadOnly = true; + this.dataGridViewTextBoxColumn2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn2.Width = 80; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.DataPropertyName = "NormalValue"; + this.dataGridViewTextBoxColumn3.HeaderText = "理论值"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.ReadOnly = true; + this.dataGridViewTextBoxColumn3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.DataPropertyName = "LowerTolVal"; + this.dataGridViewTextBoxColumn4.HeaderText = "下公差"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.ReadOnly = true; + this.dataGridViewTextBoxColumn4.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.DataPropertyName = "UpperTolVal"; + this.dataGridViewTextBoxColumn5.HeaderText = "上公差"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.ReadOnly = true; + this.dataGridViewTextBoxColumn5.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.DataPropertyName = "MeasureValue"; + this.dataGridViewTextBoxColumn6.HeaderText = "实测值"; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.ReadOnly = true; + this.dataGridViewTextBoxColumn6.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn7 + // + this.dataGridViewTextBoxColumn7.DataPropertyName = "MeasureDate"; + this.dataGridViewTextBoxColumn7.HeaderText = "测量时间"; + this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; + this.dataGridViewTextBoxColumn7.ReadOnly = true; + this.dataGridViewTextBoxColumn7.Width = 190; + // + // MeasureItemResult + // + this.MeasureItemResult.DataPropertyName = "MeasureItemResult"; + this.MeasureItemResult.HeaderText = "结果"; + this.MeasureItemResult.Name = "MeasureItemResult"; + this.MeasureItemResult.ReadOnly = true; + this.MeasureItemResult.Width = 120; + // + // dgvFPYResult + // + this.dgvFPYResult.AllowUserToAddRows = false; + this.dgvFPYResult.AllowUserToDeleteRows = false; + this.dgvFPYResult.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.dgvFPYResult.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.dgvFPYResult.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvFPYResult.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle7.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvFPYResult.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; + this.dgvFPYResult.ColumnHeadersHeight = 37; + this.dgvFPYResult.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn9, + this.dataGridViewTextBoxColumn10, + this.dataGridViewTextBoxColumn11, + this.dataGridViewTextBoxColumn12, + this.dataGridViewTextBoxColumn13, + this.dataGridViewTextBoxColumn14, + this.dataGridViewTextBoxColumn16, + this.SMResult}); + this.dgvFPYResult.EnableHeadersVisualStyles = false; + this.dgvFPYResult.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); + this.dgvFPYResult.Location = new System.Drawing.Point(29, 126); + this.dgvFPYResult.Name = "dgvFPYResult"; + this.dgvFPYResult.ReadOnly = true; + this.dgvFPYResult.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle8.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle8.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvFPYResult.RowHeadersDefaultCellStyle = dataGridViewCellStyle8; + this.dgvFPYResult.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; + dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 10F); + dataGridViewCellStyle9.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle9.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvFPYResult.RowsDefaultCellStyle = dataGridViewCellStyle9; + this.dgvFPYResult.RowTemplate.Height = 37; + this.dgvFPYResult.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvFPYResult.Size = new System.Drawing.Size(1205, 798); + this.dgvFPYResult.TabIndex = 175; + this.dgvFPYResult.Visible = false; + this.dgvFPYResult.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.dgvFPYResult_RowStateChanged); + // + // dataGridViewTextBoxColumn9 + // + this.dataGridViewTextBoxColumn9.DataPropertyName = "CarID"; + this.dataGridViewTextBoxColumn9.HeaderText = "车身编号"; + this.dataGridViewTextBoxColumn9.Name = "dataGridViewTextBoxColumn9"; + this.dataGridViewTextBoxColumn9.ReadOnly = true; + this.dataGridViewTextBoxColumn9.Width = 200; + // + // dataGridViewTextBoxColumn10 + // + this.dataGridViewTextBoxColumn10.DataPropertyName = "SumMeasureItems"; + this.dataGridViewTextBoxColumn10.HeaderText = "总测量项"; + this.dataGridViewTextBoxColumn10.Name = "dataGridViewTextBoxColumn10"; + this.dataGridViewTextBoxColumn10.ReadOnly = true; + this.dataGridViewTextBoxColumn10.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn10.Width = 150; + // + // dataGridViewTextBoxColumn11 + // + this.dataGridViewTextBoxColumn11.DataPropertyName = "GoodMeasureItems"; + this.dataGridViewTextBoxColumn11.HeaderText = "合格测量项"; + this.dataGridViewTextBoxColumn11.Name = "dataGridViewTextBoxColumn11"; + this.dataGridViewTextBoxColumn11.ReadOnly = true; + this.dataGridViewTextBoxColumn11.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn12 + // + this.dataGridViewTextBoxColumn12.DataPropertyName = "NoGoodMeasureItems"; + this.dataGridViewTextBoxColumn12.HeaderText = "不合格测量项"; + this.dataGridViewTextBoxColumn12.Name = "dataGridViewTextBoxColumn12"; + this.dataGridViewTextBoxColumn12.ReadOnly = true; + this.dataGridViewTextBoxColumn12.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn12.Width = 110; + // + // dataGridViewTextBoxColumn13 + // + this.dataGridViewTextBoxColumn13.DataPropertyName = "RejectMeasureItems"; + this.dataGridViewTextBoxColumn13.HeaderText = "异常测量项"; + this.dataGridViewTextBoxColumn13.Name = "dataGridViewTextBoxColumn13"; + this.dataGridViewTextBoxColumn13.ReadOnly = true; + this.dataGridViewTextBoxColumn13.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn14 + // + this.dataGridViewTextBoxColumn14.DataPropertyName = "FPY"; + this.dataGridViewTextBoxColumn14.HeaderText = "合格率"; + this.dataGridViewTextBoxColumn14.Name = "dataGridViewTextBoxColumn14"; + this.dataGridViewTextBoxColumn14.ReadOnly = true; + this.dataGridViewTextBoxColumn14.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn16 + // + this.dataGridViewTextBoxColumn16.DataPropertyName = "MeasureDate"; + this.dataGridViewTextBoxColumn16.HeaderText = "测量时间"; + this.dataGridViewTextBoxColumn16.Name = "dataGridViewTextBoxColumn16"; + this.dataGridViewTextBoxColumn16.ReadOnly = true; + this.dataGridViewTextBoxColumn16.Width = 190; + // + // SMResult + // + this.SMResult.DataPropertyName = "Result"; + this.SMResult.HeaderText = "结果"; + this.SMResult.Name = "SMResult"; + this.SMResult.ReadOnly = true; + // + // rpvpCpCpk + // + this.rpvpCpCpk.Controls.Add(this.pnlCPCPK); + this.rpvpCpCpk.Controls.Add(this.labSearchCPCPKResult); + this.rpvpCpCpk.Controls.Add(this.chartCPCPK); + this.rpvpCpCpk.Controls.Add(this.radGroupBox2); + this.rpvpCpCpk.Image = ((System.Drawing.Image)(resources.GetObject("rpvpCpCpk.Image"))); + this.rpvpCpCpk.ItemSize = new System.Drawing.SizeF(46F, 46F); + this.rpvpCpCpk.Location = new System.Drawing.Point(49, 35); + this.rpvpCpCpk.Name = "rpvpCpCpk"; + this.rpvpCpCpk.Size = new System.Drawing.Size(1868, 972); + this.rpvpCpCpk.Text = " Cp/Cpk,Pp/Ppk分析"; + // + // pnlCPCPK + // + this.pnlCPCPK.Controls.Add(this.radGroupBox6); + this.pnlCPCPK.Controls.Add(this.radGroupBox5); + this.pnlCPCPK.Location = new System.Drawing.Point(1276, 140); + this.pnlCPCPK.Name = "pnlCPCPK"; + this.pnlCPCPK.Size = new System.Drawing.Size(555, 667); + this.pnlCPCPK.TabIndex = 178; + this.pnlCPCPK.Visible = false; + // + // radGroupBox6 + // + this.radGroupBox6.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox6.Controls.Add(this.labPpk); + this.radGroupBox6.Controls.Add(this.radLabel7); + this.radGroupBox6.Controls.Add(this.labPpu); + this.radGroupBox6.Controls.Add(this.radLabel12); + this.radGroupBox6.Controls.Add(this.labPpl); + this.radGroupBox6.Controls.Add(this.radLabel17); + this.radGroupBox6.Controls.Add(this.labPp); + this.radGroupBox6.Controls.Add(this.radLabel27); + this.radGroupBox6.Controls.Add(this.labCpk); + this.radGroupBox6.Controls.Add(this.radLabel13); + this.radGroupBox6.Controls.Add(this.labCpu); + this.radGroupBox6.Controls.Add(this.radLabel10); + this.radGroupBox6.Controls.Add(this.labCpl); + this.radGroupBox6.Controls.Add(this.radLabel8); + this.radGroupBox6.Controls.Add(this.labCp); + this.radGroupBox6.Controls.Add(this.radLabel4); + this.radGroupBox6.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radGroupBox6.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.radGroupBox6.HeaderText = "潜在(组内)和整体能力"; + this.radGroupBox6.Location = new System.Drawing.Point(31, 400); + this.radGroupBox6.Name = "radGroupBox6"; + // + // + // + this.radGroupBox6.RootElement.ShadowDepth = 2; + this.radGroupBox6.Size = new System.Drawing.Size(497, 252); + this.radGroupBox6.TabIndex = 448; + this.radGroupBox6.Text = "潜在(组内)和整体能力"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox6.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.radGroupBox6.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Width = 1F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(0).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox6.GetChildAt(0).GetChildAt(1))).GroupBoxStyle = Telerik.WinControls.UI.RadGroupBoxStyle.Standard; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "潜在(组内)和整体能力"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox6.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + // + // labPpk + // + this.labPpk.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labPpk.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labPpk.ForeColor = System.Drawing.Color.White; + this.labPpk.Location = new System.Drawing.Point(350, 185); + this.labPpk.Name = "labPpk"; + this.labPpk.Size = new System.Drawing.Size(31, 27); + this.labPpk.TabIndex = 37; + this.labPpk.Text = "1.2"; + // + // radLabel7 + // + this.radLabel7.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel7.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel7.ForeColor = System.Drawing.Color.White; + this.radLabel7.Location = new System.Drawing.Point(288, 185); + this.radLabel7.Name = "radLabel7"; + this.radLabel7.Size = new System.Drawing.Size(64, 27); + this.radLabel7.TabIndex = 40; + this.radLabel7.Text = "Pp_k:"; + // + // labPpu + // + this.labPpu.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labPpu.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labPpu.ForeColor = System.Drawing.Color.White; + this.labPpu.Location = new System.Drawing.Point(350, 140); + this.labPpu.Name = "labPpu"; + this.labPpu.Size = new System.Drawing.Size(31, 27); + this.labPpu.TabIndex = 38; + this.labPpu.Text = "0.3"; + // + // radLabel12 + // + this.radLabel12.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel12.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel12.ForeColor = System.Drawing.Color.White; + this.radLabel12.Location = new System.Drawing.Point(287, 140); + this.radLabel12.Name = "radLabel12"; + this.radLabel12.Size = new System.Drawing.Size(65, 27); + this.radLabel12.TabIndex = 41; + this.radLabel12.Text = "Pp_u:"; + // + // labPpl + // + this.labPpl.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labPpl.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labPpl.ForeColor = System.Drawing.Color.White; + this.labPpl.Location = new System.Drawing.Point(350, 95); + this.labPpl.Name = "labPpl"; + this.labPpl.Size = new System.Drawing.Size(31, 27); + this.labPpl.TabIndex = 39; + this.labPpl.Text = "0.2"; + // + // radLabel17 + // + this.radLabel17.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel17.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel17.ForeColor = System.Drawing.Color.White; + this.radLabel17.Location = new System.Drawing.Point(292, 95); + this.radLabel17.Name = "radLabel17"; + this.radLabel17.Size = new System.Drawing.Size(59, 27); + this.radLabel17.TabIndex = 42; + this.radLabel17.Text = "Pp_l:"; + // + // labPp + // + this.labPp.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labPp.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labPp.ForeColor = System.Drawing.Color.White; + this.labPp.Location = new System.Drawing.Point(350, 52); + this.labPp.Name = "labPp"; + this.labPp.Size = new System.Drawing.Size(31, 27); + this.labPp.TabIndex = 35; + this.labPp.Text = "0.1"; + // + // radLabel27 + // + this.radLabel27.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel27.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel27.ForeColor = System.Drawing.Color.White; + this.radLabel27.Location = new System.Drawing.Point(303, 52); + this.radLabel27.Name = "radLabel27"; + this.radLabel27.Size = new System.Drawing.Size(47, 27); + this.radLabel27.TabIndex = 36; + this.radLabel27.Text = "Pp:"; + // + // labCpk + // + this.labCpk.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labCpk.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labCpk.ForeColor = System.Drawing.Color.White; + this.labCpk.Location = new System.Drawing.Point(166, 185); + this.labCpk.Name = "labCpk"; + this.labCpk.Size = new System.Drawing.Size(31, 27); + this.labCpk.TabIndex = 33; + this.labCpk.Text = "1.2"; + // + // radLabel13 + // + this.radLabel13.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel13.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel13.ForeColor = System.Drawing.Color.White; + this.radLabel13.Location = new System.Drawing.Point(104, 185); + this.radLabel13.Name = "radLabel13"; + this.radLabel13.Size = new System.Drawing.Size(65, 27); + this.radLabel13.TabIndex = 34; + this.radLabel13.Text = "Cp_k:"; + // + // labCpu + // + this.labCpu.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labCpu.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labCpu.ForeColor = System.Drawing.Color.White; + this.labCpu.Location = new System.Drawing.Point(166, 140); + this.labCpu.Name = "labCpu"; + this.labCpu.Size = new System.Drawing.Size(31, 27); + this.labCpu.TabIndex = 33; + this.labCpu.Text = "0.3"; + // + // radLabel10 + // + this.radLabel10.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel10.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel10.ForeColor = System.Drawing.Color.White; + this.radLabel10.Location = new System.Drawing.Point(103, 140); + this.radLabel10.Name = "radLabel10"; + this.radLabel10.Size = new System.Drawing.Size(66, 27); + this.radLabel10.TabIndex = 34; + this.radLabel10.Text = "Cp_u:"; + // + // labCpl + // + this.labCpl.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labCpl.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labCpl.ForeColor = System.Drawing.Color.White; + this.labCpl.Location = new System.Drawing.Point(166, 95); + this.labCpl.Name = "labCpl"; + this.labCpl.Size = new System.Drawing.Size(31, 27); + this.labCpl.TabIndex = 33; + this.labCpl.Text = "0.2"; + // + // radLabel8 + // + this.radLabel8.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel8.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel8.ForeColor = System.Drawing.Color.White; + this.radLabel8.Location = new System.Drawing.Point(108, 95); + this.radLabel8.Name = "radLabel8"; + this.radLabel8.Size = new System.Drawing.Size(60, 27); + this.radLabel8.TabIndex = 34; + this.radLabel8.Text = "Cp_l:"; + // + // labCp + // + this.labCp.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labCp.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labCp.ForeColor = System.Drawing.Color.White; + this.labCp.Location = new System.Drawing.Point(166, 52); + this.labCp.Name = "labCp"; + this.labCp.Size = new System.Drawing.Size(31, 27); + this.labCp.TabIndex = 32; + this.labCp.Text = "0.1"; + // + // radLabel4 + // + this.radLabel4.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel4.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel4.ForeColor = System.Drawing.Color.White; + this.radLabel4.Location = new System.Drawing.Point(119, 52); + this.radLabel4.Name = "radLabel4"; + this.radLabel4.Size = new System.Drawing.Size(49, 27); + this.radLabel4.TabIndex = 32; + this.radLabel4.Text = "Cp:"; + // + // radGroupBox5 + // + this.radGroupBox5.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox5.Controls.Add(this.labSampleSize); + this.radGroupBox5.Controls.Add(this.radLabel30); + this.radGroupBox5.Controls.Add(this.labStdDev); + this.radGroupBox5.Controls.Add(this.radLabel32); + this.radGroupBox5.Controls.Add(this.labAverage); + this.radGroupBox5.Controls.Add(this.radLabel34); + this.radGroupBox5.Controls.Add(this.labUSL); + this.radGroupBox5.Controls.Add(this.radLabel16); + this.radGroupBox5.Controls.Add(this.labTarget); + this.radGroupBox5.Controls.Add(this.radLabel18); + this.radGroupBox5.Controls.Add(this.labLSL); + this.radGroupBox5.Controls.Add(this.radLabel24); + this.radGroupBox5.Controls.Add(this.radLabel25); + this.radGroupBox5.Controls.Add(this.radLabel26); + this.radGroupBox5.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radGroupBox5.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.radGroupBox5.HeaderText = "过程数据"; + this.radGroupBox5.Location = new System.Drawing.Point(31, 28); + this.radGroupBox5.Name = "radGroupBox5"; + // + // + // + this.radGroupBox5.RootElement.ShadowDepth = 2; + this.radGroupBox5.Size = new System.Drawing.Size(497, 343); + this.radGroupBox5.TabIndex = 447; + this.radGroupBox5.Text = "过程数据"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox5.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.radGroupBox5.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Width = 1F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(0).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox5.GetChildAt(0).GetChildAt(1))).GroupBoxStyle = Telerik.WinControls.UI.RadGroupBoxStyle.Standard; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "过程数据"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox5.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + // + // labSampleSize + // + this.labSampleSize.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labSampleSize.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labSampleSize.ForeColor = System.Drawing.Color.White; + this.labSampleSize.Location = new System.Drawing.Point(283, 288); + this.labSampleSize.Name = "labSampleSize"; + this.labSampleSize.Size = new System.Drawing.Size(37, 27); + this.labSampleSize.TabIndex = 46; + this.labSampleSize.Text = "125"; + // + // radLabel30 + // + this.radLabel30.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel30.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel30.ForeColor = System.Drawing.Color.White; + this.radLabel30.Location = new System.Drawing.Point(179, 288); + this.radLabel30.Name = "radLabel30"; + this.radLabel30.Size = new System.Drawing.Size(107, 27); + this.radLabel30.TabIndex = 49; + this.radLabel30.Text = "样本数量 :"; + // + // labStdDev + // + this.labStdDev.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labStdDev.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labStdDev.ForeColor = System.Drawing.Color.White; + this.labStdDev.Location = new System.Drawing.Point(287, 244); + this.labStdDev.Name = "labStdDev"; + this.labStdDev.Size = new System.Drawing.Size(31, 27); + this.labStdDev.TabIndex = 47; + this.labStdDev.Text = "0.2"; + // + // radLabel32 + // + this.radLabel32.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel32.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel32.ForeColor = System.Drawing.Color.White; + this.radLabel32.Location = new System.Drawing.Point(179, 244); + this.radLabel32.Name = "radLabel32"; + this.radLabel32.Size = new System.Drawing.Size(107, 27); + this.radLabel32.TabIndex = 50; + this.radLabel32.Text = "样本方差 :"; + // + // labAverage + // + this.labAverage.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labAverage.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labAverage.ForeColor = System.Drawing.Color.White; + this.labAverage.Location = new System.Drawing.Point(287, 203); + this.labAverage.Name = "labAverage"; + this.labAverage.Size = new System.Drawing.Size(28, 27); + this.labAverage.TabIndex = 43; + this.labAverage.Text = "33"; + // + // radLabel34 + // + this.radLabel34.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel34.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel34.ForeColor = System.Drawing.Color.White; + this.radLabel34.Location = new System.Drawing.Point(180, 203); + this.radLabel34.Name = "radLabel34"; + this.radLabel34.Size = new System.Drawing.Size(107, 27); + this.radLabel34.TabIndex = 44; + this.radLabel34.Text = "样本均值 :"; + // + // labUSL + // + this.labUSL.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labUSL.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labUSL.ForeColor = System.Drawing.Color.White; + this.labUSL.Location = new System.Drawing.Point(287, 163); + this.labUSL.Name = "labUSL"; + this.labUSL.Size = new System.Drawing.Size(28, 27); + this.labUSL.TabIndex = 37; + this.labUSL.Text = "33"; + // + // radLabel16 + // + this.radLabel16.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel16.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel16.ForeColor = System.Drawing.Color.White; + this.radLabel16.Location = new System.Drawing.Point(119, 163); + this.radLabel16.Name = "radLabel16"; + this.radLabel16.Size = new System.Drawing.Size(169, 27); + this.radLabel16.TabIndex = 40; + this.radLabel16.Text = "规格上限(USL):"; + // + // labTarget + // + this.labTarget.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTarget.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labTarget.ForeColor = System.Drawing.Color.White; + this.labTarget.Location = new System.Drawing.Point(287, 123); + this.labTarget.Name = "labTarget"; + this.labTarget.Size = new System.Drawing.Size(28, 27); + this.labTarget.TabIndex = 38; + this.labTarget.Text = "10"; + // + // radLabel18 + // + this.radLabel18.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel18.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel18.ForeColor = System.Drawing.Color.White; + this.radLabel18.Location = new System.Drawing.Point(135, 123); + this.radLabel18.Name = "radLabel18"; + this.radLabel18.Size = new System.Drawing.Size(158, 27); + this.radLabel18.TabIndex = 41; + this.radLabel18.Text = "望目(标准值):"; + // + // labLSL + // + this.labLSL.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labLSL.Font = new System.Drawing.Font("Segoe UI", 13F); + this.labLSL.ForeColor = System.Drawing.Color.White; + this.labLSL.Location = new System.Drawing.Point(287, 80); + this.labLSL.Name = "labLSL"; + this.labLSL.Size = new System.Drawing.Size(28, 27); + this.labLSL.TabIndex = 39; + this.labLSL.Text = "11"; + // + // radLabel24 + // + this.radLabel24.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel24.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel24.ForeColor = System.Drawing.Color.White; + this.radLabel24.Location = new System.Drawing.Point(123, 80); + this.radLabel24.Name = "radLabel24"; + this.radLabel24.Size = new System.Drawing.Size(165, 27); + this.radLabel24.TabIndex = 42; + this.radLabel24.Text = "规格下限(LSL):"; + // + // radLabel25 + // + this.radLabel25.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel25.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel25.ForeColor = System.Drawing.Color.White; + this.radLabel25.Location = new System.Drawing.Point(287, 39); + this.radLabel25.Name = "radLabel25"; + this.radLabel25.Size = new System.Drawing.Size(18, 27); + this.radLabel25.TabIndex = 35; + this.radLabel25.Text = "5"; + // + // radLabel26 + // + this.radLabel26.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel26.Font = new System.Drawing.Font("Segoe UI", 13F); + this.radLabel26.ForeColor = System.Drawing.Color.White; + this.radLabel26.Location = new System.Drawing.Point(137, 39); + this.radLabel26.Name = "radLabel26"; + this.radLabel26.Size = new System.Drawing.Size(151, 27); + this.radLabel26.TabIndex = 36; + this.radLabel26.Text = "Number of obs :"; + // + // labSearchCPCPKResult + // + this.labSearchCPCPKResult.Anchor = System.Windows.Forms.AnchorStyles.None; + this.labSearchCPCPKResult.AutoSize = true; + this.labSearchCPCPKResult.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.labSearchCPCPKResult.Font = new System.Drawing.Font("Segoe UI", 12F); + this.labSearchCPCPKResult.ForeColor = System.Drawing.Color.Red; + this.labSearchCPCPKResult.Location = new System.Drawing.Point(364, 460); + this.labSearchCPCPKResult.Name = "labSearchCPCPKResult"; + this.labSearchCPCPKResult.Size = new System.Drawing.Size(651, 21); + this.labSearchCPCPKResult.TabIndex = 177; + this.labSearchCPCPKResult.Text = "样本数量小于5,暂时不能进行Cp/Cpk,Pp/Ppk的分析!请增加样本后再进行查询操作。\r\n"; + this.labSearchCPCPKResult.Visible = false; + // + // chartCPCPK + // + this.chartCPCPK.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.chartCPCPK.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea3.AxisX.LabelStyle.ForeColor = System.Drawing.Color.White; + chartArea3.AxisX.LineColor = System.Drawing.Color.White; + chartArea3.AxisX.MajorGrid.LineColor = System.Drawing.Color.White; + chartArea3.AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; + chartArea3.AxisX.MajorTickMark.LineColor = System.Drawing.Color.White; + chartArea3.AxisX.MinorGrid.LineColor = System.Drawing.Color.White; + chartArea3.AxisX.MinorTickMark.LineColor = System.Drawing.Color.White; + chartArea3.AxisX.TitleForeColor = System.Drawing.Color.White; + chartArea3.AxisY.LabelStyle.ForeColor = System.Drawing.Color.White; + chartArea3.AxisY.LineColor = System.Drawing.Color.White; + chartArea3.AxisY.MajorGrid.LineColor = System.Drawing.Color.White; + chartArea3.AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; + chartArea3.AxisY.MajorTickMark.LineColor = System.Drawing.Color.White; + chartArea3.AxisY.MinorGrid.LineColor = System.Drawing.Color.White; + chartArea3.AxisY.MinorTickMark.LineColor = System.Drawing.Color.White; + chartArea3.AxisY.TitleForeColor = System.Drawing.Color.White; + chartArea3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea3.Name = "ChartArea1"; + this.chartCPCPK.ChartAreas.Add(chartArea3); + this.chartCPCPK.Location = new System.Drawing.Point(30, 140); + this.chartCPCPK.Name = "chartCPCPK"; + series3.ChartArea = "ChartArea1"; + series3.Name = "Series1"; + this.chartCPCPK.Series.Add(series3); + this.chartCPCPK.Size = new System.Drawing.Size(1207, 667); + this.chartCPCPK.TabIndex = 78; + this.chartCPCPK.Text = "chartFPY"; + title3.Font = new System.Drawing.Font("微软雅黑", 12F); + title3.ForeColor = System.Drawing.Color.White; + title3.Name = "Title1"; + title3.Text = "Cp/Cpk分析"; + this.chartCPCPK.Titles.Add(title3); + this.chartCPCPK.Visible = false; + // + // radGroupBox2 + // + this.radGroupBox2.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radGroupBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radGroupBox2.Controls.Add(this.rddlMeasurePoint); + this.radGroupBox2.Controls.Add(this.rddlSizeName); + this.radGroupBox2.Controls.Add(this.radLabel2); + this.radGroupBox2.Controls.Add(this.nudMeasureCount); + this.radGroupBox2.Controls.Add(this.radButton10); + this.radGroupBox2.Controls.Add(this.radLabel3); + this.radGroupBox2.Controls.Add(this.rbtnSearchCPCPK); + this.radGroupBox2.Controls.Add(this.radLabel5); + this.radGroupBox2.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radGroupBox2.ForeColor = System.Drawing.Color.White; + this.radGroupBox2.HeaderText = "查询条件"; + this.radGroupBox2.Location = new System.Drawing.Point(30, 25); + this.radGroupBox2.Name = "radGroupBox2"; + this.radGroupBox2.Size = new System.Drawing.Size(1807, 86); + this.radGroupBox2.TabIndex = 21; + this.radGroupBox2.Text = "查询条件"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox2.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(158)))), ((int)(((byte)(25)))), ((int)(((byte)(25))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.Black; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.Black; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(0).GetChildAt(1))).CustomFontSize = 10F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Opacity = 0.3D; + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox2.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.Aqua; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox2.GetChildAt(0).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.Black; + // + // rddlMeasurePoint + // + this.rddlMeasurePoint.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlMeasurePoint.DropDownHeight = 200; + this.rddlMeasurePoint.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rddlMeasurePoint.ForeColor = System.Drawing.Color.White; + this.rddlMeasurePoint.Location = new System.Drawing.Point(187, 38); + this.rddlMeasurePoint.Name = "rddlMeasurePoint"; + this.rddlMeasurePoint.Size = new System.Drawing.Size(224, 27); + this.rddlMeasurePoint.TabIndex = 93; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlMeasurePoint.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlMeasurePoint.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlMeasurePoint.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlMeasurePoint.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlMeasurePoint.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rddlSizeName + // + this.rddlSizeName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlSizeName.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.rddlSizeName.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rddlSizeName.ForeColor = System.Drawing.Color.White; + radListDataItem5.Text = "F (面差)"; + radListDataItem6.Text = "G (间隙)"; + this.rddlSizeName.Items.Add(radListDataItem5); + this.rddlSizeName.Items.Add(radListDataItem6); + this.rddlSizeName.Location = new System.Drawing.Point(602, 38); + this.rddlSizeName.Name = "rddlSizeName"; + this.rddlSizeName.Size = new System.Drawing.Size(154, 27); + this.rddlSizeName.TabIndex = 92; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlSizeName.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlSizeName.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlSizeName.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlSizeName.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlSizeName.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radLabel2 + // + this.radLabel2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel2.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel2.ForeColor = System.Drawing.Color.White; + this.radLabel2.Location = new System.Drawing.Point(512, 39); + this.radLabel2.Name = "radLabel2"; + this.radLabel2.Size = new System.Drawing.Size(94, 25); + this.radLabel2.TabIndex = 38; + this.radLabel2.Text = "尺寸名称:"; + // + // nudMeasureCount + // + this.nudMeasureCount.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.nudMeasureCount.Font = new System.Drawing.Font("Segoe UI", 12F); + this.nudMeasureCount.ForeColor = System.Drawing.Color.White; + this.nudMeasureCount.Location = new System.Drawing.Point(988, 38); + this.nudMeasureCount.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.nudMeasureCount.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.nudMeasureCount.Name = "nudMeasureCount"; + this.nudMeasureCount.Size = new System.Drawing.Size(120, 29); + this.nudMeasureCount.TabIndex = 35; + this.nudMeasureCount.Value = new decimal(new int[] { + 125, + 0, + 0, + 0}); + // + // radButton10 + // + this.radButton10.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radButton10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radButton10.Font = new System.Drawing.Font("微软雅黑", 9F); + this.radButton10.ForeColor = System.Drawing.Color.White; + this.radButton10.Image = global::NSAnalysis.Properties.Resources.export; + this.radButton10.Location = new System.Drawing.Point(1891, 39); + this.radButton10.Name = "radButton10"; + this.radButton10.Size = new System.Drawing.Size(121, 26); + this.radButton10.TabIndex = 33; + this.radButton10.Text = "导出CSV报告"; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton10.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.export; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton10.GetChildAt(0))).Text = "导出CSV报告"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton10.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton10.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton10.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton10.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton10.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // radLabel3 + // + this.radLabel3.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel3.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel3.ForeColor = System.Drawing.Color.White; + this.radLabel3.Location = new System.Drawing.Point(891, 40); + this.radLabel3.Name = "radLabel3"; + this.radLabel3.Size = new System.Drawing.Size(94, 25); + this.radLabel3.TabIndex = 34; + this.radLabel3.Text = "测量值数:"; + // + // rbtnSearchCPCPK + // + this.rbtnSearchCPCPK.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtnSearchCPCPK.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnSearchCPCPK.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnSearchCPCPK.ForeColor = System.Drawing.Color.White; + this.rbtnSearchCPCPK.Image = global::NSAnalysis.Properties.Resources.search16; + this.rbtnSearchCPCPK.Location = new System.Drawing.Point(1252, 38); + this.rbtnSearchCPCPK.Name = "rbtnSearchCPCPK"; + this.rbtnSearchCPCPK.Size = new System.Drawing.Size(111, 32); + this.rbtnSearchCPCPK.TabIndex = 7; + this.rbtnSearchCPCPK.Text = "查询"; + this.rbtnSearchCPCPK.Click += new System.EventHandler(this.rbtnSearchCPCPK_Click); + this.rbtnSearchCPCPK.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnSearchCPCPK.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnSearchCPCPK.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.search16; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnSearchCPCPK.GetChildAt(0))).Text = "查询"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchCPCPK.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchCPCPK.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchCPCPK.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchCPCPK.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchCPCPK.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // radLabel5 + // + this.radLabel5.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel5.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel5.ForeColor = System.Drawing.Color.White; + this.radLabel5.Location = new System.Drawing.Point(81, 38); + this.radLabel5.Name = "radLabel5"; + this.radLabel5.Size = new System.Drawing.Size(111, 25); + this.radLabel5.TabIndex = 31; + this.radLabel5.Text = "测量点名称:"; + // + // rpvpSetup + // + this.rpvpSetup.Controls.Add(this.lpcRange); + this.rpvpSetup.Controls.Add(this.lpcTestGetCarTye); + this.rpvpSetup.Controls.Add(this.lpcShowLog); + this.rpvpSetup.Controls.Add(this.radGroupBox7); + this.rpvpSetup.Controls.Add(this.radGroupBox3); + this.rpvpSetup.Controls.Add(this.rgbMeasreSeq); + this.rpvpSetup.Controls.Add(this.lpcToleranceSetup); + this.rpvpSetup.Controls.Add(this.lpcSoftwareSetup); + this.rpvpSetup.Controls.Add(this.lpcShowCarData); + this.rpvpSetup.Controls.Add(this.lpcUploadIOTTest); + this.rpvpSetup.Controls.Add(this.lpcAboutSoftware); + this.rpvpSetup.Controls.Add(this.lpcPLCTest); + this.rpvpSetup.Controls.Add(this.lpcPLCAddress); + this.rpvpSetup.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rpvpSetup.Image = ((System.Drawing.Image)(resources.GetObject("rpvpSetup.Image"))); + this.rpvpSetup.ItemSize = new System.Drawing.SizeF(46F, 46F); + this.rpvpSetup.Location = new System.Drawing.Point(49, 35); + this.rpvpSetup.Name = "rpvpSetup"; + this.rpvpSetup.Size = new System.Drawing.Size(1868, 972); + this.rpvpSetup.Text = " 软件设置"; + // + // lpcRange + // + this.lpcRange.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcRange.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcRange.ForeColor = System.Drawing.Color.White; + this.lpcRange.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcRange.LabelText = "极差设置"; + this.lpcRange.LabelTopImage = global::NSAnalysis.Properties.Resources.Range; + this.lpcRange.Location = new System.Drawing.Point(306, 37); + this.lpcRange.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcRange.Name = "lpcRange"; + this.lpcRange.Size = new System.Drawing.Size(105, 85); + this.lpcRange.TabIndex = 458; + this.lpcRange.Click += new System.EventHandler(this.lpcRange_Click); + // + // lpcTestGetCarTye + // + this.lpcTestGetCarTye.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcTestGetCarTye.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcTestGetCarTye.ForeColor = System.Drawing.Color.White; + this.lpcTestGetCarTye.LabelPoint = new System.Drawing.Point(3, 59); + this.lpcTestGetCarTye.LabelText = "获取车型测试"; + this.lpcTestGetCarTye.LabelTopImage = global::NSAnalysis.Properties.Resources.downloadCarType; + this.lpcTestGetCarTye.Location = new System.Drawing.Point(866, 37); + this.lpcTestGetCarTye.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcTestGetCarTye.Name = "lpcTestGetCarTye"; + this.lpcTestGetCarTye.Size = new System.Drawing.Size(113, 85); + this.lpcTestGetCarTye.TabIndex = 457; + this.lpcTestGetCarTye.Click += new System.EventHandler(this.lpcTestGetCarTye_Click); + // + // lpcShowLog + // + this.lpcShowLog.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcShowLog.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcShowLog.ForeColor = System.Drawing.Color.White; + this.lpcShowLog.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcShowLog.LabelText = "显示LOG"; + this.lpcShowLog.LabelTopImage = global::NSAnalysis.Properties.Resources.LOG; + this.lpcShowLog.Location = new System.Drawing.Point(1167, 37); + this.lpcShowLog.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcShowLog.Name = "lpcShowLog"; + this.lpcShowLog.Size = new System.Drawing.Size(86, 85); + this.lpcShowLog.TabIndex = 456; + this.lpcShowLog.Click += new System.EventHandler(this.lpcShowLog_Click); + // + // radGroupBox7 + // + this.radGroupBox7.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox7.Controls.Add(this.rtbCOMContent); + this.radGroupBox7.Controls.Add(this.label25); + this.radGroupBox7.Controls.Add(this.rtbPort); + this.radGroupBox7.Controls.Add(this.rbtnTestCOM); + this.radGroupBox7.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radGroupBox7.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.radGroupBox7.HeaderText = "扫抢串口测试"; + this.radGroupBox7.Location = new System.Drawing.Point(37, 353); + this.radGroupBox7.Name = "radGroupBox7"; + // + // + // + this.radGroupBox7.RootElement.ShadowDepth = 2; + this.radGroupBox7.Size = new System.Drawing.Size(380, 218); + this.radGroupBox7.TabIndex = 455; + this.radGroupBox7.Text = "扫抢串口测试"; + this.radGroupBox7.Visible = false; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox7.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.radGroupBox7.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Width = 1F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox7.GetChildAt(0).GetChildAt(1))).GroupBoxStyle = Telerik.WinControls.UI.RadGroupBoxStyle.Standard; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "扫抢串口测试"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + // + // rtbCOMContent + // + this.rtbCOMContent.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbCOMContent.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbCOMContent.ForeColor = System.Drawing.Color.White; + this.rtbCOMContent.Location = new System.Drawing.Point(24, 86); + this.rtbCOMContent.Multiline = true; + this.rtbCOMContent.Name = "rtbCOMContent"; + // + // + // + this.rtbCOMContent.RootElement.StretchVertically = true; + this.rtbCOMContent.Size = new System.Drawing.Size(331, 117); + this.rtbCOMContent.TabIndex = 459; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCOMContent.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCOMContent.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label25.ForeColor = System.Drawing.Color.White; + this.label25.Location = new System.Drawing.Point(20, 46); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(78, 21); + this.label25.TabIndex = 459; + this.label25.Text = "串口号:"; + // + // rtbPort + // + this.rtbPort.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbPort.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbPort.ForeColor = System.Drawing.Color.White; + this.rtbPort.Location = new System.Drawing.Point(104, 42); + this.rtbPort.Name = "rtbPort"; + this.rtbPort.Size = new System.Drawing.Size(82, 27); + this.rtbPort.TabIndex = 458; + this.rtbPort.Text = "COM5"; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbPort.GetChildAt(0))).Text = "COM5"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbPort.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rbtnTestCOM + // + this.rbtnTestCOM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnTestCOM.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnTestCOM.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnTestCOM.ForeColor = System.Drawing.Color.White; + this.rbtnTestCOM.Location = new System.Drawing.Point(205, 38); + this.rbtnTestCOM.Name = "rbtnTestCOM"; + this.rbtnTestCOM.Size = new System.Drawing.Size(150, 36); + this.rbtnTestCOM.TabIndex = 457; + this.rbtnTestCOM.Text = "打开串口"; + this.rbtnTestCOM.Click += new System.EventHandler(this.rbtnTestCOM_Click); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnTestCOM.GetChildAt(0))).Text = "打开串口"; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnTestCOM.GetChildAt(0))).FocusBorderWidth = 5; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnTestCOM.GetChildAt(0))).EnableHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnTestCOM.GetChildAt(0))).EnableBorderHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnTestCOM.GetChildAt(0))).BorderHighlightThickness = 3; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).Width = 2F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).TopWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).RightWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnTestCOM.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // radGroupBox3 + // + this.radGroupBox3.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox3.Controls.Add(this.rbtnClosePLC); + this.radGroupBox3.Controls.Add(this.rbtnConnectPLC); + this.radGroupBox3.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radGroupBox3.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.radGroupBox3.HeaderText = "PLC操作"; + this.radGroupBox3.Location = new System.Drawing.Point(469, 162); + this.radGroupBox3.Name = "radGroupBox3"; + // + // + // + this.radGroupBox3.RootElement.ShadowDepth = 2; + this.radGroupBox3.Size = new System.Drawing.Size(380, 169); + this.radGroupBox3.TabIndex = 446; + this.radGroupBox3.Text = "PLC操作"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox3.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.radGroupBox3.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Width = 1F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(0).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox3.GetChildAt(0).GetChildAt(1))).GroupBoxStyle = Telerik.WinControls.UI.RadGroupBoxStyle.Standard; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "PLC操作"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox3.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + // + // rbtnClosePLC + // + this.rbtnClosePLC.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnClosePLC.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnClosePLC.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnClosePLC.ForeColor = System.Drawing.Color.White; + this.rbtnClosePLC.Location = new System.Drawing.Point(229, 46); + this.rbtnClosePLC.Name = "rbtnClosePLC"; + this.rbtnClosePLC.Size = new System.Drawing.Size(110, 36); + this.rbtnClosePLC.TabIndex = 445; + this.rbtnClosePLC.Text = "断开 PLC"; + this.rbtnClosePLC.Click += new System.EventHandler(this.btnClosePlc_Click); + this.rbtnClosePLC.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnClosePLC.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnClosePLC.GetChildAt(0))).Text = "断开 PLC"; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnClosePLC.GetChildAt(0))).FocusBorderWidth = 5; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnClosePLC.GetChildAt(0))).EnableHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnClosePLC.GetChildAt(0))).EnableBorderHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnClosePLC.GetChildAt(0))).BorderHighlightThickness = 3; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).Width = 2F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).TopWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).RightWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnClosePLC.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rbtnConnectPLC + // + this.rbtnConnectPLC.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnConnectPLC.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnConnectPLC.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnConnectPLC.ForeColor = System.Drawing.Color.White; + this.rbtnConnectPLC.Location = new System.Drawing.Point(49, 46); + this.rbtnConnectPLC.Name = "rbtnConnectPLC"; + this.rbtnConnectPLC.Size = new System.Drawing.Size(110, 36); + this.rbtnConnectPLC.TabIndex = 445; + this.rbtnConnectPLC.Text = "连接PLC"; + this.rbtnConnectPLC.Click += new System.EventHandler(this.btnConnectPlc_Click); + this.rbtnConnectPLC.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnConnectPLC.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnConnectPLC.GetChildAt(0))).Text = "连接PLC"; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnConnectPLC.GetChildAt(0))).FocusBorderWidth = 5; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnConnectPLC.GetChildAt(0))).EnableHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnConnectPLC.GetChildAt(0))).EnableBorderHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnConnectPLC.GetChildAt(0))).BorderHighlightThickness = 3; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).Width = 2F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).TopWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).RightWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnConnectPLC.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rgbMeasreSeq + // + this.rgbMeasreSeq.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.rgbMeasreSeq.Controls.Add(this.lampError); + this.rgbMeasreSeq.Controls.Add(this.lampMode); + this.rgbMeasreSeq.Controls.Add(this.lampPLCHeart); + this.rgbMeasreSeq.Controls.Add(this.lampConnectPLCStatus); + this.rgbMeasreSeq.Controls.Add(this.labelTimeStatus_Tip); + this.rgbMeasreSeq.Controls.Add(this.radLabel20); + this.rgbMeasreSeq.Controls.Add(this.radLabel21); + this.rgbMeasreSeq.Controls.Add(this.radLabel22); + this.rgbMeasreSeq.Controls.Add(this.radLabel23); + this.rgbMeasreSeq.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rgbMeasreSeq.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.rgbMeasreSeq.HeaderText = "PLC状态"; + this.rgbMeasreSeq.Location = new System.Drawing.Point(37, 162); + this.rgbMeasreSeq.Name = "rgbMeasreSeq"; + // + // + // + this.rgbMeasreSeq.RootElement.ShadowDepth = 2; + this.rgbMeasreSeq.Size = new System.Drawing.Size(380, 169); + this.rgbMeasreSeq.TabIndex = 445; + this.rgbMeasreSeq.Text = "PLC状态"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.rgbMeasreSeq.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Width = 1F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(0).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.UI.GroupBoxHeader)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(1))).GroupBoxStyle = Telerik.WinControls.UI.RadGroupBoxStyle.Standard; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "PLC状态"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgbMeasreSeq.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + // + // lampError + // + this.lampError.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); + this.lampError.ForeColor = System.Drawing.Color.White; + this.lampError.Location = new System.Drawing.Point(51, 118); + this.lampError.LText = ""; + this.lampError.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lampError.Name = "lampError"; + this.lampError.Shadow = false; + this.lampError.Size = new System.Drawing.Size(25, 25); + this.lampError.State = 3; + this.lampError.TabIndex = 155; + // + // lampMode + // + this.lampMode.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); + this.lampMode.ForeColor = System.Drawing.Color.White; + this.lampMode.Location = new System.Drawing.Point(51, 81); + this.lampMode.LText = ""; + this.lampMode.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lampMode.Name = "lampMode"; + this.lampMode.Shadow = false; + this.lampMode.Size = new System.Drawing.Size(25, 25); + this.lampMode.State = 3; + this.lampMode.TabIndex = 154; + // + // lampPLCHeart + // + this.lampPLCHeart.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); + this.lampPLCHeart.ForeColor = System.Drawing.Color.White; + this.lampPLCHeart.Location = new System.Drawing.Point(214, 41); + this.lampPLCHeart.LText = ""; + this.lampPLCHeart.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lampPLCHeart.Name = "lampPLCHeart"; + this.lampPLCHeart.Shadow = false; + this.lampPLCHeart.Size = new System.Drawing.Size(25, 25); + this.lampPLCHeart.State = 3; + this.lampPLCHeart.TabIndex = 153; + // + // lampConnectPLCStatus + // + this.lampConnectPLCStatus.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); + this.lampConnectPLCStatus.ForeColor = System.Drawing.Color.White; + this.lampConnectPLCStatus.Location = new System.Drawing.Point(51, 41); + this.lampConnectPLCStatus.LText = ""; + this.lampConnectPLCStatus.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lampConnectPLCStatus.Name = "lampConnectPLCStatus"; + this.lampConnectPLCStatus.Shadow = false; + this.lampConnectPLCStatus.Size = new System.Drawing.Size(25, 25); + this.lampConnectPLCStatus.State = 3; + this.lampConnectPLCStatus.TabIndex = 147; + // + // labelTimeStatus_Tip + // + this.labelTimeStatus_Tip.AutoSize = true; + this.labelTimeStatus_Tip.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.labelTimeStatus_Tip.ForeColor = System.Drawing.Color.White; + this.labelTimeStatus_Tip.Location = new System.Drawing.Point(295, 46); + this.labelTimeStatus_Tip.Name = "labelTimeStatus_Tip"; + this.labelTimeStatus_Tip.Size = new System.Drawing.Size(22, 15); + this.labelTimeStatus_Tip.TabIndex = 152; + this.labelTimeStatus_Tip.Text = "─"; + // + // radLabel20 + // + this.radLabel20.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radLabel20.ForeColor = System.Drawing.Color.White; + this.radLabel20.Location = new System.Drawing.Point(82, 41); + this.radLabel20.Name = "radLabel20"; + this.radLabel20.Size = new System.Drawing.Size(77, 25); + this.radLabel20.TabIndex = 148; + this.radLabel20.Text = "连接状态"; + // + // radLabel21 + // + this.radLabel21.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radLabel21.ForeColor = System.Drawing.Color.White; + this.radLabel21.Location = new System.Drawing.Point(82, 119); + this.radLabel21.Name = "radLabel21"; + this.radLabel21.Size = new System.Drawing.Size(77, 25); + this.radLabel21.TabIndex = 151; + this.radLabel21.Text = "系统报错"; + // + // radLabel22 + // + this.radLabel22.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radLabel22.ForeColor = System.Drawing.Color.White; + this.radLabel22.Location = new System.Drawing.Point(245, 41); + this.radLabel22.Name = "radLabel22"; + this.radLabel22.Size = new System.Drawing.Size(42, 25); + this.radLabel22.TabIndex = 149; + this.radLabel22.Text = "心跳"; + // + // radLabel23 + // + this.radLabel23.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radLabel23.ForeColor = System.Drawing.Color.White; + this.radLabel23.Location = new System.Drawing.Point(82, 81); + this.radLabel23.Name = "radLabel23"; + this.radLabel23.Size = new System.Drawing.Size(77, 25); + this.radLabel23.TabIndex = 150; + this.radLabel23.Text = "自动模式"; + // + // lpcToleranceSetup + // + this.lpcToleranceSetup.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcToleranceSetup.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcToleranceSetup.ForeColor = System.Drawing.Color.White; + this.lpcToleranceSetup.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcToleranceSetup.LabelText = "公差带设置"; + this.lpcToleranceSetup.LabelTopImage = global::NSAnalysis.Properties.Resources.Config; + this.lpcToleranceSetup.Location = new System.Drawing.Point(161, 37); + this.lpcToleranceSetup.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcToleranceSetup.Name = "lpcToleranceSetup"; + this.lpcToleranceSetup.Size = new System.Drawing.Size(105, 85); + this.lpcToleranceSetup.TabIndex = 454; + this.lpcToleranceSetup.Click += new System.EventHandler(this.lpcToleranceSetup_Click); + // + // lpcSoftwareSetup + // + this.lpcSoftwareSetup.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcSoftwareSetup.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcSoftwareSetup.ForeColor = System.Drawing.Color.White; + this.lpcSoftwareSetup.LabelPoint = new System.Drawing.Point(3, 59); + this.lpcSoftwareSetup.LabelText = "软件设置"; + this.lpcSoftwareSetup.LabelTopImage = global::NSAnalysis.Properties.Resources.setupgreen32; + this.lpcSoftwareSetup.Location = new System.Drawing.Point(37, 37); + this.lpcSoftwareSetup.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcSoftwareSetup.Name = "lpcSoftwareSetup"; + this.lpcSoftwareSetup.Size = new System.Drawing.Size(86, 85); + this.lpcSoftwareSetup.TabIndex = 453; + this.lpcSoftwareSetup.Click += new System.EventHandler(this.lpcSoftwareSetup_Click); + // + // lpcShowCarData + // + this.lpcShowCarData.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcShowCarData.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcShowCarData.ForeColor = System.Drawing.Color.White; + this.lpcShowCarData.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcShowCarData.LabelText = "显示车身数据"; + this.lpcShowCarData.LabelTopImage = global::NSAnalysis.Properties.Resources.showcardata; + this.lpcShowCarData.Location = new System.Drawing.Point(1014, 37); + this.lpcShowCarData.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcShowCarData.Name = "lpcShowCarData"; + this.lpcShowCarData.Size = new System.Drawing.Size(110, 85); + this.lpcShowCarData.TabIndex = 452; + this.lpcShowCarData.Click += new System.EventHandler(this.lpcShowCarData_Click); + // + // lpcUploadIOTTest + // + this.lpcUploadIOTTest.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcUploadIOTTest.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcUploadIOTTest.ForeColor = System.Drawing.Color.White; + this.lpcUploadIOTTest.LabelPoint = new System.Drawing.Point(3, 59); + this.lpcUploadIOTTest.LabelText = "上传IOT测试"; + this.lpcUploadIOTTest.LabelTopImage = global::NSAnalysis.Properties.Resources.upload; + this.lpcUploadIOTTest.Location = new System.Drawing.Point(712, 37); + this.lpcUploadIOTTest.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcUploadIOTTest.Name = "lpcUploadIOTTest"; + this.lpcUploadIOTTest.Size = new System.Drawing.Size(113, 85); + this.lpcUploadIOTTest.TabIndex = 451; + this.lpcUploadIOTTest.Click += new System.EventHandler(this.lpcUploadIOTTest_Click); + // + // lpcAboutSoftware + // + this.lpcAboutSoftware.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcAboutSoftware.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcAboutSoftware.ForeColor = System.Drawing.Color.White; + this.lpcAboutSoftware.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcAboutSoftware.LabelText = "关于软件"; + this.lpcAboutSoftware.LabelTopImage = global::NSAnalysis.Properties.Resources.About32; + this.lpcAboutSoftware.Location = new System.Drawing.Point(1296, 37); + this.lpcAboutSoftware.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcAboutSoftware.Name = "lpcAboutSoftware"; + this.lpcAboutSoftware.Size = new System.Drawing.Size(86, 85); + this.lpcAboutSoftware.TabIndex = 450; + this.lpcAboutSoftware.Click += new System.EventHandler(this.lpcAboutSoftware_Click); + // + // lpcPLCTest + // + this.lpcPLCTest.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcPLCTest.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcPLCTest.ForeColor = System.Drawing.Color.White; + this.lpcPLCTest.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcPLCTest.LabelText = "PLC测试"; + this.lpcPLCTest.LabelTopImage = global::NSAnalysis.Properties.Resources.PLCTest32; + this.lpcPLCTest.Location = new System.Drawing.Point(581, 37); + this.lpcPLCTest.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcPLCTest.Name = "lpcPLCTest"; + this.lpcPLCTest.Size = new System.Drawing.Size(86, 85); + this.lpcPLCTest.TabIndex = 449; + this.lpcPLCTest.Click += new System.EventHandler(this.lpcPLCTest_Click); + // + // lpcPLCAddress + // + this.lpcPLCAddress.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcPLCAddress.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcPLCAddress.ForeColor = System.Drawing.Color.White; + this.lpcPLCAddress.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcPLCAddress.LabelText = "PLC地址表"; + this.lpcPLCAddress.LabelTopImage = global::NSAnalysis.Properties.Resources.PLCAddress32; + this.lpcPLCAddress.Location = new System.Drawing.Point(453, 37); + this.lpcPLCAddress.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcPLCAddress.Name = "lpcPLCAddress"; + this.lpcPLCAddress.Size = new System.Drawing.Size(86, 85); + this.lpcPLCAddress.TabIndex = 448; + this.lpcPLCAddress.Click += new System.EventHandler(this.lpcPLCAddress_Click); + // + // tmSystem + // + this.tmSystem.Enabled = true; + this.tmSystem.Interval = 1000; + this.tmSystem.Tick += new System.EventHandler(this.tmSystem_Tick); + // + // tmReadNextsenseCSV + // + this.tmReadNextsenseCSV.Interval = 300; + this.tmReadNextsenseCSV.Tick += new System.EventHandler(this.tmReadNextsenseCSV_Tick); + // + // tmrReadPLCData + // + this.tmrReadPLCData.Interval = 300; + this.tmrReadPLCData.Tick += new System.EventHandler(this.tmrReadPLCData_Tick); + // + // tmrRefreshPLCStatus + // + this.tmrRefreshPLCStatus.Interval = 500; + this.tmrRefreshPLCStatus.Tick += new System.EventHandler(this.tmrRefreshPLCStatus_Tick); + // + // tmrHeartBeatConnect + // + this.tmrHeartBeatConnect.Interval = 1000; + this.tmrHeartBeatConnect.Tick += new System.EventHandler(this.tmrHeartBeatConnect_Tick); + // + // tmrWritePLCLive + // + this.tmrWritePLCLive.Interval = 1000; + this.tmrWritePLCLive.Tick += new System.EventHandler(this.tmrWritePLCLive_Tick); + // + // tmrMonitorDBToCreateReport + // + this.tmrMonitorDBToCreateReport.Interval = 1000; + this.tmrMonitorDBToCreateReport.Tick += new System.EventHandler(this.tmrMonitorDBToCreateReport_Tick); + // + // CenterControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(1920, 1080); + this.Controls.Add(this.RPV); + this.Controls.Add(this.radStatusStrip1); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "CenterControl"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "海克斯康间隙面差分析系统"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.CenterControl_FormClosing); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.CenterControl_FormClosed); + this.Load += new System.EventHandler(this.CenterControl_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radStatusStrip1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.RPV)).EndInit(); + this.RPV.ResumeLayout(false); + this.rpvpAnalysis.ResumeLayout(false); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel1.PerformLayout(); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvMeasureContent)).EndInit(); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel1.PerformLayout(); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbResult)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartResultPie)).EndInit(); + this.rpvpSearch.ResumeLayout(false); + this.rpvpSearch.PerformLayout(); + this.pnlPage.ResumeLayout(false); + this.pnlPage.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rddlPageRecorderCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnFirtstPage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnLastPage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnPrevPage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnNextPage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox1)).EndInit(); + this.radGroupBox1.ResumeLayout(false); + this.radGroupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPartID)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtSelectFPY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnExportCSVReport)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rdtpStartTime)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rdtpEndTime)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnSearchMeaserData)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartFPYLine)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectMeasureData)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvFPYResult)).EndInit(); + this.rpvpCpCpk.ResumeLayout(false); + this.rpvpCpCpk.PerformLayout(); + this.pnlCPCPK.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox6)).EndInit(); + this.radGroupBox6.ResumeLayout(false); + this.radGroupBox6.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.labPpk)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labPpu)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labPpl)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel17)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labPp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel27)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labCpk)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labCpu)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labCpl)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labCp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox5)).EndInit(); + this.radGroupBox5.ResumeLayout(false); + this.radGroupBox5.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.labSampleSize)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel30)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labStdDev)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel32)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labAverage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel34)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labUSL)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel16)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labTarget)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel18)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.labLSL)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel24)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel25)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel26)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartCPCPK)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox2)).EndInit(); + this.radGroupBox2.ResumeLayout(false); + this.radGroupBox2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rddlMeasurePoint)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlSizeName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudMeasureCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnSearchCPCPK)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).EndInit(); + this.rpvpSetup.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox7)).EndInit(); + this.radGroupBox7.ResumeLayout(false); + this.radGroupBox7.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCOMContent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPort)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnTestCOM)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox3)).EndInit(); + this.radGroupBox3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.rbtnClosePLC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnConnectPLC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rgbMeasreSeq)).EndInit(); + this.rgbMeasreSeq.ResumeLayout(false); + this.rgbMeasreSeq.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel20)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel21)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel22)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel23)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private Telerik.WinControls.UI.RadStatusStrip radStatusStrip1; + private Telerik.WinControls.UI.RadLabelElement rleTimeText; + private Telerik.WinControls.UI.RadLabelElement rleTime; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator1; + private Telerik.WinControls.UI.RadLabelElement rlePLCText; + private Telerik.WinControls.UI.RadLabelElement rlePLCStatus; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator2; + private Telerik.WinControls.UI.RadLabelElement radLabelElement1; + private Telerik.WinControls.UI.RadLabelElement rlePLCHeart; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator3; + private Telerik.WinControls.UI.RadLabelElement rleMessageText; + public Telerik.WinControls.UI.RadLabelElement rleMessage; + public Telerik.WinControls.UI.RadPageView RPV; + public Telerik.WinControls.UI.RadPageViewPage rpvpAnalysis; + public Telerik.WinControls.UI.RadPageViewPage rpvpSetup; + public Telerik.WinControls.UI.RadPageViewPage rpvpCpCpk; + private Telerik.WinControls.UI.RadPageViewPage rpvpSearch; + private Telerik.WinControls.UI.RadGroupBox radGroupBox1; + private Telerik.WinControls.UI.RadDateTimePicker rdtpStartTime; + private Telerik.WinControls.UI.RadDateTimePicker rdtpEndTime; + private Telerik.WinControls.UI.RadButton rbtnSearchMeaserData; + private Telerik.WinControls.UI.RadLabel radLabel15; + private Telerik.WinControls.UI.RadLabel radLabel1; + private Telerik.WinControls.UI.RadTextBox rtbPartID; + private Telerik.WinControls.UI.RadLabel radLabel11; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ListBox lbCSVFiles; + public System.Windows.Forms.DataGridView dgvMeasureContent; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.Label labResult; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label labResultPercent; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label labMeaTime; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label labNGCount; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label labOKCount; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label labVIN; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.DataVisualization.Charting.Chart chartResultPie; + private Telerik.WinControls.UI.RadButton rbtnExportCSVReport; + private System.Windows.Forms.DataVisualization.Charting.Chart chartFPYLine; + private Telerik.WinControls.UI.RadGroupBox radGroupBox2; + private System.Windows.Forms.NumericUpDown nudMeasureCount; + private Telerik.WinControls.UI.RadButton radButton10; + private Telerik.WinControls.UI.RadLabel radLabel3; + private Telerik.WinControls.UI.RadButton rbtnSearchCPCPK; + private Telerik.WinControls.UI.RadLabel radLabel5; + private System.Windows.Forms.DataVisualization.Charting.Chart chartCPCPK; + private System.Windows.Forms.Timer tmSystem; + private System.Windows.Forms.Timer tmReadNextsenseCSV; + private System.Windows.Forms.PictureBox pbResult; + private System.Windows.Forms.Label labRejectCount; + private System.Windows.Forms.Label label7; + public System.Windows.Forms.DataGridView dgvSelectMeasureData; + public System.Windows.Forms.DataGridView dgvFPYResult; + private Telerik.WinControls.UI.RadButton rbtSelectFPY; + private Telerik.WinControls.UI.RadGroupBox rgbMeasreSeq; + private UserControlClass.Lamp lampError; + private UserControlClass.Lamp lampMode; + private UserControlClass.Lamp lampPLCHeart; + private UserControlClass.Lamp lampConnectPLCStatus; + private System.Windows.Forms.Label labelTimeStatus_Tip; + private Telerik.WinControls.UI.RadLabel radLabel20; + private Telerik.WinControls.UI.RadLabel radLabel21; + private Telerik.WinControls.UI.RadLabel radLabel22; + private Telerik.WinControls.UI.RadLabel radLabel23; + private Telerik.WinControls.UI.RadGroupBox radGroupBox3; + private Telerik.WinControls.UI.RadButton rbtnClosePLC; + private Telerik.WinControls.UI.RadButton rbtnConnectPLC; + private UserControlClass.LabPictureControl lpcPLCAddress; + private UserControlClass.LabPictureControl lpcAboutSoftware; + private UserControlClass.LabPictureControl lpcPLCTest; + private System.Windows.Forms.Label labSearchResult; + private Telerik.WinControls.UI.RadLabel radLabel2; + private Telerik.WinControls.UI.RadDropDownList rddlSizeName; + private Telerik.WinControls.UI.RadDropDownList rddlMeasurePoint; + private System.Windows.Forms.Timer tmrReadPLCData; + private System.Windows.Forms.Timer tmrRefreshPLCStatus; + private System.Windows.Forms.Timer tmrHeartBeatConnect; + private System.Windows.Forms.Timer tmrWritePLCLive; + private System.Windows.Forms.Label labSumMeasureCount; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Panel pnlPage; + private Telerik.WinControls.UI.RadButton rbtnFirtstPage; + private Telerik.WinControls.UI.RadButton rbtnLastPage; + private Telerik.WinControls.UI.RadButton rbtnPrevPage; + private Telerik.WinControls.UI.RadDropDownList rddlPageRecorderCount; + private Telerik.WinControls.UI.RadButton rbtnNextPage; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label labSumRecorders; + private System.Windows.Forms.Label labSumPages; + private System.Windows.Forms.Label labCurrentPage; + private System.Windows.Forms.Label labSearchCPCPKResult; + private System.Windows.Forms.Panel pnlCPCPK; + private Telerik.WinControls.UI.RadGroupBox radGroupBox6; + private Telerik.WinControls.UI.RadGroupBox radGroupBox5; + private Telerik.WinControls.UI.RadLabel labCpk; + private Telerik.WinControls.UI.RadLabel radLabel13; + private Telerik.WinControls.UI.RadLabel labCpu; + private Telerik.WinControls.UI.RadLabel radLabel10; + private Telerik.WinControls.UI.RadLabel labCpl; + private Telerik.WinControls.UI.RadLabel radLabel8; + private Telerik.WinControls.UI.RadLabel labCp; + private Telerik.WinControls.UI.RadLabel radLabel4; + private Telerik.WinControls.UI.RadLabel labStdDev; + private Telerik.WinControls.UI.RadLabel radLabel32; + private Telerik.WinControls.UI.RadLabel labAverage; + private Telerik.WinControls.UI.RadLabel radLabel34; + private Telerik.WinControls.UI.RadLabel labUSL; + private Telerik.WinControls.UI.RadLabel radLabel16; + private Telerik.WinControls.UI.RadLabel labTarget; + private Telerik.WinControls.UI.RadLabel radLabel18; + private Telerik.WinControls.UI.RadLabel labLSL; + private Telerik.WinControls.UI.RadLabel radLabel24; + private Telerik.WinControls.UI.RadLabel radLabel25; + private Telerik.WinControls.UI.RadLabel radLabel26; + private Telerik.WinControls.UI.RadLabel labSampleSize; + private Telerik.WinControls.UI.RadLabel radLabel30; + private Telerik.WinControls.UI.RadLabel labPpk; + private Telerik.WinControls.UI.RadLabel radLabel7; + private Telerik.WinControls.UI.RadLabel labPpu; + private Telerik.WinControls.UI.RadLabel radLabel12; + private Telerik.WinControls.UI.RadLabel labPpl; + private Telerik.WinControls.UI.RadLabel radLabel17; + private Telerik.WinControls.UI.RadLabel labPp; + private Telerik.WinControls.UI.RadLabel radLabel27; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn13; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn14; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn16; + private System.Windows.Forms.DataGridViewTextBoxColumn SMResult; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator4; + private Telerik.WinControls.UI.RadLabelElement radLabelElement2; + private Telerik.WinControls.UI.RadLabelElement rleReadCSVStatus; + private UserControlClass.LabPictureControl lpcUploadIOTTest; + private UserControlClass.LabPictureControl lpcShowCarData; + private System.Windows.Forms.Label labCarType; + private System.Windows.Forms.Label label24; + private UserControlClass.LabPictureControl lpcToleranceSetup; + private Telerik.WinControls.UI.RadGroupBox radGroupBox7; + private UserControlClass.LabPictureControl lpcShowLog; + private Telerik.WinControls.UI.RadTextBox rtbCOMContent; + private System.Windows.Forms.Label label25; + private Telerik.WinControls.UI.RadTextBox rtbPort; + private Telerik.WinControls.UI.RadButton rbtnTestCOM; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasureItemResult; + private System.Windows.Forms.Timer tmrMonitorDBToCreateReport; + private Telerik.WinControls.UI.RadLabelElement radLabelElement3; + private Telerik.WinControls.UI.RadLabelElement rleReadDBStatus; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator5; + private System.Windows.Forms.DataGridViewTextBoxColumn DimensionID; + private System.Windows.Forms.DataGridViewTextBoxColumn DimensionName; + private System.Windows.Forms.DataGridViewTextBoxColumn NormalVal; + private System.Windows.Forms.DataGridViewTextBoxColumn LowerTolVal; + private System.Windows.Forms.DataGridViewTextBoxColumn UpperTolVal; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasureValue; + private System.Windows.Forms.DataGridViewTextBoxColumn MDate; + private System.Windows.Forms.DataGridViewTextBoxColumn MResult; + private UserControlClass.LabPictureControl lpcTestGetCarTye; + private UserControlClass.LabPictureControl lpcRange; + private UserControlClass.LabPictureControl lpcSoftwareSetup; + } +} diff --git a/Analysis/CenterControl.resx b/Analysis/CenterControl.resx new file mode 100644 index 0000000..74e3740 --- /dev/null +++ b/Analysis/CenterControl.resx @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAYCAYAAADtaU2/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AkVCAAngM/SOwAAAoNJREFU + SEu1lsvLTWEUh7cIJQbEwIRipoSRiRiIAf4AxcB1YGJgIkWhFBHKyOQrA5JigmKipIQJGZCJWwauySWX + iOf5etfu/XbrHMftV0/tvd61fr/O2e9+z2kG1GRYAUfgGjyFtwWvrblmj71/rSmwGa7Ce/jxC+yx1xln + f1ujYDlo8h26AbdhS8Hr7rozzuqh10AaC9vgNXQN5Q0shpDX1rJePfTSs69s2A1fIDOS+zANQlPBWtYr + X0HPvuFbIUJvwTG4At9KTd7BKgh5bS3W7XXGWT2s6al3Kr+yF2DjdZgByl16DsJYHsK+gtf1mr2xs/XQ + y7reS2CEJsEliOG9UGsjxFoXN5LPODbhBqilV/SaYVar1eCziIaTMAZC+yHWupyA+XC53Nsb0kOv6DXD + rGFNgIsQi/IRNFgK2+EV1OuBz24lqONgzV5nnNVDr3rGLDObRdDL+HNSq3kEM8Gv72apBb1mzTKz2VUK + f8J5GA0LoNe7nGFmc6Eq+CoMcjQGO0F5RGbrgZ71K2lm+/J72G+ChbAHPkA0ZnyCZaCGIOvRQy899TbD + upnN83Kzw5sid+MZqE26PIDp4I/BnVLrokf9dphh3cz22azxptJRqE0Cd7KGsZvnwkvIevWoZYZ1M5sn + 5eYseO6qOXAXapPgIIyHkNeHIOvVQy+ltxnWzWzPU08ejzcPhHul1uUxzIKurLmWzeilp95xuvnq9dwY + GQ6MOPKKJsINyGYyzGzWQ31c9sNPNRu66veJu5i1DoaH3KFZU4bPeByEvD4AWW+GWe3jOgxZU4ZH4SlY + C+7S06WW9WaY1WoePIOs8V9ihlmt/EPm3xP/SXja/A/0NoOspvkJxD7h7QqkS00AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAAUAAAAECAYAAABGM/VAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAACFJREFUGFdjEHXq/o+OGf4DAbIACDCAAEwCLgADCAEGBgDP4STWpID5ywAAAABJ + RU5ErkJggg== + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AEGATc06Xu77gAAAihJREFU + WEft1j1rFUEUgOH1IwYLCzEKSSAQVLBRkkZ/gEYs468w1iJoY6ud2gqKIfEXWAh2GhNrP8DYRcEETaNi + YSHq+152YLKe3J1ELiLcAw8sO2fO7MfM7Fb96Mf/GIPYj0MYrXnsOdt6EgdwGlcwjwW8wErNY8/ZZo65 + 9vnrGMclLOIzfhUy1z72tcaWYx8uwDv7iWiQEva1hrWsWRSHMYfviIomX7FW8zjKSaxlTWt3jUk8RVQk + ccDbOIcjNY89Z1vUJ7H2BMI4jueIOiYvcRY7sAvOfnls2GZO1Dd5hmPYEMN4hKhD4t05gOFd3MNy7S58 + eoY5bU/iIRyzEwO4jrbJdgs7YVxEc468wkkY5uZtTY51A3tQnccnRInJF5xBir24hm/I8+5jN8y1T97W + 5JiO3VmvUUJuFc5g372PbgRHcQc/kPLe4CBc+/bJa0Qcu1rKTmzGYhZ1d3uCD3iPj8hfnRfgpCy9AFdF + 8Stwe3W+uN1GOZpF6StYxzQ6E8EJ0TYJb8I4hddotnvONsPcZntuwyQ0fK8ujSg5cWlNwXDJufTe1vJl + aM6WlmEKNwc3iahD4iaTLiLaiGxr24iceH9sRClO4DGijomTy3Xe3Io91zbxrO0YXWMMTqaSj5EDquRj + ZE1rF4Wfzhn4ONsmZzf2tYa1ij/HebieL2O7PyT23dYPSTOG4D5wFQ/g75d39q7msedsM8dc+/Qk/slP + aT/60aOoqt9oGogfMlqpmgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AQOARcj8ni9FAAAAq1JREFU + WEe910uoTVEcx/HrFUIiUlJMkHfCQBIZyEAppQxMGHjEQFFKioEkz5J3DCgGwsxIXhkojxIlJe+QIkre + z+/33rNOy9nr7LM7d9/7q0/3nvU4+3/3WWetfVsS6Ypp2IpreIO/FZ9xD4cwB91QaoZiN14hXLSed9iJ + wSgl43AF4QIfK6+PYC+2YT/O4y3CuBPoi3ZlCC7CN/yFM5iJPqhNd/gRXYDjf2MN2pXNCG/mX5u6cG2G + 4Qac588BaCrj8RS+kX9VP5gu6Nn2a92sgvM+YbYNOXHBevcyWY8/+IL5NhAvvhx+LHNtSMTF50dlAbqL + BUhlIA7iNEbYECd8lrcQbmMvXIXtLrxUZuArQgE6jFSmI4xdZkOcJ7DjeOurtvRGKMC9YCW83cEK7MEP + hIvrOhqNte2/hI59ra/aEhdQtkwBocOdLyQu4Bs+JLjwXDthvr6j0di6Bfj1C4kLOIspmBqZDBepxYX5 + cpNqNDZTwHvY4SoNiQs4YEMiblR+c8LFVW8RxmMzBdyHHafgQWTiAuLC4sxCbQFu26nEYzMFnIMdN9Hf + BtKpBWyBHR4wHkimSAHufLVr4ChSyS1gIez0HFhiAylSgMU+Qrj4T2xEKrkFDMdD2BkWXJECjHfB5wLH + uQDDOVKb3AI8JE7Czttw34634rwCfA5YjU1wu62X3ALMUtjpoHnogSIFFE3DAkbjJRzgllz0DhRNwwLi + j+EBRuJy5bUr2+cC10UzvJse6bkFmEVwJbtnr8UlOMEHVJ8NvSPNcK7PCn7LfD9Py2QGwWeCcBdeV34v + m0dz3WxAalKZnmMskhmFx0hNLNMOJONi9PhNTSqTd2EMMpmAF0hNKtt2ZLILqcEd4RkmoZqJCJtRZzmG + atYhNagj+axYzWL473dqYAdpufMPbVcEeB1qsV0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AQOAhEQGbTF3QAABH1JREFU + WEe111mobmMcx/FtnnKcDJlFiDLPM+UgQy50RIZSCDdKUUKIQm7IkIgoKQ7HPAtlvJFypSjKPBbKPP8+ + 613/09rLepe95fzqe1rredd+hv/4nJn/oLXDHeHP8FfLH+H+sF5Y7jo2/BK+Dx+0eP49LA7/m1YJq00e + Z+mS4NS3hc1abmzHrg59rdoyL+0floanw6mhNrJCuC9Y7CwDrU4Jxh4PKxmIHODE8FQwfniYkw4I7wYT + 4tdwe9gu7BHeDj+Fg0PJ+HfhvbBf2DrcHHxX83wcjg6jcvJ3Qp3mivB5+87X9fxG2CCUFoZXgt++CO+3 + z1+GK4O5vNvEkWFQTMbsPvQHGwdikWeC03wdHgoHhb72CtzzVfg5vBgODbRJeCyYm0uGYqsZtJCPnLwr + Jzww7BrGAsohdgm+XddARxcGcz8fVjcwJAHH558F7hjTgrBlyzoGRrRb4MLfwhkGpokVBJydsoaT97Vj + uCow6Ustj7ZjfutrrVCuvSesEUYl2u2Wz5myJL1OD8+FywKfb9Gye1Af/HZ2qFSkfYNCJThZYlTyXEqJ + dgHH5yWLvxz2bN4m324YBOuKBiIWeCSc07xNtH34JHwTBK+/myW1XXm9OIhiec5cD4YKOBM7XS1uk3cH + qYcHQtWFHYJva/M2d2cwpxTXMy4Nx4UmUDUWtd0HYHp53k01/mV2svibwdhOwYKXh7dCpd0F4brJYyOm + fz38GGodAWnjTVfjI7VdeXWSbpER7QKOz5nPyS3elxhgtZXDzkEZ73bH9YOYOjPcGqxpI80/gk5TGZI0 + E+mCbaPA5E7el+B9LZjHARScrcKQfGPNOW9A8NmAgLMBZu9rm/Bq2DzYwJNh2gY2Dcs24DLBHDeEkwMf + d/NfkZHn/Cig+K3ioavzg3xXDW3w2dB1pXmk60nh+rDMBaLSZcILdDUmr4gnPudjOiQIuIsCszu5xQXm + okDnhZsmj41s6IVg7lrHmg7WBMrx4ZrwRKhOdm9wGqo0rEon2gUcn3OJk9fi2wbf7t28TaxW1fXDIDau + DSeEf1zhRLAeoI3qaqK5pMI9HMr/vhU3fF4btfiScG7zNhEracPfhsOCvxuVywQraKn9UqzCOZ08lwl8 + LL1sitn53eLdUuxAPwQNbqhXzJKTuMkwl37eb6kkGAWRPBfp3GZhPi+zd6XS1oXkrjB4Fyi5w6mEXFBV + bZr4T5qhG+1DsjH9QKs/zcCQ1H0BYqeuUV1pqfsEjaUaz5D8xufuhU7eVd2mp15IbIA5faT01pVMUxHl + 8tYpNJZulyyJA9H+UeDzKt+0ZrglmJvrprrhiCBifShHXaOqYnGLlupZYxF8Jf1CnvtNtAs4zzasy9bi + n4ajwqiOCbUJ6FpuMoJPh9RSdbVuhqhwiow8l2qiXcDxec1jcW1/TrJL8eBU7nB1jdINlWITdu92yqsx + f1N5zswCjs+Z/V9P3pcJhoLFZcJiWqpCpLFIS2MqXF/mGE29+cpNhlsEpfiAZ7VdeV3uUpzKDV0E7Tz/ + ez4z8zeeNDGa23P9IwAAAABJRU5ErkJggg== + + + + 17, 17 + + + 127, 14 + + + 298, 20 + + + 443, 20 + + + 640, 18 + + + 821, 18 + + + 980, 16 + + + 61 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/Define/ConfigPlc.cs b/Analysis/Define/ConfigPlc.cs new file mode 100644 index 0000000..1435c01 --- /dev/null +++ b/Analysis/Define/ConfigPlc.cs @@ -0,0 +1,84 @@ +/************************************************************************** +* +* ================================= +* CLR版本 :4.0.30319.42000 +* 命名空间 :NSAnalysis.Define +* 文件名称 :ConfigPlc.cs +* ================================= +* 创 建 者 :shupeng.wang +* 创建日期 :2022/9/28 18:49:01 +* 功能描述 : +* 使用说明 : +* ================================= +* 修改者 : +* 修改日期 : +* 修改内容 : +* ================================= +* +***************************************************************************/ + +using BaseFunction; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NSAnalysis +{ + /// + /// + /// + public class ConfigPlc + { + private int m_WriteStartAddr = 0; + + public int WriteStartAddr + { + get + { + return m_WriteStartAddr; + } + set + { + m_WriteStartAddr = value; + } + } + + private int m_ReadStartAddr = 100; + + public int ReadStartAddr + { + get + { + return m_ReadStartAddr; + } + set + { + m_ReadStartAddr = value; + } + } + + /// + /// PLC通信协议: 1:Modbus;3:S7 + /// + public static int PlcType = 1; + + public static string strIP = "192.168.1.30"; //PLC的IP地址 沈机:100 + public static string strPort = "502"; //PLC的端口号 + public static string strMac = "1"; //设备号 + public static bool bReConnect = false; + public static bool bPositiveAequence = true; + + public static void LoadConfig() + { + string strTemp = "TCP"; + strIP = FileIni.ReadString(ConfigDfn.strConfigFile, strTemp, "ModbusTcp_IP"); + strPort = FileIni.ReadString(ConfigDfn.strConfigFile, strTemp, "ModbusTcp_Port"); + strMac = FileIni.ReadString(ConfigDfn.strConfigFile, strTemp, "ModbusTcp_Addr"); + bReConnect = FileIni.ReadBool(ConfigDfn.strConfigFile, strTemp, "ModbusTcp_Reconnected", 1); + bPositiveAequence = !FileIni.ReadBool(ConfigDfn.strConfigFile, strTemp, "ModbusTcp_ReverseSequence", 1); + PlcType = FileIni.ReadInt(ConfigDfn.strConfigFile, strTemp, "PlcType", 1); + } + } +} \ No newline at end of file diff --git a/Analysis/Define/Define.cs b/Analysis/Define/Define.cs new file mode 100644 index 0000000..cc90385 --- /dev/null +++ b/Analysis/Define/Define.cs @@ -0,0 +1,324 @@ +/************************************************************************** +* +* ================================= +* CLR版本 :4.0.30319.42000 +* 命名空间 :NSAnalysis +* 文件名称 :Define.cs +* ================================= +* 创 建 者 :shupeng.wang +* 创建日期 :2021/6/9 14:58:52 +* 功能描述 : +* 使用说明 : +* ================================= +* 修改者 : +* 修改日期 : +* 修改内容 : +* ================================= +* +***************************************************************************/ + +using BaseFunction; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Web; +using System.Windows.Forms; + +namespace NSAnalysis +{ + public class LogDebugDfn + { + public static string strDebugFile = Application.StartupPath + "\\Debug.txt"; //保存操作log的文件 + public static string strStartTime = "";//程序启动时间 + public static string strEndTime = ""; //程序关闭时间 + } + + public class ConfigDfn + { + #region 全局变量 + + public static string strKeyFolder = Application.StartupPath + "\\Key"; + public static string strFileFolder = Application.StartupPath + "\\File"; + public static string strDFQFolder = Application.StartupPath + "\\DFQFiles"; + public static string strDebugFileFolder = Application.StartupPath + "\\File\\DebugFiles\\"; + public static string strThemePath = Application.StartupPath + "\\ThemeSkin\\"; + public static string strTheme = Application.StartupPath + "\\ThemeSkin\\"; + + /// CheryAnalysisConfig.ini绝对路径地址 + public static string strConfigFile = Application.StartupPath + "\\File\\AnalysisConfig.ini"; + + public static string strImageFile = Application.StartupPath + "\\Images\\"; + public static string strExpiredTime = ""; + + public static string strSkinName = ""; + public static string strHelpDocumentName = ""; + public static int iDeleteFlieTime; + public static string strImagePath = ""; + + /// true =中文 false =英语 + public static bool bLanguage = true; + + public static bool bRememberMe = false; + public static string UserName = ""; + public static string Password = ""; + + public static int gtm1_60 = 5000; + public static int gtmRMIDMode = 5000; + public static int gtmRCMMStatus = 6000; + + public static string strNextSenseCSVEH3Path = ""; + public static string strNextSenseCSVEHYPath = ""; + public static string strNextSenseSelfMeasurePath = ""; + public static string strPLCIP = ""; + + /// NextSense 测量结果 + public static bool bMeasureResult = false; + + public static string strMeasureTime = ""; + + public static double dFPY = 0.8; + public static double dFPY2 = 0.6; + + public static string strCarModel = ""; + public static string strEquipNo = ""; + public static string strEquipName = ""; + public static string strIOTAddress = ""; + public static string strIOTCarTypeAddress = ""; + public static int iStartIOTFlag = 1; + public static int iShowCarDataFlag = 0; + public static string strShowCarLR=""; + public static string strCOMPort = ""; + + public static int iCreateReportFlag = 0; + public static string strStationName = ""; + public static string strUploadPath = ""; + public static string strUploadPath2 = ""; + public static double dLevel2 = 1.5; + + public static double dLevel3 = 2.0; + public static string strReportPath = ""; + public static string strReportPath2 = ""; + /// + /// 公差带百分比 + /// + public static double dTolerancePer = 0.0; + public static double dExceptionTolerancePer = 0.0; + public static string strPwd = ""; + public static int iAnalysisCSVFlag=1; + public static int iRecordEncoderFlag = 0; + public static int iIncludeRangeFlag = 0; + public static int iMeasureItemsCount = 0; + public static int iFailedCarCount = 0; + #endregion 全局变量 + + public static void LoadConfig() + { + string strSection = ""; + + #region 读取系统配置参数 + + strSection = "Chery"; + iDeleteFlieTime = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "DeleteDebugFileIntervalTime"); + strSkinName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ConfigSkinName"); + strTheme += strSkinName; + strHelpDocumentName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "SoftwareHelpDocument"); + strImagePath = strImageFile + FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "CNCPictureName"); + bLanguage = FileIni.ReadBool(ConfigDfn.strConfigFile, strSection, "Language", 0); + bRememberMe = FileIni.ReadBool(ConfigDfn.strConfigFile, strSection, "RememberMe", 0); + strNextSenseCSVEH3Path = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "NextsenseCSVEH3Path"); + strNextSenseCSVEHYPath = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "NextsenseCSVEHYPath"); + strNextSenseSelfMeasurePath = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "NextseneSelfMeasurePath"); + dFPY = double.Parse(FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "FPY")); + dFPY2 = double.Parse(FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "FPY2")); + strCarModel = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "CarModel"); + strEquipNo = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "EquipmentNo"); + strEquipName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "EquipmentName"); + iStartIOTFlag = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "StartIOTFlag"); + strIOTAddress = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "IOTAddress"); + strIOTCarTypeAddress = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "IOTCarTypeAddr"); + iShowCarDataFlag = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "ShowDataFlag"); + strShowCarLR = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ShowData"); + dTolerancePer = FileIni.ReadDouble(ConfigDfn.strConfigFile, strSection, "TolerancePercentage"); + dExceptionTolerancePer = FileIni.ReadDouble(strConfigFile, strSection, "ExceptionPercentage"); + strPwd = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "Password"); + strCOMPort = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "COMPort"); + + iCreateReportFlag = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "CreateReportFlag"); + strStationName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "StationName"); + strUploadPath = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "tavascanUploadPath"); + strUploadPath2 = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "blacklabelUploadPath"); + dLevel2 = double.Parse(FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "Level2Times")); + dLevel3 = double.Parse(FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "Level3Times")); + strReportPath = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ReportCSVPath"); + strReportPath2 = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ReportCSVPath2"); + iAnalysisCSVFlag= FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "AnalysisCSVFlag"); + iRecordEncoderFlag = FileIni.ReadInt(strConfigFile, strSection, "RecordEncoderFlag"); + iIncludeRangeFlag = FileIni.ReadInt(strConfigFile, strSection, "IncludeRangeFlag"); + iMeasureItemsCount = FileIni.ReadInt(strConfigFile, strSection, "MeasureCarItemsCount"); + iFailedCarCount = FileIni.ReadInt(strConfigFile, strSection, "ContinuousCarCount"); + #endregion 读取系统配置参数 + + #region 读[PLC] 参数 + + strSection = "PLC"; + strPLCIP = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ModbusTcp_IP"); + + #endregion 读[PLC] 参数 + + #region 读[Timer] 参数 + + strSection = "Timer"; + gtm1_60 = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "TimerFixedStorage") * 1000; + gtmRMIDMode = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "TimerRefreshMIDMode") * 1000; + gtmRCMMStatus = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "TimerRefreshCMMStatus") * 1000; + + #endregion 读[Timer] 参数 + } + + public static void LoadConfigFile() + { + try + { + #region 检查DLL是否存在 + + //if (!File.Exists(Application.StartupPath + "\\Fwlib32.dll")) + // MyBase.TraceWriteLine("错误:Fwlib32.dll 文件丢失,程序将不能正确运行!"); + //else + // MyBase.TraceWriteLine("Fwlib32.dll 文件存在!"); + + #endregion 检查DLL是否存在 + + MyBase.TraceWriteLine("加载配置文件——>开始"); + if (File.Exists(strConfigFile)) + { + LoadConfig(); + ConfigPlc.LoadConfig(); + DatabaseDfn.LoadConfig(); + MyBase.TraceWriteLine("加载配置文件——>完成"); + } + else + { + MyBase.TraceWriteLine("配置文件不存在!"); + } + + #region 检测文件夹,没有则创建 + + if (!Directory.Exists(ConfigDfn.strFileFolder)) + Directory.CreateDirectory(ConfigDfn.strFileFolder); + if (!Directory.Exists(ConfigDfn.strDebugFileFolder)) + Directory.CreateDirectory(ConfigDfn.strDebugFileFolder); + if (!Directory.Exists(ConfigDfn.strKeyFolder)) + Directory.CreateDirectory(ConfigDfn.strKeyFolder); + if (!Directory.Exists(ConfigDfn.strThemePath)) + Directory.CreateDirectory(ConfigDfn.strThemePath); + if (!Directory.Exists(ConfigDfn.strImageFile)) + Directory.CreateDirectory(ConfigDfn.strImageFile); + if (!Directory.Exists(ConfigDfn.strDFQFolder)) + Directory.CreateDirectory(ConfigDfn.strDFQFolder); + + #endregion 检测文件夹,没有则创建 + } + catch (Exception ex) + { + MyBase.TraceWriteLine("加载配置文件错误:" + ex.ToString()); + } + } + } + + public class PLCDfn + { + /// 上料完成状态 10=OK,其他=false + public static int CmmPartOk = -1; + + /// 清除测量结果标志位 + public static int CMMResultClear = -1; + + /// PLC心跳状态: 0 1 定时闪烁 + public static bool bPlcLiveHeart = false; + + /// CMM外部急停(PLC给出) + public static bool bCMMEmengency = false; + + /// PLC当前模式10:手动;20:自动;30:联机自动;40:脱机运行 + public static int bPLCMode; + + /// PLC自动运行 + public static bool bAllowHome = false; + + /// 托盘到位状态:10:托盘到位;0 :默认 + public static int TrayStatus; + + /// 允许启动指令:0=禁止启动, 1611或10 = 允许启动, -1= 未知(PLC未连接) + public static int StartCmd = -1; + + /// 启动测量:10:开始测量;0 :默认 + public static int NSStartMeasure; + + public static int CarPassFlag; + /// 读码完成:10:默认为;0 :默认 + public static int ReadVINFinishFlag; + + /// 从工位1流向工位2:10:station1->2;0 :默认 + public static int Station1To2; + + /// 从工位2流向工位3:10:station1->2;0 :默认 + public static int Station2To3; + + /// 工件ID + public static string PartID = ""; + + /// 1:EH3;2:EHY + public static int CarType; + + /// PLC心跳状态: 0 1 定时闪烁 + public static bool bPlcLiveTick = false; + } + + public class HYPLCDfn + { + public static int testValue = 1; + } + + public class DatabaseDfn + { + public static string SqlServerName = ""; + public static string SqlDbName = ""; + public static string SqlUserName = ""; + public static string SqlPassword = ""; + + public static string SqlConnectStr() + { + string strConnectString = ""; + + LoadConfig(); + strConnectString = @"Data Source=" + SqlServerName + + ";initial Catalog=" + SqlDbName + + ";User ID=" + SqlUserName + + ";password=" + SqlPassword + ";"; + + MyBase.TraceWriteLine("数据库连接字符串:" + strConnectString); + + return strConnectString; + } + + public static void LoadConfig() + { + string strSection = "MSDB"; + SqlServerName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "SqlServerName"); + SqlUserName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "SqlUserName"); + SqlPassword = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "SqlPassword"); + SqlDbName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "SqlDbName"); + + + //写入日志的 + MyBase.TraceWriteLine("数据库连接 SqlServerName:" + SqlServerName); + MyBase.TraceWriteLine("数据库连接 SqlUserName:" + SqlUserName); + MyBase.TraceWriteLine("数据库连接 SqlPassword:" + SqlPassword); + MyBase.TraceWriteLine("数据库连接 SqlDbName:" + SqlDbName); + + } + } +} \ No newline at end of file diff --git a/Analysis/Define/MyExtensions.cs b/Analysis/Define/MyExtensions.cs new file mode 100644 index 0000000..09bb0d4 --- /dev/null +++ b/Analysis/Define/MyExtensions.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NSAnalysis +{ + public static class EnumerableExtensions + { + public static double StandardDeviation(this IEnumerable values) + { + double avg = values.Average(); + double sum = values.Sum(d => Math.Pow(d - avg, 2)); + return Math.Sqrt((sum) / (values.Count() - 1)); + } + } +} \ No newline at end of file diff --git a/Analysis/FSoftwareSetup.cs b/Analysis/FSoftwareSetup.cs new file mode 100644 index 0000000..8f7f3b0 --- /dev/null +++ b/Analysis/FSoftwareSetup.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using BaseFunction; + +namespace NSAnalysis +{ + public partial class FSoftwareSetup : Telerik.WinControls.UI.ShapedForm + { + #region RadButton鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion RadButton鼠标事件 + + private string strSection = "Chery"; + + private void LoadSoftwareSetup() + { + #region Load Software Setup + + rtbIOTAddress.Text = ConfigDfn.strIOTAddress; + rtbCarTypebyVIN.Text = ConfigDfn.strIOTCarTypeAddress; + + //rtbVWUploadPath.Text = ConfigDfn.strUploadPath; + //rtbUploadPath2.Text = ConfigDfn.strUploadPath2; + + if (ConfigDfn.iStartIOTFlag == 1) + { + cbStartIOT.Checked = true; + rtbIOTAddress.Enabled = true; + } + else + { + cbStartIOT.Checked = false; + rtbIOTAddress.Enabled = false; + } + + if (ConfigDfn.iAnalysisCSVFlag == 1) + { + cbAnalysisCSV.Checked = true; + } + else + { + cbAnalysisCSV.Checked = false; + } + + #endregion Load Software Setup + } + + public FSoftwareSetup() + { + InitializeComponent(); + } + + private void FSoftwareSetup_Load(object sender, EventArgs e) + { + LoadSoftwareSetup(); + } + + private void rtbnSaveSetup_Click(object sender, EventArgs e) + { + //FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "tavascanUploadPath", rtbVWUploadPath.Text.Trim()); + //FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "blacklabelUploadPath", rtbUploadPath2.Text.Trim()); + //FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "Level2Times", rtbTolPercentage.Text.Trim()); + //FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "Level3Times", rtbLevel3.Text.Trim()); + + if (cbStartIOT.Checked) + { + FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "StartIOTFlag", 1.ToString()); + } + else + { + FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "StartIOTFlag", 0.ToString()); + } + + if (cbAnalysisCSV.Checked) + { + FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "AnalysisCSVFlag", 1.ToString()); + } + else + { + FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "AnalysisCSVFlag", 0.ToString()); + } + + MessageBox.Show("保存设置完成,请重启软件,参数即可生效! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + this.Close(); + } + + private void rbtnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void rbtnReportCSV2_Click(object sender, EventArgs e) + { + FolderBrowserDialog mFolder = new FolderBrowserDialog(); + mFolder.Description = "请选择奇瑞报告存放的路径:"; + mFolder.ShowDialog(); + if (Directory.Exists(mFolder.SelectedPath)) + { + rtbReportPath.Text = mFolder.SelectedPath; + } + } + + private void cbStartIOT_CheckedChanged(object sender, EventArgs e) + { + if (cbStartIOT.Checked) + { + rtbIOTAddress.Enabled = true; + } + else + { + rtbIOTAddress.Enabled = false; + } + } + } +} \ No newline at end of file diff --git a/Analysis/FSoftwareSetup.designer.cs b/Analysis/FSoftwareSetup.designer.cs new file mode 100644 index 0000000..4686761 --- /dev/null +++ b/Analysis/FSoftwareSetup.designer.cs @@ -0,0 +1,391 @@ +namespace NSAnalysis +{ + partial class FSoftwareSetup + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FSoftwareSetup)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.cbStartIOT = new System.Windows.Forms.CheckBox(); + this.label20 = new System.Windows.Forms.Label(); + this.rtbIOTAddress = new Telerik.WinControls.UI.RadTextBox(); + this.label19 = new System.Windows.Forms.Label(); + this.rtbnSaveSetup = new Telerik.WinControls.UI.RadButton(); + this.rbtnCancel = new Telerik.WinControls.UI.RadButton(); + this.cbAnalysisCSV = new System.Windows.Forms.CheckBox(); + this.label14 = new System.Windows.Forms.Label(); + this.rtbCarTypebyVIN = new Telerik.WinControls.UI.RadTextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.rtbReportPath = new Telerik.WinControls.UI.RadTextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.radButton1 = new Telerik.WinControls.UI.RadButton(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbIOTAddress)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbnSaveSetup)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarTypebyVIN)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbReportPath)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton1)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(933, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "软件设置"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "软件设置"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(368, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(410, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(88, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "软件设置"; + // + // cbStartIOT + // + this.cbStartIOT.AutoSize = true; + this.cbStartIOT.Font = new System.Drawing.Font("Segoe UI", 12F); + this.cbStartIOT.ForeColor = System.Drawing.Color.White; + this.cbStartIOT.Location = new System.Drawing.Point(274, 75); + this.cbStartIOT.Name = "cbStartIOT"; + this.cbStartIOT.Size = new System.Drawing.Size(63, 25); + this.cbStartIOT.TabIndex = 489; + this.cbStartIOT.Text = "启用"; + this.cbStartIOT.UseVisualStyleBackColor = true; + this.cbStartIOT.CheckedChanged += new System.EventHandler(this.cbStartIOT_CheckedChanged); + // + // label20 + // + this.label20.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label20.ForeColor = System.Drawing.Color.White; + this.label20.Location = new System.Drawing.Point(29, 76); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(234, 21); + this.label20.TabIndex = 488; + this.label20.Text = "IOT上传功能启用:"; + this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // rtbIOTAddress + // + this.rtbIOTAddress.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbIOTAddress.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbIOTAddress.ForeColor = System.Drawing.Color.White; + this.rtbIOTAddress.Location = new System.Drawing.Point(270, 109); + this.rtbIOTAddress.Name = "rtbIOTAddress"; + this.rtbIOTAddress.Size = new System.Drawing.Size(565, 27); + this.rtbIOTAddress.TabIndex = 487; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbIOTAddress.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbIOTAddress.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label19 + // + this.label19.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label19.ForeColor = System.Drawing.Color.White; + this.label19.Location = new System.Drawing.Point(65, 113); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(200, 21); + this.label19.TabIndex = 486; + this.label19.Text = "IOT测量数据接口地址:"; + this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // rtbnSaveSetup + // + this.rtbnSaveSetup.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.rtbnSaveSetup.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rtbnSaveSetup.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbnSaveSetup.ForeColor = System.Drawing.Color.White; + this.rtbnSaveSetup.Location = new System.Drawing.Point(592, 442); + this.rtbnSaveSetup.Name = "rtbnSaveSetup"; + this.rtbnSaveSetup.Size = new System.Drawing.Size(138, 47); + this.rtbnSaveSetup.TabIndex = 476; + this.rtbnSaveSetup.Text = "保存设置"; + this.rtbnSaveSetup.Click += new System.EventHandler(this.rtbnSaveSetup_Click); + this.rtbnSaveSetup.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rtbnSaveSetup.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSaveSetup.GetChildAt(0))).Text = "保存设置"; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSaveSetup.GetChildAt(0))).FocusBorderWidth = 5; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSaveSetup.GetChildAt(0))).EnableHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSaveSetup.GetChildAt(0))).EnableBorderHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSaveSetup.GetChildAt(0))).BorderHighlightThickness = 3; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).Width = 2F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).TopWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).RightWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSaveSetup.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rbtnCancel + // + this.rbtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnCancel.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnCancel.ForeColor = System.Drawing.Color.White; + this.rbtnCancel.Location = new System.Drawing.Point(770, 443); + this.rbtnCancel.Name = "rbtnCancel"; + this.rbtnCancel.Size = new System.Drawing.Size(138, 47); + this.rbtnCancel.TabIndex = 477; + this.rbtnCancel.Text = "取消"; + this.rbtnCancel.Click += new System.EventHandler(this.rbtnCancel_Click); + this.rbtnCancel.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnCancel.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).Text = "取消"; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).FocusBorderWidth = 5; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).EnableHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).EnableBorderHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).BorderHighlightThickness = 3; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).Width = 2F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).TopWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).RightWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // cbAnalysisCSV + // + this.cbAnalysisCSV.AutoSize = true; + this.cbAnalysisCSV.Font = new System.Drawing.Font("Segoe UI", 12F); + this.cbAnalysisCSV.ForeColor = System.Drawing.Color.White; + this.cbAnalysisCSV.Location = new System.Drawing.Point(268, 193); + this.cbAnalysisCSV.Name = "cbAnalysisCSV"; + this.cbAnalysisCSV.Size = new System.Drawing.Size(63, 25); + this.cbAnalysisCSV.TabIndex = 513; + this.cbAnalysisCSV.Text = "解析"; + this.cbAnalysisCSV.UseVisualStyleBackColor = true; + // + // label14 + // + this.label14.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label14.ForeColor = System.Drawing.Color.White; + this.label14.Location = new System.Drawing.Point(25, 193); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(237, 21); + this.label14.TabIndex = 512; + this.label14.Text = "是否解析CSV文件:"; + this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // rtbCarTypebyVIN + // + this.rtbCarTypebyVIN.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbCarTypebyVIN.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbCarTypebyVIN.ForeColor = System.Drawing.Color.White; + this.rtbCarTypebyVIN.Location = new System.Drawing.Point(268, 147); + this.rtbCarTypebyVIN.Name = "rtbCarTypebyVIN"; + this.rtbCarTypebyVIN.Size = new System.Drawing.Size(567, 27); + this.rtbCarTypebyVIN.TabIndex = 515; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCarTypebyVIN.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCarTypebyVIN.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label10 + // + this.label10.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label10.ForeColor = System.Drawing.Color.White; + this.label10.Location = new System.Drawing.Point(63, 151); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(200, 21); + this.label10.TabIndex = 514; + this.label10.Text = "获取车型接口地址:"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // rtbReportPath + // + this.rtbReportPath.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbReportPath.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbReportPath.ForeColor = System.Drawing.Color.White; + this.rtbReportPath.Location = new System.Drawing.Point(268, 224); + this.rtbReportPath.Name = "rtbReportPath"; + this.rtbReportPath.Size = new System.Drawing.Size(567, 27); + this.rtbReportPath.TabIndex = 516; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbReportPath.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbReportPath.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label1 + // + this.label1.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(26, 224); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(237, 21); + this.label1.TabIndex = 517; + this.label1.Text = "奇瑞报告存放的路径:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // radButton1 + // + this.radButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.radButton1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radButton1.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radButton1.ForeColor = System.Drawing.Color.White; + this.radButton1.Location = new System.Drawing.Point(853, 222); + this.radButton1.Name = "radButton1"; + this.radButton1.Size = new System.Drawing.Size(55, 31); + this.radButton1.TabIndex = 518; + this.radButton1.Text = "浏览"; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).Text = "浏览"; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).FocusBorderWidth = 5; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).EnableHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).EnableBorderHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).BorderHighlightThickness = 3; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).Width = 2F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).TopWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).RightWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // FSoftwareSetup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(935, 516); + this.Controls.Add(this.radButton1); + this.Controls.Add(this.label1); + this.Controls.Add(this.rtbReportPath); + this.Controls.Add(this.rtbCarTypebyVIN); + this.Controls.Add(this.label10); + this.Controls.Add(this.cbAnalysisCSV); + this.Controls.Add(this.label14); + this.Controls.Add(this.rbtnCancel); + this.Controls.Add(this.cbStartIOT); + this.Controls.Add(this.label20); + this.Controls.Add(this.rtbIOTAddress); + this.Controls.Add(this.label19); + this.Controls.Add(this.rtbnSaveSetup); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "FSoftwareSetup"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "软件设置"; + this.Load += new System.EventHandler(this.FSoftwareSetup_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbIOTAddress)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbnSaveSetup)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarTypebyVIN)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbReportPath)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private System.Windows.Forms.CheckBox cbStartIOT; + private System.Windows.Forms.Label label20; + private Telerik.WinControls.UI.RadTextBox rtbIOTAddress; + private System.Windows.Forms.Label label19; + private Telerik.WinControls.UI.RadButton rtbnSaveSetup; + private Telerik.WinControls.UI.RadButton rbtnCancel; + private System.Windows.Forms.CheckBox cbAnalysisCSV; + private System.Windows.Forms.Label label14; + private Telerik.WinControls.UI.RadTextBox rtbCarTypebyVIN; + private System.Windows.Forms.Label label10; + private Telerik.WinControls.UI.RadTextBox rtbReportPath; + private System.Windows.Forms.Label label1; + private Telerik.WinControls.UI.RadButton radButton1; + } +} diff --git a/Analysis/FSoftwareSetup.resx b/Analysis/FSoftwareSetup.resx new file mode 100644 index 0000000..a346816 --- /dev/null +++ b/Analysis/FSoftwareSetup.resx @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAABqdJREFUWEe1lnlQE1ccx61HPXEqFEdtx0GtZ1uPTq3V1mPafxjbomO1VVtrj1E7 + VfHgMOQggCggoAUUCEqCEIwElQAaslnIJrsBkpAGstlkNxFF28HqqONU7WhFeX27SWg8qFHxN/Mdluzb + 9/38fu/93m6/5wkAwAAx6pqytEITue1M5Qbfzy8/JFbroJUVTaEK24UF62vM0UsravKSMancd/vlBsz6 + lXLi4qivq1qWTJRihklS9dUVVSWdKlJwwjfk5cU6pXX8UmXT1jlluDZUgt4ano90rVJJu3NNaZ11roSX + A8CWex9GjZlVii9/76i+8K1irDFcgl4elq8FU0tUIF6XCypJEQTg9S0AW+of1LbwbQg1O6besXqKDCsP + K0RvjCjQPhgCzYfmI2CFqgQcNKcBDZPQiTB9XAGlUjngG1XLynly4tjYooYrrClnXICCYQVaMLIQAQWW + NKCiRH0L8HE5MWruUf38KcU6bXhR/aWQfO2dofnerP1640gtWFktg+ZCoKH5zwWwGMMGrjtlDhOLQX/f + T95YVtUcEVnZ/O2YovorsNxd0Lwnc1YjCzVgtrwSZDZlArWLD6DxMwFkN1GhySbnwvVq20+LKogfFyux + Eb5b3thUb5uxTtMSEyHTgZBC9CFz9nq8tAYsh2tfDbNHYPZa5ukVEAPQX4x1DNltYibsNbs+5+OOrO/U + VjRCqpOOlWCv+4Z5IwanZuzQtcVEVZtB+OH6xwAiT5aBjMZMLnNWQQGw5kbHpD0m+pDA6Li0HrHdX3Dc + eH1IPiId8SSAGD0Zsw2zg3flOAgr8kKwmuZruxonzD4YANhJApyKFBLOXB7hcO4ykDfhvPc/OdkMwiT1 + /w8QizvAUpUJTD6qhy3Htp0WrK0tBgfhzoeGnLFfjwJkGOkQcSM5TUhQMXycqoDGzjicvBMH51x1uoVL + DJ4jvQPEQQB28Aa0FcyvMILQIi0YffgMt/FOOBJ7Mn8UgC212EiPS8AdHyUaqa1CI9UR7zOOM5Bgh56E + 8zWCccU6MPjQUwDi2YegvoTE8xT1IKqqFJ54j5sHAqQ0O6bDrDN24WRrrIF8wBn7tBOaf4/YOHN2PwUN + EA33wk6MAEesad1ql+AhAPa6DrbiMfuev9ONRzr4jc52mPE1WO67geasNuvawNtlOGxj72YOGoBvdPy5 + z2SyIcy+NoTh/8Oa+lViSwGJhgNgQ52sa01tzW0e7uj2P8f+9V9v1dnBarUVdlUDd4oGDRBvILv3mFyE + lLRlmC5IsrWM6MYZp6CbPX7lbUkgtiEPLKxQgMkldWDuMaLHNFBwKbjSL6ps6ummoJcgscl5p5jsSMc8 + njfPdaLj9WfTmQr77nvJ+AEwX6EEwwsQbsLRMLPeANiNF1ll4trZf54EDZBlcZcXtrZ/pqLpkGMkMzPL + hLasqK69OUFaDUZJ6rjW7A3Av/Yrai3gHW/bPQMATu0QGp3XS8kL0WXUxahsi3t1lsWTIySsv396Er8D + X1IPlfNRAM4clp7dwB/CNh57RNcz9qkACRCAh5PRaRbadcrduabUcSE23cygCYSDa6uoGjOYWqrvAWDl + B/BnzSoGAqzX/AYiZBiXfeB4Vr0CiE3UjOQm15bD9vNEajN9jU9Q9wIn3gLbKarGAtff206sRsN3xqMA + 2/V2ru1ek/xXrUD1CgDfVmEZZvp9UaMzehdu3wUn48NjWeDXTr1dsB1rzI5GpYY4XW5XPJYDeNjBv0SG + w6R/jNjYdDDXcpJIxPMAT58D2DGBim3IubUZLbAuq5KvnVlaOtxn7Y0cj2fwHtwTHmukZvemzObaJUdb + D2yXt6XckrcmdctbU66Ute7Vsvd+taBzZW3HtyrIHHM5bNVAye1J9xX2VEpBZiikbTk7N2pk0zZaJYN8 + 1sGH2pMzWEtnjEPdog6EFtwNfBmhrrwwgzt9k4bhX/YfWBqG1wX/vw3PkT907tT9eHvWp9ZOyTBushcJ + /dk0PsoktgUCNDCJ6xBaeNpv7pXQ3cAkFzZ3FERQlPJV7uG+iNPk9onwc7wYmlAsgOVi/kSdO6VUS/Ov + IHTCfZQWuRBGlIrQoi/wc3unYB2yIezXtu/xFw+lctWAOpr3s5YWKFgAon3/xnp3cjPKCDsamCTUelHG + M5zL/kBDiUN9j/R9EOdzZ+k8yb/At2NlgydJjTKiVtSdVKk/m/kVANjAPs34ScEaMJfVMw3t6bm6s6lp + qEc4R0mJ+26dgwn6qipE706fjsJ1VnvEI8VA/PC3/lOjX79/AdonQT85iOsDAAAAAElFTkSuQmCC + + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/FormMain.cs b/Analysis/FormMain.cs new file mode 100644 index 0000000..0ca9334 --- /dev/null +++ b/Analysis/FormMain.cs @@ -0,0 +1,2065 @@ +using BaseFunction; +using DAL; +using HslCommunication.Profinet.Siemens; +using Newtonsoft.Json; +using NSAnalysis.Properties; +using PLCModule; +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.IO; +using System.IO.Ports; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using Telerik.WinControls; +using Telerik.WinControls.UI; + +namespace NSAnalysis +{ + public partial class FormMain : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + + private int[] yValues = new int[3]; + private string[] xValues = new string[3]; + private DataTable dtCSVContent = new DataTable(); + private DataTable dtRangeData = new DataTable(); + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private string strSaveReprotPath = ""; + private bool bReadCSVFlag = false; + private List ListPostIOTData = new List(); + + private int iCurrentMeasureItemsFailedCount = 0; + #region PLC相关变量 + + private bool bStopPlcNormal = false; + private static int HeartBeatCount = 0; + private bool bPlcLiveTickLast = false; + + private Thread m_ThreadReconnectPLC = null; + private int m_ReConnectNum = 0; + private bool bTickt = true; + private int iLastNSStartMeasure = 0; + private int iLastCarPassFlag = 0; + private int iLastStation1To2 = 0; + private int iLastStation2To3 = 0; + private int iLastReadVINFinishFlag = 0; + + private SerialPort serialTestPort = null; + + private SerialPort serialPort = null; + private int iLastMesureCount = 0; + + #endregion PLC相关变量 + + #region 分页全局变量 + + private DataTable PageTable = new DataTable(); + + /// + /// 每页记录数 + /// + public int pageSize = 20; + + /// + /// 总记录数 + /// + public int recordCount = 0; + + /// + /// 总页数 + /// + public int pageCount = 0; + + /// + /// 当前页 + /// + public int currentPage = 0; + + #endregion 分页全局变量 + + #endregion 全局变量 + + #region 主窗口事件 + + public FormMain() + { + InitializeComponent(); + SQLHelper.connStr = DatabaseDfn.SqlConnectStr(); + + + + #region 加载皮肤 + + ThemeResolutionService.LoadPackageFile(ConfigDfn.strTheme); + this.ThemeName = ConfigDfn.strSkinName.Substring(0, ConfigDfn.strSkinName.Length - 5); + RPV.ThemeName = ConfigDfn.strSkinName.Substring(0, ConfigDfn.strSkinName.Length - 5); + + #endregion 加载皮肤 + } + + private void FormMain_Load(object sender, EventArgs e) + { + #region 初始化全局变量 + + MyBase.rleMessage = rleMessage; + rdtpStartTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); + rdtpEndTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); + + #endregion 初始化全局变量 + //需要显示车身数据 不分析csv文件 + if (ConfigDfn.iShowCarDataFlag == 1) + { + MyBase.TraceWriteLine(" 进入显示车身模式!显示车身界面。"); + lpcShowCarData_Click(null, null); + //serialPort = new SerialPort(ConfigDfn.strCOMPort, 115200, Parity.None, 8, StopBits.One); // 设置串口参数 + //serialPort.DataReceived += new SerialDataReceivedEventHandler(DataAutoReceivedHandler); // 注册数据接收事件处理方法 + //serialPort.Open(); // 打开串口 + //if (serialPort.IsOpen) + //{ + // MyBase.TraceWriteLine(ConfigDfn.strCOMPort + "打开成功O(∩_∩)O"); + //} + //else + //{ + // MyBase.TraceWriteLine(ConfigDfn.strCOMPort + "打开失败!"); + // MessageBox.Show(ConfigDfn.strCOMPort + "打开失败!请检查扫抢串口设置是否正确。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + //} + } + else + { + MyBase.TraceWriteLine(" 进入不显示车身模式!"); + } + if (ConfigDfn.iAnalysisCSVFlag == 1) + { + MyBase.TraceWriteLine(" 进入解析CSV文件模式,开始解析扫码CSV文件!"); + tmReadNextsenseCSV.Interval = 500; + tmReadNextsenseCSV.Start(); + //tmdal.updateMaintenceInfoEmpty(); + } + else + { + MyBase.TraceWriteLine(" 进入不解析CSV文件模式!"); + tmReadNextsenseCSV.Stop(); + } + + if (Directory.Exists(ConfigDfn.strNextSenseCSVEH3Path)) + { + MyBase.TraceWriteLine("软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:" + ConfigDfn.strNextSenseCSVEH3Path); + } + else + { + string strTip = "错误:软件首次启动,读取NextSense生成EH3 CSV报告的路径:" + ConfigDfn.strNextSenseCSVEH3Path + " 不存在!请检查并进行修改!点击是按钮,软件将自动创建该路径!"; + MyBase.TraceWriteLine(strTip); + Directory.CreateDirectory(ConfigDfn.strNextSenseCSVEH3Path); + //DialogResult dResult = MessageBox.Show(strTip, "错误", MessageBoxButtons.YesNo, MessageBoxIcon.Error); + //if (dResult == DialogResult.Yes) + //{ + // Directory.CreateDirectory(ConfigDfn.strNextSenseCSVEH3Path); + // MyBase.TraceWriteLine(strTip + " ; 点击了是按钮,软件自动创建读取目录:" + ConfigDfn.strNextSenseCSVEH3Path); + //} + //else + //{ + // MyBase.TraceWriteLine(strTip + " ;点击了否按钮,不创建目录!"); + //} + } + if (Directory.Exists(ConfigDfn.strNextSenseCSVEHYPath)) + { + MyBase.TraceWriteLine("软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:" + ConfigDfn.strNextSenseCSVEHYPath); + } + else + { + string strTip = "错误:软件首次启动,读取NextSense生成EHY CSV报告的路径:" + ConfigDfn.strNextSenseCSVEHYPath + " 不存在!请检查并进行修改!点击是按钮,软件将自动创建该路径!"; + MyBase.TraceWriteLine(strTip); + Directory.CreateDirectory(ConfigDfn.strNextSenseCSVEHYPath); + //DialogResult dResult = MessageBox.Show(strTip, "错误", MessageBoxButtons.YesNo, MessageBoxIcon.Error); + //if (dResult == DialogResult.Yes) + //{ + // Directory.CreateDirectory(ConfigDfn.strNextSenseCSVEHYPath); + // MyBase.TraceWriteLine(strTip + " ; 点击了是按钮,软件自动创建读取目录:" + ConfigDfn.strNextSenseCSVEHYPath); + //} + //else + //{ + // MyBase.TraceWriteLine(strTip + " ;点击了否按钮,不创建目录!"); + //} + } + initLPCControl(); + + //tmdal.updateMaintenceInfoEmpty(); + //iLastMesureCount = tmdal.SelectTMeasureResultCount(); + + #region 清空信息 + + labVIN.Text = ""; + labOKCount.Text = ""; + labNGCount.Text = ""; + labRejectCount.Text = ""; + labSumMeasureCount.Text = ""; + labMeaTime.Text = ""; + labResultPercent.Text = ""; + labResult.Text = ""; + labCarType.Text = ""; + + #endregion 清空信息 + + InitTableColumns(); + strSaveReprotPath = ConfigDfn.strReportPath + @"\"; + } + + private void InitTableColumns() + { + #region 测量数据表始化表 + + //创建虚拟表 + DataColumn column2 = new DataColumn("CarID", Type.GetType("System.String")); + DataColumn dcCarType = new DataColumn("CarType", Type.GetType("System.String")); + DataColumn column3 = new DataColumn("MeasPointName", Type.GetType("System.String")); + DataColumn column4 = new DataColumn("DimensionName", Type.GetType("System.String")); + DataColumn column5 = new DataColumn("NormalValue", Type.GetType("System.String")); + DataColumn column6 = new DataColumn("LowerTolVal", Type.GetType("System.String")); + DataColumn column7 = new DataColumn("UpperTolVal", Type.GetType("System.String")); + DataColumn column8 = new DataColumn("MeasureValue", Type.GetType("System.String")); + DataColumn column10 = new DataColumn("MeasureItemResult", Type.GetType("System.String")); + DataColumn column9 = new DataColumn("MeasureDate", Type.GetType("System.DateTime")); + DataColumn column1 = new DataColumn("Remark", Type.GetType("System.String")); + //将列添加到table表中 + + dtCSVContent.Columns.Add(column2); + dtCSVContent.Columns.Add(dcCarType); + dtCSVContent.Columns.Add(column3); + dtCSVContent.Columns.Add(column4); + dtCSVContent.Columns.Add(column5); + dtCSVContent.Columns.Add(column6); + dtCSVContent.Columns.Add(column7); + dtCSVContent.Columns.Add(column8); + dtCSVContent.Columns.Add(column10); + dtCSVContent.Columns.Add(column9); + dtCSVContent.Columns.Add(column1); + + #endregion 测量数据表始化表 + + #region 极差数据Table初始化 + + //创建虚拟表 + DataColumn dcCarID = new DataColumn("CarID", Type.GetType("System.String")); + DataColumn dcRangeName = new DataColumn("RangeName", Type.GetType("System.String")); + DataColumn dcRangeValue = new DataColumn("RangeValue", Type.GetType("System.String")); + DataColumn dcRangeLowUpp = new DataColumn("RangeLowUpp", Type.GetType("System.String")); + DataColumn dcResult = new DataColumn("Result", Type.GetType("System.String")); + DataColumn dcCreateTime = new DataColumn("CreateTime", Type.GetType("System.DateTime")); + DataColumn dcRemark = new DataColumn("Remark", Type.GetType("System.String")); + //将列添加到table表中 + + dtRangeData.Columns.Add(dcCarID); + dtRangeData.Columns.Add(dcRangeName); + dtRangeData.Columns.Add(dcRangeValue); + dtRangeData.Columns.Add(dcRangeLowUpp); + dtRangeData.Columns.Add(dcResult); + dtRangeData.Columns.Add(dcCreateTime); + dtRangeData.Columns.Add(dcRemark); + + #endregion 极差数据Table初始化 + + #region 分页相关 + + //创建分页虚拟表 + DataColumn column11 = new DataColumn("CarID", Type.GetType("System.String")); + DataColumn column12 = new DataColumn("MeasPointName", Type.GetType("System.String")); + DataColumn column13 = new DataColumn("DimensionName", Type.GetType("System.String")); + DataColumn column14 = new DataColumn("NormalValue", Type.GetType("System.String")); + DataColumn column15 = new DataColumn("LowerTolVal", Type.GetType("System.String")); + DataColumn column16 = new DataColumn("UpperTolVal", Type.GetType("System.String")); + DataColumn column17 = new DataColumn("MeasureValue", Type.GetType("System.String")); + DataColumn column18 = new DataColumn("MeasureDate", Type.GetType("System.String")); + DataColumn column19 = new DataColumn("MeasureItemResult", Type.GetType("System.String")); + + //将列添加到table表中 + PageTable.Columns.Add(column11); + PageTable.Columns.Add(column12); + PageTable.Columns.Add(column13); + PageTable.Columns.Add(column14); + PageTable.Columns.Add(column15); + PageTable.Columns.Add(column16); + PageTable.Columns.Add(column17); + PageTable.Columns.Add(column18); + PageTable.Columns.Add(column19); + + labCurrentPage.Text = "当前页:" + currentPage.ToString(); //当前页 + labSumPages.Text = "共 " + pageCount.ToString() + " 页";//总页数 + labSumRecorders.Text = "总共 " + recordCount.ToString() + " 条记录";//总记录数 + rddlPageRecorderCount.SelectedIndex = 0; + + #endregion 分页相关 + } + + private void initLPCControl() + { + lpcSoftwareSetup.labPicture.Click += new EventHandler(lpcSoftwareSetup_Click); + lpcSoftwareSetup.labText.Click += new EventHandler(lpcSoftwareSetup_Click); + + lpcToleranceSetup.labPicture.Click += new EventHandler(lpcToleranceSetup_Click); + lpcToleranceSetup.labText.Click += new EventHandler(lpcToleranceSetup_Click); + + lpcAboutSoftware.labPicture.Click += new EventHandler(lpcAboutSoftware_Click); + lpcAboutSoftware.labText.Click += new EventHandler(lpcAboutSoftware_Click); + + lpcUploadIOTTest.labPicture.Click += new EventHandler(lpcUploadIOTTest_Click); + lpcUploadIOTTest.labText.Click += new EventHandler(lpcUploadIOTTest_Click); + + lpcTestGetCarTye.labPicture.Click += new EventHandler(lpcTestGetCarTye_Click); + lpcTestGetCarTye.labText.Click += new EventHandler(lpcTestGetCarTye_Click); + + lpcShowLog.labPicture.Click += new EventHandler(lpcShowLog_Click); + lpcShowLog.labText.Click += new EventHandler(lpcShowLog_Click); + } + + private void FormMain_FormClosing(object sender, FormClosingEventArgs e) + { + if (DialogResult.Yes == MessageBox.Show("警告:您确定要退出该软件系统吗?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) + { + } + else + { + e.Cancel = true; + } + } + + private void FormMain_FormClosed(object sender, FormClosedEventArgs e) + { + MyBase.TraceWriteLine("-------------海克斯康面隙分析软件程序关闭---------------------"); + LogDebugDfn.strEndTime = DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss"); + string CopyFileName = ConfigDfn.strFileFolder + "\\DebugFiles\\" + "Debug(" + LogDebugDfn.strStartTime + " To " + LogDebugDfn.strEndTime + ")" + ".txt"; + if (File.Exists(LogDebugDfn.strDebugFile)) + File.Copy(LogDebugDfn.strDebugFile, CopyFileName); + System.Environment.Exit(0); + } + + private void tmSystem_Tick(object sender, EventArgs e) + { + rleTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + if (ConfigDfn.iAnalysisCSVFlag == 1) + rleReadCSVStatus.ForeColor = bReadCSVFlag ? Color.Green : Color.White; + bReadCSVFlag = !bReadCSVFlag; + } + + #endregion 主窗口事件 + + private void tmReadNextsenseCSV_Tick(object sender, EventArgs e) + { + tmReadNextsenseCSV.Stop(); + AnalysisNextSenseSelfMeasureCSV(); + AnalysisNextSenseEH3CSV(); + + tmReadNextsenseCSV.Start(); + } + + #region⭐⭐⭐⭐⭐ 解析Nextsense CSV文件功能 核心算法 ⭐⭐⭐⭐⭐ + + private double CalculateStrictLowerTolerance(double dLower, double dUpper) + { + double dStrictLower = 0; + double dNormalValue = (dLower + dUpper) / 2; + dStrictLower = dNormalValue + (dLower - dNormalValue) * ConfigDfn.dTolerancePer; + return dStrictLower; + } + + private double CalculateStrictUpperTolerance(double dLower, double dUpper) + { + double dStrictUpper = 0; + double dNormalValue = (dLower + dUpper) / 2; + dStrictUpper = dNormalValue + (dUpper - dNormalValue) * ConfigDfn.dTolerancePer; + return dStrictUpper; + } + + private double CalculateExceptionLowerTolerance(double dLower, double dUpper) + { + double dStrictLower = 0; + double dNormalValue = (dLower + dUpper) / 2; + dStrictLower = dNormalValue + (dLower - dNormalValue) * ConfigDfn.dExceptionTolerancePer; + return dStrictLower; + } + + private double CalculateExceptionUpperTolerance(double dLower, double dUpper) + { + double dStrictUpper = 0; + double dNormalValue = (dLower + dUpper) / 2; + dStrictUpper = dNormalValue + (dUpper - dNormalValue) * ConfigDfn.dExceptionTolerancePer; + return dStrictUpper; + } + + /// + /// 解析EH3 CSV文件函数;后续如果Nextsense的csv报告模板变了,修改该函数的行号即可LineNum wsp + /// + private void AnalysisNextSenseEH3CSV() + { + try + { + lbCSVFiles.Items.Clear(); + FileInfo[] fileInfos = null; + if (Directory.Exists(ConfigDfn.strNextSenseCSVEH3Path)) + { + DirectoryInfo di = new DirectoryInfo(ConfigDfn.strNextSenseCSVEH3Path); + fileInfos = di.GetFiles("*.CSV"); + if (fileInfos.Count() >= 1) + { + MyBase.TraceWriteLine("存在EH3 CSV文件,开始解析:"); + List listCSVTitleInfo = new List(); + string strCarID = ""; + foreach (FileInfo fi in fileInfos) + { + listCSVTitleInfo.Clear(); + ListPostIOTData.Clear(); + dtCSVContent.Clear(); + dgvMeasureContent.Rows.Clear(); + string strCSVName = fi.FullName; + File.Copy(fi.FullName, ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name, true); + MyBase.TraceWriteLine("Copy " + fi.FullName + " TO " + ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name + " Done. 备份完成"); + lbCSVFiles.Items.Add(fi.Name); + + #region 解析EH3 CSV报告 + + MyBase.TraceWriteLine("开始解析NextSense EH3 CSV 报告:" + strCSVName); + Encoding encoding = GetType(strCSVName); + FileStream fs = new FileStream(strCSVName, FileMode.Open, FileAccess.Read); + StreamReader sr = new StreamReader(fs, encoding); + //记录每次读取的一行记录 + string strLine = ""; + //记录每行记录中的各字段内容 + string[] aryLineContent = null; + + //逐行读取CSV中的数据 + int LineNum = 0; + //表格行数 + int dtRowCount = 0; + //超差个数 + double OutCount = 0; + //Ok个数 + double OKCount = 0; + //异常个数 + double RejectedCount = 0; + //合格率 + double FPYPercent = 0; + double dStrictTLower = 0; + double dStrictTUpper = 0; + double dLowerValue = 0; + double dUpperValue = 0; + double dExcepitonTLower = 0; + double dExceptionTUpper = 0; + double dMeasureValue = 0.0; + DataTable dt = null; + while ((strLine = sr.ReadLine()) != null) + { + LineNum++; + if (LineNum >= 3 & LineNum <= 16) + { + listCSVTitleInfo.Add(strLine); + } + if (LineNum == 10) + { + aryLineContent = strLine.Split(','); + MyBase.TraceWriteLine("解析出NextSense CSV中的VIN为:" + aryLineContent[1]); + strCarID = tmdal.SelectVINByCSVVIN(aryLineContent[1]); + MyBase.TraceWriteLine("通过CSV VIN从数据库中获取的完整VIN为:" + strCarID); + if (strCarID.ToLower().Contains("nofind")) + { + MyBase.TraceWriteLine("数据库中没有查找到VIN码,NoFind, +L 使用CSV码"); + labVIN.Text = "L" + aryLineContent[1]; + strCarID = "L" + aryLineContent[1]; + } + else + { + labVIN.Text = strCarID; + //tmdal.DeleteOneTTempVIN(strCarID); + MyBase.TraceWriteLine("在数据库表TTempSaveVIN中删除该VIN:" + strCarID); + } + } + if (LineNum >= 19) + { + aryLineContent = strLine.Split(','); + //ConfigDfn.strMeasureTime = aryLineContent[6].Substring(0, 4) + "-" + aryLineContent[6].Substring(4, 2) + "-" + aryLineContent[6].Substring(6, 2) + " " + aryLineContent[7].Substring(0, 2) + ":" + aryLineContent[7].Substring(2, 2) + ":" + aryLineContent[7].Substring(4, 2); + ConfigDfn.strMeasureTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + double dNormalValue = 0.0d; + + dt = tmdal.SelectOneToleranceByCondition("EH3", aryLineContent[0], aryLineContent[1]); + if (dt.Rows.Count == 1) + { + dLowerValue = double.Parse(dt.Rows[0]["TolLower"].ToString()); + dUpperValue = double.Parse(dt.Rows[0]["TolUpper"].ToString()); + dNormalValue = (dLowerValue + dUpperValue) / 2; + dStrictTLower = CalculateStrictLowerTolerance(dLowerValue, dUpperValue); + dStrictTUpper = CalculateStrictUpperTolerance(dLowerValue, dUpperValue); + dExcepitonTLower = CalculateExceptionLowerTolerance(dLowerValue, dUpperValue); + dExceptionTUpper = CalculateExceptionUpperTolerance(dLowerValue, dUpperValue); + } + else + { + dStrictTLower = 0; + dStrictTUpper = 0; + dLowerValue = 0; + dUpperValue = 0; + MyBase.TraceWriteLine("EH3 " + aryLineContent[0] + " " + aryLineContent[1] + " 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置!"); + } + + if (aryLineContent[2].ToLower().Contains("inv")) + { + aryLineContent[4] = "UNCLASSIFIED"; + } + else + { + dMeasureValue = double.Parse(aryLineContent[2]); + if (dMeasureValue >= dLowerValue && dMeasureValue <= dUpperValue) + { + aryLineContent[4] = "good"; + } + else if (dMeasureValue >= dStrictTLower && dMeasureValue <= dStrictTUpper) + { + aryLineContent[4] = "ng1"; + } + else if (dMeasureValue >= dExceptionTUpper || dMeasureValue <= dExcepitonTLower) + { + aryLineContent[4] = "ng3"; + aryLineContent[2] = "inv"; + } + else + { + aryLineContent[4] = "ng2"; + } + } + + //测量数据存储到table里 + dtCSVContent.Rows.Add(strCarID, "EH3", aryLineContent[0], aryLineContent[1], dNormalValue.ToString("F1"), dLowerValue.ToString("F1"), dUpperValue.ToString("F1"), aryLineContent[2], aryLineContent[4], DateTime.Now, ""); + string strMeasureResult = aryLineContent[4].ToLower(); + if (strMeasureResult.Contains("good") || strMeasureResult.Contains("best")) + { + OKCount++; + aryLineContent[4] = "OK"; + } + else if (strMeasureResult.Contains("ng1") || strMeasureResult.Contains("ng2")) + { + OutCount++; + aryLineContent[4] = "NG"; + } + else + { + RejectedCount++; + aryLineContent[4] = ""; + aryLineContent[2] = ""; + } + + dgvMeasureContent.Rows.Add(aryLineContent[0], aryLineContent[1], dNormalValue.ToString("F1"), dLowerValue.ToString("F1"), dUpperValue.ToString("F1"), aryLineContent[2], ConfigDfn.strMeasureTime, aryLineContent[4]); + + CheryIOTData cIOTData = new CheryIOTData(); + cIOTData.vin = strCarID; + cIOTData.gfNo = aryLineContent[1]; + cIOTData.pointNumber = aryLineContent[0]; + cIOTData.actualValue = aryLineContent[2]; + cIOTData.controlLine = dLowerValue.ToString("F1") + @"/" + dUpperValue.ToString("F1"); + if (strMeasureResult.Contains("good") || strMeasureResult.Contains("best") || strMeasureResult.Contains("ng1")) + { + cIOTData.measurementResult = "OK"; + } + else + { + cIOTData.measurementResult = "NG"; + } + ListPostIOTData.Add(cIOTData); + dtRowCount++; + dgvMeasureContent.Rows[dtRowCount - 1].HeaderCell.Value = dtRowCount.ToString(); + } + }//End While + sr.Close(); + fs.Close(); + tmdal.InsertTMeasureDatabyDataTable(dtCSVContent); + MyBase.TraceWriteLine("解析EH3数据完成,并将所有测量数据插入到数据库完毕。"); + MyBase.TraceWriteLine("解析NextSense EH3 CSV 报告完毕!检测项数=" + dtRowCount.ToString()); + if (dtRowCount <= ConfigDfn.iMeasureItemsCount) + { + iCurrentMeasureItemsFailedCount++; + } + else + { + iCurrentMeasureItemsFailedCount = 0; + } + + // 连续多个车异常 + if (iCurrentMeasureItemsFailedCount >= ConfigDfn.iFailedCarCount) + { + MyBase.TraceWriteLine("iCurrentMeasureItemsFailedCount=" + iCurrentMeasureItemsFailedCount.ToString() + "超过报警数量" + ConfigDfn.iFailedCarCount.ToString() + " ;给PLC发送报警10。"); + PlcObject.InsertWriteQueue(PlcSignalDfn.MeasureError, (byte)10); + } + + // 单个报告内 invalued 项超过某个值 + + // 机器人忙碌状态 且 多个小时无测量报告 + + #endregion 解析EH3 CSV报告 + + + + #region 界面显示功能 + + labCarType.Text = "EH3"; + //TMeasureResultModel tmrm = new TMeasureResultModel(); + labNGCount.Text = OutCount.ToString(); + labOKCount.Text = OKCount.ToString(); + labRejectCount.Text = RejectedCount.ToString(); + labMeaTime.Text = ConfigDfn.strMeasureTime; + labSumMeasureCount.Text = dtRowCount.ToString(); + FPYPercent = OKCount / (OKCount + OutCount); + if (FPYPercent >= ConfigDfn.dFPY) + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "合格"; + labResultPercent.ForeColor = Color.LimeGreen; + labResult.ForeColor = Color.LimeGreen; + pbResult.Image = Resources.OK; + //tmrm.Result = 1; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)10); + } + else if (FPYPercent >= ConfigDfn.dFPY2 && FPYPercent < ConfigDfn.dFPY) + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "合格"; + labResultPercent.ForeColor = Color.Yellow; + labResult.ForeColor = Color.Yellow; + pbResult.Image = Resources.OK; + //tmrm.Result = 1; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)20); + } + else + { + labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%"; + labResult.Text = "不合格"; + labResultPercent.ForeColor = Color.Red; + labResult.ForeColor = Color.Red; + pbResult.Image = Resources.NG; + //tmrm.Result = 2; + PlcObject.InsertWriteQueue(PlcSignalDfn.CMMResult, (byte)30); + } + xValues[0] = "合格 : " + OKCount.ToString(); + xValues[1] = "不合格 : " + OutCount.ToString(); + xValues[2] = "异常 : " + RejectedCount.ToString(); + yValues[0] = (int)OKCount; + yValues[1] = (int)OutCount; + yValues[2] = (int)RejectedCount; + chartResultPie.Series[0].Points.DataBindXY(xValues, yValues); + + string strTargetRate = Math.Round(ConfigDfn.dFPY2 * 100.00d, 2).ToString("F2") + "%"; + + //tmrm.CarID = strCarID; + //tmrm.CarType = "EH3"; + //tmrm.SumMeasureItems = dtRowCount; + //tmrm.GoodMeasureItems = (int)OKCount; + //tmrm.NoGoodMeasureItems = (int)OutCount; + //tmrm.RejectMeasureItems = (int)RejectedCount; + //tmrm.FPY = FPYPercent.ToString("F4"); + //tmrm.Remark = ""; + //tmrm.MeasureDate = ConfigDfn.strMeasureTime; + //tmdal.InsertTMeasureResult(tmrm); + MyBase.TraceWriteLine("将EH3总结果插入数据库完毕。"); + MyBase.TraceWriteLine("全部插入解析完毕,删除文件:" + fi.Name); + fi.Delete(); + dgvMeasureContent.Rows.Add(); + dgvMeasureContent.Rows[dgvMeasureContent.Rows.Count - 1].Cells["MResult"].Value = (dtRowCount - OutCount - RejectedCount).ToString() + "/" + dtRowCount.ToString(); + this.dgvMeasureContent.Rows[dgvMeasureContent.Rows.Count - 1].DefaultCellStyle.ForeColor = Color.White; + if (dgvMeasureContent.Rows.Count > 0) + { + SetdgvRowBgColor(dgvMeasureContent); + for (int i = 0; i < dgvMeasureContent.Rows.Count; i++) + { + //if (dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString().ToLower().Contains("ok")) + //{ + // dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + //} + if (dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString().ToLower().Contains("ng")) + { + dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + } + else if (string.IsNullOrEmpty(dgvMeasureContent.Rows[i].Cells["MResult"].Value.ToString())) + { + dgvMeasureContent.Rows[i].DefaultCellStyle.BackColor = Color.Red; + } + else + { + } + } + } + + //#endregion 界面显示功能 + + ////生成客户的 CSV文件 + //if (ConfigDfn.iCreateReportFlag == 1) + //{ + // #region 解析完报告后,重新生成客户模板报告 + + // string filePath = strSaveReprotPath + DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + strCarID + ".csv"; //wsp 后期还要再改 + // string strWithoutLCarVin = strCarID.Substring(1); + // StringBuilder sb = new StringBuilder(); + // //添加表头 + // sb.Append("Measurement Info Name"); + // sb.Append(","); + // sb.Append("Measurement Info"); + // sb.AppendLine(); + // sb.Append("Date_Time"); + // sb.Append(","); + // sb.Append(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); + // sb.AppendLine(); + // for (int i = 0; i < listCSVTitleInfo.Count; i++) + // { + // if (listCSVTitleInfo[i].Contains("prodnum")) + // { + // listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace("prodnum", "Part_ident"); + // } + // if (listCSVTitleInfo[i].Contains(strWithoutLCarVin)) + // { + // listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace(strWithoutLCarVin, strCarID); + // } + // sb.Append(listCSVTitleInfo[i]); + // sb.AppendLine(); + // } + // sb.AppendLine(); + // sb.AppendLine(); + // sb.AppendLine(); + // sb.AppendLine(); + // sb.AppendLine(); + // //添加测量数据 + // sb.Append("Characteristic"); + // sb.Append(","); + // sb.Append("Extension"); + // sb.Append(","); + // sb.Append("Measured_Value"); + // sb.AppendLine(); + // foreach (DataRow row in dtCSVContent.Rows) + // { + // sb.Append(row.ItemArray[2]); + // sb.Append(","); + // sb.Append(row.ItemArray[3]); + // sb.Append(","); + // sb.Append(row.ItemArray[7]); + // sb.AppendLine(); + // } + // if (dtAllRangeDate.Rows.Count > 0) + // { + // foreach (DataRow row in dtAllRangeDate.Rows) + // { + // sb.Append(row.ItemArray[2]); + // sb.Append(","); + // sb.Append("G"); + // sb.Append(","); + // sb.Append(row.ItemArray[3]); + // sb.AppendLine(); + // } + // } + // sb.Append("POP"); + // sb.Append(","); + // sb.Append("P"); + // sb.Append(","); + // sb.Append(Math.Round(FPYPercent * 100.00d, 2).ToString("F2")); + // sb.AppendLine(); + // // 将数据写入CSV文件 + // File.WriteAllText(filePath, sb.ToString()); + // MyBase.TraceWriteLine("客户csv报告生成完毕,路径为:" + filePath); + + // #endregion 解析完报告后,重新生成客户模板报告 + //} + //else + //{ + // MyBase.TraceWriteLine("EH3数据生成报告功能未启用!"); + //} + + //#region Update Data To IOT + + //if (ConfigDfn.iStartIOTFlag == 1) + //{ + // bool bVINMeasuedFlag = tmdal.CheckVINExistInDB(strCarID); + // if (bVINMeasuedFlag) + // { + // MyBase.TraceWriteLine("VIN:" + strCarID + " 该VIN码已经在数据库中存在了,说明已经测量过了,不再进行IOT数据上传操作。"); + // } + // else + // { + // #region IOT上传功能 + // if (dtAllRangeDate.Rows.Count > 0) + // { + // foreach (DataRow row in dtAllRangeDate.Rows) + // { + // CheryIOTData cIOTData = new CheryIOTData(); + // cIOTData.vin = strCarID; + // cIOTData.gfNo = "G"; + // cIOTData.pointNumber = row.ItemArray[2].ToString(); + // cIOTData.actualValue = row.ItemArray[3].ToString(); + // cIOTData.controlLine = row.ItemArray[4].ToString(); + // cIOTData.measurementResult = row.ItemArray[5].ToString(); + // if (cIOTData.measurementResult.ToUpper().Contains("NG")) + // { + // if (!cIOTData.actualValue.ToLower().Contains("inv")) + // { + // dLowerValue = double.Parse(row.ItemArray[4].ToString().Substring(0, 3)); + // dUpperValue = double.Parse(row.ItemArray[4].ToString().Substring(4, 3)); + // dStrictTLower = CalculateStrictLowerTolerance(dLowerValue, dUpperValue); + // dStrictTUpper = CalculateStrictUpperTolerance(dLowerValue, dUpperValue); + // double dValue = double.Parse(row.ItemArray[3].ToString()); + // if (dValue > dStrictTLower && dValue < dStrictTUpper) + // { + // cIOTData.measurementResult = "OK"; + // } + // } + // } + // ListPostIOTData.Add(cIOTData); + // } + // } + // string strGapList = JsonHelper.ObjectToJson(ListPostIOTData); + // string strCaliResult = "OK"; + // if (labResult.Text == "合格") + // { + // strCaliResult = "OK"; + // } + // else + // { + // strCaliResult = "NG"; + // } + // string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"" + strCarID + "\",\"model\":\"EH3\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"" + strCaliResult + "\",\"detectionTime\":\"" + ConfigDfn.strMeasureTime + "\",\"targetRate\":\"" + strTargetRate + "\",\"rate\":\"" + labResultPercent.Text + "\",\"GapList\":" + strGapList + "}]}"; + // MyBase.TraceWriteLine("Update To IOT Data Content: " + strPostData); + // string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); + // MyBase.TraceWriteLine("EH3数据上传IOT完成,结果返回为:" + strPostResult); + // if (strPostResult.Contains("成功")) + // { + // MyBase.TraceWriteLine("EH3数据上传IOT成功 ^_^"); + // } + // else + // { + // MyBase.TraceWriteLine("EH3数据上传IOT失败!"); + // } + + // #endregion IOT上传功能 + // } + //} + //else + //{ + // MyBase.TraceWriteLine("数据上传IOT功能未启用!"); + //} + + //#endregion Update Data To IOT + } + } + } + //else + //{ + // MyBase.TraceWriteLine("错误:AnalysisNextSenseEH3CSV函数中,检测EH3 CSV 路径不存在:" + ConfigDfn.strNextSenseCSVPath); + //} + } + catch (Exception ex) + { + MyBase.TraceWriteLine("AnalysisNextSenseCSV 函数分析异常:" + ex.ToString()); + } + } + + public string PostJsonToIOT(string url, string jsonData, int? timeout = null) + { + try + { + HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); + + if (null != timeout && 0 != timeout) + { + req.Timeout = timeout.Value; + } + Encoding encoding = Encoding.UTF8; + byte[] bs = Encoding.UTF8.GetBytes(jsonData); + string responseData; + req.Method = "POST"; + req.ContentType = "application/json"; + req.ContentLength = bs.Length; + using (Stream reqStream = req.GetRequestStream()) + { + reqStream.Write(bs, 0, bs.Length); + reqStream.Close(); + } + using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) + { + using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) + { + responseData = reader.ReadToEnd(); + } + } + return responseData; + } + catch (Exception ex) + { + return "Error: " + ex.ToString(); + } + } + + /// 通过给定的文件流,判断文件的编码类型 + /// 文件流 + /// 文件的编码类型 + public static Encoding GetType(FileStream fs) + { + byte[] Unicode = new byte[] { 0xFF, 0xFE, 0x41 }; + byte[] UnicodeBIG = new byte[] { 0xFE, 0xFF, 0x00 }; + byte[] UTF8 = new byte[] { 0xEF, 0xBB, 0xBF }; //带BOM + System.Text.Encoding reVal = System.Text.Encoding.Default; + + System.IO.BinaryReader r = new System.IO.BinaryReader(fs, System.Text.Encoding.Default); + int i; + int.TryParse(fs.Length.ToString(), out i); + byte[] ss = r.ReadBytes(i); + if (IsUTF8Bytes(ss) || (ss[0] == 0xEF && ss[1] == 0xBB && ss[2] == 0xBF)) + { + reVal = System.Text.Encoding.UTF8; + } + else if (ss[0] == 0xFE && ss[1] == 0xFF && ss[2] == 0x00) + { + reVal = System.Text.Encoding.BigEndianUnicode; + } + else if (ss[0] == 0xFF && ss[1] == 0xFE && ss[2] == 0x41) + { + reVal = System.Text.Encoding.Unicode; + } + r.Close(); + return reVal; + } + + /// 判断是否是不带 BOM 的 UTF8 格式 + /// + /// + private static bool IsUTF8Bytes(byte[] data) + { + int charByteCounter = 1; //计算当前正分析的字符应还有的字节数 + byte curByte; //当前分析的字节. + for (int i = 0; i < data.Length; i++) + { + curByte = data[i]; + if (charByteCounter == 1) + { + if (curByte >= 0x80) + { + //判断当前 + while (((curByte <<= 1) & 0x80) != 0) + { + charByteCounter++; + } + //标记位首位若为非0 则至少以2个1开始 如:110XXXXX...........1111110X  + if (charByteCounter == 1 || charByteCounter > 6) + { + return false; + } + } + } + else + { + //若是UTF-8 此时第一位必须为1 + if ((curByte & 0xC0) != 0x80) + { + return false; + } + charByteCounter--; + } + } + if (charByteCounter > 1) + { + throw new Exception("非预期的byte格式"); + } + return true; + } + + public Encoding GetType(string FileName) + { + FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read); + Encoding er = GetType(fs); + fs.Close(); + return er; + } + + private void AnalysisNextSenseSelfMeasureCSV() + { + try + { + lbCSVFiles.Items.Clear(); + FileInfo[] fileInfos = null; + if (Directory.Exists(ConfigDfn.strNextSenseSelfMeasurePath)) + { + DirectoryInfo di = new DirectoryInfo(ConfigDfn.strNextSenseSelfMeasurePath); + fileInfos = di.GetFiles("*.CSV"); + if (fileInfos.Count() >= 1) + { + MyBase.TraceWriteLine("存在EHY CSV文件,开始解析:"); + List listCSVTitleInfo = new List(); + string strCarID = "SelfMeasure" + DateTime.Now.ToString("yyyyMMddHHmmss"); + foreach (FileInfo fi in fileInfos) + { + listCSVTitleInfo.Clear(); + ListPostIOTData.Clear(); + dtCSVContent.Clear(); + dgvMeasureContent.Rows.Clear(); + string strCSVName = fi.FullName; + File.Copy(fi.FullName, ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name, true); + MyBase.TraceWriteLine("Copy " + fi.FullName + " TO " + ConfigDfn.strFileFolder + "\\NextSenseCSVBackup\\" + fi.Name + " Done. 备份完成"); + lbCSVFiles.Items.Add(fi.Name); + + #region 解析NextSense自检CSV报告 + + MyBase.TraceWriteLine("开始解析NextSense EHY CSV 报告:" + strCSVName); + Encoding encoding = GetType(strCSVName); + FileStream fs = new FileStream(strCSVName, FileMode.Open, FileAccess.Read); + StreamReader sr = new StreamReader(fs, encoding); + //记录每次读取的一行记录 + string strLine = ""; + //记录每行记录中的各字段内容 + string[] aryLineContent = null; + + //逐行读取CSV中的数据 + int LineNum = 0; + //表格行数 + int dtRowCount = 0; + + while ((strLine = sr.ReadLine()) != null) + { + LineNum++; + if (LineNum >= 1 & LineNum <= 17) + { + listCSVTitleInfo.Add(strLine); + } + if (LineNum >= 19) + { + aryLineContent = strLine.Split(','); + ConfigDfn.strMeasureTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + if (aryLineContent[2].ToLower().Contains("inv")) + { + aryLineContent[10] = "NG"; + } + string strMeasPointName = ""; + if (aryLineContent[0].ToUpper().Contains("L")) + { + strMeasPointName = "L-ZJ1"; + } + else + { + strMeasPointName = "R-ZJ1"; + } + //测量数据存储到table里 + dtCSVContent.Rows.Add(strCarID, "SelfMeasure", strMeasPointName, aryLineContent[1], aryLineContent[4], aryLineContent[8], aryLineContent[9], aryLineContent[2], aryLineContent[10], DateTime.Now, ""); + + dgvMeasureContent.Rows.Add(strMeasPointName, aryLineContent[1], aryLineContent[4], aryLineContent[8], aryLineContent[9], aryLineContent[2], ConfigDfn.strMeasureTime, aryLineContent[10]); + + dtRowCount++; + dgvMeasureContent.Rows[dtRowCount - 1].HeaderCell.Value = dtRowCount.ToString(); + } + }//End While + sr.Close(); + fs.Close(); + + MyBase.TraceWriteLine("解析NextSense 自检报告完毕!检查数量=" + dtRowCount.ToString()); + labCarType.Text = "自检报告"; + + fi.Delete(); + #endregion 解析NextSense自检CSV报告 + + if (ConfigDfn.iCreateReportFlag == 1) + { + #region 解析完报告后,重新生成客户模板报告 + + MyBase.TraceWriteLine("开始生成客户所需要的CSV格式文件:"); + string filePath = strSaveReprotPath + DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + strCarID + ".csv"; //wsp 后期还要再改 + StringBuilder sb = new StringBuilder(); + //添加表头 + sb.Append("Measurement Info Name"); + sb.Append(","); + sb.Append("Measurement Info"); + sb.AppendLine(); + sb.Append("Date_Time"); + sb.Append(","); + sb.Append(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); + sb.AppendLine(); + for (int i = 2; i < listCSVTitleInfo.Count - 1; i++) + { + if (listCSVTitleInfo[i].Contains("prodnum")) + { + listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace("prodnum,", "Part_ident," + DateTime.Now.ToString("yyyyMMdd")); + } + + sb.Append(listCSVTitleInfo[i]); + sb.AppendLine(); + } + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + sb.AppendLine(); + //添加测量数据 + sb.Append("Characteristic"); + sb.Append(","); + sb.Append("Extension"); + sb.Append(","); + sb.Append("Measured_Value"); + sb.AppendLine(); + foreach (DataRow row in dtCSVContent.Rows) + { + sb.Append(row.ItemArray[2]); + sb.Append(","); + sb.Append(row.ItemArray[3]); + sb.Append(","); + sb.Append(row.ItemArray[7]); + sb.AppendLine(); + } + sb.AppendLine(); + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + MyBase.TraceWriteLine("客户自检报告生成完毕,路径为:" + filePath); + + #endregion 解析完报告后,重新生成客户模板报告 + } + else + { + MyBase.TraceWriteLine("iCreateReportFlag=0 : 数据生成报告功能未启用!"); + } + } + } + } + } + catch (Exception ex) + { + MyBase.TraceWriteLine("AnalysisNextSenseSelfMeasureCSV 函数分析异常:" + ex.ToString()); + } + } + + #endregion 解析Nextsense CSV文件功能 + + #region Home Page + + /// + /// 设置DataGridView各行变色 + /// + /// DataGridView + public void SetdgvRowBgColor(DataGridView dgv) + { + if (dgv.Rows.Count > 0) + { + foreach (DataGridViewRow item in dgv.Rows) + { + if (item.Index % 2 == 0) + { + item.DefaultCellStyle.BackColor = Color.FromArgb(19, 46, 53); + } + else + { + item.DefaultCellStyle.BackColor = Color.FromArgb(27, 60, 68); + } + } + } + } + + //TODO: + + #endregion Home Page + + #region Search Data + + #region datagridview分页功能 + + /// + /// LoadPage方法 + /// + private void LoadPage() + { + if (currentPage < 1) currentPage = 1; + if (currentPage > pageCount) currentPage = pageCount; + + int beginRecord; //开始指针 + int endRecord; //结束指针 + DataTable dtTemp; + dtTemp = PageTable.Clone();//Clone方法只会复制DataTable的结构(列定义),而不会复制数据行的引用。 + + beginRecord = pageSize * (currentPage - 1); + if (currentPage == 1) beginRecord = 0; + endRecord = pageSize * currentPage; + + if (currentPage == pageCount) endRecord = recordCount; + for (int i = beginRecord; i < endRecord; i++) + { + // 使用ImportRow方法将源PageTable的行导入到目标dtTemp + dtTemp.ImportRow(PageTable.Rows[i]); + } + + dgvSelectMeasureData.Rows.Clear(); + + for (int i = 0; i < dtTemp.Rows.Count; i++) + { + dgvSelectMeasureData.Rows.Add(new object[] { dtTemp.Rows[i][0], dtTemp.Rows[i][1], dtTemp.Rows[i][2], dtTemp.Rows[i][3], dtTemp.Rows[i][4], dtTemp.Rows[i][5], dtTemp.Rows[i][6], dtTemp.Rows[i][7], dtTemp.Rows[i][8] }); + } + SetdgvRowBgColor(dgvSelectMeasureData); + for (int i = 0; i < dgvSelectMeasureData.Rows.Count; i++) + { + string strResult = dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Value.ToString(); + if (strResult.ToLower().Contains("ng")) + { + //dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Style.ForeColor = Color.Orange; + dgvSelectMeasureData.Rows[i].DefaultCellStyle.BackColor = Color.Orange; + } + if (strResult.ToLower().Contains("rej")) + { + dgvSelectMeasureData.Rows[i].Cells["MeasureItemResult"].Style.ForeColor = Color.Red; + } + } + labCurrentPage.Text = "当前页:" + currentPage.ToString(); //当前页 + labSumPages.Text = "共 " + pageCount.ToString() + " 页";//总页数 + labSumRecorders.Text = "总共 " + recordCount.ToString() + " 条记录";//总记录数 + } + + private void rbtnFirtstPage_Click(object sender, EventArgs e) + { + if (currentPage == 1) + { return; } + currentPage = 1; + LoadPage(); + } + + private void rbtnPrevPage_Click(object sender, EventArgs e) + { + if (currentPage == 1) + { return; } + currentPage--; + LoadPage(); + } + + private void rbtnNextPage_Click(object sender, EventArgs e) + { + if (currentPage == pageCount) + { return; } + currentPage++; + LoadPage(); + } + + private void rbtnLastPage_Click(object sender, EventArgs e) + { + if (currentPage == pageCount) + { return; } + currentPage = pageCount; + LoadPage(); + } + + private void rddlPageRecorderCount_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e) + { + pageSize = int.Parse(rddlPageRecorderCount.Text.Trim()); + //PageSorter(); + } + + #endregion datagridview分页功能 + + private void rbtnSearchMeaserData_Click(object sender, EventArgs e) + { + dgvFPYResult.Visible = false; + chartFPYLine.Visible = false; + rbtnExportCSVReport.Visible = false; + string strStartTime = rdtpStartTime.Value.ToString("yyyy-MM-dd") + " 00:00:00"; + string strEndTime = rdtpEndTime.Value.ToString("yyyy-MM-dd") + " 23:59:59"; + string strCarID = rtbPartID.Text.Trim(); + PageTable.Clear(); + PageTable = tmdal.SelectTMeasureDataByCarIDAndTime(strCarID, strStartTime, strEndTime); + if (PageTable.Rows.Count > 0) + { + recordCount = PageTable.Rows.Count; //记录总行数 + pageCount = (recordCount / pageSize); + if ((recordCount % pageSize) > 0) + { + pageCount++; + } + + //默认第一页 + currentPage = 1; + + LoadPage();//调用加载数据的方法 + dgvSelectMeasureData.Visible = true; + rbtnExportCSVReport.Visible = true; + pnlPage.Visible = true; + labSearchResult.Visible = false; + pnlPage.Visible = true; + } + else + { + dgvSelectMeasureData.Visible = false; + labSearchResult.Visible = true; + rbtnExportCSVReport.Visible = false; + pnlPage.Visible = false; + } + } + + private void rbtSelectFPY_Click(object sender, EventArgs e) + { + dgvSelectMeasureData.Visible = false; + rbtnExportCSVReport.Visible = false; + pnlPage.Visible = false; + string strStartTime = rdtpStartTime.Value.ToString("yyyy-MM-dd") + " 00:00:00"; + string strEndTime = rdtpEndTime.Value.ToString("yyyy-MM-dd") + " 23:59:59"; + string strCarID = rtbPartID.Text.Trim(); + DataTable dtFPY = new DataTable(); + dtFPY = tmdal.SelectTMeasureResultByTime(strCarID, strStartTime, strEndTime); + if (dtFPY.Rows.Count > 0) + { + dgvFPYResult.Visible = true; + labSearchResult.Visible = false; + rbtnExportCSVReport.Visible = true; + chartFPYLine.Visible = true; + dgvFPYResult.DataSource = dtFPY; + SetdgvRowBgColor(dgvFPYResult); + for (int i = 0; i < dgvFPYResult.Rows.Count; i++) + { + if (dgvFPYResult.Rows[i].Cells["SMResult"].Value.ToString().ToLower().Contains("不合格")) + { + dgvFPYResult.Rows[i].Cells["SMResult"].Style.ForeColor = Color.Red; + } + } + + #region 合格率折线图 + + //合格率折线图 + string[] strXDate = new string[dtFPY.Rows.Count]; + double[] dFPYResult = new double[dtFPY.Rows.Count]; + for (int i = 0; i < dtFPY.Rows.Count; i++) + { + strXDate[i] = dtFPY.Rows[i]["CarID"].ToString(); + } + for (int i = 0; i < dtFPY.Rows.Count; i++) + { + double dResult = double.Parse(dtFPY.Rows[i]["FPY"].ToString()); + dFPYResult[i] = dResult * 100.00; + } + chartFPYLine.ChartAreas[0].AxisX.LabelStyle.Angle = -50; //X轴标签倾斜角度设置 + chartFPYLine.ChartAreas[0].AxisY.LabelStyle.Format = "{0:F2}" + "%"; //设置Y轴值的格式化 带% + chartFPYLine.Series[0].Label = "#VAL%"; //设置显示Y的值 + chartFPYLine.Series[0].LabelForeColor = Color.White; + chartFPYLine.Series[0].ToolTip = "车身编号 : #VALX \r\n合格率 : #VAL%"; //鼠标移动到对应点显示数值 + chartFPYLine.Series[0].Points.DataBindXY(strXDate, dFPYResult); + + #endregion 合格率折线图 + } + else + { + dgvFPYResult.Visible = false; + labSearchResult.Visible = true; + rbtnExportCSVReport.Visible = false; + chartFPYLine.Visible = false; + } + } + + public static void ExportdgvDataToCsv(DataGridView dataGridView, string filePath) + { + StringBuilder sb = new StringBuilder(); + + // 添加列标题 + foreach (DataGridViewColumn column in dataGridView.Columns) + { + sb.Append(column.HeaderText); + sb.Append(","); + } + sb.Remove(sb.Length - 1, 1); + sb.AppendLine(); + + // 添加行数据 + foreach (DataGridViewRow row in dataGridView.Rows) + { + foreach (DataGridViewCell cell in row.Cells) + { + sb.Append(cell.Value); + sb.Append(","); + } + sb.Remove(sb.Length - 1, 1); + sb.AppendLine(); + } + + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + } + + public static void ExportDataTableDataToCsv(DataTable dt, string filePath) + { + StringBuilder sb = new StringBuilder(); + + // 添加列标题 + foreach (DataColumn column in dt.Columns) + { + sb.Append(column.ColumnName); + sb.Append(","); + } + sb.Remove(sb.Length - 1, 1); + sb.AppendLine(); + + // 添加行数据 + foreach (DataRow row in dt.Rows) + { + foreach (object item in row.ItemArray) + { + sb.Append(item); + sb.Append(","); + } + sb.Remove(sb.Length - 1, 1); + sb.AppendLine(); + } + + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + } + + private void rbtnExportCSVReport_Click(object sender, EventArgs e) + { + string strCSVExportPath = ""; + string strExportTime = DateTime.Now.ToString("yyyyMMddHHmmssfff"); + FolderBrowserDialog m_Folder = new FolderBrowserDialog(); + m_Folder.Description = "请选择要导出的CSV文件的路径"; + m_Folder.RootFolder = Environment.SpecialFolder.Desktop; + if (dgvFPYResult.Visible == true && dgvFPYResult.Rows.Count > 0) + { + m_Folder.ShowDialog(); + if (Directory.Exists(m_Folder.SelectedPath)) + { + strCSVExportPath = m_Folder.SelectedPath + "\\合格率" + strExportTime + ".CSV"; + ExportdgvDataToCsv(dgvFPYResult, strCSVExportPath); + } + } + if (dgvSelectMeasureData.Visible == true && dgvSelectMeasureData.Rows.Count > 0) + { + m_Folder.ShowDialog(); + if (Directory.Exists(m_Folder.SelectedPath)) + { + strCSVExportPath = m_Folder.SelectedPath + "\\车身尺寸数据" + strExportTime + ".CSV"; + ExportDataTableDataToCsv(PageTable, strCSVExportPath); + } + } + } + + private void dgvFPYResult_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e) + { + e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1); + } + + private void dgvSelectMeasureData_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e) + { + e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1); + } + + #endregion Search Data + + #region 软件设置 + + private void lpcSoftwareSetup_Click(object sender, EventArgs e) + { + string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); + if (strInputPwd.Contains("-999.999")) + { + return; + } + else if (strInputPwd == ConfigDfn.strPwd) + { + FSoftwareSetup fss = new FSoftwareSetup(); + fss.ShowDialog(this); + } + else + { + MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void lpcToleranceSetup_Click(object sender, EventArgs e) + { + string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); + if (strInputPwd.Contains("-999.999")) + { + return; + } + else if (strInputPwd == ConfigDfn.strPwd) + { + FToleranceSetup fts = new FToleranceSetup(); + fts.ShowDialog(this); + } + else + { + MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void lpcRange_Click(object sender, EventArgs e) + { + } + + private void lpcPLCAddress_Click(object sender, EventArgs e) + { + string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消"); + if (strInputPwd.Contains("-999.999")) + { + return; + } + else if (strInputPwd == ConfigDfn.strPwd) + { + PlcAddrSetup PLCAS = new PlcAddrSetup(3, ConfigDfn.strConfigFile); + PLCAS.Show(); + } + else + { + MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void lpcPLCTest_Click(object sender, EventArgs e) + { + FormDebugSiemensS7 FDS7 = new FormDebugSiemensS7(SiemensPLCS.S1200); + FDS7.Show(); + } + + private void lpcAboutSoftware_Click(object sender, EventArgs e) + { + AboutSoftwareInfo asi = new AboutSoftwareInfo(); + asi.ShowDialog(); + } + + private void lpcShowLog_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("notepad.exe", LogDebugDfn.strDebugFile); + } + + #endregion 软件设置 + + #region RadButton鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion RadButton鼠标事件 + + private void lpcUploadIOTTest_Click(object sender, EventArgs e) + { + string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"requestData\":[{\"vin\":\"test001\",\"model\":\"EHY\",\"equipmentNo\":\"" + ConfigDfn.strEquipNo + "\",\"equipmentName\":\"" + ConfigDfn.strEquipName + "\",\"calibrationResult\":\"OK\",\"detectionTime\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"GapList\":[{\"vin\":\"test001\",\"gfNo\":\"F\",\"pointNumber\":\"L-01\",\"actualValue\":\"-0.30\",\"controlLine\":\"-1.00/1.00\",\"measurementResult\":\"OK\"}]}]}"; + MyBase.TraceWriteLine("Test Post Data: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTAddress, strPostData, 10000); + MessageBox.Show("测试上传数据完成,获取到的返回值为: " + strPostResult, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + MyBase.TraceWriteLine("测试上传数据完成,获取到的返回值为: " + strPostResult); + } + + private void lpcTestGetCarTye_Click(object sender, EventArgs e) + { + string strPostData = "{\"serno\":\"312314141\",\"vin\":\"LNNAJDDU9RDA00213\"}"; + MyBase.TraceWriteLine("Test Post Data: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTCarTypeAddress, strPostData, 10000); + MessageBox.Show("测试从IOT获取车型信息完成,获取到的返回值为: " + strPostResult, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + MyBase.TraceWriteLine("测试从IOT获取车型信息完成,获取到的原返回值为: " + strPostResult); + string strNewResult = strPostResult.Substring(1, strPostResult.Length - 2).Replace("]", ""); + MessageBox.Show("测试从IOT获取车型信息完成,处理后 获取到的返回值为: " + strNewResult, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + MyBase.TraceWriteLine("测试从IOT获取车型信息完成,处理后 获取到的返回值为: " + strNewResult); + CheryCarTypeInfo ccti = new CheryCarTypeInfo(); + ccti = JsonConvert.DeserializeObject(strNewResult); + MessageBox.Show("测试从IOT获取车型信息完成,获取到的返回值为: " + strNewResult + "; 解析出的车型:" + ccti.data.model + " ;解析出的物料号为" + ccti.data.material + " ;解析出颜色编号:" + ccti.data.material.Substring(7, 2), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + private string GetCarTypeByIOTAPI(string strVIN, out string strMaterialNo) + { + string strPostData = "{\"serno\":\"" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\",\"vin\":\"" + strVIN + "\"}"; + MyBase.TraceWriteLine(" Post VIN Data: " + strPostData); + string strPostResult = PostJsonToIOT(ConfigDfn.strIOTCarTypeAddress, strPostData, 5000); + MyBase.TraceWriteLine("GetCarTypeByIOTAPI IOT Return CarType Infomation : " + strPostResult); + string strNewResult = strPostResult.Substring(1, strPostResult.Length - 2).Replace("]", ""); + MyBase.TraceWriteLine("GetCarTypeByIOTAPI IOT Return New CarType Infomation : " + strNewResult); + CheryCarTypeInfo ccti = new CheryCarTypeInfo(); + ccti = JsonConvert.DeserializeObject(strNewResult); + if (ccti.message.Contains("成功")) + { + if (ccti.data.material != null && ccti.data.material.Length > 9) + { + strMaterialNo = ccti.data.material.Substring(7, 2); + MyBase.TraceWriteLine(" IOT Return CarType Infomation : " + strNewResult + "; 解析出的车型:" + ccti.data.model + "解析出车颜色编号:" + strMaterialNo); + } + else + { + strMaterialNo = "TE"; + MyBase.TraceWriteLine(" IOT Return CarType Infomation : " + strNewResult + "; 解析出的车型:" + ccti.data.model + ";未解析出车颜色编号"); + } + return ccti.data.model; + } + else + { + MyBase.TraceWriteLine(" IOT Return CarType Infomation ERROR : " + strPostResult); + strMaterialNo = "ER"; + return "ERR"; + } + } + + private void lpcShowCarData_Click(object sender, EventArgs e) + { + } + + + + + private void tmrMonitorDBToCreateReport_Tick(object sender, EventArgs e) + { + tmrMonitorDBToCreateReport.Stop(); + int iCurrentMeasureCount = tmdal.SelectTMeasureResultCount(); + if (iCurrentMeasureCount > iLastMesureCount && (iCurrentMeasureCount == (iLastMesureCount + 1))) + { + MyBase.TraceWriteLine("监控数据库,开始生成ipn文件:"); + DataTable dtMeaResult = tmdal.SelectNewestTMeasureResult(); + string strVIN = dtMeaResult.Rows[0]["CarID"].ToString(); + DateTime dateMeaDate = Convert.ToDateTime(dtMeaResult.Rows[0]["Remark"].ToString()); + DataTable dtMeaContent = tmdal.SelectTMeasureDataByVIN(strVIN); + string strCarType = dtMeaContent.Rows[0][2].ToString(); + int iMeaCount = dtMeaContent.Rows.Count; + + #region 解析完报告后,重新生成客户模板报告 + + string filePath = ""; + if (strCarType.ToLower().Contains("tava")) + { + filePath = ConfigDfn.strReportPath + "\\" + strCarType + "_" + strVIN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".ipn"; + } + else + { + filePath = ConfigDfn.strReportPath2 + "\\" + strCarType + "_" + strVIN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".ipn"; + } + + StringBuilder sb = new StringBuilder(); + + #region 添加表头 + + sb.Append("GAUGE ID"); + sb.Append("\t"); + sb.Append("JSN"); + sb.Append("\t"); + sb.Append("MO"); + sb.Append("\t"); + sb.Append("DAY"); + sb.Append("\t"); + sb.Append("YR"); + sb.Append("\t"); + sb.Append("HR"); + sb.Append("\t"); + sb.Append("MIN"); + sb.Append("\t"); + sb.Append("SEC"); + sb.Append("\t"); + sb.Append("MODEL"); + sb.Append("\t"); + sb.Append("AuxID1"); + sb.Append("\t"); + sb.Append("AuxID2"); + sb.Append("\t"); + sb.Append("QUAL"); + sb.Append("\t"); + sb.Append("SHIFT"); + sb.Append("\t"); + sb.Append("DATA TYPE"); + sb.Append("\t"); + sb.Append("FIXTURE"); + sb.Append("\t"); + for (int i = 0; i < iMeaCount / 2; i++) + { + string strMeaPointName = dtMeaContent.Rows[i * 2]["MeasPointName"].ToString(); + string strMPF = strMeaPointName + " Flush"; + string strMPG = strMeaPointName + " Gap"; + sb.Append("D " + strMPF); + sb.Append("\t"); + sb.Append("D " + strMPG); + sb.Append("\t"); + + sb.Append("B " + strMPF); + sb.Append("\t"); + sb.Append("B " + strMPG); + sb.Append("\t"); + + sb.Append("A " + strMPF); + sb.Append("\t"); + sb.Append("A " + strMPG); + sb.Append("\t"); + + sb.Append("US " + strMPF); + sb.Append("\t"); + sb.Append("LS " + strMPF); + sb.Append("\t"); + sb.Append("US " + strMPG); + sb.Append("\t"); + sb.Append("LS " + strMPG); + sb.Append("\t"); + + sb.Append("UR " + strMPF); + sb.Append("\t"); + sb.Append("LR " + strMPF); + sb.Append("\t"); + sb.Append("UR " + strMPG); + sb.Append("\t"); + sb.Append("LR " + strMPG); + sb.Append("\t"); + + sb.Append("UT " + strMPF); + sb.Append("\t"); + sb.Append("LT " + strMPF); + sb.Append("\t"); + sb.Append("UT " + strMPG); + sb.Append("\t"); + sb.Append("LT " + strMPG); + sb.Append("\t"); + } + + #endregion 添加表头 + + sb.AppendLine(); + + #region 添加内容 + + sb.Append(ConfigDfn.strStationName); + sb.Append("\t"); + sb.Append(strVIN); + sb.Append("\t"); + sb.Append(dateMeaDate.Month.ToString()); + sb.Append("\t"); + sb.Append(dateMeaDate.Day.ToString()); + sb.Append("\t"); + sb.Append(dateMeaDate.Year.ToString().Substring(2)); + sb.Append("\t"); + sb.Append(dateMeaDate.Hour.ToString()); + sb.Append("\t"); + sb.Append(dateMeaDate.Minute.ToString()); + sb.Append("\t"); + sb.Append(dateMeaDate.Second.ToString()); + sb.Append("\t"); + if (strCarType.ToLower().Contains("tava")) + sb.Append(ConfigDfn.strUploadPath); + else + { + sb.Append(ConfigDfn.strUploadPath2); + } + sb.Append("\t"); + sb.Append("Unknow"); + sb.Append("\t"); + sb.Append("Unknow"); + sb.Append("\t"); + sb.Append("2"); + sb.Append("\t"); + sb.Append(""); + sb.Append("\t"); + sb.Append("AUTO"); + sb.Append("\t"); + sb.Append("NONE"); + sb.Append("\t"); + + double dDevFVal = 0; + double dDevGVal = 0; + + double dMeaFVal = 0; + double dMeaGVal = 0; + + double dNorFVal = 0; + double dNorGVal = 0; + + double dFUpper = 0; + double dFLower = 0; + double dGUpper = 0; + double dGLower = 0; + + double dFUpper2 = 0; + double dFLower2 = 0; + double dGUpper2 = 0; + double dGLower2 = 0; + + double dFUpper3 = 0; + double dFLower3 = 0; + double dGUpper3 = 0; + double dGLower3 = 0; + for (int i = 0; i < iMeaCount / 2; i++) + { + string strMeasureFValue = dtMeaContent.Rows[i * 2]["MeasureValue"].ToString(); + string strMeasureGValue = dtMeaContent.Rows[i * 2 + 1]["MeasureValue"].ToString(); + string strNormalFValue = dtMeaContent.Rows[i * 2]["NormalValue"].ToString(); + string strNormalGValue = dtMeaContent.Rows[i * 2 + 1]["NormalValue"].ToString(); + + dNorFVal = double.Parse(strNormalFValue); + dNorGVal = double.Parse(strNormalGValue); + dFUpper = double.Parse(dtMeaContent.Rows[i * 2]["UpperTolVal"].ToString()); + dFLower = double.Parse(dtMeaContent.Rows[i * 2]["LowerTolVal"].ToString()); + dGUpper = double.Parse(dtMeaContent.Rows[i * 2 + 1]["UpperTolVal"].ToString()); + dGLower = double.Parse(dtMeaContent.Rows[i * 2 + 1]["LowerTolVal"].ToString()); + + dFUpper2 = dFUpper * ConfigDfn.dLevel2; + dFLower2 = dFLower * ConfigDfn.dLevel2; + dGUpper2 = dGUpper * ConfigDfn.dLevel2; + dGLower2 = dGLower * ConfigDfn.dLevel2; + + dFUpper3 = dFUpper * ConfigDfn.dLevel3; + dFLower3 = dFLower * ConfigDfn.dLevel3; + dGUpper3 = dGUpper * ConfigDfn.dLevel3; + dGLower3 = dGLower * ConfigDfn.dLevel3; + + if (strMeasureFValue.Contains("inv")) + { + sb.Append("inv"); + sb.Append("\t"); + } + else + { + dMeaFVal = double.Parse(strMeasureFValue); + dDevFVal = dMeaFVal - dNorFVal; + sb.Append(dDevFVal.ToString("F3")); + sb.Append("\t"); + } + if (strMeasureGValue.Contains("inv")) + { + sb.Append("inv"); + sb.Append("\t"); + } + else + { + dMeaGVal = double.Parse(strMeasureGValue); + dDevGVal = dMeaGVal - dNorGVal; + sb.Append(dDevGVal.ToString("F3")); + sb.Append("\t"); + } + + sb.Append(strNormalFValue); + sb.Append("\t"); + sb.Append(strNormalGValue); + sb.Append("\t"); + + sb.Append(strMeasureFValue); + sb.Append("\t"); + sb.Append(strMeasureGValue); + sb.Append("\t"); + + sb.Append(dFUpper.ToString("F3")); + sb.Append("\t"); + sb.Append(dFLower.ToString("F3")); + sb.Append("\t"); + sb.Append(dGUpper.ToString("F3")); + sb.Append("\t"); + sb.Append(dGLower.ToString("F3")); + sb.Append("\t"); + + sb.Append(dFUpper2.ToString("F3")); + sb.Append("\t"); + sb.Append(dFLower2.ToString("F3")); + sb.Append("\t"); + sb.Append(dGUpper2.ToString("F3")); + sb.Append("\t"); + sb.Append(dGLower2.ToString("F3")); + sb.Append("\t"); + + sb.Append(dFUpper3.ToString("F3")); + sb.Append("\t"); + sb.Append(dFLower3.ToString("F3")); + sb.Append("\t"); + sb.Append(dGUpper3.ToString("F3")); + sb.Append("\t"); + sb.Append(dGLower3.ToString("F3")); + sb.Append("\t"); + } + + #endregion 添加内容 + + // 将数据写入CSV文件 + File.WriteAllText(filePath, sb.ToString()); + MyBase.TraceWriteLine("客户定制ipn报告生成完毕,路径为:" + filePath); + + #endregion 解析完报告后,重新生成客户模板报告 + } + iLastMesureCount = iCurrentMeasureCount; + tmrMonitorDBToCreateReport.Start(); + } + + private void lpcRange_Load(object sender, EventArgs e) + { + } + + private void lpcShowCarData_Load(object sender, EventArgs e) + { + } + } + #endregion + public class CheryIOTData + { + /// + /// VIN号 + /// + public string vin { get; set; } + + /// + /// FG + /// + public string gfNo { get; set; } + + /// + /// 测点编号 + /// + public string pointNumber { get; set; } + + /// + /// 实测值 + /// + public string actualValue { get; set; } + + /// + /// 控制线 + /// + public string controlLine { get; set; } + + /// + /// 测量结果 + /// + public string measurementResult { get; set; } + } + + public class CarInfoData + { + public string material { get; set; } + public string model { get; set; } + } + + public class CheryCarTypeInfo + { + /// + /// data + /// + public CarInfoData data { get; set; } + + /// + /// message + /// + public string message { get; set; } + + /// + /// serno + /// + public string serno { get; set; } + + /// + /// success + /// + public string success { get; set; } + } + + public static class JsonHelper + { + /// + /// 对象转成JSON 格式字符串 + /// + /// 对象 + /// JSON格式的字符串 + public static string ObjectToJson(object obj) + { + return JsonConvert.SerializeObject(obj); + } + + /// + /// 解析JSON字符串生成对象实体 + /// + /// 对象类型 + /// json字符串 + /// 对象实体 + public static T DeserializeJsonToObject(string json) where T : class + { + Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer(); + StringReader sr = new StringReader(json); + object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T)); + T t = o as T; + return t; + } + + /// + /// 解析JSON数组生成对象实体集合 + /// + /// 对象类型 + /// json数组字符串(eg.[{"ID":"112","Name":"石子儿"}]) + /// 对象实体集合 + public static List DeserializeJsonToList(string json) where T : class + { + Newtonsoft.Json.JsonSerializer serializer = new JsonSerializer(); + StringReader sr = new StringReader(json); + object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List)); + List list = o as List; + return list; + } + + /// + /// 数据表转键值对集合 把DataTable转成 List集合, 存每一行 集合中放的是键值对字典,存每一列 + /// + /// 数据表 + /// 哈希表数组 + public static List> DataTableToList(DataTable dt) + { + List> list = new List>(); + + foreach (DataRow dr in dt.Rows) + { + Dictionary dic = new Dictionary(); + foreach (DataColumn dc in dt.Columns) + { + dic.Add(dc.ColumnName, dr[dc.ColumnName]); + } + list.Add(dic); + } + return list; + } + + /// + /// 数据集转键值对数组字典 + /// + /// 键值对数组字典 + public static Dictionary>> DataSetToDic(DataSet ds) + { + Dictionary>> result = new Dictionary>>(); + + foreach (DataTable dt in ds.Tables) + result.Add(dt.TableName, DataTableToList(dt)); + + return result; + } + + /// + /// 数据表转JSON + /// + /// 数据表 + /// JSON字符串 + public static string DataTableToJson(DataTable dt) + { + return ObjectToJson(DataTableToList(dt)); + } + + /// + /// JSON文本转对象,泛型方法 常用 + /// + /// 类型 + /// JSON文本 + /// 指定类型的对象 + public static T JsonToObject(string jsonText) + { + return JsonConvert.DeserializeObject(jsonText); + } + + /// + /// 将JSON文本转换为数据表数据 + /// + /// JSON文本 + /// 数据表字典 + public static Dictionary>> TablesDataFromJson(string jsonText) + { + return JsonToObject>>>(jsonText); + } + + /// + /// 将JSON文本转换成数据行 + /// + /// JSON文本 + /// 数据行的字典 + public static Dictionary DataRowFromJson(string jsonText) + { + return JsonToObject>(jsonText); + } + } +} diff --git a/Analysis/FormMain.designer.cs b/Analysis/FormMain.designer.cs new file mode 100644 index 0000000..d3b4701 --- /dev/null +++ b/Analysis/FormMain.designer.cs @@ -0,0 +1,2230 @@ +using UserControlClass; + +namespace NSAnalysis +{ + partial class FormMain + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); + System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title(); + Telerik.WinControls.UI.RadListDataItem radListDataItem1 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem2 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem3 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem4 = new Telerik.WinControls.UI.RadListDataItem(); + System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); + System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); + System.Windows.Forms.DataVisualization.Charting.Title title2 = new System.Windows.Forms.DataVisualization.Charting.Title(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.radStatusStrip1 = new Telerik.WinControls.UI.RadStatusStrip(); + this.rleTimeText = new Telerik.WinControls.UI.RadLabelElement(); + this.rleTime = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator4 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.radLabelElement2 = new Telerik.WinControls.UI.RadLabelElement(); + this.rleReadCSVStatus = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator1 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.rlePLCText = new Telerik.WinControls.UI.RadLabelElement(); + this.rlePLCStatus = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator2 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.radLabelElement1 = new Telerik.WinControls.UI.RadLabelElement(); + this.rlePLCHeart = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator3 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.radLabelElement3 = new Telerik.WinControls.UI.RadLabelElement(); + this.rleReadDBStatus = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator5 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.rleMessageText = new Telerik.WinControls.UI.RadLabelElement(); + this.rleMessage = new Telerik.WinControls.UI.RadLabelElement(); + this.RPV = new Telerik.WinControls.UI.RadPageView(); + this.rpvpAnalysis = new Telerik.WinControls.UI.RadPageViewPage(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.label4 = new System.Windows.Forms.Label(); + this.lbCSVFiles = new System.Windows.Forms.ListBox(); + this.dgvMeasureContent = new System.Windows.Forms.DataGridView(); + this.DimensionID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DimensionName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.NormalVal = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.LowerTolVal = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.UpperTolVal = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MeasureValue = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MDate = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.labCarType = new System.Windows.Forms.Label(); + this.label24 = new System.Windows.Forms.Label(); + this.labSumMeasureCount = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.labRejectCount = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.pbResult = new System.Windows.Forms.PictureBox(); + this.labResult = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.labResultPercent = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.labMeaTime = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.labNGCount = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.labOKCount = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.labVIN = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.chartResultPie = new System.Windows.Forms.DataVisualization.Charting.Chart(); + this.rpvpSearch = new Telerik.WinControls.UI.RadPageViewPage(); + this.pnlPage = new System.Windows.Forms.Panel(); + this.rddlPageRecorderCount = new Telerik.WinControls.UI.RadDropDownList(); + this.rbtnFirtstPage = new Telerik.WinControls.UI.RadButton(); + this.rbtnLastPage = new Telerik.WinControls.UI.RadButton(); + this.rbtnPrevPage = new Telerik.WinControls.UI.RadButton(); + this.rbtnNextPage = new Telerik.WinControls.UI.RadButton(); + this.label3 = new System.Windows.Forms.Label(); + this.labSumRecorders = new System.Windows.Forms.Label(); + this.labSumPages = new System.Windows.Forms.Label(); + this.labCurrentPage = new System.Windows.Forms.Label(); + this.labSearchResult = new System.Windows.Forms.Label(); + this.radGroupBox1 = new Telerik.WinControls.UI.RadGroupBox(); + this.rtbPartID = new Telerik.WinControls.UI.RadTextBox(); + this.rbtSelectFPY = new Telerik.WinControls.UI.RadButton(); + this.rbtnExportCSVReport = new Telerik.WinControls.UI.RadButton(); + this.rdtpStartTime = new Telerik.WinControls.UI.RadDateTimePicker(); + this.rdtpEndTime = new Telerik.WinControls.UI.RadDateTimePicker(); + this.rbtnSearchMeaserData = new Telerik.WinControls.UI.RadButton(); + this.radLabel15 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel1 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel11 = new Telerik.WinControls.UI.RadLabel(); + this.chartFPYLine = new System.Windows.Forms.DataVisualization.Charting.Chart(); + this.dgvSelectMeasureData = new System.Windows.Forms.DataGridView(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MeasureItemResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgvFPYResult = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn12 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn13 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn14 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn16 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SMResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rpvpSetup = new Telerik.WinControls.UI.RadPageViewPage(); + this.lpcToleranceSetup = new UserControlClass.LabPictureControl(); + this.lpcTestGetCarTye = new UserControlClass.LabPictureControl(); + this.lpcShowLog = new UserControlClass.LabPictureControl(); + this.lpcSoftwareSetup = new UserControlClass.LabPictureControl(); + this.lpcUploadIOTTest = new UserControlClass.LabPictureControl(); + this.lpcAboutSoftware = new UserControlClass.LabPictureControl(); + this.tmSystem = new System.Windows.Forms.Timer(this.components); + this.tmReadNextsenseCSV = new System.Windows.Forms.Timer(this.components); + this.tmrReadPLCData = new System.Windows.Forms.Timer(this.components); + this.tmrRefreshPLCStatus = new System.Windows.Forms.Timer(this.components); + this.tmrHeartBeatConnect = new System.Windows.Forms.Timer(this.components); + this.tmrWritePLCLive = new System.Windows.Forms.Timer(this.components); + this.tmrMonitorDBToCreateReport = new System.Windows.Forms.Timer(this.components); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radStatusStrip1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.RPV)).BeginInit(); + this.RPV.SuspendLayout(); + this.rpvpAnalysis.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvMeasureContent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbResult)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartResultPie)).BeginInit(); + this.rpvpSearch.SuspendLayout(); + this.pnlPage.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rddlPageRecorderCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnFirtstPage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnLastPage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnPrevPage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnNextPage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox1)).BeginInit(); + this.radGroupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPartID)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtSelectFPY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnExportCSVReport)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rdtpStartTime)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rdtpEndTime)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnSearchMeaserData)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartFPYLine)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectMeasureData)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvFPYResult)).BeginInit(); + this.rpvpSetup.SuspendLayout(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(1918, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "海克斯康间隙面差分析系统"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "海克斯康间隙面差分析系统"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(793, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(835, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(240, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "海克斯康间隙面差分析系统"; + // + // radStatusStrip1 + // + this.radStatusStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radStatusStrip1.Dock = System.Windows.Forms.DockStyle.None; + this.radStatusStrip1.Font = new System.Drawing.Font("Segoe UI", 9F); + this.radStatusStrip1.ForeColor = System.Drawing.Color.White; + this.radStatusStrip1.Items.AddRange(new Telerik.WinControls.RadItem[] { + this.rleTimeText, + this.rleTime, + this.commandBarSeparator4, + this.radLabelElement2, + this.rleReadCSVStatus, + this.commandBarSeparator1, + this.rlePLCText, + this.rlePLCStatus, + this.commandBarSeparator2, + this.radLabelElement1, + this.rlePLCHeart, + this.commandBarSeparator3, + this.radLabelElement3, + this.rleReadDBStatus, + this.commandBarSeparator5, + this.rleMessageText, + this.rleMessage}); + this.radStatusStrip1.Location = new System.Drawing.Point(1, 1052); + this.radStatusStrip1.Name = "radStatusStrip1"; + this.radStatusStrip1.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.radStatusStrip1.Size = new System.Drawing.Size(1918, 26); + this.radStatusStrip1.TabIndex = 126; + ((Telerik.WinControls.UI.RadStatusBarElement)(this.radStatusStrip1.GetChildAt(0))).Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + // + // rleTimeText + // + this.rleTimeText.Name = "rleTimeText"; + this.radStatusStrip1.SetSpring(this.rleTimeText, false); + this.rleTimeText.Text = "当前时间 :"; + this.rleTimeText.TextWrap = true; + this.rleTimeText.UseCompatibleTextRendering = false; + // + // rleTime + // + this.rleTime.Name = "rleTime"; + this.radStatusStrip1.SetSpring(this.rleTime, false); + this.rleTime.Text = "2023-06-01 12:23:34"; + this.rleTime.TextWrap = true; + this.rleTime.UseCompatibleTextRendering = false; + // + // commandBarSeparator4 + // + this.commandBarSeparator4.Name = "commandBarSeparator4"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator4, false); + this.commandBarSeparator4.VisibleInOverflowMenu = false; + // + // radLabelElement2 + // + this.radLabelElement2.Name = "radLabelElement2"; + this.radStatusStrip1.SetSpring(this.radLabelElement2, false); + this.radLabelElement2.Text = "读取CSV文件状态:"; + this.radLabelElement2.TextWrap = true; + // + // rleReadCSVStatus + // + this.rleReadCSVStatus.Font = new System.Drawing.Font("宋体", 11F); + this.rleReadCSVStatus.Name = "rleReadCSVStatus"; + this.radStatusStrip1.SetSpring(this.rleReadCSVStatus, false); + this.rleReadCSVStatus.Text = "●"; + this.rleReadCSVStatus.TextWrap = true; + // + // commandBarSeparator1 + // + this.commandBarSeparator1.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator1.Name = "commandBarSeparator1"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator1, false); + this.commandBarSeparator1.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator1.UseCompatibleTextRendering = false; + this.commandBarSeparator1.VisibleInOverflowMenu = false; + // + // rlePLCText + // + this.rlePLCText.Name = "rlePLCText"; + this.radStatusStrip1.SetSpring(this.rlePLCText, false); + this.rlePLCText.Text = "PLC连接状态:"; + this.rlePLCText.TextWrap = true; + this.rlePLCText.UseCompatibleTextRendering = false; + // + // rlePLCStatus + // + this.rlePLCStatus.Font = new System.Drawing.Font("宋体", 11F); + this.rlePLCStatus.Name = "rlePLCStatus"; + this.radStatusStrip1.SetSpring(this.rlePLCStatus, false); + this.rlePLCStatus.Text = "●"; + this.rlePLCStatus.TextWrap = true; + this.rlePLCStatus.UseCompatibleTextRendering = false; + // + // commandBarSeparator2 + // + this.commandBarSeparator2.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator2.Name = "commandBarSeparator2"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator2, false); + this.commandBarSeparator2.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator2.UseCompatibleTextRendering = false; + this.commandBarSeparator2.VisibleInOverflowMenu = false; + // + // radLabelElement1 + // + this.radLabelElement1.Name = "radLabelElement1"; + this.radStatusStrip1.SetSpring(this.radLabelElement1, false); + this.radLabelElement1.Text = "PLC心跳:"; + this.radLabelElement1.TextWrap = true; + this.radLabelElement1.UseCompatibleTextRendering = false; + // + // rlePLCHeart + // + this.rlePLCHeart.Font = new System.Drawing.Font("宋体", 11F); + this.rlePLCHeart.Name = "rlePLCHeart"; + this.radStatusStrip1.SetSpring(this.rlePLCHeart, false); + this.rlePLCHeart.Text = "●"; + this.rlePLCHeart.TextWrap = true; + this.rlePLCHeart.UseCompatibleTextRendering = false; + // + // commandBarSeparator3 + // + this.commandBarSeparator3.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator3.Name = "commandBarSeparator3"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator3, false); + this.commandBarSeparator3.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator3.UseCompatibleTextRendering = false; + this.commandBarSeparator3.VisibleInOverflowMenu = false; + // + // radLabelElement3 + // + this.radLabelElement3.Name = "radLabelElement3"; + this.radStatusStrip1.SetSpring(this.radLabelElement3, false); + this.radLabelElement3.Text = "读取数据库状态:"; + this.radLabelElement3.TextWrap = true; + // + // rleReadDBStatus + // + this.rleReadDBStatus.Font = new System.Drawing.Font("宋体", 11F); + this.rleReadDBStatus.Name = "rleReadDBStatus"; + this.radStatusStrip1.SetSpring(this.rleReadDBStatus, false); + this.rleReadDBStatus.Text = "●"; + this.rleReadDBStatus.TextWrap = true; + // + // commandBarSeparator5 + // + this.commandBarSeparator5.Name = "commandBarSeparator5"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator5, false); + this.commandBarSeparator5.VisibleInOverflowMenu = false; + // + // rleMessageText + // + this.rleMessageText.Name = "rleMessageText"; + this.radStatusStrip1.SetSpring(this.rleMessageText, false); + this.rleMessageText.Text = "消息 :"; + this.rleMessageText.TextWrap = true; + this.rleMessageText.UseCompatibleTextRendering = false; + // + // rleMessage + // + this.rleMessage.Name = "rleMessage"; + this.radStatusStrip1.SetSpring(this.rleMessage, false); + this.rleMessage.Text = "软件正常启动"; + this.rleMessage.TextWrap = true; + this.rleMessage.UseCompatibleTextRendering = false; + // + // RPV + // + this.RPV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.RPV.Controls.Add(this.rpvpAnalysis); + this.RPV.Controls.Add(this.rpvpSearch); + this.RPV.Controls.Add(this.rpvpSetup); + this.RPV.DefaultPage = this.rpvpAnalysis; + this.RPV.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.RPV.ItemSizeMode = ((Telerik.WinControls.UI.PageViewItemSizeMode)((Telerik.WinControls.UI.PageViewItemSizeMode.EqualWidth | Telerik.WinControls.UI.PageViewItemSizeMode.EqualHeight))); + this.RPV.Location = new System.Drawing.Point(1, 42); + this.RPV.Name = "RPV"; + this.RPV.SelectedPage = this.rpvpSetup; + this.RPV.Size = new System.Drawing.Size(1918, 1008); + this.RPV.TabIndex = 127; + this.RPV.ViewMode = Telerik.WinControls.UI.PageViewMode.NavigationView; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).DisplayMode = Telerik.WinControls.UI.NavigationViewDisplayModes.Compact; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).HeaderHeight = 35; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ExpandedPaneWidth = 150; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).CollapsedPaneWidth = 48; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ShowItemPinButton = true; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).StripButtons = Telerik.WinControls.UI.StripViewButtons.None; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemAlignment = Telerik.WinControls.UI.StripViewItemAlignment.Near; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemFitMode = Telerik.WinControls.UI.StripViewItemFitMode.None; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ShowItemCloseButton = true; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemDragMode = Telerik.WinControls.UI.PageViewItemDragMode.None; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemSpacing = 1; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ItemSizeMode = ((Telerik.WinControls.UI.PageViewItemSizeMode)((Telerik.WinControls.UI.PageViewItemSizeMode.EqualWidth | Telerik.WinControls.UI.PageViewItemSizeMode.EqualHeight))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderInnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderInnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderLeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderTopColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderRightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderLeftShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderTopShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderRightShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BorderBottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.RadPageViewNavigationViewElement)(this.RPV.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).Font = new System.Drawing.Font("Segoe UI", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).MinSize = new System.Drawing.Size(48, 0); + ((Telerik.WinControls.UI.NavigationViewItemContainer)(this.RPV.GetChildAt(0).GetChildAt(0))).MaxSize = new System.Drawing.Size(48, 0); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderLeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderTopColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderRightColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderLeftShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderTopShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderRightShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).FocusBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.RPV.GetChildAt(0).GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderInnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BorderInnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).FocusBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.RPV.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderInnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BorderInnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).HorizontalLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).Text = " 软件设置"; + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).FocusBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.UI.NavigationViewHeaderElement)(this.RPV.GetChildAt(0).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.HamburgerButtonElement)(this.RPV.GetChildAt(0).GetChildAt(3))).FocusBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.HamburgerButtonElement)(this.RPV.GetChildAt(0).GetChildAt(3))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.HamburgerButtonElement)(this.RPV.GetChildAt(0).GetChildAt(3))).StretchHorizontally = false; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).GradientStyle = Telerik.WinControls.GradientStyles.OfficeGlass; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.ImagePrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.ImagePrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + ((Telerik.WinControls.Primitives.TextPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(1).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FocusPrimitive)(this.RPV.GetChildAt(0).GetChildAt(3).GetChildAt(3))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rpvpAnalysis + // + this.rpvpAnalysis.AutoScroll = true; + this.rpvpAnalysis.BackColor = System.Drawing.Color.Transparent; + this.rpvpAnalysis.Controls.Add(this.splitContainer1); + this.rpvpAnalysis.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rpvpAnalysis.Image = ((System.Drawing.Image)(resources.GetObject("rpvpAnalysis.Image"))); + this.rpvpAnalysis.ItemSize = new System.Drawing.SizeF(46F, 46F); + this.rpvpAnalysis.Location = new System.Drawing.Point(49, 35); + this.rpvpAnalysis.Name = "rpvpAnalysis"; + this.rpvpAnalysis.Size = new System.Drawing.Size(1868, 972); + this.rpvpAnalysis.Text = " 分析主界面"; + // + // splitContainer1 + // + this.splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.label4); + this.splitContainer1.Panel1.Controls.Add(this.lbCSVFiles); + this.splitContainer1.Panel1.Controls.Add(this.dgvMeasureContent); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); + this.splitContainer1.Size = new System.Drawing.Size(1868, 972); + this.splitContainer1.SplitterDistance = 1128; + this.splitContainer1.TabIndex = 0; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("微软雅黑", 12F); + this.label4.ForeColor = System.Drawing.Color.White; + this.label4.Location = new System.Drawing.Point(21, 14); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(233, 21); + this.label4.TabIndex = 175; + this.label4.Text = "等待读取的CSV报告文件列表:"; + // + // lbCSVFiles + // + this.lbCSVFiles.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lbCSVFiles.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.lbCSVFiles.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbCSVFiles.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.lbCSVFiles.ForeColor = System.Drawing.Color.White; + this.lbCSVFiles.FormattingEnabled = true; + this.lbCSVFiles.ItemHeight = 19; + this.lbCSVFiles.Location = new System.Drawing.Point(19, 39); + this.lbCSVFiles.Name = "lbCSVFiles"; + this.lbCSVFiles.Size = new System.Drawing.Size(1084, 59); + this.lbCSVFiles.TabIndex = 174; + // + // dgvMeasureContent + // + this.dgvMeasureContent.AllowUserToAddRows = false; + this.dgvMeasureContent.AllowUserToDeleteRows = false; + this.dgvMeasureContent.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.dgvMeasureContent.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.dgvMeasureContent.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvMeasureContent.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvMeasureContent.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgvMeasureContent.ColumnHeadersHeight = 38; + this.dgvMeasureContent.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.DimensionID, + this.DimensionName, + this.NormalVal, + this.LowerTolVal, + this.UpperTolVal, + this.MeasureValue, + this.MDate, + this.MResult}); + this.dgvMeasureContent.EnableHeadersVisualStyles = false; + this.dgvMeasureContent.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); + this.dgvMeasureContent.Location = new System.Drawing.Point(21, 104); + this.dgvMeasureContent.Name = "dgvMeasureContent"; + this.dgvMeasureContent.ReadOnly = true; + this.dgvMeasureContent.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvMeasureContent.RowHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvMeasureContent.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle3.Font = new System.Drawing.Font("Segoe UI", 10F); + dataGridViewCellStyle3.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvMeasureContent.RowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvMeasureContent.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Segoe UI", 10F); + this.dgvMeasureContent.RowTemplate.Height = 38; + this.dgvMeasureContent.Size = new System.Drawing.Size(1082, 846); + this.dgvMeasureContent.TabIndex = 173; + // + // DimensionID + // + this.DimensionID.DataPropertyName = "DimensionID"; + this.DimensionID.HeaderText = "测量点名称"; + this.DimensionID.Name = "DimensionID"; + this.DimensionID.ReadOnly = true; + this.DimensionID.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.DimensionID.Width = 150; + // + // DimensionName + // + this.DimensionName.DataPropertyName = "DimensionName"; + this.DimensionName.HeaderText = "尺寸名"; + this.DimensionName.Name = "DimensionName"; + this.DimensionName.ReadOnly = true; + this.DimensionName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.DimensionName.Width = 80; + // + // NormalVal + // + this.NormalVal.DataPropertyName = "NormalVal"; + this.NormalVal.HeaderText = "理论值"; + this.NormalVal.Name = "NormalVal"; + this.NormalVal.ReadOnly = true; + this.NormalVal.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.NormalVal.Visible = false; + // + // LowerTolVal + // + this.LowerTolVal.DataPropertyName = "LowerTolVal"; + this.LowerTolVal.HeaderText = "下限值"; + this.LowerTolVal.Name = "LowerTolVal"; + this.LowerTolVal.ReadOnly = true; + this.LowerTolVal.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // UpperTolVal + // + this.UpperTolVal.DataPropertyName = "UpperTolVal"; + this.UpperTolVal.HeaderText = "上限值"; + this.UpperTolVal.Name = "UpperTolVal"; + this.UpperTolVal.ReadOnly = true; + this.UpperTolVal.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // MeasureValue + // + this.MeasureValue.HeaderText = "实测值"; + this.MeasureValue.Name = "MeasureValue"; + this.MeasureValue.ReadOnly = true; + this.MeasureValue.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // MDate + // + this.MDate.HeaderText = "测量时间"; + this.MDate.Name = "MDate"; + this.MDate.ReadOnly = true; + this.MDate.Width = 190; + // + // MResult + // + this.MResult.HeaderText = "结果"; + this.MResult.Name = "MResult"; + this.MResult.ReadOnly = true; + this.MResult.Width = 150; + // + // splitContainer2 + // + this.splitContainer2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.labCarType); + this.splitContainer2.Panel1.Controls.Add(this.label24); + this.splitContainer2.Panel1.Controls.Add(this.labSumMeasureCount); + this.splitContainer2.Panel1.Controls.Add(this.label13); + this.splitContainer2.Panel1.Controls.Add(this.labRejectCount); + this.splitContainer2.Panel1.Controls.Add(this.label7); + this.splitContainer2.Panel1.Controls.Add(this.pbResult); + this.splitContainer2.Panel1.Controls.Add(this.labResult); + this.splitContainer2.Panel1.Controls.Add(this.label16); + this.splitContainer2.Panel1.Controls.Add(this.labResultPercent); + this.splitContainer2.Panel1.Controls.Add(this.label14); + this.splitContainer2.Panel1.Controls.Add(this.labMeaTime); + this.splitContainer2.Panel1.Controls.Add(this.label12); + this.splitContainer2.Panel1.Controls.Add(this.labNGCount); + this.splitContainer2.Panel1.Controls.Add(this.label10); + this.splitContainer2.Panel1.Controls.Add(this.labOKCount); + this.splitContainer2.Panel1.Controls.Add(this.label8); + this.splitContainer2.Panel1.Controls.Add(this.labVIN); + this.splitContainer2.Panel1.Controls.Add(this.label5); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.chartResultPie); + this.splitContainer2.Size = new System.Drawing.Size(736, 972); + this.splitContainer2.SplitterDistance = 359; + this.splitContainer2.TabIndex = 0; + // + // labCarType + // + this.labCarType.AutoSize = true; + this.labCarType.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labCarType.ForeColor = System.Drawing.Color.White; + this.labCarType.Location = new System.Drawing.Point(183, 60); + this.labCarType.Name = "labCarType"; + this.labCarType.Size = new System.Drawing.Size(45, 24); + this.labCarType.TabIndex = 194; + this.labCarType.Text = "EH3"; + // + // label24 + // + this.label24.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label24.ForeColor = System.Drawing.Color.White; + this.label24.Location = new System.Drawing.Point(25, 59); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(155, 24); + this.label24.TabIndex = 193; + this.label24.Text = "车辆类型 : "; + this.label24.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labSumMeasureCount + // + this.labSumMeasureCount.AutoSize = true; + this.labSumMeasureCount.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labSumMeasureCount.ForeColor = System.Drawing.Color.White; + this.labSumMeasureCount.Location = new System.Drawing.Point(183, 209); + this.labSumMeasureCount.Name = "labSumMeasureCount"; + this.labSumMeasureCount.Size = new System.Drawing.Size(32, 24); + this.labSumMeasureCount.TabIndex = 192; + this.labSumMeasureCount.Text = "54"; + // + // label13 + // + this.label13.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label13.ForeColor = System.Drawing.Color.White; + this.label13.Location = new System.Drawing.Point(25, 208); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(155, 24); + this.label13.TabIndex = 191; + this.label13.Text = "测量总项数 : "; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labRejectCount + // + this.labRejectCount.AutoSize = true; + this.labRejectCount.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labRejectCount.ForeColor = System.Drawing.Color.White; + this.labRejectCount.Location = new System.Drawing.Point(183, 171); + this.labRejectCount.Name = "labRejectCount"; + this.labRejectCount.Size = new System.Drawing.Size(21, 24); + this.labRejectCount.TabIndex = 190; + this.labRejectCount.Text = "2"; + // + // label7 + // + this.label7.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label7.ForeColor = System.Drawing.Color.White; + this.label7.Location = new System.Drawing.Point(8, 170); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(173, 24); + this.label7.TabIndex = 189; + this.label7.Text = "异常测量项数 : "; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // pbResult + // + this.pbResult.Location = new System.Drawing.Point(410, 22); + this.pbResult.Name = "pbResult"; + this.pbResult.Size = new System.Drawing.Size(304, 313); + this.pbResult.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pbResult.TabIndex = 188; + this.pbResult.TabStop = false; + // + // labResult + // + this.labResult.AutoSize = true; + this.labResult.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.labResult.ForeColor = System.Drawing.Color.Lime; + this.labResult.Location = new System.Drawing.Point(183, 311); + this.labResult.Name = "labResult"; + this.labResult.Size = new System.Drawing.Size(62, 31); + this.labResult.TabIndex = 187; + this.labResult.Text = "合格"; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.label16.ForeColor = System.Drawing.Color.White; + this.label16.Location = new System.Drawing.Point(54, 311); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(131, 31); + this.label16.TabIndex = 186; + this.label16.Text = "测量结果 : "; + // + // labResultPercent + // + this.labResultPercent.AutoSize = true; + this.labResultPercent.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.labResultPercent.ForeColor = System.Drawing.Color.Lime; + this.labResultPercent.Location = new System.Drawing.Point(183, 275); + this.labResultPercent.Name = "labResultPercent"; + this.labResultPercent.Size = new System.Drawing.Size(118, 31); + this.labResultPercent.TabIndex = 185; + this.labResultPercent.Text = "80.316%"; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold); + this.label14.ForeColor = System.Drawing.Color.White; + this.label14.Location = new System.Drawing.Point(78, 273); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(107, 31); + this.label14.TabIndex = 184; + this.label14.Text = "合格率 : "; + // + // labMeaTime + // + this.labMeaTime.AutoSize = true; + this.labMeaTime.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labMeaTime.ForeColor = System.Drawing.Color.White; + this.labMeaTime.Location = new System.Drawing.Point(183, 242); + this.labMeaTime.Name = "labMeaTime"; + this.labMeaTime.Size = new System.Drawing.Size(193, 24); + this.labMeaTime.TabIndex = 183; + this.labMeaTime.Text = "2023-06-01 12:23:33"; + // + // label12 + // + this.label12.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label12.ForeColor = System.Drawing.Color.White; + this.label12.Location = new System.Drawing.Point(16, 242); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(165, 24); + this.label12.TabIndex = 182; + this.label12.Text = "测量时间 : "; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labNGCount + // + this.labNGCount.AutoSize = true; + this.labNGCount.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labNGCount.ForeColor = System.Drawing.Color.White; + this.labNGCount.Location = new System.Drawing.Point(183, 134); + this.labNGCount.Name = "labNGCount"; + this.labNGCount.Size = new System.Drawing.Size(21, 24); + this.labNGCount.TabIndex = 181; + this.labNGCount.Text = "7"; + // + // label10 + // + this.label10.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label10.ForeColor = System.Drawing.Color.White; + this.label10.Location = new System.Drawing.Point(12, 133); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(169, 24); + this.label10.TabIndex = 180; + this.label10.Text = "不合格测量项数 : "; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labOKCount + // + this.labOKCount.AutoSize = true; + this.labOKCount.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labOKCount.ForeColor = System.Drawing.Color.White; + this.labOKCount.Location = new System.Drawing.Point(183, 98); + this.labOKCount.Name = "labOKCount"; + this.labOKCount.Size = new System.Drawing.Size(32, 24); + this.labOKCount.TabIndex = 179; + this.labOKCount.Text = "45"; + // + // label8 + // + this.label8.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label8.ForeColor = System.Drawing.Color.White; + this.label8.Location = new System.Drawing.Point(8, 97); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(173, 24); + this.label8.TabIndex = 178; + this.label8.Text = "合格测量项数 : "; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // labVIN + // + this.labVIN.AutoSize = true; + this.labVIN.Font = new System.Drawing.Font("微软雅黑", 13F); + this.labVIN.ForeColor = System.Drawing.Color.White; + this.labVIN.Location = new System.Drawing.Point(183, 25); + this.labVIN.Name = "labVIN"; + this.labVIN.Size = new System.Drawing.Size(215, 24); + this.labVIN.TabIndex = 177; + this.labVIN.Text = "LNNAJDDU1RDA00030"; + // + // label5 + // + this.label5.Font = new System.Drawing.Font("微软雅黑", 13F); + this.label5.ForeColor = System.Drawing.Color.White; + this.label5.Location = new System.Drawing.Point(29, 24); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(152, 24); + this.label5.TabIndex = 176; + this.label5.Text = "车身编号 : "; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // chartResultPie + // + this.chartResultPie.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.chartResultPie.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea1.Name = "ChartArea1"; + this.chartResultPie.ChartAreas.Add(chartArea1); + legend1.Alignment = System.Drawing.StringAlignment.Center; + legend1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + legend1.Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Bottom; + legend1.Font = new System.Drawing.Font("Segoe UI", 10F); + legend1.ForeColor = System.Drawing.Color.White; + legend1.IsTextAutoFit = false; + legend1.Name = "Legend1"; + legend1.TitleForeColor = System.Drawing.Color.White; + this.chartResultPie.Legends.Add(legend1); + this.chartResultPie.Location = new System.Drawing.Point(3, 3); + this.chartResultPie.Name = "chartResultPie"; + this.chartResultPie.Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.None; + this.chartResultPie.PaletteCustomColors = new System.Drawing.Color[] { + System.Drawing.Color.Green, + System.Drawing.Color.Orange, + System.Drawing.Color.Red}; + series1.ChartArea = "ChartArea1"; + series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie; + series1.Font = new System.Drawing.Font("微软雅黑", 10F); + series1.LabelForeColor = System.Drawing.Color.White; + series1.Legend = "Legend1"; + series1.Name = "Series1"; + this.chartResultPie.Series.Add(series1); + this.chartResultPie.Size = new System.Drawing.Size(728, 584); + this.chartResultPie.TabIndex = 0; + this.chartResultPie.Text = "chartFPY"; + title1.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + title1.ForeColor = System.Drawing.Color.White; + title1.Name = "Title1"; + title1.Text = "合格率"; + this.chartResultPie.Titles.Add(title1); + // + // rpvpSearch + // + this.rpvpSearch.Controls.Add(this.pnlPage); + this.rpvpSearch.Controls.Add(this.labSearchResult); + this.rpvpSearch.Controls.Add(this.radGroupBox1); + this.rpvpSearch.Controls.Add(this.chartFPYLine); + this.rpvpSearch.Controls.Add(this.dgvSelectMeasureData); + this.rpvpSearch.Controls.Add(this.dgvFPYResult); + this.rpvpSearch.Image = ((System.Drawing.Image)(resources.GetObject("rpvpSearch.Image"))); + this.rpvpSearch.ItemSize = new System.Drawing.SizeF(46F, 46F); + this.rpvpSearch.Location = new System.Drawing.Point(49, 35); + this.rpvpSearch.Name = "rpvpSearch"; + this.rpvpSearch.Size = new System.Drawing.Size(1868, 972); + this.rpvpSearch.Text = " 查询界面"; + // + // pnlPage + // + this.pnlPage.Controls.Add(this.rddlPageRecorderCount); + this.pnlPage.Controls.Add(this.rbtnFirtstPage); + this.pnlPage.Controls.Add(this.rbtnLastPage); + this.pnlPage.Controls.Add(this.rbtnPrevPage); + this.pnlPage.Controls.Add(this.rbtnNextPage); + this.pnlPage.Controls.Add(this.label3); + this.pnlPage.Controls.Add(this.labSumRecorders); + this.pnlPage.Controls.Add(this.labSumPages); + this.pnlPage.Controls.Add(this.labCurrentPage); + this.pnlPage.Location = new System.Drawing.Point(29, 930); + this.pnlPage.Name = "pnlPage"; + this.pnlPage.Size = new System.Drawing.Size(1205, 42); + this.pnlPage.TabIndex = 177; + // + // rddlPageRecorderCount + // + this.rddlPageRecorderCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rddlPageRecorderCount.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlPageRecorderCount.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.rddlPageRecorderCount.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rddlPageRecorderCount.ForeColor = System.Drawing.Color.White; + radListDataItem1.Text = "20"; + radListDataItem2.Text = "50"; + radListDataItem3.Text = "100"; + radListDataItem4.Text = "200"; + this.rddlPageRecorderCount.Items.Add(radListDataItem1); + this.rddlPageRecorderCount.Items.Add(radListDataItem2); + this.rddlPageRecorderCount.Items.Add(radListDataItem3); + this.rddlPageRecorderCount.Items.Add(radListDataItem4); + this.rddlPageRecorderCount.Location = new System.Drawing.Point(718, 9); + this.rddlPageRecorderCount.Name = "rddlPageRecorderCount"; + // + // + // + this.rddlPageRecorderCount.RootElement.BorderHighlightColor = System.Drawing.Color.White; + this.rddlPageRecorderCount.RootElement.EnableBorderHighlight = true; + this.rddlPageRecorderCount.RootElement.HighlightColor = System.Drawing.Color.Red; + this.rddlPageRecorderCount.Size = new System.Drawing.Size(60, 27); + this.rddlPageRecorderCount.TabIndex = 177; + this.rddlPageRecorderCount.SelectedIndexChanged += new Telerik.WinControls.UI.Data.PositionChangedEventHandler(this.rddlPageRecorderCount_SelectedIndexChanged); + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlPageRecorderCount.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlPageRecorderCount.GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadDropDownListEditableAreaElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadDropDownTextBoxElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0))).Text = ""; + ((Telerik.WinControls.UI.RadDropDownTextBoxElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadDropDownTextBoxElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Hidden; + ((Telerik.WinControls.UI.RadTextBoxItem)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(3).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(3).GetChildAt(0))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0).GetChildAt(3).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).Image = null; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).RippleAnimationColor = System.Drawing.Color.Red; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).FocusBorderColor = System.Drawing.Color.DarkRed; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).HighlightColor = System.Drawing.Color.Red; + ((Telerik.WinControls.UI.RadDropDownListArrowButtonElement)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BoxStyle = Telerik.WinControls.BorderBoxStyle.SingleBorder; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(226)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.ArrowPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).Direction = Telerik.WinControls.ArrowDirection.Down; + ((Telerik.WinControls.Primitives.ArrowPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).ForeColor = System.Drawing.Color.Crimson; + ((Telerik.WinControls.Primitives.ArrowPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).RightToLeft = true; + ((Telerik.WinControls.Primitives.OverflowPrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3))).ShadowColor = System.Drawing.Color.Red; + ((Telerik.WinControls.Primitives.ImagePrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(4))).Image = ((System.Drawing.Image)(resources.GetObject("resource.Image"))); + ((Telerik.WinControls.Primitives.ImagePrimitive)(this.rddlPageRecorderCount.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(4))).ForeColor = System.Drawing.Color.Crimson; + // + // rbtnFirtstPage + // + this.rbtnFirtstPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbtnFirtstPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnFirtstPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.rbtnFirtstPage.ForeColor = System.Drawing.Color.White; + this.rbtnFirtstPage.Image = global::NSAnalysis.Properties.Resources.FirstPage; + this.rbtnFirtstPage.Location = new System.Drawing.Point(2, 8); + this.rbtnFirtstPage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.rbtnFirtstPage.Name = "rbtnFirtstPage"; + this.rbtnFirtstPage.Size = new System.Drawing.Size(65, 30); + this.rbtnFirtstPage.TabIndex = 68; + this.rbtnFirtstPage.Text = "首页"; + this.rbtnFirtstPage.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + this.rbtnFirtstPage.Click += new System.EventHandler(this.rbtnFirtstPage_Click); + this.rbtnFirtstPage.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnFirtstPage.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.FirstPage; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).ImageAlignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).DisplayStyle = Telerik.WinControls.DisplayStyle.ImageAndText; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnFirtstPage.GetChildAt(0))).Text = "首页"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnFirtstPage.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent; + // + // rbtnLastPage + // + this.rbtnLastPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbtnLastPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnLastPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.rbtnLastPage.ForeColor = System.Drawing.Color.White; + this.rbtnLastPage.Image = global::NSAnalysis.Properties.Resources.LastPage; + this.rbtnLastPage.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight; + this.rbtnLastPage.Location = new System.Drawing.Point(235, 9); + this.rbtnLastPage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.rbtnLastPage.Name = "rbtnLastPage"; + this.rbtnLastPage.Size = new System.Drawing.Size(65, 30); + this.rbtnLastPage.TabIndex = 71; + this.rbtnLastPage.Text = "末页"; + this.rbtnLastPage.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + this.rbtnLastPage.Click += new System.EventHandler(this.rbtnLastPage_Click); + this.rbtnLastPage.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnLastPage.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.LastPage; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).ImageAlignment = System.Drawing.ContentAlignment.MiddleRight; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).DisplayStyle = Telerik.WinControls.DisplayStyle.ImageAndText; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLastPage.GetChildAt(0))).Text = "末页"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLastPage.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent; + // + // rbtnPrevPage + // + this.rbtnPrevPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbtnPrevPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnPrevPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.rbtnPrevPage.ForeColor = System.Drawing.Color.White; + this.rbtnPrevPage.Image = global::NSAnalysis.Properties.Resources.PrevPage; + this.rbtnPrevPage.Location = new System.Drawing.Point(73, 8); + this.rbtnPrevPage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.rbtnPrevPage.Name = "rbtnPrevPage"; + this.rbtnPrevPage.Size = new System.Drawing.Size(75, 30); + this.rbtnPrevPage.TabIndex = 69; + this.rbtnPrevPage.Text = "上一页"; + this.rbtnPrevPage.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + this.rbtnPrevPage.Click += new System.EventHandler(this.rbtnPrevPage_Click); + this.rbtnPrevPage.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnPrevPage.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.PrevPage; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).ImageAlignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).DisplayStyle = Telerik.WinControls.DisplayStyle.ImageAndText; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnPrevPage.GetChildAt(0))).Text = "上一页"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnPrevPage.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent; + // + // rbtnNextPage + // + this.rbtnNextPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.rbtnNextPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnNextPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.rbtnNextPage.ForeColor = System.Drawing.Color.White; + this.rbtnNextPage.Image = global::NSAnalysis.Properties.Resources.NextPage; + this.rbtnNextPage.ImageAlignment = System.Drawing.ContentAlignment.MiddleRight; + this.rbtnNextPage.Location = new System.Drawing.Point(154, 8); + this.rbtnNextPage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.rbtnNextPage.Name = "rbtnNextPage"; + this.rbtnNextPage.Size = new System.Drawing.Size(75, 30); + this.rbtnNextPage.TabIndex = 70; + this.rbtnNextPage.Text = "下一页"; + this.rbtnNextPage.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + this.rbtnNextPage.Click += new System.EventHandler(this.rbtnNextPage_Click); + this.rbtnNextPage.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnNextPage.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.NextPage; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).ImageAlignment = System.Drawing.ContentAlignment.MiddleRight; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).DisplayStyle = Telerik.WinControls.DisplayStyle.ImageAndText; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnNextPage.GetChildAt(0))).Text = "下一页"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnNextPage.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.Transparent; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 11F); + this.label3.ForeColor = System.Drawing.Color.White; + this.label3.Location = new System.Drawing.Point(631, 13); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(89, 20); + this.label3.TabIndex = 75; + this.label3.Text = "每页条数:"; + // + // labSumRecorders + // + this.labSumRecorders.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labSumRecorders.AutoSize = true; + this.labSumRecorders.Font = new System.Drawing.Font("Segoe UI", 11F); + this.labSumRecorders.ForeColor = System.Drawing.Color.White; + this.labSumRecorders.Location = new System.Drawing.Point(504, 13); + this.labSumRecorders.Name = "labSumRecorders"; + this.labSumRecorders.Size = new System.Drawing.Size(121, 20); + this.labSumRecorders.TabIndex = 74; + this.labSumRecorders.Text = "总共 12234 记录"; + // + // labSumPages + // + this.labSumPages.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labSumPages.AutoSize = true; + this.labSumPages.Font = new System.Drawing.Font("Segoe UI", 11F); + this.labSumPages.ForeColor = System.Drawing.Color.White; + this.labSumPages.Location = new System.Drawing.Point(306, 13); + this.labSumPages.Name = "labSumPages"; + this.labSumPages.Size = new System.Drawing.Size(81, 20); + this.labSumPages.TabIndex = 73; + this.labSumPages.Text = "共 1234 页"; + // + // labCurrentPage + // + this.labCurrentPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.labCurrentPage.AutoSize = true; + this.labCurrentPage.Font = new System.Drawing.Font("Segoe UI", 11F); + this.labCurrentPage.ForeColor = System.Drawing.Color.White; + this.labCurrentPage.Location = new System.Drawing.Point(393, 13); + this.labCurrentPage.Name = "labCurrentPage"; + this.labCurrentPage.Size = new System.Drawing.Size(105, 20); + this.labCurrentPage.TabIndex = 72; + this.labCurrentPage.Text = "当前页:1223"; + // + // labSearchResult + // + this.labSearchResult.Anchor = System.Windows.Forms.AnchorStyles.None; + this.labSearchResult.AutoSize = true; + this.labSearchResult.BackColor = System.Drawing.Color.Transparent; + this.labSearchResult.Font = new System.Drawing.Font("Segoe UI", 12F); + this.labSearchResult.ForeColor = System.Drawing.Color.Red; + this.labSearchResult.Location = new System.Drawing.Point(417, 484); + this.labSearchResult.Name = "labSearchResult"; + this.labSearchResult.Size = new System.Drawing.Size(452, 21); + this.labSearchResult.TabIndex = 176; + this.labSearchResult.Text = "查询完毕,未查询到任何结果,请检查查询条件是否正确!"; + this.labSearchResult.Visible = false; + // + // radGroupBox1 + // + this.radGroupBox1.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radGroupBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.radGroupBox1.Controls.Add(this.rtbPartID); + this.radGroupBox1.Controls.Add(this.rbtSelectFPY); + this.radGroupBox1.Controls.Add(this.rbtnExportCSVReport); + this.radGroupBox1.Controls.Add(this.rdtpStartTime); + this.radGroupBox1.Controls.Add(this.rdtpEndTime); + this.radGroupBox1.Controls.Add(this.rbtnSearchMeaserData); + this.radGroupBox1.Controls.Add(this.radLabel15); + this.radGroupBox1.Controls.Add(this.radLabel1); + this.radGroupBox1.Controls.Add(this.radLabel11); + this.radGroupBox1.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radGroupBox1.ForeColor = System.Drawing.Color.White; + this.radGroupBox1.HeaderText = "查询条件"; + this.radGroupBox1.Location = new System.Drawing.Point(29, 29); + this.radGroupBox1.Name = "radGroupBox1"; + this.radGroupBox1.Size = new System.Drawing.Size(1807, 86); + this.radGroupBox1.TabIndex = 20; + this.radGroupBox1.Text = "查询条件"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox1.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(158)))), ((int)(((byte)(25)))), ((int)(((byte)(25))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.Black; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.Black; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).CustomFontSize = 10F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Opacity = 0.3D; + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox1.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.Aqua; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.Black; + // + // rtbPartID + // + this.rtbPartID.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rtbPartID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rtbPartID.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbPartID.ForeColor = System.Drawing.Color.White; + this.rtbPartID.Location = new System.Drawing.Point(183, 37); + this.rtbPartID.MaxLength = 50; + this.rtbPartID.Name = "rtbPartID"; + this.rtbPartID.Size = new System.Drawing.Size(192, 27); + this.rtbPartID.TabIndex = 1; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbPartID.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbPartID.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rbtSelectFPY + // + this.rbtSelectFPY.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtSelectFPY.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtSelectFPY.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtSelectFPY.ForeColor = System.Drawing.Color.White; + this.rbtSelectFPY.Image = global::NSAnalysis.Properties.Resources.search16; + this.rbtSelectFPY.Location = new System.Drawing.Point(1357, 28); + this.rbtSelectFPY.Name = "rbtSelectFPY"; + this.rbtSelectFPY.Size = new System.Drawing.Size(146, 40); + this.rbtSelectFPY.TabIndex = 8; + this.rbtSelectFPY.Text = "查询合格率"; + this.rbtSelectFPY.Click += new System.EventHandler(this.rbtSelectFPY_Click); + this.rbtSelectFPY.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtSelectFPY.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtSelectFPY.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.search16; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtSelectFPY.GetChildAt(0))).Text = "查询合格率"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtSelectFPY.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rbtnExportCSVReport + // + this.rbtnExportCSVReport.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtnExportCSVReport.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnExportCSVReport.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnExportCSVReport.ForeColor = System.Drawing.Color.White; + this.rbtnExportCSVReport.Image = global::NSAnalysis.Properties.Resources.export; + this.rbtnExportCSVReport.Location = new System.Drawing.Point(1584, 27); + this.rbtnExportCSVReport.Name = "rbtnExportCSVReport"; + this.rbtnExportCSVReport.Size = new System.Drawing.Size(144, 40); + this.rbtnExportCSVReport.TabIndex = 8; + this.rbtnExportCSVReport.Text = "导出CSV报告"; + this.rbtnExportCSVReport.Visible = false; + this.rbtnExportCSVReport.Click += new System.EventHandler(this.rbtnExportCSVReport_Click); + this.rbtnExportCSVReport.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnExportCSVReport.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnExportCSVReport.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.export; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnExportCSVReport.GetChildAt(0))).Text = "导出CSV报告"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnExportCSVReport.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rdtpStartTime + // + this.rdtpStartTime.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rdtpStartTime.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rdtpStartTime.ForeColor = System.Drawing.Color.White; + this.rdtpStartTime.Location = new System.Drawing.Point(545, 37); + this.rdtpStartTime.MinDate = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + this.rdtpStartTime.Name = "rdtpStartTime"; + this.rdtpStartTime.Size = new System.Drawing.Size(140, 27); + this.rdtpStartTime.TabIndex = 39; + this.rdtpStartTime.TabStop = false; + this.rdtpStartTime.Text = "2023年6月1日"; + this.rdtpStartTime.Value = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.rdtpStartTime.GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.rdtpStartTime.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderLeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadCheckBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadCheckmark)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.CheckPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).Text = "2023年6月1日"; + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadTextBoxItem)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpStartTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + // + // rdtpEndTime + // + this.rdtpEndTime.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rdtpEndTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rdtpEndTime.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rdtpEndTime.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rdtpEndTime.Location = new System.Drawing.Point(896, 37); + this.rdtpEndTime.MinDate = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + this.rdtpEndTime.Name = "rdtpEndTime"; + this.rdtpEndTime.Size = new System.Drawing.Size(140, 27); + this.rdtpEndTime.TabIndex = 38; + this.rdtpEndTime.TabStop = false; + this.rdtpEndTime.Text = "2023年6月1日"; + this.rdtpEndTime.Value = new System.DateTime(2023, 6, 1, 0, 0, 0, 0); + ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.rdtpEndTime.GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadDateTimePickerElement)(this.rdtpEndTime.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderLeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.StackLayoutElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadCheckBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadCheckmark)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.CheckPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).Text = "2023年6月1日"; + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + ((Telerik.WinControls.UI.RadMaskedEditBoxElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadTextBoxItem)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.LightVisualButtonElement)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rdtpEndTime.GetChildAt(0).GetChildAt(2).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + // + // rbtnSearchMeaserData + // + this.rbtnSearchMeaserData.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtnSearchMeaserData.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnSearchMeaserData.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rbtnSearchMeaserData.ForeColor = System.Drawing.Color.White; + this.rbtnSearchMeaserData.Image = global::NSAnalysis.Properties.Resources.search16; + this.rbtnSearchMeaserData.Location = new System.Drawing.Point(1142, 28); + this.rbtnSearchMeaserData.Name = "rbtnSearchMeaserData"; + this.rbtnSearchMeaserData.Size = new System.Drawing.Size(139, 40); + this.rbtnSearchMeaserData.TabIndex = 7; + this.rbtnSearchMeaserData.Text = "查询报告"; + this.rbtnSearchMeaserData.Click += new System.EventHandler(this.rbtnSearchMeaserData_Click); + this.rbtnSearchMeaserData.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnSearchMeaserData.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnSearchMeaserData.GetChildAt(0))).Image = global::NSAnalysis.Properties.Resources.search16; + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnSearchMeaserData.GetChildAt(0))).Text = "查询报告"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSearchMeaserData.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // radLabel15 + // + this.radLabel15.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel15.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel15.ForeColor = System.Drawing.Color.White; + this.radLabel15.Location = new System.Drawing.Point(800, 38); + this.radLabel15.Name = "radLabel15"; + this.radLabel15.Size = new System.Drawing.Size(94, 25); + this.radLabel15.TabIndex = 36; + this.radLabel15.Text = "结束时间:"; + // + // radLabel1 + // + this.radLabel1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel1.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel1.ForeColor = System.Drawing.Color.White; + this.radLabel1.Location = new System.Drawing.Point(449, 39); + this.radLabel1.Name = "radLabel1"; + this.radLabel1.Size = new System.Drawing.Size(94, 25); + this.radLabel1.TabIndex = 34; + this.radLabel1.Text = "开始时间:"; + // + // radLabel11 + // + this.radLabel11.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radLabel11.Font = new System.Drawing.Font("Segoe UI", 12F); + this.radLabel11.ForeColor = System.Drawing.Color.White; + this.radLabel11.Location = new System.Drawing.Point(92, 37); + this.radLabel11.Name = "radLabel11"; + this.radLabel11.Size = new System.Drawing.Size(94, 25); + this.radLabel11.TabIndex = 28; + this.radLabel11.Text = "车身编号:"; + // + // chartFPYLine + // + this.chartFPYLine.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.chartFPYLine.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea2.AxisX.LabelStyle.ForeColor = System.Drawing.Color.White; + chartArea2.AxisX.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MajorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; + chartArea2.AxisX.MajorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MinorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.MinorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisX.TitleForeColor = System.Drawing.Color.White; + chartArea2.AxisY.LabelStyle.ForeColor = System.Drawing.Color.White; + chartArea2.AxisY.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MajorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dash; + chartArea2.AxisY.MajorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MinorGrid.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.MinorTickMark.LineColor = System.Drawing.Color.White; + chartArea2.AxisY.TitleForeColor = System.Drawing.Color.White; + chartArea2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + chartArea2.Name = "ChartArea1"; + this.chartFPYLine.ChartAreas.Add(chartArea2); + this.chartFPYLine.Location = new System.Drawing.Point(1240, 127); + this.chartFPYLine.Name = "chartFPYLine"; + series2.BorderWidth = 3; + series2.ChartArea = "ChartArea1"; + series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; + series2.Color = System.Drawing.Color.Lime; + series2.MarkerSize = 9; + series2.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle; + series2.Name = "Series1"; + this.chartFPYLine.Series.Add(series2); + this.chartFPYLine.Size = new System.Drawing.Size(596, 517); + this.chartFPYLine.TabIndex = 77; + this.chartFPYLine.Text = "chartFPY"; + title2.Font = new System.Drawing.Font("微软雅黑", 12F); + title2.ForeColor = System.Drawing.Color.White; + title2.Name = "Title1"; + title2.Text = "合格率"; + this.chartFPYLine.Titles.Add(title2); + this.chartFPYLine.Visible = false; + // + // dgvSelectMeasureData + // + this.dgvSelectMeasureData.AllowUserToAddRows = false; + this.dgvSelectMeasureData.AllowUserToDeleteRows = false; + this.dgvSelectMeasureData.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.dgvSelectMeasureData.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.dgvSelectMeasureData.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvSelectMeasureData.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvSelectMeasureData.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + this.dgvSelectMeasureData.ColumnHeadersHeight = 37; + this.dgvSelectMeasureData.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Column2, + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2, + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn6, + this.dataGridViewTextBoxColumn7, + this.MeasureItemResult}); + this.dgvSelectMeasureData.EnableHeadersVisualStyles = false; + this.dgvSelectMeasureData.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); + this.dgvSelectMeasureData.Location = new System.Drawing.Point(30, 126); + this.dgvSelectMeasureData.Name = "dgvSelectMeasureData"; + this.dgvSelectMeasureData.ReadOnly = true; + this.dgvSelectMeasureData.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle5.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle5.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle5.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvSelectMeasureData.RowHeadersDefaultCellStyle = dataGridViewCellStyle5; + this.dgvSelectMeasureData.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 10F); + dataGridViewCellStyle6.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvSelectMeasureData.RowsDefaultCellStyle = dataGridViewCellStyle6; + this.dgvSelectMeasureData.RowTemplate.Height = 37; + this.dgvSelectMeasureData.Size = new System.Drawing.Size(1204, 805); + this.dgvSelectMeasureData.TabIndex = 174; + this.dgvSelectMeasureData.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.dgvSelectMeasureData_RowStateChanged); + // + // Column2 + // + this.Column2.DataPropertyName = "CarID"; + this.Column2.HeaderText = "车身编号"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + this.Column2.Width = 170; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.DataPropertyName = "MeasPointName"; + this.dataGridViewTextBoxColumn1.HeaderText = "测量点名称"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + this.dataGridViewTextBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn1.Width = 150; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.DataPropertyName = "DimensionName"; + this.dataGridViewTextBoxColumn2.HeaderText = "尺寸名"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.ReadOnly = true; + this.dataGridViewTextBoxColumn2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn2.Width = 80; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.DataPropertyName = "NormalValue"; + this.dataGridViewTextBoxColumn3.HeaderText = "理论值"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.ReadOnly = true; + this.dataGridViewTextBoxColumn3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.DataPropertyName = "LowerTolVal"; + this.dataGridViewTextBoxColumn4.HeaderText = "下公差"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.ReadOnly = true; + this.dataGridViewTextBoxColumn4.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.DataPropertyName = "UpperTolVal"; + this.dataGridViewTextBoxColumn5.HeaderText = "上公差"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.ReadOnly = true; + this.dataGridViewTextBoxColumn5.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.DataPropertyName = "MeasureValue"; + this.dataGridViewTextBoxColumn6.HeaderText = "实测值"; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.ReadOnly = true; + this.dataGridViewTextBoxColumn6.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn7 + // + this.dataGridViewTextBoxColumn7.DataPropertyName = "MeasureDate"; + this.dataGridViewTextBoxColumn7.HeaderText = "测量时间"; + this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; + this.dataGridViewTextBoxColumn7.ReadOnly = true; + this.dataGridViewTextBoxColumn7.Width = 190; + // + // MeasureItemResult + // + this.MeasureItemResult.DataPropertyName = "MeasureItemResult"; + this.MeasureItemResult.HeaderText = "结果"; + this.MeasureItemResult.Name = "MeasureItemResult"; + this.MeasureItemResult.ReadOnly = true; + this.MeasureItemResult.Width = 120; + // + // dgvFPYResult + // + this.dgvFPYResult.AllowUserToAddRows = false; + this.dgvFPYResult.AllowUserToDeleteRows = false; + this.dgvFPYResult.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.dgvFPYResult.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.dgvFPYResult.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvFPYResult.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle7.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvFPYResult.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; + this.dgvFPYResult.ColumnHeadersHeight = 37; + this.dgvFPYResult.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn9, + this.dataGridViewTextBoxColumn10, + this.dataGridViewTextBoxColumn11, + this.dataGridViewTextBoxColumn12, + this.dataGridViewTextBoxColumn13, + this.dataGridViewTextBoxColumn14, + this.dataGridViewTextBoxColumn16, + this.SMResult}); + this.dgvFPYResult.EnableHeadersVisualStyles = false; + this.dgvFPYResult.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); + this.dgvFPYResult.Location = new System.Drawing.Point(29, 126); + this.dgvFPYResult.Name = "dgvFPYResult"; + this.dgvFPYResult.ReadOnly = true; + this.dgvFPYResult.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle8.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle8.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvFPYResult.RowHeadersDefaultCellStyle = dataGridViewCellStyle8; + this.dgvFPYResult.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; + dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 10F); + dataGridViewCellStyle9.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle9.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvFPYResult.RowsDefaultCellStyle = dataGridViewCellStyle9; + this.dgvFPYResult.RowTemplate.Height = 37; + this.dgvFPYResult.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvFPYResult.Size = new System.Drawing.Size(1205, 798); + this.dgvFPYResult.TabIndex = 175; + this.dgvFPYResult.Visible = false; + this.dgvFPYResult.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.dgvFPYResult_RowStateChanged); + // + // dataGridViewTextBoxColumn9 + // + this.dataGridViewTextBoxColumn9.DataPropertyName = "CarID"; + this.dataGridViewTextBoxColumn9.HeaderText = "车身编号"; + this.dataGridViewTextBoxColumn9.Name = "dataGridViewTextBoxColumn9"; + this.dataGridViewTextBoxColumn9.ReadOnly = true; + this.dataGridViewTextBoxColumn9.Width = 200; + // + // dataGridViewTextBoxColumn10 + // + this.dataGridViewTextBoxColumn10.DataPropertyName = "SumMeasureItems"; + this.dataGridViewTextBoxColumn10.HeaderText = "总测量项"; + this.dataGridViewTextBoxColumn10.Name = "dataGridViewTextBoxColumn10"; + this.dataGridViewTextBoxColumn10.ReadOnly = true; + this.dataGridViewTextBoxColumn10.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn10.Width = 150; + // + // dataGridViewTextBoxColumn11 + // + this.dataGridViewTextBoxColumn11.DataPropertyName = "GoodMeasureItems"; + this.dataGridViewTextBoxColumn11.HeaderText = "合格测量项"; + this.dataGridViewTextBoxColumn11.Name = "dataGridViewTextBoxColumn11"; + this.dataGridViewTextBoxColumn11.ReadOnly = true; + this.dataGridViewTextBoxColumn11.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn12 + // + this.dataGridViewTextBoxColumn12.DataPropertyName = "NoGoodMeasureItems"; + this.dataGridViewTextBoxColumn12.HeaderText = "不合格测量项"; + this.dataGridViewTextBoxColumn12.Name = "dataGridViewTextBoxColumn12"; + this.dataGridViewTextBoxColumn12.ReadOnly = true; + this.dataGridViewTextBoxColumn12.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.dataGridViewTextBoxColumn12.Width = 110; + // + // dataGridViewTextBoxColumn13 + // + this.dataGridViewTextBoxColumn13.DataPropertyName = "RejectMeasureItems"; + this.dataGridViewTextBoxColumn13.HeaderText = "异常测量项"; + this.dataGridViewTextBoxColumn13.Name = "dataGridViewTextBoxColumn13"; + this.dataGridViewTextBoxColumn13.ReadOnly = true; + this.dataGridViewTextBoxColumn13.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn14 + // + this.dataGridViewTextBoxColumn14.DataPropertyName = "FPY"; + this.dataGridViewTextBoxColumn14.HeaderText = "合格率"; + this.dataGridViewTextBoxColumn14.Name = "dataGridViewTextBoxColumn14"; + this.dataGridViewTextBoxColumn14.ReadOnly = true; + this.dataGridViewTextBoxColumn14.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // dataGridViewTextBoxColumn16 + // + this.dataGridViewTextBoxColumn16.DataPropertyName = "MeasureDate"; + this.dataGridViewTextBoxColumn16.HeaderText = "测量时间"; + this.dataGridViewTextBoxColumn16.Name = "dataGridViewTextBoxColumn16"; + this.dataGridViewTextBoxColumn16.ReadOnly = true; + this.dataGridViewTextBoxColumn16.Width = 190; + // + // SMResult + // + this.SMResult.DataPropertyName = "Result"; + this.SMResult.HeaderText = "结果"; + this.SMResult.Name = "SMResult"; + this.SMResult.ReadOnly = true; + // + // rpvpSetup + // + this.rpvpSetup.Controls.Add(this.lpcToleranceSetup); + this.rpvpSetup.Controls.Add(this.lpcTestGetCarTye); + this.rpvpSetup.Controls.Add(this.lpcShowLog); + this.rpvpSetup.Controls.Add(this.lpcSoftwareSetup); + this.rpvpSetup.Controls.Add(this.lpcUploadIOTTest); + this.rpvpSetup.Controls.Add(this.lpcAboutSoftware); + this.rpvpSetup.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rpvpSetup.Image = ((System.Drawing.Image)(resources.GetObject("rpvpSetup.Image"))); + this.rpvpSetup.ItemSize = new System.Drawing.SizeF(46F, 46F); + this.rpvpSetup.Location = new System.Drawing.Point(49, 35); + this.rpvpSetup.Name = "rpvpSetup"; + this.rpvpSetup.Size = new System.Drawing.Size(1868, 972); + this.rpvpSetup.Text = " 软件设置"; + // + // lpcToleranceSetup + // + this.lpcToleranceSetup.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcToleranceSetup.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcToleranceSetup.ForeColor = System.Drawing.Color.White; + this.lpcToleranceSetup.LabelPoint = new System.Drawing.Point(3, 59); + this.lpcToleranceSetup.LabelText = "数据分发"; + this.lpcToleranceSetup.LabelTopImage = global::NSAnalysis.Properties.Resources.Config; + this.lpcToleranceSetup.Location = new System.Drawing.Point(168, 37); + this.lpcToleranceSetup.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcToleranceSetup.Name = "lpcToleranceSetup"; + this.lpcToleranceSetup.Size = new System.Drawing.Size(113, 85); + this.lpcToleranceSetup.TabIndex = 458; + // + // lpcTestGetCarTye + // + this.lpcTestGetCarTye.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcTestGetCarTye.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcTestGetCarTye.ForeColor = System.Drawing.Color.White; + this.lpcTestGetCarTye.LabelPoint = new System.Drawing.Point(3, 59); + this.lpcTestGetCarTye.LabelText = "获取车型测试"; + this.lpcTestGetCarTye.LabelTopImage = global::NSAnalysis.Properties.Resources.downloadCarType; + this.lpcTestGetCarTye.Location = new System.Drawing.Point(484, 37); + this.lpcTestGetCarTye.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcTestGetCarTye.Name = "lpcTestGetCarTye"; + this.lpcTestGetCarTye.Size = new System.Drawing.Size(113, 85); + this.lpcTestGetCarTye.TabIndex = 457; + this.lpcTestGetCarTye.Click += new System.EventHandler(this.lpcTestGetCarTye_Click); + // + // lpcShowLog + // + this.lpcShowLog.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcShowLog.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcShowLog.ForeColor = System.Drawing.Color.White; + this.lpcShowLog.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcShowLog.LabelText = "显示LOG"; + this.lpcShowLog.LabelTopImage = global::NSAnalysis.Properties.Resources.LOG; + this.lpcShowLog.Location = new System.Drawing.Point(662, 37); + this.lpcShowLog.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcShowLog.Name = "lpcShowLog"; + this.lpcShowLog.Size = new System.Drawing.Size(86, 85); + this.lpcShowLog.TabIndex = 456; + this.lpcShowLog.Click += new System.EventHandler(this.lpcShowLog_Click); + // + // lpcSoftwareSetup + // + this.lpcSoftwareSetup.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcSoftwareSetup.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcSoftwareSetup.ForeColor = System.Drawing.Color.White; + this.lpcSoftwareSetup.LabelPoint = new System.Drawing.Point(3, 59); + this.lpcSoftwareSetup.LabelText = "软件设置"; + this.lpcSoftwareSetup.LabelTopImage = global::NSAnalysis.Properties.Resources.setupgreen32; + this.lpcSoftwareSetup.Location = new System.Drawing.Point(37, 37); + this.lpcSoftwareSetup.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcSoftwareSetup.Name = "lpcSoftwareSetup"; + this.lpcSoftwareSetup.Size = new System.Drawing.Size(86, 85); + this.lpcSoftwareSetup.TabIndex = 453; + this.lpcSoftwareSetup.Click += new System.EventHandler(this.lpcSoftwareSetup_Click); + // + // lpcUploadIOTTest + // + this.lpcUploadIOTTest.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcUploadIOTTest.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcUploadIOTTest.ForeColor = System.Drawing.Color.White; + this.lpcUploadIOTTest.LabelPoint = new System.Drawing.Point(3, 59); + this.lpcUploadIOTTest.LabelText = "上传IOT测试"; + this.lpcUploadIOTTest.LabelTopImage = global::NSAnalysis.Properties.Resources.upload; + this.lpcUploadIOTTest.Location = new System.Drawing.Point(326, 37); + this.lpcUploadIOTTest.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcUploadIOTTest.Name = "lpcUploadIOTTest"; + this.lpcUploadIOTTest.Size = new System.Drawing.Size(113, 85); + this.lpcUploadIOTTest.TabIndex = 451; + this.lpcUploadIOTTest.Click += new System.EventHandler(this.lpcUploadIOTTest_Click); + // + // lpcAboutSoftware + // + this.lpcAboutSoftware.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcAboutSoftware.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcAboutSoftware.ForeColor = System.Drawing.Color.White; + this.lpcAboutSoftware.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcAboutSoftware.LabelText = "关于软件"; + this.lpcAboutSoftware.LabelTopImage = global::NSAnalysis.Properties.Resources.About32; + this.lpcAboutSoftware.Location = new System.Drawing.Point(791, 37); + this.lpcAboutSoftware.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcAboutSoftware.Name = "lpcAboutSoftware"; + this.lpcAboutSoftware.Size = new System.Drawing.Size(86, 85); + this.lpcAboutSoftware.TabIndex = 450; + this.lpcAboutSoftware.Click += new System.EventHandler(this.lpcAboutSoftware_Click); + // + // tmSystem + // + this.tmSystem.Enabled = true; + this.tmSystem.Interval = 1000; + this.tmSystem.Tick += new System.EventHandler(this.tmSystem_Tick); + // + // tmReadNextsenseCSV + // + this.tmReadNextsenseCSV.Interval = 300; + this.tmReadNextsenseCSV.Tick += new System.EventHandler(this.tmReadNextsenseCSV_Tick); + // + // tmrReadPLCData + // + this.tmrReadPLCData.Interval = 300; + // + // tmrRefreshPLCStatus + // + this.tmrRefreshPLCStatus.Interval = 500; + // + // tmrHeartBeatConnect + // + this.tmrHeartBeatConnect.Interval = 1000; + // + // tmrWritePLCLive + // + this.tmrWritePLCLive.Interval = 1000; + // + // tmrMonitorDBToCreateReport + // + this.tmrMonitorDBToCreateReport.Interval = 1000; + this.tmrMonitorDBToCreateReport.Tick += new System.EventHandler(this.tmrMonitorDBToCreateReport_Tick); + // + // FormMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(1920, 1080); + this.Controls.Add(this.RPV); + this.Controls.Add(this.radStatusStrip1); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "FormMain"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "海克斯康间隙面差分析系统"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormMain_FormClosed); + this.Load += new System.EventHandler(this.FormMain_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radStatusStrip1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.RPV)).EndInit(); + this.RPV.ResumeLayout(false); + this.rpvpAnalysis.ResumeLayout(false); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel1.PerformLayout(); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvMeasureContent)).EndInit(); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel1.PerformLayout(); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbResult)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartResultPie)).EndInit(); + this.rpvpSearch.ResumeLayout(false); + this.rpvpSearch.PerformLayout(); + this.pnlPage.ResumeLayout(false); + this.pnlPage.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rddlPageRecorderCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnFirtstPage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnLastPage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnPrevPage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnNextPage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox1)).EndInit(); + this.radGroupBox1.ResumeLayout(false); + this.radGroupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPartID)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtSelectFPY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnExportCSVReport)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rdtpStartTime)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rdtpEndTime)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnSearchMeaserData)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartFPYLine)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectMeasureData)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvFPYResult)).EndInit(); + this.rpvpSetup.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private Telerik.WinControls.UI.RadStatusStrip radStatusStrip1; + private Telerik.WinControls.UI.RadLabelElement rleTimeText; + private Telerik.WinControls.UI.RadLabelElement rleTime; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator1; + private Telerik.WinControls.UI.RadLabelElement rlePLCText; + private Telerik.WinControls.UI.RadLabelElement rlePLCStatus; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator2; + private Telerik.WinControls.UI.RadLabelElement radLabelElement1; + private Telerik.WinControls.UI.RadLabelElement rlePLCHeart; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator3; + private Telerik.WinControls.UI.RadLabelElement rleMessageText; + public Telerik.WinControls.UI.RadLabelElement rleMessage; + public Telerik.WinControls.UI.RadPageView RPV; + public Telerik.WinControls.UI.RadPageViewPage rpvpAnalysis; + public Telerik.WinControls.UI.RadPageViewPage rpvpSetup; + private Telerik.WinControls.UI.RadPageViewPage rpvpSearch; + private Telerik.WinControls.UI.RadGroupBox radGroupBox1; + private Telerik.WinControls.UI.RadDateTimePicker rdtpStartTime; + private Telerik.WinControls.UI.RadDateTimePicker rdtpEndTime; + private Telerik.WinControls.UI.RadButton rbtnSearchMeaserData; + private Telerik.WinControls.UI.RadLabel radLabel15; + private Telerik.WinControls.UI.RadLabel radLabel1; + private Telerik.WinControls.UI.RadTextBox rtbPartID; + private Telerik.WinControls.UI.RadLabel radLabel11; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ListBox lbCSVFiles; + public System.Windows.Forms.DataGridView dgvMeasureContent; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.Label labResult; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label labResultPercent; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label labMeaTime; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label labNGCount; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label labOKCount; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label labVIN; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.DataVisualization.Charting.Chart chartResultPie; + private Telerik.WinControls.UI.RadButton rbtnExportCSVReport; + private System.Windows.Forms.DataVisualization.Charting.Chart chartFPYLine; + private System.Windows.Forms.Timer tmSystem; + private System.Windows.Forms.Timer tmReadNextsenseCSV; + private System.Windows.Forms.PictureBox pbResult; + private System.Windows.Forms.Label labRejectCount; + private System.Windows.Forms.Label label7; + public System.Windows.Forms.DataGridView dgvSelectMeasureData; + public System.Windows.Forms.DataGridView dgvFPYResult; + private Telerik.WinControls.UI.RadButton rbtSelectFPY; + private LabPictureControl lpcAboutSoftware; + private System.Windows.Forms.Label labSearchResult; + private System.Windows.Forms.Timer tmrReadPLCData; + private System.Windows.Forms.Timer tmrRefreshPLCStatus; + private System.Windows.Forms.Timer tmrHeartBeatConnect; + private System.Windows.Forms.Timer tmrWritePLCLive; + private System.Windows.Forms.Label labSumMeasureCount; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Panel pnlPage; + private Telerik.WinControls.UI.RadButton rbtnFirtstPage; + private Telerik.WinControls.UI.RadButton rbtnLastPage; + private Telerik.WinControls.UI.RadButton rbtnPrevPage; + private Telerik.WinControls.UI.RadDropDownList rddlPageRecorderCount; + private Telerik.WinControls.UI.RadButton rbtnNextPage; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label labSumRecorders; + private System.Windows.Forms.Label labSumPages; + private System.Windows.Forms.Label labCurrentPage; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn13; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn14; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn16; + private System.Windows.Forms.DataGridViewTextBoxColumn SMResult; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator4; + private Telerik.WinControls.UI.RadLabelElement radLabelElement2; + private Telerik.WinControls.UI.RadLabelElement rleReadCSVStatus; + private LabPictureControl lpcUploadIOTTest; + private System.Windows.Forms.Label labCarType; + private System.Windows.Forms.Label label24; + private LabPictureControl lpcShowLog; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasureItemResult; + private System.Windows.Forms.Timer tmrMonitorDBToCreateReport; + private Telerik.WinControls.UI.RadLabelElement radLabelElement3; + private Telerik.WinControls.UI.RadLabelElement rleReadDBStatus; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator5; + private System.Windows.Forms.DataGridViewTextBoxColumn DimensionID; + private System.Windows.Forms.DataGridViewTextBoxColumn DimensionName; + private System.Windows.Forms.DataGridViewTextBoxColumn NormalVal; + private System.Windows.Forms.DataGridViewTextBoxColumn LowerTolVal; + private System.Windows.Forms.DataGridViewTextBoxColumn UpperTolVal; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasureValue; + private System.Windows.Forms.DataGridViewTextBoxColumn MDate; + private System.Windows.Forms.DataGridViewTextBoxColumn MResult; + private LabPictureControl lpcTestGetCarTye; + private LabPictureControl lpcSoftwareSetup; + private LabPictureControl lpcToleranceSetup; + } +} diff --git a/Analysis/FormMain.resx b/Analysis/FormMain.resx new file mode 100644 index 0000000..26553b0 --- /dev/null +++ b/Analysis/FormMain.resx @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAYCAYAAADtaU2/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AkVCAAngM/SOwAAAoNJREFU + SEu1lsvLTWEUh7cIJQbEwIRipoSRiRiIAf4AxcB1YGJgIkWhFBHKyOQrA5JigmKipIQJGZCJWwauySWX + iOf5etfu/XbrHMftV0/tvd61fr/O2e9+z2kG1GRYAUfgGjyFtwWvrblmj71/rSmwGa7Ce/jxC+yx1xln + f1ujYDlo8h26AbdhS8Hr7rozzuqh10AaC9vgNXQN5Q0shpDX1rJePfTSs69s2A1fIDOS+zANQlPBWtYr + X0HPvuFbIUJvwTG4At9KTd7BKgh5bS3W7XXGWT2s6al3Kr+yF2DjdZgByl16DsJYHsK+gtf1mr2xs/XQ + y7reS2CEJsEliOG9UGsjxFoXN5LPODbhBqilV/SaYVar1eCziIaTMAZC+yHWupyA+XC53Nsb0kOv6DXD + rGFNgIsQi/IRNFgK2+EV1OuBz24lqONgzV5nnNVDr3rGLDObRdDL+HNSq3kEM8Gv72apBb1mzTKz2VUK + f8J5GA0LoNe7nGFmc6Eq+CoMcjQGO0F5RGbrgZ71K2lm+/J72G+ChbAHPkA0ZnyCZaCGIOvRQy899TbD + upnN83Kzw5sid+MZqE26PIDp4I/BnVLrokf9dphh3cz22azxptJRqE0Cd7KGsZvnwkvIevWoZYZ1M5sn + 5eYseO6qOXAXapPgIIyHkNeHIOvVQy+ltxnWzWzPU08ejzcPhHul1uUxzIKurLmWzeilp95xuvnq9dwY + GQ6MOPKKJsINyGYyzGzWQ31c9sNPNRu66veJu5i1DoaH3KFZU4bPeByEvD4AWW+GWe3jOgxZU4ZH4SlY + C+7S06WW9WaY1WoePIOs8V9ihlmt/EPm3xP/SXja/A/0NoOspvkJxD7h7QqkS00AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAAUAAAAECAYAAABGM/VAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAACFJREFUGFdjEHXq/o+OGf4DAbIACDCAAEwCLgADCAEGBgDP4STWpID5ywAAAABJ + RU5ErkJggg== + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AEGATc06Xu77gAAAihJREFU + WEft1j1rFUEUgOH1IwYLCzEKSSAQVLBRkkZ/gEYs468w1iJoY6ud2gqKIfEXWAh2GhNrP8DYRcEETaNi + YSHq+152YLKe3J1ELiLcAw8sO2fO7MfM7Fb96Mf/GIPYj0MYrXnsOdt6EgdwGlcwjwW8wErNY8/ZZo65 + 9vnrGMclLOIzfhUy1z72tcaWYx8uwDv7iWiQEva1hrWsWRSHMYfviIomX7FW8zjKSaxlTWt3jUk8RVQk + ccDbOIcjNY89Z1vUJ7H2BMI4jueIOiYvcRY7sAvOfnls2GZO1Dd5hmPYEMN4hKhD4t05gOFd3MNy7S58 + eoY5bU/iIRyzEwO4jrbJdgs7YVxEc468wkkY5uZtTY51A3tQnccnRInJF5xBir24hm/I8+5jN8y1T97W + 5JiO3VmvUUJuFc5g372PbgRHcQc/kPLe4CBc+/bJa0Qcu1rKTmzGYhZ1d3uCD3iPj8hfnRfgpCy9AFdF + 8Stwe3W+uN1GOZpF6StYxzQ6E8EJ0TYJb8I4hddotnvONsPcZntuwyQ0fK8ujSg5cWlNwXDJufTe1vJl + aM6WlmEKNwc3iahD4iaTLiLaiGxr24iceH9sRClO4DGijomTy3Xe3Io91zbxrO0YXWMMTqaSj5EDquRj + ZE1rF4Wfzhn4ONsmZzf2tYa1ij/HebieL2O7PyT23dYPSTOG4D5wFQ/g75d39q7msedsM8dc+/Qk/slP + aT/60aOoqt9oGogfMlqpmgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AQOAhEQGbTF3QAABH1JREFU + WEe111mobmMcx/FtnnKcDJlFiDLPM+UgQy50RIZSCDdKUUKIQm7IkIgoKQ7HPAtlvJFypSjKPBbKPP8+ + 613/09rLepe95fzqe1rredd+hv/4nJn/oLXDHeHP8FfLH+H+sF5Y7jo2/BK+Dx+0eP49LA7/m1YJq00e + Z+mS4NS3hc1abmzHrg59rdoyL+0floanw6mhNrJCuC9Y7CwDrU4Jxh4PKxmIHODE8FQwfniYkw4I7wYT + 4tdwe9gu7BHeDj+Fg0PJ+HfhvbBf2DrcHHxX83wcjg6jcvJ3Qp3mivB5+87X9fxG2CCUFoZXgt++CO+3 + z1+GK4O5vNvEkWFQTMbsPvQHGwdikWeC03wdHgoHhb72CtzzVfg5vBgODbRJeCyYm0uGYqsZtJCPnLwr + Jzww7BrGAsohdgm+XddARxcGcz8fVjcwJAHH558F7hjTgrBlyzoGRrRb4MLfwhkGpokVBJydsoaT97Vj + uCow6Ustj7ZjfutrrVCuvSesEUYl2u2Wz5myJL1OD8+FywKfb9Gye1Af/HZ2qFSkfYNCJThZYlTyXEqJ + dgHH5yWLvxz2bN4m324YBOuKBiIWeCSc07xNtH34JHwTBK+/myW1XXm9OIhiec5cD4YKOBM7XS1uk3cH + qYcHQtWFHYJva/M2d2cwpxTXMy4Nx4UmUDUWtd0HYHp53k01/mV2svibwdhOwYKXh7dCpd0F4brJYyOm + fz38GGodAWnjTVfjI7VdeXWSbpER7QKOz5nPyS3elxhgtZXDzkEZ73bH9YOYOjPcGqxpI80/gk5TGZI0 + E+mCbaPA5E7el+B9LZjHARScrcKQfGPNOW9A8NmAgLMBZu9rm/Bq2DzYwJNh2gY2Dcs24DLBHDeEkwMf + d/NfkZHn/Cig+K3ioavzg3xXDW3w2dB1pXmk60nh+rDMBaLSZcILdDUmr4gnPudjOiQIuIsCszu5xQXm + okDnhZsmj41s6IVg7lrHmg7WBMrx4ZrwRKhOdm9wGqo0rEon2gUcn3OJk9fi2wbf7t28TaxW1fXDIDau + DSeEf1zhRLAeoI3qaqK5pMI9HMr/vhU3fF4btfiScG7zNhEracPfhsOCvxuVywQraKn9UqzCOZ08lwl8 + LL1sitn53eLdUuxAPwQNbqhXzJKTuMkwl37eb6kkGAWRPBfp3GZhPi+zd6XS1oXkrjB4Fyi5w6mEXFBV + bZr4T5qhG+1DsjH9QKs/zcCQ1H0BYqeuUV1pqfsEjaUaz5D8xufuhU7eVd2mp15IbIA5faT01pVMUxHl + 8tYpNJZulyyJA9H+UeDzKt+0ZrglmJvrprrhiCBifShHXaOqYnGLlupZYxF8Jf1CnvtNtAs4zzasy9bi + n4ajwqiOCbUJ6FpuMoJPh9RSdbVuhqhwiow8l2qiXcDxec1jcW1/TrJL8eBU7nB1jdINlWITdu92yqsx + f1N5zswCjs+Z/V9P3pcJhoLFZcJiWqpCpLFIS2MqXF/mGE29+cpNhlsEpfiAZ7VdeV3uUpzKDV0E7Tz/ + ez4z8zeeNDGa23P9IwAAAABJRU5ErkJggg== + + + + 17, 17 + + + 127, 14 + + + 310, 14 + + + 463, 14 + + + 640, 18 + + + 821, 18 + + + 970, 18 + + + 61 + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/HexagonTransparent.ico b/Analysis/HexagonTransparent.ico new file mode 100644 index 0000000..7acfd2f Binary files /dev/null and b/Analysis/HexagonTransparent.ico differ diff --git a/Analysis/Images/1024B-2.png b/Analysis/Images/1024B-2.png new file mode 100644 index 0000000..a157cda Binary files /dev/null and b/Analysis/Images/1024B-2.png differ diff --git a/Analysis/Images/3011G.png b/Analysis/Images/3011G.png new file mode 100644 index 0000000..cd925d4 Binary files /dev/null and b/Analysis/Images/3011G.png differ diff --git a/Analysis/Images/3011NG.png b/Analysis/Images/3011NG.png new file mode 100644 index 0000000..d13fbf3 Binary files /dev/null and b/Analysis/Images/3011NG.png differ diff --git a/Analysis/Images/3011OK.png b/Analysis/Images/3011OK.png new file mode 100644 index 0000000..4cd1fae Binary files /dev/null and b/Analysis/Images/3011OK.png differ diff --git a/Analysis/Images/3011Y.png b/Analysis/Images/3011Y.png new file mode 100644 index 0000000..6cf077e Binary files /dev/null and b/Analysis/Images/3011Y.png differ diff --git a/Analysis/Images/Dashboard.png b/Analysis/Images/Dashboard.png new file mode 100644 index 0000000..d0a948d Binary files /dev/null and b/Analysis/Images/Dashboard.png differ diff --git a/Analysis/Images/FirstPage.png b/Analysis/Images/FirstPage.png new file mode 100644 index 0000000..df11894 Binary files /dev/null and b/Analysis/Images/FirstPage.png differ diff --git a/Analysis/Images/LastPage.png b/Analysis/Images/LastPage.png new file mode 100644 index 0000000..3bdcd59 Binary files /dev/null and b/Analysis/Images/LastPage.png differ diff --git a/Analysis/Images/NextPage.png b/Analysis/Images/NextPage.png new file mode 100644 index 0000000..caab1ba Binary files /dev/null and b/Analysis/Images/NextPage.png differ diff --git a/Analysis/Images/PrevPage.png b/Analysis/Images/PrevPage.png new file mode 100644 index 0000000..14e194b Binary files /dev/null and b/Analysis/Images/PrevPage.png differ diff --git a/Analysis/Images/Search32.png b/Analysis/Images/Search32.png new file mode 100644 index 0000000..7a664ea Binary files /dev/null and b/Analysis/Images/Search32.png differ diff --git a/Analysis/Images/cncmachine32.png b/Analysis/Images/cncmachine32.png new file mode 100644 index 0000000..ac7dc5f Binary files /dev/null and b/Analysis/Images/cncmachine32.png differ diff --git a/Analysis/Images/export.png b/Analysis/Images/export.png new file mode 100644 index 0000000..74be374 Binary files /dev/null and b/Analysis/Images/export.png differ diff --git a/Analysis/Images/eyes32.png b/Analysis/Images/eyes32.png new file mode 100644 index 0000000..ffd2649 Binary files /dev/null and b/Analysis/Images/eyes32.png differ diff --git a/Analysis/Images/setup32.png b/Analysis/Images/setup32.png new file mode 100644 index 0000000..0988b9c Binary files /dev/null and b/Analysis/Images/setup32.png differ diff --git a/Analysis/Images/wnull.png b/Analysis/Images/wnull.png new file mode 100644 index 0000000..36905ba Binary files /dev/null and b/Analysis/Images/wnull.png differ diff --git a/Analysis/LabPictureControl.cs b/Analysis/LabPictureControl.cs new file mode 100644 index 0000000..861858b --- /dev/null +++ b/Analysis/LabPictureControl.cs @@ -0,0 +1,82 @@ +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; + +namespace UserControlClass +{ + public partial class LabPictureControl : UserControl + { + public LabPictureControl() + { + InitializeComponent(); + } + + /// + /// 添加LabelText属性,可以对labelText进行设置 + /// + public string LabelText + { + get { return labText.Text; } + set { labText.Text = value; } + } + + /// + /// 上面Label的图片图片连接 + /// + public Image LabelTopImage + { + get { return labPicture.Image; } + set { labPicture.Image = value; } + } + + /// + /// 文字位置坐标 + /// + public Point LabelPoint + { + get { return labText.Location; } + set { labText.Location = value; } + } + + private void labPicture_MouseHover(object sender, EventArgs e) + { + LabPictureControl lpc = (LabPictureControl)(sender as Label).Parent; + lpc.BackColor = Color.FromArgb(0, 151, 186); + } + + private void labPicture_MouseLeave(object sender, EventArgs e) + { + LabPictureControl lpc = (LabPictureControl)(sender as Label).Parent; + lpc.BackColor = Color.FromArgb(19, 46, 53); + } + + private void labText_MouseHover(object sender, EventArgs e) + { + LabPictureControl lpc = (LabPictureControl)(sender as Label).Parent; + lpc.BackColor = Color.FromArgb(0, 151, 186); + } + + private void labText_MouseLeave(object sender, EventArgs e) + { + LabPictureControl lpc = (LabPictureControl)(sender as Label).Parent; + lpc.BackColor = Color.FromArgb(19, 46, 53); + } + + private void LabPictureControl_MouseHover(object sender, EventArgs e) + { + LabPictureControl lpc = sender as LabPictureControl; + lpc.BackColor = Color.FromArgb(0, 151, 186); + } + + private void LabPictureControl_MouseLeave(object sender, EventArgs e) + { + LabPictureControl lpc = sender as LabPictureControl; + lpc.BackColor = Color.FromArgb(19, 46, 53); + } + } +} \ No newline at end of file diff --git a/Analysis/LabPictureControl.designer.cs b/Analysis/LabPictureControl.designer.cs new file mode 100644 index 0000000..9899bbd --- /dev/null +++ b/Analysis/LabPictureControl.designer.cs @@ -0,0 +1,84 @@ +namespace UserControlClass +{ + public partial class LabPictureControl + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.labText = new System.Windows.Forms.Label(); + this.labPicture = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // labText + // + this.labText.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.labText.Location = new System.Drawing.Point(2, 59); + this.labText.Name = "labText"; + this.labText.Size = new System.Drawing.Size(83, 25); + this.labText.TabIndex = 1; + this.labText.Text = "添加抽屉"; + this.labText.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.labText.MouseLeave += new System.EventHandler(this.labText_MouseLeave); + this.labText.MouseHover += new System.EventHandler(this.labText_MouseHover); + // + // labPicture + // + this.labPicture.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labPicture.Location = new System.Drawing.Point(0, 3); + this.labPicture.Name = "labPicture"; + this.labPicture.Padding = new System.Windows.Forms.Padding(17, 21, 17, 21); + this.labPicture.Size = new System.Drawing.Size(86, 54); + this.labPicture.TabIndex = 0; + this.labPicture.MouseLeave += new System.EventHandler(this.labPicture_MouseLeave); + this.labPicture.MouseHover += new System.EventHandler(this.labPicture_MouseHover); + // + // LabPictureControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.Controls.Add(this.labText); + this.Controls.Add(this.labPicture); + this.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.ForeColor = System.Drawing.Color.White; + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "LabPictureControl"; + this.Size = new System.Drawing.Size(86, 85); + this.MouseLeave += new System.EventHandler(this.LabPictureControl_MouseLeave); + this.MouseHover += new System.EventHandler(this.LabPictureControl_MouseHover); + this.ResumeLayout(false); + + } + + #endregion + + public System.Windows.Forms.Label labPicture; + public System.Windows.Forms.Label labText; + } +} diff --git a/Analysis/LabPictureControl.resx b/Analysis/LabPictureControl.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Analysis/LabPictureControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Analysis/Model/Model/TMeasureDataModel.cs b/Analysis/Model/Model/TMeasureDataModel.cs new file mode 100644 index 0000000..2a2e6b1 --- /dev/null +++ b/Analysis/Model/Model/TMeasureDataModel.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class TMeasureDataModel + { + /// + /// Id + /// + public int? Id { get; set; } + + /// + /// 车身ID + /// + public string CarID { get; set; } + /// + /// 车身类型 + /// + public string CarType{ get; set; } + /// + /// 测量点名称 + /// + public string MeasPointName { get; set; } + + /// + /// 测点尺寸名称:F面差 G间隙 + /// + public string DimensionName { get; set; } + + /// + /// 测量值 + /// + public string MeasureValue { get; set; } + + /// + /// 测量结果 :Good NoGood Rejected + /// + public string MeasureItemResult { get; set; } + + /// + /// 标准值 + /// + public string NormalValue { get; set; } + + /// + /// 测量时间 + /// + public string MeasureDate { get; set; } + + /// + /// 下公差 + /// + public string LowerTolVal { get; set; } + + /// + /// 上公差 + /// + public string UpperTolVal { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + } +} \ No newline at end of file diff --git a/Analysis/Model/Model/TMeasureResultModel.cs b/Analysis/Model/Model/TMeasureResultModel.cs new file mode 100644 index 0000000..3f0e375 --- /dev/null +++ b/Analysis/Model/Model/TMeasureResultModel.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class TMeasureResultModel + { + /// + /// Id + /// + public int? Id { get; set; } + + /// + /// 车身ID + /// + public string CarID { get; set; } + /// + /// 车身类型 + /// + public string CarType { get; set; } + /// + /// SumMeasureItems 总测量项数量 + /// + public int? SumMeasureItems { get; set; } + + /// + /// GoodMeasureItems + /// + public int? GoodMeasureItems { get; set; } + + /// + /// NoGoodMeasureItems + /// + public int? NoGoodMeasureItems { get; set; } + + /// + /// RejectMeasureItems + /// + public int? RejectMeasureItems { get; set; } + + /// + /// FPY 合格率 + /// + public string FPY { get; set; } + + /// + /// MeasureDate 测量时间 + /// + public string MeasureDate { get; set; } + + /// + /// Result:测量总结果:1:OK 2:NG + /// + public int? Result { get; set; } + + /// + /// Remark 备注 + /// + public string Remark { get; set; } + } +} \ No newline at end of file diff --git a/Analysis/Model/Model/TToleranceModel.cs b/Analysis/Model/Model/TToleranceModel.cs new file mode 100644 index 0000000..e81797f --- /dev/null +++ b/Analysis/Model/Model/TToleranceModel.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class TToleranceModel + { + /// + /// Id + /// + public int? Id { get; set; } + + /// + /// 车身类型 + /// + public string CarType { get; set; } + + /// + /// MeasurePointName + /// + public string MeasurePointName { get; set; } + + /// + /// DimensionName + /// + public string DimensionName { get; set; } + + /// + /// TolLower + /// + public double TolLower { get; set; } + + /// + /// TolUpper + /// + public double TolUpper { get; set; } + + /// + /// Remark 备注 + /// + public string Remark { get; set; } + + /// + /// CreateTime 测量时间 + /// + public string CreateTime { get; set; } + } +} \ No newline at end of file diff --git a/Analysis/Model/SQLHelper.cs b/Analysis/Model/SQLHelper.cs new file mode 100644 index 0000000..a703f7c --- /dev/null +++ b/Analysis/Model/SQLHelper.cs @@ -0,0 +1,317 @@ + +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace DAL +{ + public class SQLHelper + { + private static SqlConnection conn = null; + private static SqlCommand cmd = null; + private static SqlDataReader sdr = null; + public static string connStr = ""; + + public static int iFlag = 0; + + private static SqlConnection GetConn() + { + conn = new SqlConnection(connStr); + if (conn.State == ConnectionState.Closed) + { + try + { + conn.Open(); + } + catch (Exception ex) + { + if (iFlag == 0) + { + iFlag++;//必须放在前面,这样才起左右,放在后面,不会赋值 如果不点击确定的话 + + //MyBase.TraceWriteLine(" 数据库打开连接失败" +ex.ToString()); + MessageBox.Show("数据库打开连接失败,请检查数据库是否正确连接!原因:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + return conn; + } + } + return conn; + } + + #region 执行不带参数的增删改SQL语句或存储过程 返回int类型 返回受影响的行数 + + /// + /// 执行不带参数的增删改SQL语句或存储过程 返回int类型 返回受影响的行数 + /// + /// 增删改SQL语句或存储过程 + /// 命令类型 + /// 返回受影响的行数 + public static int ExecuteNonQuery(string cmdText, CommandType ct) + { + int res = 0; + try + { + cmd = new SqlCommand(cmdText, GetConn()); + cmd.CommandType = ct; + res = cmd.ExecuteNonQuery(); //返回受影响的行数 + } + catch (Exception ex) + { + throw ex; + } + finally + { + if (conn.State == ConnectionState.Open) + { + conn.Close(); + } + } + return res; + } + + #endregion 执行不带参数的增删改SQL语句或存储过程 返回int类型 返回受影响的行数 + + #region 执行带参数的增删改SQL语句或存储过程 返回int类型 返回受影响的行数 + + /// + /// 执行带参数的增删改SQL语句或存储过程 返回int类型 返回受影响的行数 + /// + /// 增删改SQL语句或存储过程 + /// 命令类型 + /// 返回受影响的行数 + public static int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct) + { + int res = 0; + + using (cmd = new SqlCommand(cmdText, GetConn())) + { + cmd.CommandType = ct; + cmd.Parameters.AddRange(paras); + res = cmd.ExecuteNonQuery(); + } + return res; + } + + #endregion 执行带参数的增删改SQL语句或存储过程 返回int类型 返回受影响的行数 + + #region 执行不带参数的查询SQL语句或存储过程 返回DataTable类型 + + /// + /// 执行不带参数的查询SQL语句或存储过程 返回DataTable类型 + /// + /// 查询SQL语句或存储过程 + /// 命令类型 + /// DataTable型 + public static DataTable ExecuteQuery(string cmdText, CommandType ct) + { + DataTable dt = new DataTable(); + cmd = new SqlCommand(cmdText, GetConn()); + cmd.CommandType = ct; + using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) + { + dt.Load(sdr); + } + return dt; + } + + #endregion 执行不带参数的查询SQL语句或存储过程 返回DataTable类型 + + #region 执行带参数的查询SQL语句或存储过程 返回DataTable类型 + + /// + /// 执行带参数的查询SQL语句或存储过程 返回DataTable类型 + /// + /// 查询SQL语句或存储过程 + /// 参数集合 + /// 命令类型 + /// DataTable型 + public static DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct) + { + DataTable dt = new DataTable(); + cmd = new SqlCommand(cmdText, GetConn()); + cmd.CommandType = ct; + cmd.Parameters.AddRange(paras); + using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) + { + dt.Load(sdr); + } + return dt; + } + + #endregion 执行带参数的查询SQL语句或存储过程 返回DataTable类型 + + /// + /// 执行SQL语句并返回DataSet + /// + /// SQL语句 + /// + public static DataSet ExecuteDs(String Sqlstr) + { + using (SqlDataAdapter da = new SqlDataAdapter(Sqlstr, GetConn())) + { + DataSet ds = new DataSet(); + da.Fill(ds); + return ds; + } + } + + /// + /// 构建 SqlCommand 对象(用来返回一个结果集,而不是一个整数值) + /// + /// 数据库连接 + /// 存储过程名 + /// 存储过程参数 + /// SqlCommand + private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, SqlParameter[] parameters) + { + SqlCommand command = new SqlCommand(storedProcName, connection); + command.CommandType = CommandType.StoredProcedure; + foreach (SqlParameter parameter in parameters) + { + if (parameter != null) + { + // 检查未分配值的输出参数,将其分配以DBNull.Value. + if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null)) + { + parameter.Value = DBNull.Value; + } + command.Parameters.Add(parameter); + } + } + + return command; + } + + /// + /// 执行存储过程 + /// + /// 存储过程名 + /// 存储过程参数 + /// DataSet结果中的表名 + /// DataSet + public static DataSet RunProcedure(string storedProcName, SqlParameter[] parameters, string tableName) + { + using (SqlConnection connection = new SqlConnection(connStr)) + { + DataSet dataSet = new DataSet(); + connection.Open(); + SqlDataAdapter sqlDA = new SqlDataAdapter(); + sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters); + sqlDA.Fill(dataSet, tableName); + connection.Close(); + return dataSet; + } + } + + #region 使用SqlBulkCopy插入测量数据 + + /// + /// 要插入的数据表的结构,与函数内部定义的映射表要一模一样 + /// + /// 要插入的数据表 + public static int InsertMeasureDataToDB(DataTable InsertDT) + { + int iResult = 1; + using (SqlBulkCopy bulkCopy = new SqlBulkCopy(GetConn())) + { + try + { + bulkCopy.DestinationTableName = "TMeasureData";//要插入的表的表明,创造映射关系,比下面的直接写表名称 更加灵活 + bulkCopy.ColumnMappings.Add("CarID", "CarID");//映射字段名 DataTable列名 ,数据库 对应的列名 + bulkCopy.ColumnMappings.Add("CarType", "CarType");//映射字段名 DataTable列名 ,数据库 对应的列名 + bulkCopy.ColumnMappings.Add("MeasPointName", "MeasPointName"); + bulkCopy.ColumnMappings.Add("DimensionName", "DimensionName"); + bulkCopy.ColumnMappings.Add("NormalValue", "NormalValue"); + bulkCopy.ColumnMappings.Add("LowerTolVal", "LowerTolVal"); + bulkCopy.ColumnMappings.Add("UpperTolVal", "UpperTolVal"); + bulkCopy.ColumnMappings.Add("MeasureValue", "MeasureValue"); + bulkCopy.ColumnMappings.Add("MeasureItemResult", "MeasureItemResult"); + bulkCopy.ColumnMappings.Add("MeasureDate", "MeasureDate"); + bulkCopy.ColumnMappings.Add("Remark", "Remark"); + bulkCopy.WriteToServer(InsertDT); + } + catch (Exception ex) + { + MessageBox.Show("批量插入测量数据到数据库失败!原因:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); + iResult = -1; + } + } + return iResult; + } + + + #endregion 使用SqlBulkCopy插入测量数据 + + #region 使用SqlBulkCopy插入批量数据方法 + + /// + /// 要插入的数据表的结构,与函数内部定义的映射表要一模一样 + /// + /// 要插入的数据表 + public static void TWorkpieceListToSQLServer(DataTable InsertDT) + { + using (SqlBulkCopy bulkCopy = new SqlBulkCopy(GetConn())) + { + try + { + bulkCopy.DestinationTableName = "TWorkpieceList";//要插入的表的表明,创造映射关系,比下面的直接写表名称 更加灵活 + bulkCopy.ColumnMappings.Add("WorkpieceID", "WorkpieceID");//映射字段名 DataTable列名 ,数据库 对应的列名 + bulkCopy.ColumnMappings.Add("DrawerID", "DrawerID"); + bulkCopy.ColumnMappings.Add("WorkpieceType", "WorkpieceType"); + bulkCopy.ColumnMappings.Add("TrayType", "TrayType"); + bulkCopy.ColumnMappings.Add("WorkpieceStatus", "WorkpieceStatus"); + bulkCopy.ColumnMappings.Add("WorkpiecePos", "WorkpiecePos"); + bulkCopy.WriteToServer(InsertDT); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + finally + { + // Close the SqlDataReader. The SqlBulkCopy + // object is automatically closed at the end + // of the using block. + } + } + } + + #endregion 使用SqlBulkCopy插入批量数据方法 + + #region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 + + /// + /// 使用SqlBulkCopy将DataTable中的数据批量插入数据库中,用此函数,创建的InsertDataTable类型必须跟数据库中的类型,列数一模一样 + /// + /// 数据库中对应的表名 + /// 数据集 + public static void SqlBulkCopyInsert(string strDBTableName, DataTable InsertDataTable) + { + try + { + using (SqlBulkCopy sqlRevdBulkCopy = new SqlBulkCopy(GetConn()))//引用SqlBulkCopy + { + sqlRevdBulkCopy.DestinationTableName = strDBTableName;//数据库中对应的表名 + + sqlRevdBulkCopy.NotifyAfter = InsertDataTable.Rows.Count;//有几行数据 + + sqlRevdBulkCopy.WriteToServer(InsertDataTable);//数据导入数据库 + + sqlRevdBulkCopy.Close();//关闭连接 + } + } + catch (Exception ex) + { + Console.WriteLine("数据库处理出错,SqlBulkCopyInsert,原因:" + ex.Message); + throw (ex); + } + } + + #endregion 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 + } +} \ No newline at end of file diff --git a/Analysis/Model/SQLiteHelper.cs b/Analysis/Model/SQLiteHelper.cs new file mode 100644 index 0000000..43e78a6 --- /dev/null +++ b/Analysis/Model/SQLiteHelper.cs @@ -0,0 +1,758 @@ +using System; +using System.Linq; +using System.Data; +using System.Windows.Forms; +using System.Xml; +using System.IO; +using System.Text.RegularExpressions; +using System.Data.SQLite; + +namespace DAL +{ + public class SQLiteHelper + { + /// + /// Creates a new instance. The ctor is marked private since all members are static. + /// + private SQLiteHelper() + { + } + + public static SQLiteConnection m_dbConnection = null; + public static string strSQLiteDBPath = Application.StartupPath + "\\DataBase\\CheryAnalysisDB.db"; + public static string strSQLiteConnect = "Data Source=" + strSQLiteDBPath + ";Version=3;"; + public static int iFlag = 0; + + public static SQLiteConnection GetConn() + { + m_dbConnection = new SQLiteConnection(strSQLiteConnect); + if (m_dbConnection.State == ConnectionState.Closed) + { + try + { + m_dbConnection.Open(); + } + catch (Exception) + { + if (iFlag == 0) + { + MessageBox.Show("SQLite数据库打开连接失败,请检查数据库是否正确连接!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + iFlag++; + } + return m_dbConnection; + } + } + return m_dbConnection; + } + + /// + /// 返回查询结果 测试成功 + /// + /// 查询语句 + /// Datatable + public static DataTable ExecuteDataTable(string strSQL) + { + SQLiteCommand cmd = new SQLiteCommand(strSQL, GetConn()); + if (cmd.Connection.State == ConnectionState.Closed) + cmd.Connection.Open(); + DataSet ds = new DataSet(); + SQLiteDataAdapter da = new SQLiteDataAdapter(cmd); + da.Fill(ds); + da.Dispose(); + cmd.Connection.Close(); + cmd.Dispose(); + return ds.Tables[0]; + } + + /// + /// 执行 删除 修改 增加语句 + /// + /// 删除 修改 增加语句. + /// 返回受影响的行数 + public static int ExecuteNonQuery(string strSQL) + { + SQLiteCommand command = new SQLiteCommand(strSQL, GetConn()); + if (command.Connection.State == ConnectionState.Closed) + command.Connection.Open(); + + int result = command.ExecuteNonQuery(); + command.Connection.Close(); + command.Dispose(); + return result; + } + + #region 执行带参数的增删改SQL语句或存储过程 返回int类型 返回受影响的行数 + + /// + /// 执行带参数的增改SQL语句或存储过程 返回int类型 返回受影响的行数 测试成功, + /// + /// 增改SQL语句或存储过程 + /// 命令类型 + /// 返回受影响的行数 + public static int ExecuteNonQuery(string cmdText, SQLiteParameter[] paras, CommandType ct) + { + int res = 0; + SQLiteCommand cmd = null; + using (cmd = new SQLiteCommand(cmdText, GetConn())) + { + cmd.CommandType = ct; + cmd.Parameters.AddRange(paras); + res = cmd.ExecuteNonQuery(); + } + return res; + } + + #endregion 执行带参数的增删改SQL语句或存储过程 返回int类型 返回受影响的行数 + + public static DataSet ExecuteDataset(string strSQL) + { + SQLiteCommand cmd = new SQLiteCommand(strSQL, GetConn()); + if (cmd.Connection.State == ConnectionState.Closed) + cmd.Connection.Open(); + DataSet ds = new DataSet(); + SQLiteDataAdapter da = new SQLiteDataAdapter(cmd); + da.Fill(ds); + da.Dispose(); + cmd.Connection.Close(); + cmd.Dispose(); + return ds; + } + + /// + /// 批量插入 调用方法 参数传入Datatable + /// + /// + /// + /// + public static int ExecuteMutliQuery(string commandText, DataTable dtData) + { + int res = 0; + m_dbConnection = new SQLiteConnection(strSQLiteConnect); + if (m_dbConnection.State == ConnectionState.Closed) + m_dbConnection.Open(); + using (SQLiteTransaction dbTrans = m_dbConnection.BeginTransaction()) + { + try + { + foreach (DataRow row in dtData.Rows) + { + res += ExecuteNonQuery(dbTrans, commandText, row.ItemArray); + } + dbTrans.Commit(); + } + catch (Exception ex) + { + res = -1; + dbTrans.Rollback(); + throw ex; + } + finally + { + //Conn.Close(); + } + } + return res; + } + + // =====================================以下函数还未测试==================================== + /// + /// Creates the command. + /// + /// Connection. + /// Command text. + /// Command parameters. + /// SQLite Command + public static SQLiteCommand CreateCommand(SQLiteConnection connection, string commandText, params SQLiteParameter[] commandParameters) + { + SQLiteCommand cmd = new SQLiteCommand(commandText, connection); + if (commandParameters.Length > 0) + { + foreach (SQLiteParameter parm in commandParameters) + cmd.Parameters.Add(parm); + } + return cmd; + } + + /// + /// Creates the command. + /// + /// Connection string. + /// Command text. + /// Command parameters. + /// SQLite Command + public static SQLiteCommand CreateCommand(string connectionString, string commandText, params SQLiteParameter[] commandParameters) + { + SQLiteConnection cn = new SQLiteConnection(connectionString); + + SQLiteCommand cmd = new SQLiteCommand(commandText, cn); + + if (commandParameters.Length > 0) + { + foreach (SQLiteParameter parm in commandParameters) + cmd.Parameters.Add(parm); + } + return cmd; + } + + /// + /// Creates the parameter. + /// + /// Name of the parameter. + /// Parameter type. + /// Parameter value. + /// SQLiteParameter + public static SQLiteParameter CreateParameter(string parameterName, System.Data.DbType parameterType, object parameterValue) + { + SQLiteParameter parameter = new SQLiteParameter(); + parameter.DbType = parameterType; + parameter.ParameterName = parameterName; + parameter.Value = parameterValue; + return parameter; + } + + /// + /// Shortcut method to execute dataset from SQL Statement and object[] arrray of parameter values + /// + /// SQLite Connection string + /// SQL Statement with embedded "@param" style parameter names + /// object[] array of parameter values + /// + public static DataSet ExecuteDataSet(string connectionString, string commandText, object[] paramList) + { + SQLiteConnection cn = new SQLiteConnection(connectionString); + SQLiteCommand cmd = cn.CreateCommand(); + + cmd.CommandText = commandText; + if (paramList != null) + { + AttachParameters(cmd, commandText, paramList); + } + DataSet ds = new DataSet(); + if (cn.State == ConnectionState.Closed) + cn.Open(); + SQLiteDataAdapter da = new SQLiteDataAdapter(cmd); + da.Fill(ds); + da.Dispose(); + cmd.Dispose(); + cn.Close(); + return ds; + } + + /// + /// Shortcut method to execute dataset from SQL Statement and object[] arrray of parameter values + /// + /// Connection. + /// Command text. + /// Param list. + /// + public static DataSet ExecuteDataSet(SQLiteConnection cn, string commandText, object[] paramList) + { + SQLiteCommand cmd = cn.CreateCommand(); + + cmd.CommandText = commandText; + if (paramList != null) + { + AttachParameters(cmd, commandText, paramList); + } + DataSet ds = new DataSet(); + if (cn.State == ConnectionState.Closed) + cn.Open(); + SQLiteDataAdapter da = new SQLiteDataAdapter(cmd); + da.Fill(ds); + da.Dispose(); + cmd.Dispose(); + cn.Close(); + return ds; + } + + /// + /// Executes the dataset from a populated Command object. + /// + /// Fully populated SQLiteCommand + /// DataSet + + /// + /// Executes the dataset in a SQLite Transaction + /// + /// SQLiteTransaction. Transaction consists of Connection, Transaction, /// and Command, all of which must be created prior to making this method call. + /// Command text. + /// Sqlite Command parameters. + /// DataSet + /// user must examine Transaction Object and handle transaction.connection .Close, etc. + public static DataSet ExecuteDataset(SQLiteTransaction transaction, string commandText, params SQLiteParameter[] commandParameters) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rolled back or committed, please provide an open transaction.", "transaction"); + IDbCommand cmd = transaction.Connection.CreateCommand(); + cmd.CommandText = commandText; + foreach (SQLiteParameter parm in commandParameters) + { + cmd.Parameters.Add(parm); + } + if (transaction.Connection.State == ConnectionState.Closed) + transaction.Connection.Open(); + DataSet ds = ExecuteDataset(commandText); + return ds; + } + + /// + /// Executes the dataset with Transaction and object array of parameter values. + /// + /// SQLiteTransaction. Transaction consists of Connection, Transaction, /// and Command, all of which must be created prior to making this method call. + /// Command text. + /// object[] array of parameter values. + /// DataSet + /// user must examine Transaction Object and handle transaction.connection .Close, etc. + public static DataSet ExecuteDataset(SQLiteTransaction transaction, string commandText, object[] commandParameters) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rolled back or committed, please provide an open transaction.", "transaction"); + IDbCommand cmd = transaction.Connection.CreateCommand(); + cmd.CommandText = commandText; + AttachParameters((SQLiteCommand)cmd, cmd.CommandText, commandParameters); + if (transaction.Connection.State == ConnectionState.Closed) + transaction.Connection.Open(); + + DataSet ds = ExecuteDataset(commandText); + return ds; + } + + #region UpdateDataset + + /// + /// Executes the respective command for each inserted, updated, or deleted row in the DataSet. + /// + /// + /// e.g.: + /// UpdateDataset(conn, insertCommand, deleteCommand, updateCommand, dataSet, "Order"); + /// + /// A valid SQL statement to insert new records into the data source + /// A valid SQL statement to delete records from the data source + /// A valid SQL statement used to update records in the data source + /// The DataSet used to update the data source + /// The DataTable used to update the data source. + public static void UpdateDataset(SQLiteCommand insertCommand, SQLiteCommand deleteCommand, SQLiteCommand updateCommand, DataSet dataSet, string tableName) + { + if (insertCommand == null) throw new ArgumentNullException("insertCommand"); + if (deleteCommand == null) throw new ArgumentNullException("deleteCommand"); + if (updateCommand == null) throw new ArgumentNullException("updateCommand"); + if (tableName == null || tableName.Length == 0) throw new ArgumentNullException("tableName"); + + // Create a SQLiteDataAdapter, and dispose of it after we are done + using (SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter()) + { + // Set the data adapter commands + dataAdapter.UpdateCommand = updateCommand; + dataAdapter.InsertCommand = insertCommand; + dataAdapter.DeleteCommand = deleteCommand; + + // Update the dataset changes in the data source + dataAdapter.Update(dataSet, tableName); + + // Commit all the changes made to the DataSet + dataSet.AcceptChanges(); + } + } + + #endregion UpdateDataset + + /// + /// ShortCut method to return IDataReader + /// NOTE: You should explicitly close the Command.connection you passed in as + /// well as call Dispose on the Command after reader is closed. + /// We do this because IDataReader has no underlying Connection Property. + /// + /// SQLiteCommand Object + /// SQL Statement with optional embedded "@param" style parameters + /// object[] array of parameter values + /// IDataReader + public static IDataReader ExecuteReader(SQLiteCommand cmd, string commandText, object[] paramList) + { + if (cmd.Connection == null) + throw new ArgumentException("Command must have live connection attached.", "cmd"); + cmd.CommandText = commandText; + AttachParameters(cmd, commandText, paramList); + if (cmd.Connection.State == ConnectionState.Closed) + cmd.Connection.Open(); + IDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); + return rdr; + } + + /// + /// Shortcut to ExecuteNonQuery with SqlStatement and object[] param values + /// + /// SQLite Connection String + /// Sql Statement with embedded "@param" style parameters + /// object[] array of parameter values + /// + public static int ExecuteNonQuery(string connectionString, string commandText, params object[] paramList) + { + SQLiteConnection cn = new SQLiteConnection(connectionString); + SQLiteCommand cmd = cn.CreateCommand(); + cmd.CommandText = commandText; + AttachParameters(cmd, commandText, paramList); + if (cn.State == ConnectionState.Closed) + cn.Open(); + int result = cmd.ExecuteNonQuery(); + cmd.Dispose(); + cn.Close(); + + return result; + } + + public static int ExecuteNonQuery(SQLiteConnection cn, string commandText, params object[] paramList) + { + SQLiteCommand cmd = cn.CreateCommand(); + cmd.CommandText = commandText; + AttachParameters(cmd, commandText, paramList); + if (cn.State == ConnectionState.Closed) + cn.Open(); + int result = cmd.ExecuteNonQuery(); + cmd.Dispose(); + cn.Close(); + + return result; + } + + /// + /// Executes non-query sql Statment with Transaction + /// + /// SQLiteTransaction. Transaction consists of Connection, Transaction, /// and Command, all of which must be created prior to making this method call. + /// Command text. + /// Param list. + /// Integer + /// user must examine Transaction Object and handle transaction.connection .Close, etc. + public static int ExecuteNonQuery(SQLiteTransaction transaction, string commandText, params object[] paramList) + { + if (transaction == null) throw new ArgumentNullException("transaction"); + if (transaction != null && transaction.Connection == null) throw new ArgumentException("The transaction was rolled back or committed, please provide an open transaction.", "transaction"); + IDbCommand cmd = transaction.Connection.CreateCommand(); + cmd.CommandText = commandText; + AttachParameters((SQLiteCommand)cmd, cmd.CommandText, paramList); + if (transaction.Connection.State == ConnectionState.Closed) + transaction.Connection.Open(); + int result = cmd.ExecuteNonQuery(); + cmd.Dispose(); + return result; + } + + /// + /// Shortcut to ExecuteScalar with Sql Statement embedded params and object[] param values + /// + /// SQLite Connection String + /// SQL statment with embedded "@param" style parameters + /// object[] array of param values + /// + public static object ExecuteScalar(string connectionString, string commandText, params object[] paramList) + { + SQLiteConnection cn = new SQLiteConnection(connectionString); + SQLiteCommand cmd = cn.CreateCommand(); + cmd.CommandText = commandText; + AttachParameters(cmd, commandText, paramList); + if (cn.State == ConnectionState.Closed) + cn.Open(); + object result = cmd.ExecuteScalar(); + cmd.Dispose(); + cn.Close(); + + return result; + } + + /// + /// Execute XmlReader with complete Command + /// + /// SQLite Command + /// XmlReader + public static XmlReader ExecuteXmlReader(IDbCommand command) + { // open the connection if necessary, but make sure we + // know to close it when we�re done. + if (command.Connection.State != ConnectionState.Open) + { + command.Connection.Open(); + } + + // get a data adapter + SQLiteDataAdapter da = new SQLiteDataAdapter((SQLiteCommand)command); + DataSet ds = new DataSet(); + // fill the data set, and return the schema information + da.MissingSchemaAction = MissingSchemaAction.AddWithKey; + da.Fill(ds); + // convert our dataset to XML + StringReader stream = new StringReader(ds.GetXml()); + command.Connection.Close(); + // convert our stream of text to an XmlReader + return new XmlTextReader(stream); + } + + /// + /// Parses parameter names from SQL Statement, assigns values from object array , /// and returns fully populated ParameterCollection. + /// + /// Sql Statement with "@param" style embedded parameters + /// object[] array of parameter values + /// SQLiteParameterCollection + /// Status experimental. Regex appears to be handling most issues. Note that parameter object array must be in same ///order as parameter names appear in SQL statement. + private static SQLiteParameterCollection AttachParameters(SQLiteCommand cmd, string commandText, params object[] paramList) + { + if (paramList == null || paramList.Length == 0) return null; + + SQLiteParameterCollection coll = cmd.Parameters; + string parmString = commandText.Substring(commandText.IndexOf("@")); + // pre-process the string so always at least 1 space after a comma. + parmString = parmString.Replace(",", " ,"); + // get the named parameters into a match collection + string pattern = @"(@)\S*(.*?)\b"; + Regex ex = new Regex(pattern, RegexOptions.IgnoreCase); + MatchCollection mc = ex.Matches(parmString); + string[] paramNames = new string[mc.Count]; + int i = 0; + foreach (Match m in mc) + { + paramNames[i] = m.Value; + i++; + } + + // now let's type the parameters + int j = 0; + Type t = null; + foreach (object o in paramList) + { + t = o.GetType(); + + SQLiteParameter parm = new SQLiteParameter(); + switch (t.ToString()) + { + case ("DBNull"): + case ("Char"): + case ("SByte"): + case ("UInt16"): + case ("UInt32"): + case ("UInt64"): + throw new SystemException("Invalid data type"); + + case ("System.String"): + parm.DbType = DbType.String; + parm.ParameterName = paramNames[j]; + parm.Value = (string)paramList[j]; + coll.Add(parm); + break; + + case ("System.Byte[]"): + parm.DbType = DbType.Binary; + parm.ParameterName = paramNames[j]; + parm.Value = (byte[])paramList[j]; + coll.Add(parm); + break; + + case ("System.Int32"): + parm.DbType = DbType.Int32; + parm.ParameterName = paramNames[j]; + parm.Value = (int)paramList[j]; + coll.Add(parm); + break; + + case ("System.Boolean"): + parm.DbType = DbType.Boolean; + parm.ParameterName = paramNames[j]; + parm.Value = (bool)paramList[j]; + coll.Add(parm); + break; + + case ("System.DateTime"): + parm.DbType = DbType.DateTime; + parm.ParameterName = paramNames[j]; + parm.Value = Convert.ToDateTime(paramList[j]); + coll.Add(parm); + break; + + case ("System.Double"): + parm.DbType = DbType.Double; + parm.ParameterName = paramNames[j]; + parm.Value = Convert.ToDouble(paramList[j]); + coll.Add(parm); + break; + + case ("System.Decimal"): + parm.DbType = DbType.Decimal; + parm.ParameterName = paramNames[j]; + parm.Value = Convert.ToDecimal(paramList[j]); + break; + + case ("System.Guid"): + parm.DbType = DbType.Guid; + parm.ParameterName = paramNames[j]; + parm.Value = (System.Guid)(paramList[j]); + break; + + case ("System.Object"): + + parm.DbType = DbType.Object; + parm.ParameterName = paramNames[j]; + parm.Value = paramList[j]; + coll.Add(parm); + break; + + default: + throw new SystemException("Value is of unknown data type"); + } // end switch + + j++; + } + return coll; + } + + /// + /// Executes non query typed params from a DataRow + /// + /// Command. + /// Data row. + /// Integer result code + //public static int ExecuteNonQueryTypedParams(IDbCommand command, DataRow dataRow) + //{ + // int retVal = 0; + + // // If the row has values, the store procedure parameters must be initialized + // if (dataRow != null && dataRow.ItemArray.Length > 0) + // { + // // Set the parameters values + // AssignParameterValues(command.Parameters, dataRow); + + // retVal = ExecuteNonQuery(command); + // } + // else + // { + // retVal = ExecuteNonQuery(command); + // } + + // return retVal; + //} + + /// + /// This method assigns dataRow column values to an IDataParameterCollection + /// + /// The IDataParameterCollection to be assigned values + /// The dataRow used to hold the command's parameter values + /// Thrown if any of the parameter names are invalid. + protected internal static void AssignParameterValues(IDataParameterCollection commandParameters, DataRow dataRow) + { + if (commandParameters == null || dataRow == null) + { + // Do nothing if we get no data + return; + } + + DataColumnCollection columns = dataRow.Table.Columns; + + int i = 0; + // Set the parameters values + foreach (IDataParameter commandParameter in commandParameters) + { + // Check the parameter name + if (commandParameter.ParameterName == null || + commandParameter.ParameterName.Length <= 1) + throw new InvalidOperationException(string.Format( + "Please provide a valid parameter name on the parameter #{0}, the ParameterName property has the following value: '{1}'.", + i, commandParameter.ParameterName)); + + if (columns.Contains(commandParameter.ParameterName)) + commandParameter.Value = dataRow[commandParameter.ParameterName]; + else if (columns.Contains(commandParameter.ParameterName.Substring(1))) + commandParameter.Value = dataRow[commandParameter.ParameterName.Substring(1)]; + + i++; + } + } + + /// + /// This method assigns dataRow column values to an array of IDataParameters + /// + /// Array of IDataParameters to be assigned values + /// The dataRow used to hold the stored procedure's parameter values + /// Thrown if any of the parameter names are invalid. + protected void AssignParameterValues(IDataParameter[] commandParameters, DataRow dataRow) + { + if ((commandParameters == null) || (dataRow == null)) + { + // Do nothing if we get no data + return; + } + + DataColumnCollection columns = dataRow.Table.Columns; + + int i = 0; + // Set the parameters values + foreach (IDataParameter commandParameter in commandParameters) + { + // Check the parameter name + if (commandParameter.ParameterName == null || + commandParameter.ParameterName.Length <= 1) + throw new InvalidOperationException(string.Format( + "Please provide a valid parameter name on the parameter #{0}, the ParameterName property has the following value: '{1}'.", + i, commandParameter.ParameterName)); + + if (columns.Contains(commandParameter.ParameterName)) + commandParameter.Value = dataRow[commandParameter.ParameterName]; + else if (columns.Contains(commandParameter.ParameterName.Substring(1))) + commandParameter.Value = dataRow[commandParameter.ParameterName.Substring(1)]; + + i++; + } + } + + /// + /// This method assigns an array of values to an array of IDataParameters + /// + /// Array of IDataParameters to be assigned values + /// Array of objects holding the values to be assigned + /// Thrown if an incorrect number of parameters are passed. + protected void AssignParameterValues(IDataParameter[] commandParameters, params object[] parameterValues) + { + if ((commandParameters == null) || (parameterValues == null)) + { + // Do nothing if we get no data + return; + } + + // We must have the same number of values as we pave parameters to put them in + if (commandParameters.Length != parameterValues.Length) + { + throw new ArgumentException("Parameter count does not match Parameter Value count."); + } + + // Iterate through the IDataParameters, assigning the values from the corresponding position in the + // value array + for (int i = 0, j = commandParameters.Length, k = 0; i < j; i++) + { + if (commandParameters[i].Direction != ParameterDirection.ReturnValue) + { + // If the current array value derives from IDataParameter, then assign its Value property + if (parameterValues[k] is IDataParameter) + { + IDataParameter paramInstance; + paramInstance = (IDataParameter)parameterValues[k]; + if (paramInstance.Direction == ParameterDirection.ReturnValue) + { + paramInstance = (IDataParameter)parameterValues[++k]; + } + if (paramInstance.Value == null) + { + commandParameters[i].Value = DBNull.Value; + } + else + { + commandParameters[i].Value = paramInstance.Value; + } + } + else if (parameterValues[k] == null) + { + commandParameters[i].Value = DBNull.Value; + } + else + { + commandParameters[i].Value = parameterValues[k]; + } + k++; + } + } + } + } +} \ No newline at end of file diff --git a/Analysis/Model/TMeasureDataModel.cs b/Analysis/Model/TMeasureDataModel.cs new file mode 100644 index 0000000..2a2e6b1 --- /dev/null +++ b/Analysis/Model/TMeasureDataModel.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class TMeasureDataModel + { + /// + /// Id + /// + public int? Id { get; set; } + + /// + /// 车身ID + /// + public string CarID { get; set; } + /// + /// 车身类型 + /// + public string CarType{ get; set; } + /// + /// 测量点名称 + /// + public string MeasPointName { get; set; } + + /// + /// 测点尺寸名称:F面差 G间隙 + /// + public string DimensionName { get; set; } + + /// + /// 测量值 + /// + public string MeasureValue { get; set; } + + /// + /// 测量结果 :Good NoGood Rejected + /// + public string MeasureItemResult { get; set; } + + /// + /// 标准值 + /// + public string NormalValue { get; set; } + + /// + /// 测量时间 + /// + public string MeasureDate { get; set; } + + /// + /// 下公差 + /// + public string LowerTolVal { get; set; } + + /// + /// 上公差 + /// + public string UpperTolVal { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + } +} \ No newline at end of file diff --git a/Analysis/Model/TMeasureMSSQLDAL.cs b/Analysis/Model/TMeasureMSSQLDAL.cs new file mode 100644 index 0000000..14bfa42 --- /dev/null +++ b/Analysis/Model/TMeasureMSSQLDAL.cs @@ -0,0 +1,366 @@ +using System.Data; +using System.Data.SqlClient; + +namespace DAL +{ + public class TMeasureMSSQLDAL + { + #region Select Function + + public int SelectTMeasureResultCount() + { + string strSql = "select COUNT(*) from TMeasureResult"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return int.Parse(dt.Rows[0][0].ToString()); + } + + public string SelectNo6MeasureResult() + { + string strSql = "select top 6 CarID from TMeasureResult order by MeasureDate desc"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt.Rows[5][0].ToString(); + } + + public DataTable SelectNewestTMeasureResult() + { + string strSql = "select top(1) Id,CarID,MeasureDate,Remark from TMeasureResult order by MeasureDate DESC"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectTMeasureDataByVIN(string strVIN) + { + string strSql = "select * from TMeasureData where CarID ='" + strVIN + "'"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public string SelectOneMeasureValueByCondition(string strCarID, string strMeaPointName, string strDimensionName = "G") + { + DataTable dt = new DataTable(); + string strSql = "select MeasureValue from TMeasureData where CarID = '" + strCarID + "' and MeasPointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count == 1) + { + return dt.Rows[0][0].ToString(); + } + else + { + return "NoFind"; + } + } + + public bool CheckVINExistInDB(string strVIN) + { + bool bReusult = false; + string strSql = "select Id from TMeasureResult where CarID = '" + strVIN + "'"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count >= 2) + { + bReusult = true; + } + return bReusult; + } + + public string SelectCarTypeByVIN(string strVIN) + { + string strSql = "select CarType from TMeasureResult where CarID = '" + strVIN + "'"; + DataTable dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count == 1) + { + return dt.Rows[0][0].ToString(); + } + else + { + return "unknown"; + } + } + + public DataTable SelectMeasureValuebyMeasureNameAndSize(string strMeasureName, string strSizeName, int topCount) + { + string strSql = "select top " + topCount.ToString() + " MeasureValue,NormalValue ,LowerTolVal,UpperTolVal from TMeasureData where MeasPointName='" + strMeasureName + "' and DimensionName='" + strSizeName + "' order by MeasureDate DESC "; + return SQLHelper.ExecuteQuery(strSql, CommandType.Text); + } + + public DataTable SelectAllMeasPointName() + { + string strSql = "select distinct MeasPointName from TMeasureData"; + return SQLHelper.ExecuteQuery(strSql, CommandType.Text); + } + + public DataTable SelectTMeasureDataByCarIDAndTime(string strCarID, string strStartTime, string strEndTime) + { + DataTable dt = new DataTable(); + string strSql = "select CarID, MeasPointName,DimensionName,NormalValue ,LowerTolVal,UpperTolVal,MeasureValue, MeasureDate, MeasureItemResult from TMeasureData where CarID like '%" + strCarID + "%' and MeasureDate >= '" + strStartTime + "' and MeasureDate <= '" + strEndTime + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectTMeasureDataByCarIDAndMPN(string strCarID, string strMeaPointName) + { + DataTable dt = new DataTable(); + string strSql = "select MeasPointName,DimensionName,LowerTolVal,UpperTolVal,MeasureValue, MeasureItemResult,Remark from TMeasureData where CarID like '%" + strCarID + "%' and MeasPointName like '%" + strMeaPointName + "%' COLLATE Chinese_PRC_CS_AI_WS "; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectMeasureItems(string strCarID, string strMeaPointName) + { + DataTable dt = new DataTable(); + string strSql = "select distinct MeasPointName from TMeasureData where CarID like '%" + strCarID + "%' and MeasPointName like '%" + strMeaPointName + "%' COLLATE Chinese_PRC_CS_AI_WS "; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectAllTMeasureResult() + { + DataTable dt = new DataTable(); + string strSql = "select * from TMeasureResult"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectTMeasureResultByTime(string strCarID, string strStartTime, string strEndTime) + { + DataTable dt = new DataTable(); + string strSql = "select CarID,SumMeasureItems,GoodMeasureItems,NoGoodMeasureItems,RejectMeasureItems,FPY,MeasureDate,case Result when 1 then '合格' else '不合格' end as Result from TMeasureResult where CarID like '%" + strCarID + "%' and MeasureDate >= '" + strStartTime + "' and MeasureDate <= '" + strEndTime + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public string SelectMaintenanceStation7VIN() + { + DataTable dt = new DataTable(); + string strSql = "select Station7PartID from MaintenanceInfo where Id=1"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt.Rows[0][0].ToString(); + } + + public string SelectMaintenanceStationVINbyStationNo(int sno) + { + DataTable dt = new DataTable(); + string strSql = ""; + switch (sno) + { + case 1: + strSql = "select Station1PartID from MaintenanceInfo where Id=1"; + break; + + case 2: + strSql = "select Station2PartID from MaintenanceInfo where Id=1"; + break; + + case 3: + strSql = "select Station3PartID from MaintenanceInfo where Id=1"; + break; + + case 4: + strSql = "select Station4PartID from MaintenanceInfo where Id=1"; + break; + + case 5: + strSql = "select Station5PartID from MaintenanceInfo where Id=1"; + break; + + case 6: + strSql = "select Station6PartID from MaintenanceInfo where Id=1"; + break; + + case 7: + strSql = "select Station7PartID from MaintenanceInfo where Id=1"; + break; + } + if (strSql == "") + { + return "empty"; + } + else + { + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows[0][0] == null) + { + return "empty"; + } + else + { + return dt.Rows[0][0].ToString(); + } + } + } + + public DataTable SelectAllToleranceByCondition(string strCartType, string strMeaPointName, string strDimensionName) + { + DataTable dt = new DataTable(); + string strSql = "select Id,CarType,MeasurePointName,DimensionName,TolLower,TolUpper, Remark from TTolerance where CarType like '%" + strCartType + "%' and MeasurePointName like '%" + strMeaPointName + "%' and DimensionName like '%" + strDimensionName + "%'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectAllRangeByCondition(string strCartType, string strMeaPointName) + { + DataTable dt = new DataTable(); + string strSql = "select Id,CarType,RangeName,RangePoint,RangeLower,RangeUpper, Remark from TRange where CarType like '%" + strCartType + "%' and RangeName like '%" + strMeaPointName + "%' "; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectOneToleranceByCondition(string strCartType, string strMeaPointName, string strDimensionName) + { + DataTable dt = new DataTable(); + string strSql = "select TolLower,TolUpper from TTolerance where CarType = '" + strCartType + "' and MeasurePointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectRangeDatabyCarID(string strCarID) + { + DataTable dt = new DataTable(); + string strSql = "select * from TRangeData where CarID = '" + strCarID + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public DataTable SelectRangeByCarType(string strCarType) + { + DataTable dt = new DataTable(); + string strSql = "select RangeName,RangePoint,RangeLower,RangeUpper from TRange where CarType = '" + strCarType + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + return dt; + } + + public bool CheckMeaPointNameExit(string strCartType, string strMeaPointName, string strDimensionName) + { + DataTable dt = new DataTable(); + string strSql = "select Id,CarType,MeasurePointName,DimensionName,TolLower,TolUpper, Remark from TTolerance where CarType = '" + strCartType + "' and MeasurePointName = '" + strMeaPointName + "' and DimensionName = '" + strDimensionName + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count > 0) + { + return true; + } + else + { + return false; + } + } + + public bool CheckRangeNameExit(string strCartType, string strRangeName) + { + DataTable dt = new DataTable(); + string strSql = "select Id,CarType from TRange where CarType = '" + strCartType + "' and RangeName = '" + strRangeName + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count > 0) + { + return true; + } + else + { + return false; + } + } + + public string SelectVINByCSVVIN(string strCSVVIN) + { + DataTable dt = new DataTable(); + string strSql = "select CarVIN from TTempSaveVIN where CarVIN like '%" + strCSVVIN + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count == 1) + return dt.Rows[0][0].ToString(); + else + { + return "NoFind"; + } + } + + public int CheckMRVINExistOrNotByVIN(string strVIN) + { + DataTable dt = new DataTable(); + string strSql = "select CarID from TMeasureResult where CarID = '" + strVIN + "'"; + dt = SQLHelper.ExecuteQuery(strSql, CommandType.Text); + if (dt.Rows.Count == 1) + return 1; + else + { + return 0; + } + } + + #endregion + + #region Insert Function + + public int InsertTTolerance(TToleranceModel ttm) + { + string strSql = "insert into TTolerance (CarType,MeasurePointName,DimensionName,TolLower,TolUpper,CreateTime,Remark) values " + + "(@CarType,@MeasurePointName,@DimensionName,@TolLower,@TolUpper,@CreateTime,@Remark)"; + SqlParameter[] paras = new SqlParameter[] + { + new SqlParameter("@CarType",ttm.CarType), + new SqlParameter("@MeasurePointName",ttm.MeasurePointName), + new SqlParameter("@DimensionName",ttm.DimensionName), + new SqlParameter("@TolLower",ttm.TolLower), + new SqlParameter("@TolUpper",ttm.TolUpper), + new SqlParameter("@CreateTime",ttm.CreateTime), + new SqlParameter("@Remark",ttm.Remark), + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + } + + //public int InsertTMeasureResult(TMeasureResultModel tmrm) + //{ + // string strSql = "insert into TMeasureResult (CarID,CarType,SumMeasureItems,GoodMeasureItems,NoGoodMeasureItems,RejectMeasureItems,FPY,MeasureDate,Result,Remark) values " + + // "(@CarID,@CarType,@SumMeasureItems,@GoodMeasureItems,@NoGoodMeasureItems,@RejectMeasureItems,@FPY,@MeasureDate,@Result,@Remark)"; + // SqlParameter[] paras = new SqlParameter[] + // { + // new SqlParameter("@CarID",tmrm.CarID), + // new SqlParameter("@CarType",tmrm.CarType), + // new SqlParameter("@SumMeasureItems",tmrm.SumMeasureItems), + // new SqlParameter("@GoodMeasureItems",tmrm.GoodMeasureItems), + // new SqlParameter("@NoGoodMeasureItems",tmrm.NoGoodMeasureItems), + // new SqlParameter("@RejectMeasureItems",tmrm.RejectMeasureItems), + // new SqlParameter("@FPY",tmrm.FPY), + // new SqlParameter("@MeasureDate",tmrm.MeasureDate), + // new SqlParameter("@Result",tmrm.Result), + // new SqlParameter("@Remark",tmrm.Remark), + // }; + // return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + //} + + public int InsertTMeasureDatabyDataTable(DataTable dt) + { + return SQLHelper.InsertMeasureDataToDB(dt); + } + + #endregion + + #region Update Function + + public int UpdateTTolerance(TToleranceModel ttm) + { + string strSql = "update TTolerance set CarType=@CarType,MeasurePointName=@MeasurePointName,DimensionName=@DimensionName,TolLower=@TolLower,TolUpper=@TolUpper,CreateTime=@CreateTime,Remark=@Remark where Id=" + ttm.Id.ToString(); + SqlParameter[] paras = new SqlParameter[] + { + new SqlParameter("@Id",ttm.Id), + new SqlParameter("@CarType",ttm.CarType), + new SqlParameter("@MeasurePointName",ttm.MeasurePointName), + new SqlParameter("@DimensionName",ttm.DimensionName), + new SqlParameter("@TolLower",ttm.TolLower), + new SqlParameter("@TolUpper",ttm.TolUpper), + new SqlParameter("@CreateTime",ttm.CreateTime), + new SqlParameter("@Remark",ttm.Remark), + }; + return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text); + } + + #endregion + + #region Delete Function + + public int DeleteOneTolerance(string strObjIDPk) + { + string strOle = "delete from TTolerance where Id = " + strObjIDPk; + return SQLHelper.ExecuteNonQuery(strOle, CommandType.Text); + } + + #endregion + } +} \ No newline at end of file diff --git a/Analysis/Model/TMeasureResultModel.cs b/Analysis/Model/TMeasureResultModel.cs new file mode 100644 index 0000000..3f0e375 --- /dev/null +++ b/Analysis/Model/TMeasureResultModel.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class TMeasureResultModel + { + /// + /// Id + /// + public int? Id { get; set; } + + /// + /// 车身ID + /// + public string CarID { get; set; } + /// + /// 车身类型 + /// + public string CarType { get; set; } + /// + /// SumMeasureItems 总测量项数量 + /// + public int? SumMeasureItems { get; set; } + + /// + /// GoodMeasureItems + /// + public int? GoodMeasureItems { get; set; } + + /// + /// NoGoodMeasureItems + /// + public int? NoGoodMeasureItems { get; set; } + + /// + /// RejectMeasureItems + /// + public int? RejectMeasureItems { get; set; } + + /// + /// FPY 合格率 + /// + public string FPY { get; set; } + + /// + /// MeasureDate 测量时间 + /// + public string MeasureDate { get; set; } + + /// + /// Result:测量总结果:1:OK 2:NG + /// + public int? Result { get; set; } + + /// + /// Remark 备注 + /// + public string Remark { get; set; } + } +} \ No newline at end of file diff --git a/Analysis/Model/TToleranceModel.cs b/Analysis/Model/TToleranceModel.cs new file mode 100644 index 0000000..e81797f --- /dev/null +++ b/Analysis/Model/TToleranceModel.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class TToleranceModel + { + /// + /// Id + /// + public int? Id { get; set; } + + /// + /// 车身类型 + /// + public string CarType { get; set; } + + /// + /// MeasurePointName + /// + public string MeasurePointName { get; set; } + + /// + /// DimensionName + /// + public string DimensionName { get; set; } + + /// + /// TolLower + /// + public double TolLower { get; set; } + + /// + /// TolUpper + /// + public double TolUpper { get; set; } + + /// + /// Remark 备注 + /// + public string Remark { get; set; } + + /// + /// CreateTime 测量时间 + /// + public string CreateTime { get; set; } + } +} \ No newline at end of file diff --git a/Analysis/NLog.config b/Analysis/NLog.config new file mode 100644 index 0000000..3cfa512 --- /dev/null +++ b/Analysis/NLog.config @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO TLogInfo(LogTime,LogLevel,LogMessage,LogStackTrack) VALUES (@LogTime, @LogLevel, @LogMessage, @LogStackTrack); + + + + + + + + + + + + + + insert into TLogInfo(LogTime,LogLevel,LogMessage,LogAction,LogAmount,LogStackTrack) values (@LogTime, @LogLevel, @LogMessage,@LogAction,@LogAmount, @LogStackTrack); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/Program.cs b/Analysis/Program.cs new file mode 100644 index 0000000..c8b8d81 --- /dev/null +++ b/Analysis/Program.cs @@ -0,0 +1,279 @@ +using System; +using System.Diagnostics; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Windows.Forms; +using BaseFunction; +using Microsoft.Win32; + +namespace NSAnalysis +{ + internal static class Program + { + #region CLMS 授权 + + /// + /// 功能:使用MORCODE.DLL前验证使用软件是否正确,否则其他函数都不可正常调用 + /// + /// 验证内容为软件指纹文件中字符串 + /// + /// TRUE :该软件可正常调用 + /// FALSE :该软件不可正常调用 + /// + [DllImport("MORCODE.dll", EntryPoint = "CLM_Login", CallingConvention = CallingConvention.Cdecl)] + public static extern bool CLM_Login(StringBuilder str); + + /// + /// 退出前执行一次,释放内存,记录使用信息 + /// + /// + [DllImport("MORCODE.dll", EntryPoint = "CLM_Logout", CallingConvention = CallingConvention.Cdecl)] + public static extern bool CLM_Logout(); + + /// + /// 自动检查电脑中是否有当前软件的许可信息,过期/非本机电脑/其他软件 的许可证书都不会识别 + /// + /// + /// TRUE :有该软件许可证书 + /// FALSE :没有该软件许可证书 + /// + [DllImport("MORCODE.dll", EntryPoint = "CLM_Login_Scope", CallingConvention = CallingConvention.Cdecl)] + public static extern bool CLM_Login_Scope(); + + /// + /// 输入模块ID验证模块可用性 + /// + /// 模块ID + /// 暂无定义 + /// + /// TRUE :该模块可用 + /// FALSE :该模块不可用 + /// + [DllImport("MORCODE.dll", EntryPoint = "CLM_ModuleIsLicensed", CallingConvention = CallingConvention.Cdecl)] + public static extern bool CLM_ModuleIsLicensed(ref UInt16 mod, ref UInt16 type); + + /// + /// 获取到期日期 + /// + /// + /// + /// + /// + + [DllImport("MORCODE.dll", EntryPoint = "CLM_GetWarrantyExpiration", CallingConvention = CallingConvention.Cdecl)] + public static extern bool CLM_GetWarrantyExpiration(ref int mon, ref int day, ref int year); + + private static int gCLMSModeID = 0; + private static int gAuthorizationMode = 0; + + #endregion CLMS 授权 + + /// + /// The main entry point for the application. + /// + [STAThread] + private static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + #region 创建Log文件 + + LogDebugDfn.strStartTime = DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss"); + System.IO.TextWriter log = new System.IO.StreamWriter(LogDebugDfn.strDebugFile); //Debug.txt + TextWriterTraceListener logger = new TextWriterTraceListener(log); + Trace.Listeners.Add(logger); + MyBase.TraceWriteLine("--软件Program Main函数开始执行--"); //写入log文件 + ConfigDfn.LoadConfigFile(); //加载配置参数 + + gCLMSModeID = FileIni.ReadInt(ConfigDfn.strConfigFile, "Chery", "CLMSModeID", 1); + gAuthorizationMode = FileIni.ReadInt(ConfigDfn.strConfigFile, "Chery", "AuthorizationMode", 1); + + #endregion 创建Log文件 + + Application.Run(new FormMain()); + + //if (gAuthorizationMode == 1) + // { + // MyBase.TraceWriteLine("Log in using the CLMS authorization."); + + // #region 检测CLMS + + // /////1登陆验证 + // //验证内容为软件指纹文件中字符串,功能:使用MORCODE.DLL前验证使用软件是否正确,否则其他函数都不可正常调用 + // StringBuilder password = new StringBuilder("vravnhNYybkmDkHDPKhVIwbHMoqHktgqWHFkBTOUsZLLVLwaAOkPIFFoVffUnSqUkCApSxrWQmsKvYCdVUpZLOhuHshKFbUPezYYbyQCgUoHrFOaaLVSosAapdVagrfFSqDUzxCvVuSJodxkjBiCJdRUfhCIfyRzjLdTfkxtUHPYUHyQbzOaJFvdSbzLihYmuhLHFNUSbERcAFbnrvNQtZOCUSUnHFcySXzTbfqTgzeaWQrjoSTzEUYDkEUmqusV"); + // bool res = CLM_Login(password); + // if (!res) + // { + // MyBase.TraceWriteLine("CLMS Login Failed."); + // MessageBox.Show("CLMS Login fails. Please authorize the user first! ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + // return; + // } + // /////2检查许可 + // //该函数自动检查电脑中是否有当前软件的许可信息,过期/非本机电脑/其他软件 的许可证书都不会识别 + // res = CLM_Login_Scope(); + // if (!res) + // { + // //检查许可失败 + // MyBase.TraceWriteLine("CLMS check license failed! Please authorize the operation."); + // MessageBox.Show("The CLMS failed to check for permissions. Please authorize first! ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + // return; + // } + // //3获取许可模块是否可用 + // //输入模块ID验证模块可用性 + // UInt16 mod = (UInt16)gCLMSModeID;//模块ID + // UInt16 type = 0;//暂无定义 + + // res = CLM_ModuleIsLicensed(ref mod, ref type);//res true:可用 false:不可用 + // if (!res) + // { + // MyBase.TraceWriteLine("The CLMS module is unavailable!"); + // MessageBox.Show(mod.ToString() + " The CLMS module is unavailable!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + // return; + // } + + // //4获取到期日期 + // int Year = 0, Month = 0, Day = 0; + // res = CLM_GetWarrantyExpiration(ref Month, ref Day, ref Year); + // if (!res) + // { + // //登陆验证失败 + // MyBase.TraceWriteLine("Login verification failed, authorization time is up, please contact Hexagon company for authorization! The maturity time is:" + Year.ToString() + "." + Month.ToString() + "." + Day.ToString()); + // MessageBox.Show("Login verification failed, authorization time is up, please contact Hexagon company for authorization! The maturity time is:" + Year.ToString() + "." + Month.ToString() + "." + Day.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + // return; + // } + + // if (res) + // { + // ConfigDfn.strExpiredTime = Year.ToString() + "-" + Month.ToString() + "-" + Day.ToString(); + // } + + // #endregion 检测CLMS + + // Application.Run(new FormMain()); + // } + // else + // { + // MyBase.TraceWriteLine("Log in using the original authorization mode."); + // Licence.GetRegisterInfo(); + // Licence.Encryption_DLL(); + // } + } + } + + public class Licence + { + //=============================================================== + + #region 1、加密动态库加密 + + public static void Encryption_DLL() + { + Covert.Program Mycheck = new Covert.Program(); + if (Mycheck.CheckLicence(Application.StartupPath + "\\Key\\reg.key", "PCControl")) + { + MyBase.TraceWriteLine("软件授权成功"); + ConfigDfn.strExpiredTime = Covert.Parameter.ExpiredTime.ToString("yyyy-MM-dd HH:mm:ss"); + if (IsSoftwareRunning()) + { + MessageBox.Show("库位管理软件已经存在,请关闭后重新尝试!", "警告"); + System.Environment.Exit(0); + return; + } + Application.Run(new FormMain()); + } + else + { + MessageBox.Show("Did not pass the certification!\r\n" + Covert.Parameter.ExpiredTime.ToString()); + BaseFunction.MyBase.TraceWriteLine("软件授权失败"); + } + } + + #endregion 1、加密动态库加密 + + private static bool IsSoftwareRunning() + { + int Num = 0; + Process[] processes = Process.GetProcesses(); + foreach (Process instance in processes) + { + string pro = instance.ProcessName; + if (pro.ToLower() == "cheryanalysis") + { + Num++; + } + } + if (Num > 1) + return true; + else + return false; + } + + //=============================================================== + + #region 读取注册表信息,准备各种时间 + + private static string PassWord = ""; + private static string PassData = ""; + private static Int64 PassNow = 0; + private static Int64 LtOk = 20160101080000; //开始日期 + private static Int64 LtOk2now; + + public static void GetRegisterInfo() + { + LtOk2now = Convert.ToInt64(System.DateTime.Now.ToString("yyyyMMddHHmmss")); + RegistryKey pregkey; + RegistryKey pregkey1; + RegistryKey pregkey2; + bool RegKey = false; + try + { + do + { + pregkey = Registry.CurrentUser.OpenSubKey("software", true); + pregkey1 = Registry.CurrentUser.OpenSubKey("software\\sunpike", true); + pregkey2 = Registry.CurrentUser.OpenSubKey("software\\sunpike\\PCControl", true); + if (pregkey1 != null) + { + if (pregkey2 != null) + { + if (pregkey2.GetValue("Pass") == null) { pregkey2.SetValue("Pass", ""); } + if (pregkey2.GetValue("Data") == null) { pregkey2.SetValue("Data", ""); } + if (pregkey2.GetValue("Now") == null) { pregkey2.SetValue("Now", LtOk.ToString()); } + + PassWord = pregkey2.GetValue("Pass").ToString(); + PassData = pregkey2.GetValue("Data").ToString(); + PassNow = Convert.ToInt64(pregkey2.GetValue("Now").ToString());//上次结束APP的时间 + RegKey = true; + } + else { pregkey1.CreateSubKey("PCControl"); } + } + else { pregkey.CreateSubKey("sunpike"); } + } while (!RegKey); + if (LtOk2now > PassNow) + pregkey2.SetValue("Data", LtOk.ToString()); + else + pregkey2.SetValue("Now", LtOk.ToString()); + pregkey.Close(); + pregkey1.Close(); + pregkey2.Close(); + } + catch + { + MyBase.TraceWriteLine("--读取注册信息时遭到破坏。"); + MessageBox.Show("读取注册信息时遭到破坏。"); + // + //有一个复位的方法,就是客户打电话给我,我给他一串数据(时间加校验码),填入后,通过校验是合适的时间,就恢复这串码中的时间, + //举例: + //目前是2014年03月19日11点30分15秒: + // 20140319113015 --加密--> 3分十位2年千位4年个位1秒十位3校验位(前4位相加之和保证个位是3)1年十位1时个位1时十位5秒个位3校验位(前4位相加之和保证个位是3)0月十位0年百位1日十位0分个位2校验位(前4位相加之和保证个位是3)3月个位9日个位0校验位(前2位相加之和保证个位是3) + // 3 2 4 1 3 1 1 1 5 5 0 0 1 0 2 3 0 0 + // 324131115500102300 + return; + } + } + + #endregion 读取注册表信息,准备各种时间 + } +} \ No newline at end of file diff --git a/Analysis/Properties/AssemblyInfo.cs b/Analysis/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..15ffaec --- /dev/null +++ b/Analysis/Properties/AssemblyInfo.cs @@ -0,0 +1,51 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Hexagon NSAnalysis")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Hexagon NSAnalysis")] +[assembly: AssemblyCopyright("Copyright © Hexagon 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b7703537-786b-4e84-90e1-40e1e479f915")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("2025.03.03.1")] +[assembly: AssemblyFileVersion("2025.03.03.1")] +//奇瑞总装软件 +//2024.09.27.1 该版本增加读取编码器数值功能 +//2024.10.08.1 该版本修改了EHY和EH3的测点图片 以及增加了上传IOT时,在1.5倍公差内,都是OK的结果,传给IOT +//2024.10.10.1 更改EH3车型图片 +//2024.10.12.1 更改异常数据变为空,并设置为NG,增加数据库表TTempSaveVIN表,来存储,获取,删除VIN,用于区别是否是L开头的VIN码 +//create Table TTempSaveVIN +//( +// Id int primary key identity, +// CarVIN nvarchar(50) +//) +//2024.10.24.1 增加极差数据功能 +//2024.10.28.1 合格率计算的时候 添加上极差 +//2024.10.31.1 极差上传IOT时,在1.5倍公差内,都是OK的结果,传给IOT +//2024.12.24 .1 添加判断连续多少辆车检测项数量不足,则报警 +//2025.03.03.1 添加自检报告 \ No newline at end of file diff --git a/Analysis/Properties/Resources.Designer.cs b/Analysis/Properties/Resources.Designer.cs new file mode 100644 index 0000000..7437a20 --- /dev/null +++ b/Analysis/Properties/Resources.Designer.cs @@ -0,0 +1,423 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace NSAnalysis.Properties { + using System; + + + /// + /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("NSAnalysis.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap About32 { + get { + object obj = ResourceManager.GetObject("About32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap add_32 { + get { + object obj = ResourceManager.GetObject("add_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap cncmachine32 { + get { + object obj = ResourceManager.GetObject("cncmachine32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Config { + get { + object obj = ResourceManager.GetObject("Config", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Dashboard { + get { + object obj = ResourceManager.GetObject("Dashboard", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap downloadCarType { + get { + object obj = ResourceManager.GetObject("downloadCarType", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap EH3L { + get { + object obj = ResourceManager.GetObject("EH3L", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap EH3R { + get { + object obj = ResourceManager.GetObject("EH3R", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap EHYL { + get { + object obj = ResourceManager.GetObject("EHYL", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap EHYR { + get { + object obj = ResourceManager.GetObject("EHYR", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap export { + get { + object obj = ResourceManager.GetObject("export", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap eyes32 { + get { + object obj = ResourceManager.GetObject("eyes32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap FirstPage { + get { + object obj = ResourceManager.GetObject("FirstPage", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Forbid { + get { + object obj = ResourceManager.GetObject("Forbid", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap hexagonlogotransparent { + get { + object obj = ResourceManager.GetObject("hexagonlogotransparent", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap LastPage { + get { + object obj = ResourceManager.GetObject("LastPage", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap LOG { + get { + object obj = ResourceManager.GetObject("LOG", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap NextPage { + get { + object obj = ResourceManager.GetObject("NextPage", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap NG { + get { + object obj = ResourceManager.GetObject("NG", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap OK { + get { + object obj = ResourceManager.GetObject("OK", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap PLCAddress32 { + get { + object obj = ResourceManager.GetObject("PLCAddress32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap PLCTest32 { + get { + object obj = ResourceManager.GetObject("PLCTest32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap PrevPage { + get { + object obj = ResourceManager.GetObject("PrevPage", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Range { + get { + object obj = ResourceManager.GetObject("Range", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Refresh128 { + get { + object obj = ResourceManager.GetObject("Refresh128", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Refresh64 { + get { + object obj = ResourceManager.GetObject("Refresh64", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap ResultNG { + get { + object obj = ResourceManager.GetObject("ResultNG", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap ResultOK { + get { + object obj = ResourceManager.GetObject("ResultOK", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap search16 { + get { + object obj = ResourceManager.GetObject("search16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Search32 { + get { + object obj = ResourceManager.GetObject("Search32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap setup32 { + get { + object obj = ResourceManager.GetObject("setup32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap setupgreen32 { + get { + object obj = ResourceManager.GetObject("setupgreen32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap showcardata { + get { + object obj = ResourceManager.GetObject("showcardata", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap upload { + get { + object obj = ResourceManager.GetObject("upload", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap Waiting { + get { + object obj = ResourceManager.GetObject("Waiting", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// 查找 System.Drawing.Bitmap 类型的本地化资源。 + /// + internal static System.Drawing.Bitmap wnull { + get { + object obj = ResourceManager.GetObject("wnull", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Analysis/Properties/Resources.resx b/Analysis/Properties/Resources.resx new file mode 100644 index 0000000..78176e0 --- /dev/null +++ b/Analysis/Properties/Resources.resx @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\images\cncmachine32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\dashboard.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\eyes32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\search32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\setup32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\wnull.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Forbid.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Waiting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\NG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\OK.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ResultNG.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ResultOK.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\about32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\plcaddress32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\plctest32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\search16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\hexagonlogotransparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\upload.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\firstpage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\lastpage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\nextpage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\prevpage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Refresh64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\showcardata.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Refresh128.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\HConfig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\setupgreen32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\add_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\LOG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\downloadCarType.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\EHYL.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\EHYR.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\EH3L.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\EH3R.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Range.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Analysis/Properties/Settings.Designer.cs b/Analysis/Properties/Settings.Designer.cs new file mode 100644 index 0000000..074be0b --- /dev/null +++ b/Analysis/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace NSAnalysis.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Analysis/Properties/Settings.settings b/Analysis/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Analysis/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Analysis/Properties/licenses.licx b/Analysis/Properties/licenses.licx new file mode 100644 index 0000000..c246ff3 --- /dev/null +++ b/Analysis/Properties/licenses.licx @@ -0,0 +1,13 @@ +Telerik.WinControls.UI.RadGroupBox, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadButton, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadStatusStrip, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadDropDownList, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadPageView, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadCheckBox, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadTextBox, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadMultiColumnComboBox, Telerik.WinControls.GridView, Version=2018.3.1016.20, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadToggleSwitch, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadDateTimePicker, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadTitleBar, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e +Telerik.WinControls.UI.RadRadioButton, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e diff --git a/Analysis/Range/FAddRange.cs b/Analysis/Range/FAddRange.cs new file mode 100644 index 0000000..144e041 --- /dev/null +++ b/Analysis/Range/FAddRange.cs @@ -0,0 +1,182 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using BaseFunction; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; +using DAL; +using Telerik.WinControls.UI; + +namespace NSAnalysis +{ + public partial class FAddRange : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + + //private TMeasureSQLiteDAL tmdal = new TMeasureSQLiteDAL(); + + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private FRangeSetup gFTS; + + #endregion 全局变量 + + #region 鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion 鼠标事件 + + private void InitLanguage() + { + if (!ConfigDfn.bLanguage) + { + this.Text = "Add Tolerance"; + labTitle.Text = "Add Tolerance"; + radLabel5.Text = "CNC ID : "; + radLabel2.Text = "CNC Name : "; + radLabel4.Text = "CNC Location : "; + radLabel3.Text = "CNC Type : "; + radLabel7.Text = "CNC IP : "; + radLabel1.Text = "Remark : "; + rbtnOK.Text = "Add"; + rbtnCancel.Text = "Cancel"; + } + } + + public FAddRange(FRangeSetup fts) + { + InitializeComponent(); + InitLanguage(); + gFTS = fts; + } + + private void SFAddCNC_Load(object sender, EventArgs e) + { + + } + + private void rbtnOK_Click(object sender, EventArgs e) + { + #region 防愚操作 + + string strCarType = rtbCarType.Text.Trim(); + string strMesPointName = rtbMesPointName.Text.Trim(); + + string strDimensionName = rtbRangePointName.Text.Trim(); + if (string.IsNullOrEmpty(rtbCarType.Text.Trim())) + { + MessageBox.Show("车身类型不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (string.IsNullOrEmpty(rtbMesPointName.Text.Trim())) + { + MessageBox.Show("极差编号名称不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (string.IsNullOrEmpty(rtbRangePointName.Text.Trim())) + { + MessageBox.Show("极差包含点位不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + else + { + if (!rtbRangePointName.Text.Trim().Contains(",")) + { + MessageBox.Show("极差包含点位必须用英文逗号隔开,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + + if (string.IsNullOrEmpty(rtbLower.Text.Trim())) + { + MessageBox.Show("下限值不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (string.IsNullOrEmpty(rtbUpper.Text.Trim())) + { + MessageBox.Show("上限值不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (!string.IsNullOrEmpty(rtbLower.Text.Trim())) + { + try + { + double dtemp = double.Parse(rtbLower.Text.Trim()); + } + catch (Exception) + { + MessageBox.Show("下限值必须是数字,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + if (!string.IsNullOrEmpty(rtbUpper.Text.Trim())) + { + try + { + double dtemp = double.Parse(rtbUpper.Text.Trim()); + } + catch (Exception) + { + MessageBox.Show("上限值必须是数字,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + if (tmdal.CheckRangeNameExit(strCarType, strMesPointName)) + { + MessageBox.Show("该车身类型下,已经存在该极差编号,请修改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + return; + } + + #endregion 防愚操作 + + TRangeModel ttm = new TRangeModel(); + ttm.CarType = strCarType; + ttm.RangeName = strMesPointName; + ttm.RangePoint = strDimensionName; + ttm.RangeLower = double.Parse(rtbLower.Text.Trim()); + ttm.RangeUpper = double.Parse(rtbUpper.Text.Trim()); + ttm.Remark = rtbRemark.Text.Trim(); + ttm.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + try + { + tmdal.InsertNewRange(ttm); + } + catch (Exception ex) + { + MessageBox.Show("添加极差带信息失败,原因:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + MyBase.TraceWriteLine("添加极差带信息失败,原因:" + ex.ToString()); + return; + } + + MessageBox.Show("添加极差带信息成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + gFTS.rtbnSearch_Click(null, null); + } + + private void rbtnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} \ No newline at end of file diff --git a/Analysis/Range/FAddRange.designer.cs b/Analysis/Range/FAddRange.designer.cs new file mode 100644 index 0000000..da783f8 --- /dev/null +++ b/Analysis/Range/FAddRange.designer.cs @@ -0,0 +1,482 @@ +namespace NSAnalysis +{ + partial class FAddRange + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FAddRange)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.radLabel7 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel3 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel4 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel2 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel5 = new Telerik.WinControls.UI.RadLabel(); + this.rtbCarType = new Telerik.WinControls.UI.RadTextBox(); + this.rtbMesPointName = new Telerik.WinControls.UI.RadTextBox(); + this.rtbUpper = new Telerik.WinControls.UI.RadTextBox(); + this.rbtnCancel = new Telerik.WinControls.UI.RadButton(); + this.rbtnOK = new Telerik.WinControls.UI.RadButton(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.rtbLower = new Telerik.WinControls.UI.RadTextBox(); + this.rtbRemark = new Telerik.WinControls.UI.RadTextBox(); + this.radLabel1 = new Telerik.WinControls.UI.RadLabel(); + this.label5 = new System.Windows.Forms.Label(); + this.rtbRangePointName = new Telerik.WinControls.UI.RadTextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.radLabel6 = new Telerik.WinControls.UI.RadLabel(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarType)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbUpper)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnOK)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLower)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRemark)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRangePointName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel6)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(373, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "添加极差带"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "添加极差带"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(117, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(159, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(107, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "添加极差带"; + // + // radLabel7 + // + this.radLabel7.AutoSize = false; + this.radLabel7.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel7.ForeColor = System.Drawing.Color.White; + this.radLabel7.Location = new System.Drawing.Point(4, 236); + this.radLabel7.Name = "radLabel7"; + this.radLabel7.Size = new System.Drawing.Size(148, 23); + this.radLabel7.TabIndex = 29; + this.radLabel7.Text = "上限值:"; + this.radLabel7.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel3 + // + this.radLabel3.AutoSize = false; + this.radLabel3.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel3.ForeColor = System.Drawing.Color.White; + this.radLabel3.Location = new System.Drawing.Point(4, 198); + this.radLabel3.Name = "radLabel3"; + this.radLabel3.Size = new System.Drawing.Size(148, 23); + this.radLabel3.TabIndex = 28; + this.radLabel3.Text = "下限值:"; + this.radLabel3.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel4 + // + this.radLabel4.AutoSize = false; + this.radLabel4.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel4.ForeColor = System.Drawing.Color.White; + this.radLabel4.Location = new System.Drawing.Point(4, 141); + this.radLabel4.Name = "radLabel4"; + this.radLabel4.Size = new System.Drawing.Size(148, 23); + this.radLabel4.TabIndex = 27; + this.radLabel4.Text = "极差包含点位:"; + this.radLabel4.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel2 + // + this.radLabel2.AutoSize = false; + this.radLabel2.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel2.ForeColor = System.Drawing.Color.White; + this.radLabel2.Location = new System.Drawing.Point(4, 101); + this.radLabel2.Name = "radLabel2"; + this.radLabel2.Size = new System.Drawing.Size(148, 23); + this.radLabel2.TabIndex = 26; + this.radLabel2.Text = "极差编号名称:"; + this.radLabel2.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel5 + // + this.radLabel5.AutoSize = false; + this.radLabel5.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel5.ForeColor = System.Drawing.Color.White; + this.radLabel5.Location = new System.Drawing.Point(4, 60); + this.radLabel5.Name = "radLabel5"; + this.radLabel5.Size = new System.Drawing.Size(148, 23); + this.radLabel5.TabIndex = 25; + this.radLabel5.Text = "车身类型:"; + this.radLabel5.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // rtbCarType + // + this.rtbCarType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbCarType.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbCarType.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbCarType.ForeColor = System.Drawing.Color.White; + this.rtbCarType.Location = new System.Drawing.Point(158, 60); + this.rtbCarType.Name = "rtbCarType"; + this.rtbCarType.Size = new System.Drawing.Size(173, 23); + this.rtbCarType.TabIndex = 1; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCarType.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCarType.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbMesPointName + // + this.rtbMesPointName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbMesPointName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbMesPointName.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbMesPointName.ForeColor = System.Drawing.Color.White; + this.rtbMesPointName.Location = new System.Drawing.Point(158, 101); + this.rtbMesPointName.Name = "rtbMesPointName"; + this.rtbMesPointName.Size = new System.Drawing.Size(173, 23); + this.rtbMesPointName.TabIndex = 2; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbMesPointName.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbMesPointName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbUpper + // + this.rtbUpper.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbUpper.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbUpper.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbUpper.ForeColor = System.Drawing.Color.White; + this.rtbUpper.Location = new System.Drawing.Point(158, 235); + this.rtbUpper.MaxLength = 15; + this.rtbUpper.Name = "rtbUpper"; + this.rtbUpper.Size = new System.Drawing.Size(173, 23); + this.rtbUpper.TabIndex = 5; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbUpper.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbUpper.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rbtnCancel + // + this.rbtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnCancel.Font = new System.Drawing.Font("微软雅黑", 11F); + this.rbtnCancel.ForeColor = System.Drawing.Color.White; + this.rbtnCancel.Location = new System.Drawing.Point(246, 336); + this.rbtnCancel.Name = "rbtnCancel"; + this.rbtnCancel.Size = new System.Drawing.Size(85, 30); + this.rbtnCancel.TabIndex = 10; + this.rbtnCancel.Text = "取消"; + this.rbtnCancel.Click += new System.EventHandler(this.rbtnCancel_Click); + this.rbtnCancel.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnCancel.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).Text = "取消"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rbtnOK + // + this.rbtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnOK.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnOK.Font = new System.Drawing.Font("微软雅黑", 11F); + this.rbtnOK.ForeColor = System.Drawing.Color.White; + this.rbtnOK.Location = new System.Drawing.Point(118, 336); + this.rbtnOK.Name = "rbtnOK"; + this.rbtnOK.Size = new System.Drawing.Size(85, 30); + this.rbtnOK.TabIndex = 9; + this.rbtnOK.Text = "添加"; + this.rbtnOK.Click += new System.EventHandler(this.rbtnOK_Click); + this.rbtnOK.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnOK.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnOK.GetChildAt(0))).Text = "添加"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("宋体", 12F); + this.label1.ForeColor = System.Drawing.Color.Red; + this.label1.Location = new System.Drawing.Point(336, 238); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(15, 16); + this.label1.TabIndex = 34; + this.label1.Text = "*"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("宋体", 12F); + this.label3.ForeColor = System.Drawing.Color.Red; + this.label3.Location = new System.Drawing.Point(336, 201); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(15, 16); + this.label3.TabIndex = 35; + this.label3.Text = "*"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("宋体", 12F); + this.label4.ForeColor = System.Drawing.Color.Red; + this.label4.Location = new System.Drawing.Point(336, 66); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(15, 16); + this.label4.TabIndex = 36; + this.label4.Text = "*"; + // + // rtbLower + // + this.rtbLower.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbLower.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbLower.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbLower.ForeColor = System.Drawing.Color.White; + this.rtbLower.Location = new System.Drawing.Point(158, 198); + this.rtbLower.Name = "rtbLower"; + this.rtbLower.Size = new System.Drawing.Size(173, 23); + this.rtbLower.TabIndex = 4; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbLower.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbLower.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbRemark + // + this.rtbRemark.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbRemark.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbRemark.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbRemark.ForeColor = System.Drawing.Color.White; + this.rtbRemark.Location = new System.Drawing.Point(158, 275); + this.rtbRemark.Name = "rtbRemark"; + this.rtbRemark.Size = new System.Drawing.Size(173, 23); + this.rtbRemark.TabIndex = 37; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbRemark.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbRemark.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radLabel1 + // + this.radLabel1.AutoSize = false; + this.radLabel1.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel1.ForeColor = System.Drawing.Color.White; + this.radLabel1.Location = new System.Drawing.Point(4, 275); + this.radLabel1.Name = "radLabel1"; + this.radLabel1.Size = new System.Drawing.Size(148, 23); + this.radLabel1.TabIndex = 38; + this.radLabel1.Text = "备注:"; + this.radLabel1.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("宋体", 12F); + this.label5.ForeColor = System.Drawing.Color.Red; + this.label5.Location = new System.Drawing.Point(337, 108); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(15, 16); + this.label5.TabIndex = 40; + this.label5.Text = "*"; + // + // rtbRangePointName + // + this.rtbRangePointName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbRangePointName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbRangePointName.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbRangePointName.ForeColor = System.Drawing.Color.White; + this.rtbRangePointName.Location = new System.Drawing.Point(158, 141); + this.rtbRangePointName.Name = "rtbRangePointName"; + this.rtbRangePointName.Size = new System.Drawing.Size(173, 23); + this.rtbRangePointName.TabIndex = 41; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbRangePointName.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbRangePointName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label6 + // + this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("宋体", 12F); + this.label6.ForeColor = System.Drawing.Color.Red; + this.label6.Location = new System.Drawing.Point(337, 148); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(15, 16); + this.label6.TabIndex = 42; + this.label6.Text = "*"; + // + // radLabel6 + // + this.radLabel6.AutoSize = false; + this.radLabel6.Font = new System.Drawing.Font("微软雅黑", 9F); + this.radLabel6.ForeColor = System.Drawing.Color.Red; + this.radLabel6.Location = new System.Drawing.Point(158, 170); + this.radLabel6.Name = "radLabel6"; + this.radLabel6.Size = new System.Drawing.Size(194, 23); + this.radLabel6.TabIndex = 43; + this.radLabel6.Text = "极差包含点位必须用英文逗号隔开"; + // + // FAddRange + // + this.AcceptButton = this.rbtnOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(375, 392); + this.Controls.Add(this.radLabel6); + this.Controls.Add(this.label6); + this.Controls.Add(this.rtbRangePointName); + this.Controls.Add(this.label5); + this.Controls.Add(this.rtbRemark); + this.Controls.Add(this.radLabel1); + this.Controls.Add(this.rtbLower); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label1); + this.Controls.Add(this.rbtnCancel); + this.Controls.Add(this.rbtnOK); + this.Controls.Add(this.rtbUpper); + this.Controls.Add(this.rtbMesPointName); + this.Controls.Add(this.rtbCarType); + this.Controls.Add(this.radLabel7); + this.Controls.Add(this.radLabel3); + this.Controls.Add(this.radLabel4); + this.Controls.Add(this.radLabel2); + this.Controls.Add(this.radLabel5); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FAddRange"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "添加极差带"; + this.Load += new System.EventHandler(this.SFAddCNC_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarType)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbUpper)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnOK)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLower)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRemark)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRangePointName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel6)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private Telerik.WinControls.UI.RadLabel radLabel7; + private Telerik.WinControls.UI.RadLabel radLabel3; + private Telerik.WinControls.UI.RadLabel radLabel4; + private Telerik.WinControls.UI.RadLabel radLabel2; + private Telerik.WinControls.UI.RadLabel radLabel5; + private Telerik.WinControls.UI.RadTextBox rtbCarType; + private Telerik.WinControls.UI.RadTextBox rtbMesPointName; + private Telerik.WinControls.UI.RadTextBox rtbUpper; + private Telerik.WinControls.UI.RadButton rbtnCancel; + private Telerik.WinControls.UI.RadButton rbtnOK; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private Telerik.WinControls.UI.RadTextBox rtbLower; + private Telerik.WinControls.UI.RadTextBox rtbRemark; + private Telerik.WinControls.UI.RadLabel radLabel1; + private System.Windows.Forms.Label label5; + private Telerik.WinControls.UI.RadTextBox rtbRangePointName; + private System.Windows.Forms.Label label6; + private Telerik.WinControls.UI.RadLabel radLabel6; + } +} diff --git a/Analysis/Range/FAddRange.resx b/Analysis/Range/FAddRange.resx new file mode 100644 index 0000000..a346816 --- /dev/null +++ b/Analysis/Range/FAddRange.resx @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/Range/FEditRange.cs b/Analysis/Range/FEditRange.cs new file mode 100644 index 0000000..0336b43 --- /dev/null +++ b/Analysis/Range/FEditRange.cs @@ -0,0 +1,192 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using BaseFunction; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using DAL; + +namespace NSAnalysis +{ + public partial class FEditRange : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + //private TMeasureSQLiteDAL tmdal = new TMeasureSQLiteDAL(); + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private FRangeSetup gFTS; + + #endregion 全局变量 + + #region 鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion 鼠标事件 + + private void InitLanguage() + { + if (!ConfigDfn.bLanguage) + { + this.Text = "Edit CNC"; + labTitle.Text = "Edit CNC"; + radLabel5.Text = "CNC ID : "; + radLabel2.Text = "CNC Name : "; + radLabel4.Text = "CNC Location : "; + radLabel3.Text = "CNC Type : "; + radLabel7.Text = "CNC IP : "; + + radLabel1.Text = "Remark : "; + + rbtnOK.Text = "Edit"; + rbtnCancel.Text = "Cancel"; + } + } + + public FEditRange(FRangeSetup fts) + { + InitializeComponent(); + InitLanguage(); + gFTS = fts; + } + + private void SFAddCNC_Load(object sender, EventArgs e) + { + rtbCarType.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["CarType"].Value.ToString(); + rtbMesPointName.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["MeasurePointName"].Value.ToString(); + rtbRangePointName.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["DimensionName"].Value.ToString(); + rtbLower.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["TolLower"].Value.ToString(); + rtbUpper.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["TolUpper"].Value.ToString(); + + rtbRemark.Text = (gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["Remark"].Value.ToString()); + } + + private void rbtnOK_Click(object sender, EventArgs e) + { + #region 防愚操作 + + string strCarType = rtbCarType.Text.Trim(); + string strMesPointName = rtbMesPointName.Text.Trim(); + + string strRangePoint = rtbRangePointName.Text.Trim(); + if (string.IsNullOrEmpty(rtbCarType.Text.Trim())) + { + MessageBox.Show("车身类型不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (string.IsNullOrEmpty(rtbMesPointName.Text.Trim())) + { + MessageBox.Show("极差编号名称不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (string.IsNullOrEmpty(rtbRangePointName.Text.Trim())) + { + MessageBox.Show("极差包含点位不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + else + { + if (!rtbRangePointName.Text.Trim().Contains(",")) + { + MessageBox.Show("极差包含点位必须用英文逗号隔开,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + + if (string.IsNullOrEmpty(rtbLower.Text.Trim())) + { + MessageBox.Show("下限值不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (string.IsNullOrEmpty(rtbUpper.Text.Trim())) + { + MessageBox.Show("上限值不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (!string.IsNullOrEmpty(rtbLower.Text.Trim())) + { + try + { + double dtemp = double.Parse(rtbLower.Text.Trim()); + } + catch (Exception) + { + MessageBox.Show("下限值必须是数字,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + if (!string.IsNullOrEmpty(rtbUpper.Text.Trim())) + { + try + { + double dtemp = double.Parse(rtbUpper.Text.Trim()); + } + catch (Exception) + { + MessageBox.Show("上限值必须是数字,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + if (rtbCarType.Text != gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["CarType"].Value.ToString() || rtbMesPointName.Text != gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["MeasurePointName"].Value.ToString()) + { + if (tmdal.CheckRangeNameExit(strCarType, strMesPointName)) + { + MessageBox.Show("该车身类型下,已经存在该极差编号,请修改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + return; + } + } + + #endregion 防愚操作 + + try + { + TRangeModel ttm = new TRangeModel(); + ttm.Id = int.Parse(gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["Id"].Value.ToString()); + ttm.CarType = strCarType; + ttm.RangeName = strMesPointName; + ttm.RangePoint = strRangePoint; + ttm.RangeLower = double.Parse(rtbLower.Text.Trim()); + ttm.RangeUpper = double.Parse(rtbUpper.Text.Trim()); + ttm.Remark = rtbRemark.Text.Trim(); + ttm.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + tmdal.UpdateTRange(ttm); + } + catch (Exception ex) + { + MessageBox.Show("修改极差带信息失败,原因:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + return; + } + + MessageBox.Show("修改极差带信息成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + gFTS.rtbnSearch_Click(null, null); + + this.Close(); + } + + private void rbtnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} \ No newline at end of file diff --git a/Analysis/Range/FEditRange.designer.cs b/Analysis/Range/FEditRange.designer.cs new file mode 100644 index 0000000..77581cf --- /dev/null +++ b/Analysis/Range/FEditRange.designer.cs @@ -0,0 +1,482 @@ +namespace NSAnalysis +{ + partial class FEditRange + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FEditRange)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.radLabel7 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel3 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel4 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel2 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel5 = new Telerik.WinControls.UI.RadLabel(); + this.rtbCarType = new Telerik.WinControls.UI.RadTextBox(); + this.rtbMesPointName = new Telerik.WinControls.UI.RadTextBox(); + this.rtbUpper = new Telerik.WinControls.UI.RadTextBox(); + this.rbtnCancel = new Telerik.WinControls.UI.RadButton(); + this.rbtnOK = new Telerik.WinControls.UI.RadButton(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.rtbLower = new Telerik.WinControls.UI.RadTextBox(); + this.rtbRemark = new Telerik.WinControls.UI.RadTextBox(); + this.radLabel1 = new Telerik.WinControls.UI.RadLabel(); + this.label5 = new System.Windows.Forms.Label(); + this.rtbRangePointName = new Telerik.WinControls.UI.RadTextBox(); + this.radLabel6 = new Telerik.WinControls.UI.RadLabel(); + this.label6 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarType)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbUpper)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnOK)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLower)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRemark)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRangePointName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel6)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(373, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "修改极差带"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "修改极差带"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(115, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(157, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(107, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "修改极差带"; + // + // radLabel7 + // + this.radLabel7.AutoSize = false; + this.radLabel7.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel7.ForeColor = System.Drawing.Color.White; + this.radLabel7.Location = new System.Drawing.Point(1, 248); + this.radLabel7.Name = "radLabel7"; + this.radLabel7.Size = new System.Drawing.Size(152, 23); + this.radLabel7.TabIndex = 29; + this.radLabel7.Text = "上限值:"; + this.radLabel7.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel3 + // + this.radLabel3.AutoSize = false; + this.radLabel3.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel3.ForeColor = System.Drawing.Color.White; + this.radLabel3.Location = new System.Drawing.Point(6, 210); + this.radLabel3.Name = "radLabel3"; + this.radLabel3.Size = new System.Drawing.Size(147, 23); + this.radLabel3.TabIndex = 28; + this.radLabel3.Text = "下限值:"; + this.radLabel3.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel4 + // + this.radLabel4.AutoSize = false; + this.radLabel4.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel4.ForeColor = System.Drawing.Color.White; + this.radLabel4.Location = new System.Drawing.Point(6, 142); + this.radLabel4.Name = "radLabel4"; + this.radLabel4.Size = new System.Drawing.Size(147, 23); + this.radLabel4.TabIndex = 27; + this.radLabel4.Text = "极差包含点位:"; + this.radLabel4.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel2 + // + this.radLabel2.AutoSize = false; + this.radLabel2.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel2.ForeColor = System.Drawing.Color.White; + this.radLabel2.Location = new System.Drawing.Point(6, 102); + this.radLabel2.Name = "radLabel2"; + this.radLabel2.Size = new System.Drawing.Size(147, 23); + this.radLabel2.TabIndex = 26; + this.radLabel2.Text = "极差编号名称:"; + this.radLabel2.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel5 + // + this.radLabel5.AutoSize = false; + this.radLabel5.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel5.ForeColor = System.Drawing.Color.White; + this.radLabel5.Location = new System.Drawing.Point(6, 61); + this.radLabel5.Name = "radLabel5"; + this.radLabel5.Size = new System.Drawing.Size(147, 23); + this.radLabel5.TabIndex = 25; + this.radLabel5.Text = "车身类型:"; + this.radLabel5.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // rtbCarType + // + this.rtbCarType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbCarType.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbCarType.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbCarType.ForeColor = System.Drawing.Color.White; + this.rtbCarType.Location = new System.Drawing.Point(160, 61); + this.rtbCarType.Name = "rtbCarType"; + this.rtbCarType.Size = new System.Drawing.Size(173, 23); + this.rtbCarType.TabIndex = 1; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCarType.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCarType.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbMesPointName + // + this.rtbMesPointName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbMesPointName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbMesPointName.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbMesPointName.ForeColor = System.Drawing.Color.White; + this.rtbMesPointName.Location = new System.Drawing.Point(160, 102); + this.rtbMesPointName.Name = "rtbMesPointName"; + this.rtbMesPointName.Size = new System.Drawing.Size(173, 23); + this.rtbMesPointName.TabIndex = 2; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbMesPointName.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbMesPointName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbUpper + // + this.rtbUpper.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbUpper.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbUpper.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbUpper.ForeColor = System.Drawing.Color.White; + this.rtbUpper.Location = new System.Drawing.Point(160, 247); + this.rtbUpper.MaxLength = 15; + this.rtbUpper.Name = "rtbUpper"; + this.rtbUpper.Size = new System.Drawing.Size(173, 23); + this.rtbUpper.TabIndex = 5; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbUpper.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbUpper.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rbtnCancel + // + this.rbtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnCancel.Font = new System.Drawing.Font("微软雅黑", 11F); + this.rbtnCancel.ForeColor = System.Drawing.Color.White; + this.rbtnCancel.Location = new System.Drawing.Point(248, 338); + this.rbtnCancel.Name = "rbtnCancel"; + this.rbtnCancel.Size = new System.Drawing.Size(85, 30); + this.rbtnCancel.TabIndex = 10; + this.rbtnCancel.Text = "取消"; + this.rbtnCancel.Click += new System.EventHandler(this.rbtnCancel_Click); + this.rbtnCancel.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnCancel.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).Text = "取消"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rbtnOK + // + this.rbtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnOK.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnOK.Font = new System.Drawing.Font("微软雅黑", 11F); + this.rbtnOK.ForeColor = System.Drawing.Color.White; + this.rbtnOK.Location = new System.Drawing.Point(120, 338); + this.rbtnOK.Name = "rbtnOK"; + this.rbtnOK.Size = new System.Drawing.Size(85, 30); + this.rbtnOK.TabIndex = 9; + this.rbtnOK.Text = "修改"; + this.rbtnOK.Click += new System.EventHandler(this.rbtnOK_Click); + this.rbtnOK.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnOK.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnOK.GetChildAt(0))).Text = "修改"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("宋体", 12F); + this.label1.ForeColor = System.Drawing.Color.Red; + this.label1.Location = new System.Drawing.Point(339, 65); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(15, 16); + this.label1.TabIndex = 35; + this.label1.Text = "*"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("宋体", 12F); + this.label3.ForeColor = System.Drawing.Color.Red; + this.label3.Location = new System.Drawing.Point(339, 250); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(15, 16); + this.label3.TabIndex = 36; + this.label3.Text = "*"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("宋体", 12F); + this.label4.ForeColor = System.Drawing.Color.Red; + this.label4.Location = new System.Drawing.Point(339, 217); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(15, 16); + this.label4.TabIndex = 37; + this.label4.Text = "*"; + // + // rtbLower + // + this.rtbLower.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbLower.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbLower.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbLower.ForeColor = System.Drawing.Color.White; + this.rtbLower.Location = new System.Drawing.Point(160, 210); + this.rtbLower.Name = "rtbLower"; + this.rtbLower.Size = new System.Drawing.Size(173, 23); + this.rtbLower.TabIndex = 4; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbLower.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbLower.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbRemark + // + this.rtbRemark.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbRemark.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbRemark.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbRemark.ForeColor = System.Drawing.Color.White; + this.rtbRemark.Location = new System.Drawing.Point(163, 286); + this.rtbRemark.Name = "rtbRemark"; + this.rtbRemark.Size = new System.Drawing.Size(173, 23); + this.rtbRemark.TabIndex = 39; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbRemark.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbRemark.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radLabel1 + // + this.radLabel1.AutoSize = false; + this.radLabel1.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel1.ForeColor = System.Drawing.Color.White; + this.radLabel1.Location = new System.Drawing.Point(9, 286); + this.radLabel1.Name = "radLabel1"; + this.radLabel1.Size = new System.Drawing.Size(148, 23); + this.radLabel1.TabIndex = 40; + this.radLabel1.Text = "备注:"; + this.radLabel1.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("宋体", 12F); + this.label5.ForeColor = System.Drawing.Color.Red; + this.label5.Location = new System.Drawing.Point(339, 106); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(15, 16); + this.label5.TabIndex = 42; + this.label5.Text = "*"; + // + // rtbRangePointName + // + this.rtbRangePointName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbRangePointName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbRangePointName.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbRangePointName.ForeColor = System.Drawing.Color.White; + this.rtbRangePointName.Location = new System.Drawing.Point(159, 142); + this.rtbRangePointName.Name = "rtbRangePointName"; + this.rtbRangePointName.Size = new System.Drawing.Size(173, 23); + this.rtbRangePointName.TabIndex = 43; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbRangePointName.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbRangePointName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radLabel6 + // + this.radLabel6.AutoSize = false; + this.radLabel6.Font = new System.Drawing.Font("微软雅黑", 9F); + this.radLabel6.ForeColor = System.Drawing.Color.Red; + this.radLabel6.Location = new System.Drawing.Point(159, 171); + this.radLabel6.Name = "radLabel6"; + this.radLabel6.Size = new System.Drawing.Size(194, 23); + this.radLabel6.TabIndex = 44; + this.radLabel6.Text = "极差包含点位必须用英文逗号隔开"; + // + // label6 + // + this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("宋体", 12F); + this.label6.ForeColor = System.Drawing.Color.Red; + this.label6.Location = new System.Drawing.Point(338, 145); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(15, 16); + this.label6.TabIndex = 45; + this.label6.Text = "*"; + // + // FEditRange + // + this.AcceptButton = this.rbtnOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(375, 399); + this.Controls.Add(this.label6); + this.Controls.Add(this.radLabel6); + this.Controls.Add(this.rtbRangePointName); + this.Controls.Add(this.label5); + this.Controls.Add(this.rtbRemark); + this.Controls.Add(this.radLabel1); + this.Controls.Add(this.rtbLower); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label1); + this.Controls.Add(this.rbtnCancel); + this.Controls.Add(this.rbtnOK); + this.Controls.Add(this.rtbUpper); + this.Controls.Add(this.rtbMesPointName); + this.Controls.Add(this.rtbCarType); + this.Controls.Add(this.radLabel7); + this.Controls.Add(this.radLabel3); + this.Controls.Add(this.radLabel4); + this.Controls.Add(this.radLabel2); + this.Controls.Add(this.radLabel5); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FEditRange"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "修改极差带"; + this.Load += new System.EventHandler(this.SFAddCNC_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarType)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbUpper)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnOK)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLower)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRemark)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRangePointName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel6)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private Telerik.WinControls.UI.RadLabel radLabel7; + private Telerik.WinControls.UI.RadLabel radLabel3; + private Telerik.WinControls.UI.RadLabel radLabel4; + private Telerik.WinControls.UI.RadLabel radLabel2; + private Telerik.WinControls.UI.RadLabel radLabel5; + private Telerik.WinControls.UI.RadTextBox rtbCarType; + private Telerik.WinControls.UI.RadTextBox rtbMesPointName; + private Telerik.WinControls.UI.RadTextBox rtbUpper; + private Telerik.WinControls.UI.RadButton rbtnCancel; + private Telerik.WinControls.UI.RadButton rbtnOK; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private Telerik.WinControls.UI.RadTextBox rtbLower; + private Telerik.WinControls.UI.RadTextBox rtbRemark; + private Telerik.WinControls.UI.RadLabel radLabel1; + private System.Windows.Forms.Label label5; + private Telerik.WinControls.UI.RadTextBox rtbRangePointName; + private Telerik.WinControls.UI.RadLabel radLabel6; + private System.Windows.Forms.Label label6; + } +} diff --git a/Analysis/Range/FEditRange.resx b/Analysis/Range/FEditRange.resx new file mode 100644 index 0000000..a346816 --- /dev/null +++ b/Analysis/Range/FEditRange.resx @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/Range/FRangeSetup.cs b/Analysis/Range/FRangeSetup.cs new file mode 100644 index 0000000..bfb4273 --- /dev/null +++ b/Analysis/Range/FRangeSetup.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using DAL; + +namespace NSAnalysis +{ + public partial class FRangeSetup : Telerik.WinControls.UI.ShapedForm + { + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + public int idgvSelectRowNumber = 0; + + #region 鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion 鼠标事件 + + public FRangeSetup() + { + InitializeComponent(); + } + + private void FToleranceSetup_Load(object sender, EventArgs e) + { + dgvTolList.ColumnHeadersDefaultCellStyle.Font = new Font("Segoe UI", 10, FontStyle.Regular); + lpcAddTol.labPicture.Click += lpcAddTol_Click; + lpcAddTol.labText.Click += lpcAddTol_Click; + rtbnSearch_Click(null, null); + } + + public void rtbnSearch_Click(object sender, EventArgs e) + { + DataTable dt = tmdal.SelectAllRangeByCondition(rtbCarModel.Text.Trim(), rtbMesPointName.Text.Trim()); + + if (dt.Rows.Count > 0) + { + dgvTolList.DataSource = dt; + SetdgvRowBgColor(dgvTolList); + labSearchResult.Visible = false; + } + else + { + dgvTolList.DataSource = dt; + labSearchResult.Visible = true; + } + } + + /// + /// 设置DataGridView各行变色 + /// + /// DataGridView + public void SetdgvRowBgColor(DataGridView dgv) + { + if (dgv.Rows.Count > 0) + { + foreach (DataGridViewRow item in dgv.Rows) + { + if (item.Index % 2 == 0) + { + item.DefaultCellStyle.BackColor = Color.FromArgb(19, 46, 53); + } + else + { + item.DefaultCellStyle.BackColor = Color.FromArgb(27, 60, 68); + } + } + } + } + + private void dgvTolList_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e) + { + e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1); + } + + private void lpcAddTol_Click(object sender, EventArgs e) + { + FAddRange fat = new FAddRange(this); + fat.ShowDialog(this); + } + + private void dgvTolList_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + string buttonText = ""; + if (e.RowIndex < 0 || e.ColumnIndex < 0) + { + return; + } + try + { + buttonText = dgvTolList.Columns[e.ColumnIndex].HeaderText; + } + catch (Exception) + { + buttonText = " "; + } + if (buttonText == "删除") + { + if (DialogResult.Yes == MessageBox.Show("您确定要删除该条极差带信息吗,注意:删除后不可恢复!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) + { + string iObjIDPk = dgvTolList.Rows[e.RowIndex].Cells["Id"].Value.ToString(); + try + { + tmdal.DeleteOneRange(iObjIDPk); + } + catch (Exception ex) + { + MessageBox.Show("删除极差带信息失败,原因:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + MessageBox.Show("删除极差带信息成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + rtbnSearch_Click(null, null); + } + } + + if (buttonText == "修改" || buttonText == "Edit") + { + idgvSelectRowNumber = e.RowIndex; + FEditRange sfeditcnc = new FEditRange(this); + sfeditcnc.ShowDialog(); + } + } + } +} \ No newline at end of file diff --git a/Analysis/Range/FRangeSetup.designer.cs b/Analysis/Range/FRangeSetup.designer.cs new file mode 100644 index 0000000..f3d9f64 --- /dev/null +++ b/Analysis/Range/FRangeSetup.designer.cs @@ -0,0 +1,522 @@ +namespace NSAnalysis +{ + partial class FRangeSetup + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FRangeSetup)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.dgvTolList = new System.Windows.Forms.DataGridView(); + this.radGroupBox7 = new Telerik.WinControls.UI.RadGroupBox(); + this.rtbnSearch = new Telerik.WinControls.UI.RadButton(); + this.rtbDimensionName = new Telerik.WinControls.UI.RadTextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.rtbMesPointName = new Telerik.WinControls.UI.RadTextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.rtbCarModel = new Telerik.WinControls.UI.RadTextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.dataGridViewImageColumn1 = new System.Windows.Forms.DataGridViewImageColumn(); + this.dataGridViewImageColumn2 = new System.Windows.Forms.DataGridViewImageColumn(); + this.lpcAddTol = new UserControlClass.LabPictureControl(); + this.labSearchResult = new System.Windows.Forms.Label(); + this.Id = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CarType = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MeasurePointName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DimensionName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.TolLower = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.TolUpper = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Remark = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CNCEdit = new System.Windows.Forms.DataGridViewImageColumn(); + this.CNCDelete = new System.Windows.Forms.DataGridViewImageColumn(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvTolList)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox7)).BeginInit(); + this.radGroupBox7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbnSearch)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbDimensionName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarModel)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(930, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "极差带设置"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "极差带设置"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(367, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(409, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(107, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "极差带设置"; + // + // dgvTolList + // + this.dgvTolList.AllowUserToAddRows = false; + this.dgvTolList.AllowUserToDeleteRows = false; + this.dgvTolList.AllowUserToOrderColumns = true; + this.dgvTolList.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.dgvTolList.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dgvTolList.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.dgvTolList.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvTolList.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle1.Font = new System.Drawing.Font("Segoe UI", 11F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvTolList.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgvTolList.ColumnHeadersHeight = 40; + this.dgvTolList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Id, + this.CarType, + this.MeasurePointName, + this.DimensionName, + this.TolLower, + this.TolUpper, + this.Remark, + this.CNCEdit, + this.CNCDelete}); + this.dgvTolList.EnableHeadersVisualStyles = false; + this.dgvTolList.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); + this.dgvTolList.Location = new System.Drawing.Point(22, 153); + this.dgvTolList.Name = "dgvTolList"; + this.dgvTolList.ReadOnly = true; + this.dgvTolList.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle2.Font = new System.Drawing.Font("Segoe UI", 11F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvTolList.RowHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvTolList.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle3.Font = new System.Drawing.Font("Segoe UI", 9.75F); + dataGridViewCellStyle3.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvTolList.RowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvTolList.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Segoe UI", 11F); + this.dgvTolList.RowTemplate.Height = 40; + this.dgvTolList.Size = new System.Drawing.Size(887, 775); + this.dgvTolList.TabIndex = 17; + this.dgvTolList.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvTolList_CellContentClick); + this.dgvTolList.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.dgvTolList_RowStateChanged); + // + // radGroupBox7 + // + this.radGroupBox7.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox7.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radGroupBox7.Controls.Add(this.rtbnSearch); + this.radGroupBox7.Controls.Add(this.rtbDimensionName); + this.radGroupBox7.Controls.Add(this.label3); + this.radGroupBox7.Controls.Add(this.rtbMesPointName); + this.radGroupBox7.Controls.Add(this.label1); + this.radGroupBox7.Controls.Add(this.rtbCarModel); + this.radGroupBox7.Controls.Add(this.label15); + this.radGroupBox7.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radGroupBox7.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.radGroupBox7.HeaderText = "查询条件"; + this.radGroupBox7.Location = new System.Drawing.Point(160, 51); + this.radGroupBox7.Name = "radGroupBox7"; + // + // + // + this.radGroupBox7.RootElement.ShadowDepth = 2; + this.radGroupBox7.Size = new System.Drawing.Size(749, 94); + this.radGroupBox7.TabIndex = 456; + this.radGroupBox7.Text = "查询条件"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox7.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.radGroupBox7.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Width = 1F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox7.GetChildAt(0).GetChildAt(1))).GroupBoxStyle = Telerik.WinControls.UI.RadGroupBoxStyle.Standard; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "查询条件"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + // + // rtbnSearch + // + this.rtbnSearch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rtbnSearch.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbnSearch.ForeColor = System.Drawing.Color.White; + this.rtbnSearch.Location = new System.Drawing.Point(626, 28); + this.rtbnSearch.Name = "rtbnSearch"; + this.rtbnSearch.Size = new System.Drawing.Size(88, 51); + this.rtbnSearch.TabIndex = 461; + this.rtbnSearch.Text = "查询"; + this.rtbnSearch.Click += new System.EventHandler(this.rtbnSearch_Click); + this.rtbnSearch.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rtbnSearch.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).Text = "查询"; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).FocusBorderWidth = 5; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).EnableHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).EnableBorderHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).BorderHighlightThickness = 3; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).Width = 2F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).TopWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).RightWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rtbDimensionName + // + this.rtbDimensionName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbDimensionName.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbDimensionName.ForeColor = System.Drawing.Color.White; + this.rtbDimensionName.Location = new System.Drawing.Point(443, 51); + this.rtbDimensionName.Name = "rtbDimensionName"; + this.rtbDimensionName.ReadOnly = true; + this.rtbDimensionName.Size = new System.Drawing.Size(140, 27); + this.rtbDimensionName.TabIndex = 460; + this.rtbDimensionName.Text = "G"; + this.rtbDimensionName.Visible = false; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbDimensionName.GetChildAt(0))).Text = "G"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbDimensionName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label3.ForeColor = System.Drawing.Color.White; + this.label3.Location = new System.Drawing.Point(443, 27); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(95, 21); + this.label3.TabIndex = 459; + this.label3.Text = "尺寸名称:"; + this.label3.Visible = false; + // + // rtbMesPointName + // + this.rtbMesPointName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbMesPointName.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbMesPointName.ForeColor = System.Drawing.Color.White; + this.rtbMesPointName.Location = new System.Drawing.Point(237, 52); + this.rtbMesPointName.Name = "rtbMesPointName"; + this.rtbMesPointName.Size = new System.Drawing.Size(140, 27); + this.rtbMesPointName.TabIndex = 458; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbMesPointName.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbMesPointName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(233, 28); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(129, 21); + this.label1.TabIndex = 457; + this.label1.Text = "测量点位名称:"; + // + // rtbCarModel + // + this.rtbCarModel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbCarModel.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbCarModel.ForeColor = System.Drawing.Color.White; + this.rtbCarModel.Location = new System.Drawing.Point(42, 52); + this.rtbCarModel.Name = "rtbCarModel"; + this.rtbCarModel.Size = new System.Drawing.Size(140, 27); + this.rtbCarModel.TabIndex = 456; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCarModel.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCarModel.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label15.ForeColor = System.Drawing.Color.White; + this.label15.Location = new System.Drawing.Point(42, 28); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(95, 21); + this.label15.TabIndex = 455; + this.label15.Text = "车身类型:"; + // + // dataGridViewImageColumn1 + // + this.dataGridViewImageColumn1.HeaderText = "修改"; + this.dataGridViewImageColumn1.Image = ((System.Drawing.Image)(resources.GetObject("dataGridViewImageColumn1.Image"))); + this.dataGridViewImageColumn1.Name = "dataGridViewImageColumn1"; + this.dataGridViewImageColumn1.ReadOnly = true; + this.dataGridViewImageColumn1.ToolTipText = "点击修改机床信息"; + this.dataGridViewImageColumn1.Width = 45; + // + // dataGridViewImageColumn2 + // + this.dataGridViewImageColumn2.HeaderText = "删除"; + this.dataGridViewImageColumn2.Image = ((System.Drawing.Image)(resources.GetObject("dataGridViewImageColumn2.Image"))); + this.dataGridViewImageColumn2.Name = "dataGridViewImageColumn2"; + this.dataGridViewImageColumn2.ReadOnly = true; + this.dataGridViewImageColumn2.ToolTipText = "点击删除机床信息"; + this.dataGridViewImageColumn2.Width = 45; + // + // lpcAddTol + // + this.lpcAddTol.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcAddTol.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcAddTol.ForeColor = System.Drawing.Color.White; + this.lpcAddTol.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcAddTol.LabelText = "添加公差带"; + this.lpcAddTol.LabelTopImage = global::NSAnalysis.Properties.Resources.add_32; + this.lpcAddTol.Location = new System.Drawing.Point(22, 60); + this.lpcAddTol.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcAddTol.Name = "lpcAddTol"; + this.lpcAddTol.Size = new System.Drawing.Size(115, 85); + this.lpcAddTol.TabIndex = 18; + this.lpcAddTol.Click += new System.EventHandler(this.lpcAddTol_Click); + // + // labSearchResult + // + this.labSearchResult.Anchor = System.Windows.Forms.AnchorStyles.None; + this.labSearchResult.AutoSize = true; + this.labSearchResult.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.labSearchResult.Font = new System.Drawing.Font("Segoe UI", 12F); + this.labSearchResult.ForeColor = System.Drawing.Color.Red; + this.labSearchResult.Location = new System.Drawing.Point(240, 465); + this.labSearchResult.Name = "labSearchResult"; + this.labSearchResult.Size = new System.Drawing.Size(452, 21); + this.labSearchResult.TabIndex = 457; + this.labSearchResult.Text = "查询完毕,未查询到任何结果,请检查查询条件是否正确!"; + this.labSearchResult.Visible = false; + // + // Id + // + this.Id.DataPropertyName = "Id"; + this.Id.HeaderText = "Id"; + this.Id.Name = "Id"; + this.Id.ReadOnly = true; + this.Id.Visible = false; + this.Id.Width = 46; + // + // CarType + // + this.CarType.DataPropertyName = "CarType"; + this.CarType.HeaderText = "车身类型"; + this.CarType.Name = "CarType"; + this.CarType.ReadOnly = true; + this.CarType.Width = 97; + // + // MeasurePointName + // + this.MeasurePointName.DataPropertyName = "RangeName"; + this.MeasurePointName.HeaderText = "极差编号名称"; + this.MeasurePointName.Name = "MeasurePointName"; + this.MeasurePointName.ReadOnly = true; + this.MeasurePointName.Width = 129; + // + // DimensionName + // + this.DimensionName.DataPropertyName = "RangePoint"; + this.DimensionName.HeaderText = "极差包含点位"; + this.DimensionName.Name = "DimensionName"; + this.DimensionName.ReadOnly = true; + this.DimensionName.Width = 129; + // + // TolLower + // + this.TolLower.DataPropertyName = "RangeLower"; + this.TolLower.HeaderText = "下限值"; + this.TolLower.Name = "TolLower"; + this.TolLower.ReadOnly = true; + this.TolLower.Width = 81; + // + // TolUpper + // + this.TolUpper.DataPropertyName = "RangeUpper"; + this.TolUpper.HeaderText = "上限值"; + this.TolUpper.Name = "TolUpper"; + this.TolUpper.ReadOnly = true; + this.TolUpper.Width = 81; + // + // Remark + // + this.Remark.DataPropertyName = "Remark"; + this.Remark.HeaderText = "备注"; + this.Remark.Name = "Remark"; + this.Remark.ReadOnly = true; + this.Remark.Width = 65; + // + // CNCEdit + // + this.CNCEdit.HeaderText = "修改"; + this.CNCEdit.Image = ((System.Drawing.Image)(resources.GetObject("CNCEdit.Image"))); + this.CNCEdit.Name = "CNCEdit"; + this.CNCEdit.ReadOnly = true; + this.CNCEdit.ToolTipText = "点击修改极差信息"; + this.CNCEdit.Width = 46; + // + // CNCDelete + // + this.CNCDelete.HeaderText = "删除"; + this.CNCDelete.Image = ((System.Drawing.Image)(resources.GetObject("CNCDelete.Image"))); + this.CNCDelete.Name = "CNCDelete"; + this.CNCDelete.ReadOnly = true; + this.CNCDelete.ToolTipText = "点击删除极差信息"; + this.CNCDelete.Width = 46; + // + // FRangeSetup + // + this.AcceptButton = this.rtbnSearch; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(932, 950); + this.Controls.Add(this.labSearchResult); + this.Controls.Add(this.radGroupBox7); + this.Controls.Add(this.lpcAddTol); + this.Controls.Add(this.dgvTolList); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "FRangeSetup"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "极差带设置"; + this.Load += new System.EventHandler(this.FToleranceSetup_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvTolList)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox7)).EndInit(); + this.radGroupBox7.ResumeLayout(false); + this.radGroupBox7.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbnSearch)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbDimensionName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarModel)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private UserControlClass.LabPictureControl lpcAddTol; + public System.Windows.Forms.DataGridView dgvTolList; + private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn1; + private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn2; + private Telerik.WinControls.UI.RadGroupBox radGroupBox7; + private Telerik.WinControls.UI.RadTextBox rtbDimensionName; + private System.Windows.Forms.Label label3; + private Telerik.WinControls.UI.RadTextBox rtbMesPointName; + private System.Windows.Forms.Label label1; + private Telerik.WinControls.UI.RadTextBox rtbCarModel; + private System.Windows.Forms.Label label15; + private Telerik.WinControls.UI.RadButton rtbnSearch; + private System.Windows.Forms.Label labSearchResult; + private System.Windows.Forms.DataGridViewTextBoxColumn Id; + private System.Windows.Forms.DataGridViewTextBoxColumn CarType; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasurePointName; + private System.Windows.Forms.DataGridViewTextBoxColumn DimensionName; + private System.Windows.Forms.DataGridViewTextBoxColumn TolLower; + private System.Windows.Forms.DataGridViewTextBoxColumn TolUpper; + private System.Windows.Forms.DataGridViewTextBoxColumn Remark; + private System.Windows.Forms.DataGridViewImageColumn CNCEdit; + private System.Windows.Forms.DataGridViewImageColumn CNCDelete; + } +} diff --git a/Analysis/Range/FRangeSetup.resx b/Analysis/Range/FRangeSetup.resx new file mode 100644 index 0000000..af4acbe --- /dev/null +++ b/Analysis/Range/FRangeSetup.resx @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAABqdJREFUWEe1lnlQE1ccx61HPXEqFEdtx0GtZ1uPTq3V1mPafxjbomO1VVtrj1E7 + VfHgMOQggCggoAUUCEqCEIwElQAaslnIJrsBkpAGstlkNxFF28HqqONU7WhFeX27SWg8qFHxN/Mdluzb + 9/38fu/93m6/5wkAwAAx6pqytEITue1M5Qbfzy8/JFbroJUVTaEK24UF62vM0UsravKSMancd/vlBsz6 + lXLi4qivq1qWTJRihklS9dUVVSWdKlJwwjfk5cU6pXX8UmXT1jlluDZUgt4ano90rVJJu3NNaZ11roSX + A8CWex9GjZlVii9/76i+8K1irDFcgl4elq8FU0tUIF6XCypJEQTg9S0AW+of1LbwbQg1O6besXqKDCsP + K0RvjCjQPhgCzYfmI2CFqgQcNKcBDZPQiTB9XAGlUjngG1XLynly4tjYooYrrClnXICCYQVaMLIQAQWW + NKCiRH0L8HE5MWruUf38KcU6bXhR/aWQfO2dofnerP1640gtWFktg+ZCoKH5zwWwGMMGrjtlDhOLQX/f + T95YVtUcEVnZ/O2YovorsNxd0Lwnc1YjCzVgtrwSZDZlArWLD6DxMwFkN1GhySbnwvVq20+LKogfFyux + Eb5b3thUb5uxTtMSEyHTgZBC9CFz9nq8tAYsh2tfDbNHYPZa5ukVEAPQX4x1DNltYibsNbs+5+OOrO/U + VjRCqpOOlWCv+4Z5IwanZuzQtcVEVZtB+OH6xwAiT5aBjMZMLnNWQQGw5kbHpD0m+pDA6Li0HrHdX3Dc + eH1IPiId8SSAGD0Zsw2zg3flOAgr8kKwmuZruxonzD4YANhJApyKFBLOXB7hcO4ykDfhvPc/OdkMwiT1 + /w8QizvAUpUJTD6qhy3Htp0WrK0tBgfhzoeGnLFfjwJkGOkQcSM5TUhQMXycqoDGzjicvBMH51x1uoVL + DJ4jvQPEQQB28Aa0FcyvMILQIi0YffgMt/FOOBJ7Mn8UgC212EiPS8AdHyUaqa1CI9UR7zOOM5Bgh56E + 8zWCccU6MPjQUwDi2YegvoTE8xT1IKqqFJ54j5sHAqQ0O6bDrDN24WRrrIF8wBn7tBOaf4/YOHN2PwUN + EA33wk6MAEesad1ql+AhAPa6DrbiMfuev9ONRzr4jc52mPE1WO67geasNuvawNtlOGxj72YOGoBvdPy5 + z2SyIcy+NoTh/8Oa+lViSwGJhgNgQ52sa01tzW0e7uj2P8f+9V9v1dnBarUVdlUDd4oGDRBvILv3mFyE + lLRlmC5IsrWM6MYZp6CbPX7lbUkgtiEPLKxQgMkldWDuMaLHNFBwKbjSL6ps6ummoJcgscl5p5jsSMc8 + njfPdaLj9WfTmQr77nvJ+AEwX6EEwwsQbsLRMLPeANiNF1ll4trZf54EDZBlcZcXtrZ/pqLpkGMkMzPL + hLasqK69OUFaDUZJ6rjW7A3Av/Yrai3gHW/bPQMATu0QGp3XS8kL0WXUxahsi3t1lsWTIySsv396Er8D + X1IPlfNRAM4clp7dwB/CNh57RNcz9qkACRCAh5PRaRbadcrduabUcSE23cygCYSDa6uoGjOYWqrvAWDl + B/BnzSoGAqzX/AYiZBiXfeB4Vr0CiE3UjOQm15bD9vNEajN9jU9Q9wIn3gLbKarGAtff206sRsN3xqMA + 2/V2ru1ek/xXrUD1CgDfVmEZZvp9UaMzehdu3wUn48NjWeDXTr1dsB1rzI5GpYY4XW5XPJYDeNjBv0SG + w6R/jNjYdDDXcpJIxPMAT58D2DGBim3IubUZLbAuq5KvnVlaOtxn7Y0cj2fwHtwTHmukZvemzObaJUdb + D2yXt6XckrcmdctbU66Ute7Vsvd+taBzZW3HtyrIHHM5bNVAye1J9xX2VEpBZiikbTk7N2pk0zZaJYN8 + 1sGH2pMzWEtnjEPdog6EFtwNfBmhrrwwgzt9k4bhX/YfWBqG1wX/vw3PkT907tT9eHvWp9ZOyTBushcJ + /dk0PsoktgUCNDCJ6xBaeNpv7pXQ3cAkFzZ3FERQlPJV7uG+iNPk9onwc7wYmlAsgOVi/kSdO6VUS/Ov + IHTCfZQWuRBGlIrQoi/wc3unYB2yIezXtu/xFw+lctWAOpr3s5YWKFgAon3/xnp3cjPKCDsamCTUelHG + M5zL/kBDiUN9j/R9EOdzZ+k8yb/At2NlgydJjTKiVtSdVKk/m/kVANjAPs34ScEaMJfVMw3t6bm6s6lp + qEc4R0mJ+26dgwn6qipE706fjsJ1VnvEI8VA/PC3/lOjX79/AdonQT85iOsDAAAAAElFTkSuQmCC + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAACcQAAAnEAGUaVEZAAAAB3RJ + TUUH4wEJBBo3E/VSvgAAAfdJREFUOE+VkF1IU2EYx593uoKkAq+ii6C7qBmkQh8SWAR9XIgO1Loob4I2 + CCIkbyILAi+jIAgqw7IgaqJURsWCTffh5tuO66xpgTQ7LG+sseOZuEr/PQcOS7Pa+sEP3ov/7714qBQM + wyDtZhd5icoS1fb6ZI3dwdI4W5SFl000n7xHAIRs3nlKVpXN8Ccqx3ui28qt1V+Aco0Wg+cIFSTmsmm3 + JsN6yFkL6RBQd9hV6Sh3WNOVmDGU64TPEIhedOcj7bqWUpCOS8iW3Xi9Wcw82WCrt+bLKcSJYcFvN0ZP + 6wgeRD7UBuPLByR9Xv1hzRZXO9/ESn7xxzjSBIT3A8/Wwni6Tw8GBt0b+SY9bSesyuKf8eB6oJd0dJML + lSTCPcfpvsdjlUzxWHAsXOi0iW+3KyjXXWmVTMlx1yqBWzYyLZBJx2l+oo/QWyUQu/p/sUkmPUYqHyQ/ + 8di1KM9w3Fh6bJJJv2UT27OfItN59TLHBzheV1ps8vXjCGU1eVafCmNu8gV+hFqBB6s55msXi02m3/vW + zKYCz3OTXuTG+xf06A3te1/dyTsAjYYGaCimsLEVFmhobKj13L2ipWT/7LvAo1eRoYEO/xvlCIeHeLjU + w+xWdvkHu+r2bjp/6cJR/8jwMV9szOlX4k4eNLMtv9nKVrNLPiD6CcD+vhesM7RbAAAAAElFTkSuQmCC + + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AECByowmpX4DgAAA4VJREFU + OE9tkntMU1ccx799XKCtK1LSFuhgUB8B10sJUG5ZC0u4itt8DdFJm4CwBIZEcYaXW9xwiWFbtriHbsn+ + cQ+nyDLBPSymCMmcJGUkU7olIg+dlIGUIgyxXMrI2bnVGP/YST73/vJ9JL+cHIhHaNoOoWErltytED46 + iAdRQHBvRtgTjzgTQiB8Wgeh9WMI1TYINXkPzdnqfCw0bINw1Bm5fHx/ZejIbuviJ3WY4YCA04QZipfm + Fj/cj9BRZ/pyc0n1UiWnWqh5HrOVuTR0YBOmyjKZ4BvFh0OHNgtLbzv+mG8q4uY/qMWdTOB9Wp5/bx/m + 33KwQrPTE6rduBxs3P5uoDRDEaiiW4xV2Ji5+h1ND8rMwUW7jCwWp5D7b77i9b++lQscew3TzRWYbtzF + 3j9S4glSL0gzC6Xm0OyhLS3jpVkqTDZXxd0rt/bN5TFkzoow/+xMITONxd6xfYU5vtptpnuHd3tETfRm + RewMmSm3/j7RsOcZ+OmKE+X5/N1C/YjfKiF+DmECLyeTu3VFN6bqiwem6TxFtTA0M7lJP/J3WR4/KV7i + X8ca4M+V4bbTzo8VaEfGcyRkPAdk3AIy8WI8mXjJQHx09lHNR707NHPLYeOnxM479cDtgw7cbKyBzyrD + 4E4LP5yvGRq1SMhoNsho1iPEmWrUuzlYZOF9VikG66tx60CJuAPgLX0B/ZV7cO05Hfo3m6r+zFWHbtDi + k1Dt377CDbUDuVr86tgIzy7bw/JXWauRzANuqxEu+1pTr83Qey07ggxkIsz1R4jaVVvC9Yv2FM7NGfEF + p8TXtAtFEfCj+Wm0W5LYHove05fJkH768H77HzzU67bovN9nG7ifaOd4Nn2ynamJOMvq2U5zrOdKBkOu + mvGYX9IVYyJPalfMcuIya7zfslqud50ROG3Uay+kRfdcZuWkJx2P6Xo2ctiVpuNdqTrevSFyuJsF6aa6 + +O9iZaQ9Vd13am1sEtoSE1f9YFx1wpUmXblEzUsmkJ/Xy0c6kqP5blaOyyYZxFnUOqnXSTMXafZCiurE + 2cS4p9AWr8Hp1THq7wwRJzvWS1ba10iHzsUpCrpYCc7oDDijTYCbBc7FRRWcN0qHOtZJVtoSmJPfqKPV + rfH0EgFG/EgqFMqkzzXyUy2ayFehiFUhgpFJVCp6y0oakcsQpVG2xERUfBYj+3KvQpEESCWAEv8B4hme + YYujYuAAAAAASUVORK5CYII= + + + + + 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 + YYujYuAAAAAASUVORK5CYII= + + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/advapi32.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/advapi32.dll new file mode 100644 index 0000000..b0573d8 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/advapi32.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll new file mode 100644 index 0000000..2fe309a Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll new file mode 100644 index 0000000..f8c413e Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll new file mode 100644 index 0000000..cd53a03 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll new file mode 100644 index 0000000..2064a85 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll new file mode 100644 index 0000000..6e7b0ff Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll new file mode 100644 index 0000000..7cf2bc6 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll new file mode 100644 index 0000000..76637b3 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll new file mode 100644 index 0000000..03c6d50 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/kernel32.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/kernel32.dll new file mode 100644 index 0000000..f2d0776 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/kernel32.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/mfc140u.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/mfc140u.dll new file mode 100644 index 0000000..93ecfff Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/mfc140u.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/msvcp140.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/msvcp140.dll new file mode 100644 index 0000000..ac8cc56 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/msvcp140.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/netapi32.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/netapi32.dll new file mode 100644 index 0000000..bfbdfbf Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/netapi32.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/shlwapi.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/shlwapi.dll new file mode 100644 index 0000000..1bae023 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/shlwapi.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/ucrtbase.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/ucrtbase.dll new file mode 100644 index 0000000..0006edc Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/ucrtbase.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/ucrtbased.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/ucrtbased.dll new file mode 100644 index 0000000..ad1175f Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/ucrtbased.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/vcruntime140.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/vcruntime140.dll new file mode 100644 index 0000000..5de800b Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/vcruntime140.dll differ diff --git a/Analysis/ReleaseFiles/CLMSWin环境依赖/vcruntime140_1.dll b/Analysis/ReleaseFiles/CLMSWin环境依赖/vcruntime140_1.dll new file mode 100644 index 0000000..f27fb49 Binary files /dev/null and b/Analysis/ReleaseFiles/CLMSWin环境依赖/vcruntime140_1.dll differ diff --git a/Analysis/ReleaseFiles/CheryAnalysis.exe b/Analysis/ReleaseFiles/CheryAnalysis.exe new file mode 100644 index 0000000..16dd1db Binary files /dev/null and b/Analysis/ReleaseFiles/CheryAnalysis.exe differ diff --git a/Analysis/ReleaseFiles/CheryAnalysisDAL.dll b/Analysis/ReleaseFiles/CheryAnalysisDAL.dll new file mode 100644 index 0000000..69d5135 Binary files /dev/null and b/Analysis/ReleaseFiles/CheryAnalysisDAL.dll differ diff --git a/Analysis/ReleaseFiles/Covert.dll b/Analysis/ReleaseFiles/Covert.dll new file mode 100644 index 0000000..a7cfe3a Binary files /dev/null and b/Analysis/ReleaseFiles/Covert.dll differ diff --git a/Analysis/ReleaseFiles/DataBase/CheryAnalysisDB.db b/Analysis/ReleaseFiles/DataBase/CheryAnalysisDB.db new file mode 100644 index 0000000..1feae50 Binary files /dev/null and b/Analysis/ReleaseFiles/DataBase/CheryAnalysisDB.db differ diff --git a/Analysis/ReleaseFiles/Debug.txt b/Analysis/ReleaseFiles/Debug.txt new file mode 100644 index 0000000..b0a2f83 --- /dev/null +++ b/Analysis/ReleaseFiles/Debug.txt @@ -0,0 +1,10 @@ +2023-10-25 14:48:18.224----软件Program Main函数开始执行-- +2023-10-25 14:48:18.225--加载配置文件——>开始 +2023-10-25 14:48:18.227--加载配置文件——>完成 +2023-10-25 14:48:18.228--Log in using the CLMS authorization. +2023-10-25 14:48:19.649--首次启动软件,遍历删除路径:D:\test下的文件全部删除 +2023-10-25 14:48:19.677--启动PLC写线程! +2023-10-25 14:48:19.678--连接PLC.... +2023-10-25 14:48:21.690--PLC S7连接失败。 +2023-10-25 14:48:21.691--连接PLC失败 +2023-10-25 14:48:44.142---------------海克斯康奇瑞面隙分析软件程序关闭--------------------- diff --git a/Analysis/ReleaseFiles/EntityFramework.SqlServer.dll b/Analysis/ReleaseFiles/EntityFramework.SqlServer.dll new file mode 100644 index 0000000..e11b437 Binary files /dev/null and b/Analysis/ReleaseFiles/EntityFramework.SqlServer.dll differ diff --git a/Analysis/ReleaseFiles/EntityFramework.dll b/Analysis/ReleaseFiles/EntityFramework.dll new file mode 100644 index 0000000..8400163 Binary files /dev/null and b/Analysis/ReleaseFiles/EntityFramework.dll differ diff --git a/Analysis/ReleaseFiles/File/CheryAnalysisConfig.ini b/Analysis/ReleaseFiles/File/CheryAnalysisConfig.ini new file mode 100644 index 0000000..918a2f3 --- /dev/null +++ b/Analysis/ReleaseFiles/File/CheryAnalysisConfig.ini @@ -0,0 +1,43 @@ +[Chery] +DeleteDebugFileIntervalTime=-5 +ConfigSkinName=FluentHexagon.tssp +SoftwareHelpDocument=HELP.pdf +Language =1 +;1 = ļ +;0 = Ӣ +RememberMe=1 +NextsenseCSVPath=D:\test +FPY=0.9 +ReportCSVPath=D:\QMLTest +CLMSModeID=1 +;1:CLMSȨ +AuthorizationMode=1 + + +[Timer] +;λs +TimerFixedStorage=1 +TimerRefreshMIDMode=2 +TimerRefreshCMMStatus=3 + +[Database] +SqlServerName=127.0.0.1 +SqlDbName=HFGYDB +SqlUserName=sa +SqlPassword=HexagonPai=3.1415 + + +[TCP] +ModbusTcp_IP=127.0.0.1 +ModbusTcp_Port=502 +ModbusTcp_Addr=1 +ModbusTcp_Reconnected=1 +PLC_StartAddr=100 +PLC_Length=100 +PlcType=3 +ModbusTcp_ReverseSequence=0 +PLC_S7StartAddr=100 +PLC_S7ByteLength=200 +PLC_S7DataBlock=DB4100 +PLC_S7ReadByteCount=200 + diff --git a/Analysis/ReleaseFiles/File/PlcAddrDfn.xml b/Analysis/ReleaseFiles/File/PlcAddrDfn.xml new file mode 100644 index 0000000..539e3af --- /dev/null +++ b/Analysis/ReleaseFiles/File/PlcAddrDfn.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/ReleaseFiles/File/PlcAddrDfn_S7.xml b/Analysis/ReleaseFiles/File/PlcAddrDfn_S7.xml new file mode 100644 index 0000000..6a6a23d --- /dev/null +++ b/Analysis/ReleaseFiles/File/PlcAddrDfn_S7.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/ReleaseFiles/HslCommunication.dll b/Analysis/ReleaseFiles/HslCommunication.dll new file mode 100644 index 0000000..2220e75 Binary files /dev/null and b/Analysis/ReleaseFiles/HslCommunication.dll differ diff --git a/Analysis/ReleaseFiles/Key/reg.key b/Analysis/ReleaseFiles/Key/reg.key new file mode 100644 index 0000000..0b1662f --- /dev/null +++ b/Analysis/ReleaseFiles/Key/reg.key @@ -0,0 +1 @@ +E0257D210D71798C7D342413B6AE6E827FF7CDF4D9B987590FAE35D6DCCAFB886AA76997CF2A0EB6CE1262B84EAA89847CE6CDC5A6F8D2EED117805EA3C58FC41BAE98458ABC8F6E2F7D3BC1F235ECAA82954257F761B6EDE6B01E9FFEE276B41AAB0B16C34FF9D2865DF53073BE883F9187EB6EB61E90DDAAA99D8CEBD45D79C7B258FDE9888FDC6ACCD540C3DB33F837A1CD9E7A11BB9D832E332CAE39B9F387EB6710AB221145D9A6E1F2A1FA298D40262129F295BA060BED16C420C03178782B354A00BAD77335C105D312852C3ACEA15E3CA3F54D6B16970431D3E78069F9EAD8D82F39E953F2D6B51CAEE05D904F400BAFC3F41FF2152E610D26B4CDCF27B257D642BF1F30BD8A177925C11CCA10126D0A2870F62CEE7FBD251DCC6A5C68D62B656F9ADA143E07B02516F84636148A81409E1D928DFB346CD8050354C82CA074EDB89ADCBE6E31AD2D142B58B04F2577A03F4CE43586150CE1C69370F28D58DAEABCB2C5920A9759C3D210DF7422DFAA2D1CB0D95564D2A07A82B2F4B4A497C47C57CE23CB1294C515FACF9EEF0C4A6CB8300317D90ECBC6B30D2ABA0EBE5698648EB59A1B33F770C4EB0F928970D13FD27DA4B9521F223210E3B43345B22C2583B76CFAF265F453C3835D7ADAF002206BD6F4C338D19D0DCCFC21F76526CAFDDEC710742816AFD59794DA9653452A9EF92504C1D44B9ED41133C75E185B80E331B531F0535705493788E09E4B04CF0AF947157D7C9E1D6F7F55ADFF4CA2786E83F4315A170E4C7F461B43515DA399766454E68E89428308D085AF0CC75182F5F21077D3A1A42E53784A13DA35D174311F41CB0C111672D7AF1E3EA0E62530BFD5AED3055D783C8020517B9BDB734E885A536BE72FC79A53B301F6994EE89E1EC3D195C4A95C8E880A1F058A9C745242797396C1505ADE70F66B51C0028466F38DDBFBDB66351B696404DC767D0886B7E903EA892C6D667723939B66376CBABF1035635CB9 diff --git a/Analysis/ReleaseFiles/MORCODE.dll b/Analysis/ReleaseFiles/MORCODE.dll new file mode 100644 index 0000000..5507d40 Binary files /dev/null and b/Analysis/ReleaseFiles/MORCODE.dll differ diff --git a/Analysis/ReleaseFiles/PLCModule.dll b/Analysis/ReleaseFiles/PLCModule.dll new file mode 100644 index 0000000..5e1ad2e Binary files /dev/null and b/Analysis/ReleaseFiles/PLCModule.dll differ diff --git a/Analysis/ReleaseFiles/SQLite.Interop.dll b/Analysis/ReleaseFiles/SQLite.Interop.dll new file mode 100644 index 0000000..12de96a Binary files /dev/null and b/Analysis/ReleaseFiles/SQLite.Interop.dll differ diff --git a/Analysis/ReleaseFiles/System.Data.SQLite.EF6.dll b/Analysis/ReleaseFiles/System.Data.SQLite.EF6.dll new file mode 100644 index 0000000..154f51f Binary files /dev/null and b/Analysis/ReleaseFiles/System.Data.SQLite.EF6.dll differ diff --git a/Analysis/ReleaseFiles/System.Data.SQLite.Linq.dll b/Analysis/ReleaseFiles/System.Data.SQLite.Linq.dll new file mode 100644 index 0000000..027171d Binary files /dev/null and b/Analysis/ReleaseFiles/System.Data.SQLite.Linq.dll differ diff --git a/Analysis/ReleaseFiles/System.Data.SQLite.dll b/Analysis/ReleaseFiles/System.Data.SQLite.dll new file mode 100644 index 0000000..770276d Binary files /dev/null and b/Analysis/ReleaseFiles/System.Data.SQLite.dll differ diff --git a/Analysis/ReleaseFiles/Telerik.WinControls.UI.dll b/Analysis/ReleaseFiles/Telerik.WinControls.UI.dll new file mode 100644 index 0000000..fdbe24d Binary files /dev/null and b/Analysis/ReleaseFiles/Telerik.WinControls.UI.dll differ diff --git a/Analysis/ReleaseFiles/Telerik.WinControls.dll b/Analysis/ReleaseFiles/Telerik.WinControls.dll new file mode 100644 index 0000000..fd85934 Binary files /dev/null and b/Analysis/ReleaseFiles/Telerik.WinControls.dll differ diff --git a/Analysis/ReleaseFiles/TelerikCommon.dll b/Analysis/ReleaseFiles/TelerikCommon.dll new file mode 100644 index 0000000..f491256 Binary files /dev/null and b/Analysis/ReleaseFiles/TelerikCommon.dll differ diff --git a/Analysis/ReleaseFiles/ThemeSkin/FluentHexagon.tssp b/Analysis/ReleaseFiles/ThemeSkin/FluentHexagon.tssp new file mode 100644 index 0000000..dbbba2f --- /dev/null +++ b/Analysis/ReleaseFiles/ThemeSkin/FluentHexagon.tssp @@ -0,0 +1,298 @@ + + + true + + + 7X3bUus8s+D9VM07UOvq3wVrxYccd/5v7wqEQ4CEQAIsuHMSQwxJHJwj1H6zuZhHmlcYSbZj2ZbtHGxZcdyA17Ikt+xWSy21Wt3/7//833//93I4OJrL2kRRR//84v9wv47kUVftKaP3f37Npm+/i7/++7/+9//699/hoN2Xh/IRKD+a/Odyovzzqz+djv8zk1ksFn8W4h9Ve88IHMdn/tZvW11QVvqtjCZTadSVfx2hZxvSUP7n18VgJo+mV/JSeldHRs6T+QICeAFQ3dHRv1vT74H8II/ViTJVtW+UCJKtlNpUHk6MZJDRlgeypnz+eVZGZ+poqqmDyR+EY/IHvLv9sSN4aX+PwdtcalJPAe/z66iqTMYD6Vt/ybqkjC6UweDX0Y38jd+eSWOpq0xBWvbXqnJQPaijqaljWZt+t+TpFJDvyLz/5xfp3ZqaMlSmyhy8H8S8uv1jvhF6+V9HTxKg1z+/WupA6f06yuxU55MymUmD8wGg+Gj651Tqfp6pA1VbVSKI3MmReQm3stZQVad98FRd7Vlf1VBHMl7PvzObNGNkja/OJvId6BQ4B9jTEs0GfKl0cmReDpcNmpo8mcg9jAlsKclmgXwWtL5xOQAWaMtLZ/NX5TdpNpheqJAxUPPbUkJrfjt1dORmU8vvqnz0WDs5Kv4RcuMpWwR67itTWU9H5MHuIyOOJtv5FNUZI1lOVa0naw7CgFccSGMwUJi5iDyu1NCI9CD1TAoBeikdZQCwrki0qpct7rkcfI/7GPdg9xFxz9lsMlWHtg5mPPQsdx5r4Y5yVmUt5cca5niOPTnX1qTRZCxpIAeTda7URMs77GsPQNrdSt/qzDXrVUaQVf8lcGWB+w9z2utIjGLMMuqwViFw/RFnP/ElD8+VeRd5zEQa5OEBeWIdRogyr9ZVRzZxhydYZClGOx3I8SdH+t+uvRgbpPSvoDJM+dT6rPSmfauPxDFKhfxFp+rSQUKAbiCbTMMWf1e6XUAoG4fbk6hNeWH3z4ngUiymTL73opgwM4YjJ9bsq9EUS6PGbOQBlQV53FDrkvaujJpSDyqrDTq5UiORyKgKvEMav7vyK1bH6gN8K2GhIYw3/Ve2jH7MqZE7OYqmcJIpe3Jk/MZIplZfGssOKj2os1HvQe5OUSa6cAalyFlRUMt4Mfvi117Y9i7/w+BqVZe6DVUbSgNsuepOTvR6NZpJgP3zGrNhR9bu3lDNE2v9wdoAtFqEFct80bUyMxKprMyKsEHYmkwgFfJjrSUPlY466PE5TJ/tkUdTs31kVg75OVYFt69s48q5MueWbVYyDdkG+nwOTQH2QLbxgrdwg3lMSDeByh73lfLevwelkE6eNWmK1hWWFLVuEy09mVjVrNmTBJ9posDKPDF3QD3Jfw6SLfNZ1xzESKQyB4Fb9nEKCF85ypcFIDA5pxy1kmnIUdDxhdiX0h7jMdq/HcjYkGxLobRlbNTJnA52MJW1kQSlh10R606ntuMgZAEvmZeE62N33lTZYZA/kL2H2lB6d04KLjVl3GidPxt5urWEPS2K2RpCbVHMqMkg1/0nL1TeKzpUX+BVRf9FCQt4Oa2cVTConldB+WUliydWfuo/9UwRXJsZ8L+fzL7dVzaE9Pn0efx5Joca90AT3zAjSpV7g3bYMFNDI0wdXg5imEnv6d6zpcPFjNMwg0lXKrVNYQ9jObYWmvCHsNA0kyktNPVf5qy1sBa0raQI6dRWUiGaYCZ9HRXGwibZSjoi118pvZ5st1K0J1FSr+iVskad04HU/bQRx5ZCTbqgWlkjzllf0qZPirxoqoo5NuqWY/rZDs/sKKbM/qMLc8IGDa7ooI6Nu9zJ8Z0aYtuMcXdxxiIboD7jwQtGXsoQCWGI4JNHcJP2XYO7ioSpKJYX0XQ00hNBnlvgq1qFeKoV46k2S7XadczYqGyh7bwpr84Gvaak4OcXtRlzu3SuNSQ+0Htlxq27SMQqk9VNLY/RHwldbKcbu4+IHdyjfNiCfysTJxZ6rXt+7jE1j1gLFPVMLBH6n1T0eI0pq4X4szSVtTdpgA4DXIB/rTNCAWUSbfkoZEsnR4Uc/NuXxnuQAD8HNN6qTKIbL8uhAx+g8eI08Num512pc8sPyhoFE92MAs+DJgS/+9KIRu8KbkR7wUQ3Yl6ETvKyJ0elOAdSf111RZMluwsiUg61pRefh+OXcYlH2cZo8wje7RPmWZm4Dt6TrGbzgAsK8Lxcbh/6j+jdQGIyG4jjDLNmviDuQQNlvRsom8gG4kXYg/JgGiHw+T1ooJx3A+US2UBCFp7EKWbhNGEfhri8dwPlE9lAPFwGo/WwkI1zKr5uAxW8G6iQyAaCM0W0VhK4ONe767ZP0bt9iolsHyEHpwelHBzm4pxlB61lYTsYa0J3AxkZiV6r8gJsI+OyDw1FXA+ZOYluKkGETl1EAV32oamIKyMzJ9FNxRfh/EFA6oy96FXENZKZQ23HVWdufXIs7tpGe7bzunZTEVdLZk6ie5XAI/ZAM4s4vXOs3VTEdZOZk+imAsOeMQAKsbprXrupiCsoMyfRTVWAwy1c7/JM7/uu2oO4ljJzEt1S+oSiyO/DrMJmS+duL1t2shuNxxZY+7DKwpqGuNay5ye/7fZp2YW1DXHxZc9Pftvt0zoMaxviasyeT21NptMxXZit23bE5Zk9P/n9bp9WaljbENdr9vzkt90+Ld2wtiEu4Oz5yW+7PVrLYU1DXNHZ85PfdPuyuDuVNNg8lZEylKaya9/Mle3TcmYhJzVbU4gM0qY2OZtpkAUMSl1IgwlonPNRbxXwCsoY4/Jrx3ZIJzZ+Le1aDLrzGeulIfAXCnjNI7HI58LkL7bb2rV4dOcnr635ArTb1p0klw6nrV2LTXd+AtsaRUpECrkCdzht7VqcuvOT19YCB7u0AOcIxQNqa9di1p2fvLbmkc0mHMMF6On+UNratfh15yevrZF6KY8WTPzhNLVrsezOT15T67OyfPFApmbokGTACttRJnltDltb/zuwBvdaaDsLJa/JBQEemuXg34G1udeC21koeW2OdhUFDp5Y48QDa3WvpbezUPJavVCAGjW0L39oje61BncWSl6jo4V4yTQiOKhG91qMOwslr9F5jjfH99KhzeS8luXOQslrdTiyZ5Hh0KG1udf63FkoeW2OzuPyyHuHEOpeLFOHekFz6gV81ufOAjQO+EYa3CEsp4nx7vi7jynvD5eRlAKuEimfhTiabb/zv898RlJEuEqkfBbieLa91cE+8xlJ9eEqkfJZiHy2vcXDPvMZSdviKpHyWYhyc3tri33mM5KCx1Ui5bMQx7PtLT32mc9IKiVXCQb5LIwWD2rltd1fJagbbK1o2+dOQNKxuUow2An2lst2sL/ZRz4Lsr8hlkoyv9GLUUvtGBbBpyRmcLRXHOqtG6RhMpTyKEUetVlI7RWTeisWadg4pUxKkUkdJl17xabeekkaRlkpm1JkU7sN2l5xqbdWk4YVWcqlNCW+zWhur7jUWydKw+wt5VKaIt9u5bdXbOqtUqVhp5eyKUU2tWlL94pJvVWeNAwLUyalKfHtdpSMsumtMpI9YufaspLMjnEKXMPLV9yuvtZmEpeS0p6Xskk0YwmKw4Mc2O4Dk7iUhPa8lEkiYZI8dHIMY3+zG+oM4wOXhs6el/JIVDxixMTbBx5x6cfseSmPRCNssoWTo2LcPn/XZhKXesqelzJJZMIG8omQZXcHE2MEl3LInpcySSRMwoFxJAv+9mL561LN2PNSFolG2IhgECnA1Q3by18Sc6RMERFTOA6HUtJDsj1KERUvqcYlunHJdm40ZUHAbUS1TqrPiWwUtB8pTVkQcBtRa5SqiyJjQftp05QFAbcRlVKpNioyQWw/iJqyIOA2osor1XVFNgraz6imLAi4jahQSzVpUbGg3Ul6yoGA2Yj6ulRRF5kctp8dTVkQcNuDpEw8DKdWWSk7RiOTvVSErDIJUX9n5aVsEs2o5aXGY5VNiDo2Ky9lk2hGEy9VG6tsQtSDWXkpm0TDJl7qMFbZhKirsvJSNolG6HiprFhlE6I+ycpL2SSa0cRLrcQqmxB1PlZeyiaRsImX6odVLiHqZay8lEuikTle6hnKbNKWl844Cy35XZUfay15qHTUQa90ocJQDIhHyFmhsYiTaBC52Siw5qPH2pFZ98lRaTyNkXAeQSoq3S5IRIdDYVgIgWvKGky500lk0DGwFGNhKnZpRneQCTTfEuA4KeSYm2+dShOlq+fcym/TB+W9b3I/OctqKj4f2QgZYWsxce7XJQEu1Jlx0HoSabXTqTq0c2dbk0aTsaShvh1ZzZCBSL3CuERYM2LbeKpuq+NWX+qpizgoDiqPo1pE7vi+GvJZfLXr/SvO+uF9VZMWdbVnDS5PAJnSlQZ3c+jHQVN+ACppEKMkupW+1ZlzKlGXtHdl9C++zMGf/zCEkCs1tKnCg9QzZbZeiTXynxxx+i+jNPotEImEJVOg0m+BBTLVhtK77KDSc1+Zym2l+2lkIho5E6OYciLUVnc0ajLodf/JX1YWFR2qL/Cqov++w2sWXk4rZxUMqucwb6nnpVCpZiCUMm9i4X17LBkHbIWviSF4E0vjt59ipv62Pr5m4TgznGNIxFJGesTyN8UHn/8LigoDcv6G+IIgQnw6QPpMdsUHkMy7O77ZnsA//zAqq7iyCGSS4BBVVioFSQVElIgEVZyWGN6aJ77oVjmZaTR1TXA/iF0dU1OTJxO5B7U6Nq2SLT3ReiS4uSvCzd18mItW++c1ZsOOrN29oZonZF0IC4NLU+r1wGf+C813rdHFnRzF8GLUgjcMF/v4QtTuweUwtvQ0yyBaeeRR0e/FpP9qq2O7ji/KExtIE0KvOticNBWYcWs6YP10qXt4+qyYlXmb6U/jn8/pExJs8xObpmCpkc3pSH5oc9ArXzFOP7S+8psH6wDw55TfVjIN+c2j9QG87sHkl/fbYvUtl+jJMbKkFrLQTjabD7ey1lBVp33wlE2p3lChhxWWhh+w6v2UNefw40qlNvycDkArsTbwGPqHbBn9OLQSVioFrUT25Mj4ZW3VYFsVwHmWbd3gmWvRrJguHPZ54RBlbWwsHFhZsjDnLlmfRuD9WhwvbVMMV17a7dNuv5fd3mN5lPBuT9owvxtPFXU0OZ2BVx3hm+akjBg2zjnh1NznwjbOz+FFz2B347xa+66P33/qP81MHVwzP+D+q7Yr1mW9fXms4wPXTBHdb/D8d/3jOldvny/fP86X9QcVYLkTr5bFt2MdH3rf1X2hC/CfS3p58P6jTyc+ofHx0nU+j71f0P3b1TJTADiEKwwpzNfaxPKLerWqwPt3mJ89X9278YP31c4tpNUXodFfgO+/fXWUf79R1K9TbCMb3X+A/OOKHd/0E32vkwgw/76K1Q9opdx70f/m2l5/g9xS1XuuUVXt9asu+uv1w/owejXAs3fOjXnIj0o97O+H/DMl07+yqN/VYP6p3l7mPZkfNIxeiB9OAW9kJpvyE8a/qL0J9A+V/72hCvB3stj7ofv1nycD5B+c39H9rki3g1gND9Y7lUA+hZBwhRiHPOTDmBthuqhlfrfYZ1VjKEdtygxiDlUFffg7+iweptiZB/dAJetrsUs2a/5N1a75NxOGzaQFSEXTwLqwL881dVRVF7Y1iEdeugxJgQmA0+6hvswLEZ99GTEMBx9cJubhNHb2sZo2vuyKD8vS8ZvLhDXpAfGNyPgsQNNodUWPURBSvT288eH1I3qE134pxAGxLkN8Vem287PoTG1bHetaQYdi3bekJe/AhD7JU8UDOXdL6xCq23KNjt6bcO6WTsVsnbqlesw5PXe7Z+dud1zfgUWx0lEGyLrLrBMmDWS6+5Qi1X3KKGtz7fhGb0Qdcn0Ye7zWRj15yYSz4gDdCNKD/Obd2hErg5J+xNCR/I5ThxmkIdF7IDzP7KUncZVItSWJgyo87fsCTx/voh1wAsQ3m5sHe4WNtQPegN43vzrt/Briahuefu5oq9PYEdIjnNPEYb/voeFDEA3/HwaweFp82VJ+ZOjoxZoF4EnRyH9Ug83xC2Ny/1JTxuY6Apf2hPQYZLx4WTENNjAZj8T76af+3zVkvNMjB4LjzjA3zwxzs04G/A3T++TeE2HB3hhlnS4XyYfOo/RpQTh0zqRTi8vB97gP03nT064tJSLbirPZBCylbW4tjIee5c5jLVzrA6syu/Rg7pTlytlKETBm0eWCxUyl44KliLiVVRohWrjsM6xUCjQyCMSu2zlOV8c4iYQl0+Ek046FsanalTwY17p2A3pHWrLUMHCT/aOLbGdvW9y0iNker+4LXVCmJgahWtkaFyC+Jgc3+T/aL0JDcdhuK+fQaKEBjQxKVVT+Czx7ScaHbJWhbXjVadtMhDP16+b9BZWH9QstdI+TBhoheNvaY0Yb5Hxk+2sZJUD6faLvXfi8n2U77DJjRoC+H+YXdXyQPktEv101LBCfml3hg1bMdc6vPGa0Uq0sLsi278jWfYUvUwx6C4jvfmXrXKoQ29tZfxBSZFuOyhv0hUYgfvRf5/t1gPz+g953iWzXCfjM70dnEyB975yF7LboDfxsATor4SyP2vvDxHd9hfjhzMm/KJ9sOw+enWDtteqPGWQrrx/LIPP/iv+m+vei90P336T+k3Ua5ejPA34R4dmAet27fTHQ3w+Vh/21R+w/+vej8UkfLyA/c/DsQh8rhe718QZ+7z0qv9Z4sfP4F+sSBwmKVl8au9ynKj+S1nuWB111KJ+pw/FAhqfA8PK6R9XgclHMB6Cp+7umzkY9oxJD1BUKs0yzWsp2nhfvveHTd1cYzDsfnFJvZRc15XTQGTbmr5eD2esPp/T+Pgxv2+9K8ydbfBxefLae+f6r8NSWLi8Wr61TgGM56/6Ms13hvlQb9rneVSV/+10Se2J31vupzzri9ej2pwZY73z+fM7XH4WG+gpwgHqwZz83evb2eTDrig998J6D2gd4r8uLcWf00OgID4PmZ2MA/j/oDvrt3tX1oHfZUJ/bi7mtzMfyuvN8MXp9anDd4VO/0849SD/Xzfvn3un94wX6e7gYoH87HLqfvOr/Xuj516f3+j3293DxcAme/9s/bZw78y4WrefG6e3Pa7t1fnF/I0zVHnc/754PPu5bReGR658+nk016ap3fiueXr9w5/PGoFG7f6poktAXH85K6fPp8+nzh/D8z2JujrFw/Hp55o6bF6f918uHcWfYPW6eX0w61ey0Dsa0++flBIxlZx3xgesI3PFtG46VleItdz3vXT3MO+1ssX35NOxVs4vmWan++vzKgfIt6bmnGmnm/4tPl6VF8wM8yz/Mu+D+lsfqBOVenh/MMVN9+Xs6aL6zq3XUrSHQr1PzaM+ioX00TSX0v7hnMT62EtB8yMtKAstL1sI8BU+I8LTGWqcNkoAv8LTGpoA7SfBeiG8FYX8/Buj0jHWoWw0Pc+T0SE+7+EP8C/Mg8z9fy79UqCUW9EFnxyOBTtj1SKAPbHUkcC1wHAmMkB7hGP2F/b6Hhk+HSPj/MIDdpW2uzJVz1r6yO5nGkjaHNpVzDG6/m/TIlsVy1u0s20qmQaYssjvKxussO8CnOFfm3dxkJVPyKc4hn+LMctPvLDxakyv/djGULYeKNimrH7oBne83s2ylx5RxK9+wdKrBZmJVu/mZCRXK6MdhJWSlUjASKpwcGb+s0cjkmkKZ5wA9ik5uwtJpcBMgEc8hSjFnmGeN2+jHPZybyZSGc+OXMcVAXR7NcF0Adp8u/ylB7+8TnxGf+N5bie/9/ZvZ/h4zhroKA59+byE9DQUfuicbozEO0Xz//rT/HsEe8X8k7R86MKfThqLKdYrdmZgKMUpAPoW1DWBM3AwuvS5YSKvhId1LIRbN94eHNOr23yPYI/4PD2lihZhnyEcz7B4x8qM7M27/0iyt7nXtmYdSjbpOjVWVGlTIZl0H76xUOuHqOKT3Z06hvTqGyJGcSEWsnnWfTmRWO6uMkDsNET/BaU+LhEB6FZb3tphPbgaMRrYDru5kSqNR/AdcfVkIP0xuS6LBQEweIjeoIGTLQtZJGjORBnEE6GiUuYCi7siBniEF03iCEfrpPIR4gjSj+qXxBAMFRZYgKbIURUU2TlnhecT2Qel01NGppF1q6mysN7HrfG1QofRwbUiHawfowCz3IvRfni4Hk9enT3RQTHrOce3n0udrO1t0Hl57fJ4sX+0HZV/Rv88l/V7QD90+6Pln948N5+HZ84fHhxH4N3vffnDm7fxXv3yoPSolsdnmirfcYPry3Bs8ig/fr88X0+bHsvHy93oEvu8H/P+0c7k4vm2fg3LoEF7xfljiepelKTo4t96hu2/fQ3cc3+8Oe4DedRYP3RG0OtBjy0qbIuSbstZFDsRRt/TKpKbV8XQpz8TIb666yZ6C6DoKYnwZxQtlXnCKRzORhnzkBUCjOP3HEWWjOuzYxKB1HwVN7HKOVFh394bK/Y/AnaBf7oTnuP/k4f/5P3lBLIknF9JgIp9w5s9/CnzhT57LF08K3J9iLlvgXSXg4/DP9SR3UuD/5MRiNu/KY46XLS3bb57Q4VfJ1JRvv2M2uiXIE/Cen7K2GslFzi5RvLOpyRS+AIdL48IW8fCwrcQNFmcW1e0VQohVFrqlqbkUyujHqdC0kmkoNIGUMX7jXos5PR1BQ5MzResOZF5Y8gJuiOKRF4M9Ci9UzGNzmD1KFSWgDdwN7VGqx5l59jYzLxw/NX+KmfrfSeHuJ1vKvImFuVjKSAWQn7uAO7ln2HE9eF95A3mKCB2vz8DjmcyctP8LHi+Ay5tYGr2B26WOBNZ3hepr6fkBAGs5RoEC5vB9r2Haqwb+mymsvxUNPyUj6t8D3mf+tv6jGKDvLWaaP6Xt9vPhp0wBjSfH2z0PSS2C6os/Wz2ega9+DrF0t6If4oc2vK3NQfs12ms9qvOHyU+A3zIG/ww68H0evZ80+Ad87xIiUTA+hvRbXMFPUtD3wPepZ3T+hUtdSOrOD3zfAeI32N4L3YMkqyO0WEY/zhHaSqYxQovoUJfI4KEuc1lUKvOuXUsjjcZKqQTPSTBHG32S7Tjv5kqlMPNm4rQbcesJCwCHbzPx46VBLr8C6VZUuhW1w1YUzeCH8dXsE7+OoUHS0EQQzYOidJzmqaJg0EDIogh23s6VSo1KMZ+2CzxjTjAUspLpnTFnUsNtMQ2mfXClUmOlmHUPgUEVyCNTxD4dyYEVmB+bSNtKUfY6LwtPdjvdb4EcpUOgSqXfAqNkWtmhuBaU9KxgWSQMbntPdDMb9VyJbJbP9IAkIFnm7GtWKoWuJpgSjrV4OK2+LE9bAF8XPHChaBOb00LP3PTEZwpB4B3jBcX8WMCYII1NkRJj7EBXqUMYQ6SZ9YnB4w1VK8YNjClSrcKYJZwzBsumr7ryqieh59+JMV02Rbry0oh/Lx4jhrHvd70/oMfrh0WPTZEGxFiqwxg1P+SYRilEBsy5LbAJrqYmzxV1NvGUbI4CqXBLYXvYQbgRYVfhhkGIgzuCsIUbAuf37ircMAj7+52wq3DzgVS4xQZsC7eGvPResmGZqVBLYS1AgwyKqhqi4x0r6mcWDZLhuJh3DuJI6KJBfgekRKGjCzkYZVPbCmmVhG9nekT8/eh7w3HhrgtdJMRCwZfCjsC2ULuVfPSQWGYq1FIIgqBBcQc1nPcguYMaDhvUHYNmdauVCjmUNLgeo5XWZMfvJwrJIYvfr3+vK27Odt8fMEnadaWawjbAXvAUY6/RETvFlUphB5KJyCmEk2Mt+V2VH2s89yd3oa5O27lSIzsvBpEbJEKVHj3WoBn5n9x4GiOhLjWppyDDUPsxu8FU1kYSnJhcKIOBecLOmRrFtAhitmZF5vvZraJb6kDp7WrLam8g6OvCcbI+Cw3FjAtbvKyfEa2N5uDr5J5+8DHgQGlwYWonJQt5eLCUR+cl2WN9yHuS9l1XZxP5Dp4ltfifnJXoToAOPoZoNW7/sMZs2JG1uzdU54QJs3GvAdHoNt3ZBB8QnamJ5gUBnm7mgWQXcrmUJYxxVeTG+gB6p7c8xh1+BRLNKKz4D/Af4d0D+wE0zcGN536rJRHFSsw6VktWKoXVkmgGUGTOTSf0bOU8HulIC+1EZNCMMQckj/4X4QG2CHulT60+B+Z2p2RrqKrTPniqrvasT7pS3vv3oBRouUjPAzqOsrYAuoFs8hqrzL5aEJG43p5Jzx9PKQsXS/ol7QGR9QAWRJMV7hj9uKMgm8mUoiAbv4xt4lU0TV2c9eW5po4ex/gOHjEn3b5LgTbA2PTdevt8OQuyuaieL+sdFZUPQopi3evbU8t6+zLvg291KmBNwwpY/4u+HYae3xUf9nztuz42DDchPT52xIcBRo9Q8GGg0yM8fCkwA7Fu33koJc7U4ViXwnbVBCE90QoKVvwZE5cJp9JE6dpiVthSqK2HPYmULgi2WxA01FGYWrF9WQsHe6fN+3unzcfhnZaDjqqNC2sjBLYjRIhtY0unN1pEs2/D4mAhpINFHPy+2hEn8Lwrjxrfe3hkTtk+ZfsQJ4LCeFkbjfQvAVN097zQVcDqAHw+aZ4kSf4Hac1WvX0vhr3rSfIxGc83I2ea8VTdVsfxVAypHUcrI1rHUTGgdBzVkjx6RilJ3Z5ao6yN4IY2yupcLnZjkdks7XAJZZEcjUKkG41CZN8jJDGStZVOzx8kk7Gs7YGZCY7qzGSq8ZqZI5PNPyY5MDrtuOhx0oig+2pq8mQi95yBhdzJ9HRdeWj0YVwY3oOvqosRmo54bcU7C6Q78ikwATAS0LAJIwuF4ypCx4cFsIH34eCDkYfy8H42X927Tpluis/Kqer4EaxPDxTZiYgPA0jfjraixygIKWqPD298jvpn8/DaL4U4gDkvEXYzMl/RZs9OBVsKlAEN3F00EAaNgfpAjMoHYfUWFC58Gwo69L4vK0GDm5pthc/xPq8fq+eRYNgFHwZhC3YLDHqEhi8FdoBxwcYLy6K3XMNyYxBrglAxXVC6Ip2icY62WFvW2+efPvl8o/34QnQABC1Uucrb1TJTgBa2T678R77x8D6//c78hfkfZIcuIOeuebUsvh1DBzi8ThxQJ395VpzflrrQAVE1yCsbwg9wXGWgQ56GevtdnPPIAU59fa9p8HuyhsVttbJYfG/lxQ/WP9nVi1wQMN390MTRvw86i6QdUQ9Z7NMRqzAkLJpfuBgLym+uCiRtpoBCHpPylx8wRu1fKI/JHRHJ66YekhiGsNWJA+u7bAKkpTcY0rZKrB8DhB/GWc7AkMY5FQa65TMwhC18ieJ6HRG+hTGTgiFyF/DfxcbusGD9k6D33RUY7ogr5aRfVyQVSjujC3Zgph2YefvOtENnDmcw2X4w2wEY74xB/TDtgr6w/cRqh4ndDhPL7Se24Uyst5/Y7wDMbg+LZc6KQO9KpbM9LKLtYfbiz+vUMENxuhwt2jIoUMoK0clwBEHEOe7ouFYyDbMMg6EYjElvtxS+m01lzRawm2BO7C50aCbFNEOak0wvaZq6xvHlBLNiOhW7jIrpVOtlUkzVjDvOF/AwMaZrup+aGqemxqHKVvDeSsc6Q4REqSMtiskHqkLRvQsZ1DFqZXzdDTIl8JY9v7W3o0xq75ACEzC7VbJD8De7DscQTMc3zM3ejnOzziiD7kPDN8yDv9xMQ/dZkLexIZ8Tn5VztsKfKaxPD4hvRMSHAczvfK3oEWjIh9pD8caH14/oEV77pRAHxGrv4L2+hvM9t98WPDXJK2jXhJCjO9mNsjr3TD5KH7HeGgGaGgm61GXrkC9F/Ud81XusxkOsfA9WdAGHR7my4FYqW8mUDo9y6PAow7r3bFm0dnPcyZR071mke2duP8c6IiqWefdRZCuZ0slRER0eZSzYkBEiqyUPlY466PGcO3yWM49mEK0js3LoDyzWWFp+QcdIIcfiCTgWK4nW2AEj7nhRPHJ7SL4VD0ExHGyFa2o0/Q1xCaVS26PK2fhL+vSxnTn7+vpSX8DFbTtzM9O+uLO3US5T+JKGY5ftzg14qK+oXzcff2E+2XYH1j9sjnLHb8f54fjrSScOrO8SGuw05NE4/1Yl1o8Bwg9wjDIzgG+gQoMlPg+eLd7B91/PFvcG1P9yDMprmTF4dpEH/93YKB5+z2AS9L67AsPdEd9iCDIDTLvkOrADS+3A0tt3qR26dGhDypZD2g7A7tKIhz8kpzo8Zac6PHMOY4ypfIkUUrgUT0ThUswBhYMXkERquTJjWkLGTb4AbQ7UbxEsKc1kStocXe/FnNKrroxayo8Mxqb8yi7XlhSJRa5eAz5U5dnqfpeD73EfpvOCQRVbSkQd7Ww2mapDW3czHnqWO4+1cBeeVmW2tuCZcw9vaDXgJg4pjASeHpqb7HQ/Mt79yChrY2M/ct8iuAD+c/c+LPGQul6Uu+WJ7nqxub+OfnOYtgHCHmiR/Y/MCRw+L3cn0zk0J3Cxz8uD9nd09oEdFY0N7r0eVwEqdlks7MVEa7bEzMmt+E5OHUZIhliNlg7QVCteO7X45//wvqpJC5uwfgLIlK40gGGfrlRN+QGopAHdmWaU42kcRqcMREVkI1Iqmi1gEVKx+zQyaty6V9wngi2Jhu41Zi8IpK1tOAK+DdQFL4yn+FY2IT09SZcCEwA95XQ/wFXY2KUjERofL8IVCtIOPf00F+h+V6QoKH1W91S0Clq/A19W0fdi+LCg8uDa2Rjfi9DoI3wLEj79viIAWgR6YsZgWW9fHnvjM+7b58t53Ifoqj7v57iP+U0ZBeY8B5siy7K6Ios0Qn4q2lJgAqDVV/drOP56Dke0aZIwvYJWZXNoFaYt0P2uSCE+LY+s7qCVWQb9dwe+hFZ8z992fHPdqg/SY2PRdiNMtQeEb+HCt7o/m2oSt4Fog/T7OvbGZ93HLtpu/N8Pv4/5TRmFWEVbgLUjOkHotnY0kylZOxonC/dnJ0ckHdwhlUn3c9L9nHQ/J93PSfdz0v2cjfZzRKr7OVHWRtrP2bm+PdjPCZpSgAHHfz7hKpBOJpI1maA3xKdTiVinErH71U0nE+lkYn8mE9sI96gNx5lz5mOZ3eIqHFcqJVvc2BU4HjRa6jYZxTJftEhkT4yGQku7qUbx5IgvMkce02QlX+ZdZwjNRCqWLHlAnjjPEZI2AM/6cvdTD4GWXfJZfO+PnJVu+yUOwo5VjMeCXsWa3tgXsg8+DGBs6E33jlz4ipnmcgLD03W2igVtxOp24MPydfwb0gOLTe3AhwF458zlz4b0qIJC3Y/A+remRxBsR4+1gEiPcLaFMXqE974I1msPNsG+7ReuHGiBBYVsF6FgccmHubYkSR5YLb51B9+grV4oDLuQgJ4/s2SHoFnaDkHZM2PWVwuC3dGGK5XCGkJg3s1GtlgWis5JsplIY5KcBWsIgbk1hNmlCmX04+xpVjKNnlY4OTJ+2TvHAV5R6UlTRR1hhzmcick+0SGCLs6D1hFzB7D9EyCXckAA5dxyyUymJJdySC7l2CWTAOjhsk+ykul5gBLjVW+RFBRX8mBc66rEMFYeeclSUUD/hz8y9LUoQkvEomS3TCxKivp1K2tf+YkYhAqWP/1C5eHzHPTf+CENx1+tc6w+eH8J62vA8qUbs7x6ScYHYDpc+W88DVp9QkvLd2lVXoDf846tplB9X8hy1PN5P0tM3dIWvn9+he9cXlm2kt/vzLL0JPuPRN+P6K3jg/iX8P5jV8tV+L5qXscHcGfz0N9lQHnM0vfinlToDPDDtKLjg+WLAS+Bvv9+Zek6PSO2t7P+oE9zWFJn4PvM/Oi/zvevyqs/6H2RP1KndgT/fshPqOnunFh0f6Toe/TyoO57/fuQv1FnedTeqP/A/tG/0vmBxL+XZEtikDe5t+ND/Wd+hvBZzzv53+A/kDfV/a/q/lDhfd5Zv4P/Hc+L0spfK7l9Hd97+oXKQ/+qPWL/0fvzanxC40VNgP5W+1j96F4fb+D3tlblg8eLXcc/di2T82X045T8VjINyZ8/OTJ+WTMjqnS74IUv1O5soufzKwMiclZoPr4C4wnAiB48mFcKuZ1n+Um3UmJgn9tlDdUC6KxwsWwNDoZiirf7aHalUlBX8Sx4aPYdQHNl+OPSfFrJNAbQHFph5ljUfBoKPCFfFlxb32YiDa2eAMSLwJgLXVeYIz8X1lZubGGQWHRibbliFl0uQow0Sv6ZReZU6uZglC1z5azbwbeVTGOMyqJthyyDjgTrkjKyOW7FE+hN6ERo2WVc0hnd7jO6K+W9fw9KgcY7wIkdmdPV2USGBrJ2dnemUuN5vlQCcsW4pDyf8nwEPN/U5MlE7tk43pFGj9/z0HrEuKT8nvL7bvzusQMOX1zSvlfDOtyYznLg06HC6k5n9VVHWKdosnfLswUw5TIuITKR/QMbs2FH1u7eUN0TcidhYbTEjvA4Q6eSs6iNnXQOF7Ewcu4cPjWMoSyh1iLeWphbeJyLz7sVMLYMqroXVDOcK8SqdvGXMsHCJZUphyNTCN0L2yfDBnXnFhqWRS8kt8cWGkuqO2SnVhbd2wtmMqXtBcOGjbXpCvLigA7iuiMv2ZKpuHRgJfgS5bhndF3iJz/uGd3QVvF9bcxeFKJ3XcGA3cEmrkGYGdDxiJV3076s2dqEHNnSXe6ghvwo14yEIT/K6txDfrQLYhaG/Nic98Q27rPhoSk+sR51D0rFOlNinaU1JUeO985RjffOMX8QlecIB1HNRCreWjgWD6Ku3Ppk8ZPMtjQqnn5itiTyM5z9LZZJkVuxZAqms79FvXsxSCZrxIEUcSm3rGRKA5FOqTiVW6Rjh63xQJlOZc10bIcfO/TIi+HYoSBUzOMz2LFDdOLw7F3/7xrHDv3CDqX36X16v8X9ItZjZ0FumeEihR8v9bWROF56+2f2Lpk6at5fFVYa9eGgXTUfhC4iddScOmqOfPQ+zKgPvgtLoZwtC+5DmVYyjYWlgE47CSweytT1EY6z/65UCkoKJk7+kxbfFU0Dg2ZfnmvqCHVo6IQYX4H7FUiW958UPEF3kLuNA2A/fCsHr/ngJ/Yf3yhEfAhQe3ysHAaTvf1sB2F/vwW4Q2jw/h01PNSR0yM8/k8mMBdyG5ddVXUxwuxwvUQcuVgq6FJgAjK9lycwED1fhCWIEb7M34u3TIZf/s2g+3DwlfhlK5/pdR9nc+O+/7yxJ3cnPiunquMvdZ+AIFmbHuB9nkZEfBg0xb8Xt5pBD1A+CClqjw9vfPb6AT3Ca78U4gCmBR1cpK0h6MjFUkF3IBChIFlrINx/fGsIkk1BFySm4HkMdQUT8vdbUEWC3RDEQHCGuqKLmB6pIPYHpgXd43gNMUcqlAq5FCgDXK08d9caxPTVByofhHWtQd22mll3deczqG+Fz/Y+9kF9viM+DMJezVpg0CM0fCmwA0wLObSnv4ac8yiXirrEQTRD0a6KOm/YTlG3FuwqinzARo81RPFaEPb7Hho+BKko3h72RdQZfivXEHb2kqm4Sxycffbfz17GtZdKmN0d4pt9ta4qzWOEPzzM6H3z41q3ksm3LivXIYq7G4Dv9uuzv6hmIqTHR39xFo64C/t9Dw0fgmj4/zCAaXFnaiYDZB25WCroUqAMZ0gwIEERGEcODYRrCRI0sN2sBDFZhbnVwGoOnIYgxlWYuw7U8PlrZfU8EJyhDfw2eqSCJIW1gGlBZ1maBIg6r4KpsDsQMAa/0FZNawmXBOFTs93KKER8CJzCLsQFbdjfb4GP8N8VoqdHuFqDxAHTws46PxAg7LwKpsIuBSYgUmEc9koJqVx3U+l6C6PtVLprCWNsJYrKByE1hc8awnK1Mk2FyR4De66NdKFFjhJPDBAfcXQL7uSIz4ngUixG6H4iEc6R9sDdhQ/LXamr0J1OvnNmUWW+EgyvIkbp5zhlvtiZzxZJ08l+7kyqDCjm0jibyWBAX2c/Yhn+CE5nP1YyDWc/IvIiC36FGMnkEakNM3/NNW1h2GA8MXcsLmKhhMdrgy2XE12hwEL9QAbjtZHUNmd9ufsJUqTOQO7x2SWfxXU1nrkxKGj4y8rCWA9gCpoqWtchJUzCFDRn4y9p+AL+xrsoCNDzN19fX/NjcNEyW+G7GY6/XhX9eQCZ/Db4jO+xngf3gwl8vrPB+33dKOrIUb7j+N718OHvA77veUEstQG+0Tjf/QiiwqbfGzs+SO9w8CF674AKwTgvj2rkptoB7AqGcMexVlcayK5oBnyYM1XSyAmrxecs8A3a6oUSZ3BZ4tKiLikjZ/RpRxq1sNOCCKNwGJeELyV2XqszEPBu7QDXLDA65uRc9+OKLPjdHtBtmanT89TpeThOz2ML95a6PE9dnkfYv1KX55SjNJOckB+CXtJbqIPOv24U28CiaSDb6HpFGsg2CVMbl6iNMZxLGso2OdOJNJRt/DKWuEUhDbqzgQRK27YmnKmpzShNqO4Ys46swkX5QffE5/X3ISJ1life/xCfd9a/1fcHvU/Q9zrv9+37N23/HWIirvX9G0DQ92+FdIP2Xx+C2n+HGJNbvU/swNwBCUtgmRvqZHHmyE3FGk3Adz6dO93r3BO79RnKD7onPo/eh9ytneWJ93nS8876t/v+oPdJ+vdv2v5b4SO+P/l714eg799OrK3f/htAUPtvRU8y/+4HMCfWnMf5eGFZvAA4ec7v0J+rVDzB7O8NquIGZShh/WD20cLpxHqnDaEGu00VsfkCdcv1x4oPWLQJqz5FNOHhfb0O/1v3f/KsCa/HsPzF/Sr1El4a0A1KFX0K8XvQ/KJagNcnUv4pbJPq39X7keHT//0qL571bwkxdse2vHRa/7bkd1V+rJVg3zK6nj0pMpt8iNw0HIA1Hj3WTo5K4zjNjTxm4fKoJzlVSXhaOuN2w6JerfZ2XUjWq5WFaI0KuyzMLXAufDdYmPsoJoIUMUHvQ1RMBClifMB7Yc7a9wfVt933e8MO3+8D3oq3Xfh/z7/feb+WIs9P8QjHg/aO9PwBY1OD8/4SrD9ulc/ejNsUVx5qJFJeKtJccKZ+3Xz0dl1EQvN4XKRtvyjHwLno3WBR7q2UCFLCBL0PWSkRpITxBrJShPi9cX9/UH1bfb8P7PD93uCjdNuF//f8+533aynx/JSOcDyQdqRnXlG//EQa1h+3yo9XpPke7+XKuTJX5pzHe61kGsd7uZOj3MkRuHLskkkkk0mkSyYxdjKRJkitqTSdTVpTTRlfgj98fkTOiuM0q1AxPRK5lI9oPFlrerTrYmTf773HSCdU0+cT+Dyr1uDIlNAsYTP+tuUclK13lEcSKJ+AcNt6R3lYlA1bb3rfm1oBM2cFnKhDgmtWzMBE1ukXvqrOOgPZz3O8rUSq9Uso1D9q38Nq7bs+Jns1Dconl0dzq2W9fenyqhqUv4/4RgH4/PKJoNNbn5u2z5cul+hB+QHvG+b3Y/Bd/7h50efW58t6x+UiPijfGyKnR3j8fxjA3EaWK5qlv3xzF0kF3P6DPsDADrtdPhHQgPKBBkT0/Kb5PoAGWH1AJA4wQfneUEUDrD4gkr43KN8HHN/rCkgWlE/lfQ8Nnw6R8P9hArvbWkIZ/ojO/RormcZ+jQCWuOhXZI1MdUl7V0bOXS1XahRE0itha0/L26636LbrLcZh11v8I+RiNe31JlHBTaJCHCTK/ykwR6LTgdT9xLwe6jsTjkRqXttRxawNRebQzEOTA3hxjtl4Bo1Rm9etEdA/jK3fzvrStCWPeqez6VQdoRINVRtKg5X3aM/8vV25FSa9xvfsp9Z+br7Nf4q1UCYud5mr9rQ5+z4vZPLFp0b+WKy1X5pf3/z56/ZIq9MlJ8wLk34jc5ypteeZ+fdjIZPrXNeP4ftL7cX3Y9bHyogMhclrQzku1NpvGfC+Ygbgv8vA+/nqvgHvW8X25Ps895gpFDOnQUjvxKuW8Fd/vmjge7Pjs9+D75lVp9/nS65QLDXPyd8/B/WfYt/vxDeH9LbdA/oUigNY/0X7rT1ffgqPxe7gHo8dVeiOm1cyhg+VN+hrxzcz7t3fk3/ItEHLLD+/uUL99e5h00aIEfTvx77H1l4F4x6nj+v77zL5Rqb9hn3/HSj/eeWkp0/7Y/xWfLor3WUu26/t5fcTHksN8v90QKT/ceba7A8Yf3yB/PdCt1/v3WWa7aXH909e7xRye9vudf6frs3/7S8Xvwwmnz/5Qr3fGDer1+2P+yAsDqjOQO9o6+8zv2jLc9BfhGp+Mn243BQVBmD8u/ueZcId/9hTTRJEFwqv5C3ZjOy9FWzjl8/691erVr28e3tbVMJp2JvnWnV6N1DuC5lR9vEunwf3L3cf/Yq6g2A7++wv8nPwvmAgeb6uzo8R/vHf4t3x191V9aY1VO43F2wQn4Ljc+LX72vVSetDqZQe52KxEtixbwA9hWc/fM77q+rd2adS4blRtugh2ED+fel0TXyO+6fMWaYF7oXHcfalgQu2cXbxcCVtis9xL5Yy1XkevF+eG7+ozX0SbJF8/03ruspdbofvb/G2dAPuX1uj/juHCTbIH6XBJvj6i5/3ce290bs+blY9BFtE/H9V/XLje1sU8mq2Wx/fSNfVjQXb2UCpFNoIX+74ojqbgXuhqmbvb3YRbJGMfwyrJEvlYrlULjiXt1YyjcVt6eSoeHIErgVWyQRW+uYvQROAZdHSBVh/rJKsWEY/TnJZyTRIVUScBX93JtO/M/bkCUr/dwY9ZmWB1H9nAI52H7zRf/1/ + + + 7ZrbbuIwEEDfV9p/iPLUSm1C2ZdVgVZctttKS4uAXl69yRSsNXZkOwW+bR/2k/YXdhISbgnbi1BaQoSQsD32jOcMmTiZv7//VM8nI2Y8gVRU8Jp5YpVMA7gjXMoHNdPXj8dfzfOzz5+qDyPWH8IIDJTn6nSiaM0cau2d2vZ4PLbGXywhB3a5VDqxH9o/eg7KkmPKlSbcAdMI516TEdTMC+YD15cwIQPBo5G72IAyGoDqDKPa8ClzQXZhQJWWROOwCkdwDI3p6SmDFBkj6utPPdRlRjMW67WIJgZaf6pDgXil3hBAm2/b3FwHaulI4YHU0x5ojS78LoXvqSWBmfFpUkaDKHBv0Adt4P79kGq4GpEBHLWJHFB+UKqUSxX8HB614JH4TF8Irs2VpZP61dp4qnojbtfMPjCQ9Jd1T3kTl5eCKev2yuoSt4UyLTHmDV9rwb8xhMa1FVpYZ3TAg6Zp3BGEizugrsugiV0gTcNeN9J+xspqD81wtJDp5t9R5RPERjTEgsZSX81ctTXNgHQFVXsDm1cCbArGiIeNhpAYcglI291eYhFcpjnEYJ/PXgn3JiNKxUOmEZEMe9eXjsx/419+3euRf1O2V+B5IR78H9alFOMCz4fEk2ssdcfBnV4LOSLsgjKWReqZ7TpONr2REHqIs9rChXmuuRY8xW1Z55jth1Ho4yKIiiDaRqrIZTBlETzoxjhycMP0J2VUT+dhM09VeY6d8Gfugic8YPVhkjxCvSuX4NiawDI7y244m9Wd4Ni7cizLHaxZ2rgUTyBTs8ZWkVlt4Su4QV2RbztEJqLkOY77fm1+N2KBXwtg+w6sALUr18Lck+pIUNiRAatIU4HnY+KJmzce8ILSHlLam7uI3b7k7QOmYH/NITxJwQNvLt42fqzT8Cs4zawvQO3IDXoBLxt4WTzAyD+9Wy8zdpndf+STWoe4QenSQblSquD3cIfy2erSS6R2ClLivcdaCVTVXirEWvSGRVgqKMLqAlsp9gqHMXSTEkb0GPy/j8eDoPc8Rp1wSlBa9YLH6l0h9OLNz7In0TUbLQ3ds6kuLZSZb369qi2cGlbCnf0D + + + 7Vxfb9s2EH8fsO8g6KkDHP9JG2xL7RaO0ywG4tSI3LSvjHSxCVOkQFFxsq+2h36kfoUdJVmW/6GLI8mOJhgyLJHikfc73h3vaP7453v746PLjAeQPhW8Y7bqTdMAbguH8nHHDNT90R/mxw+//tL+5rLRBFwwsD73Tx992jEnSnmnjcZsNqvP3taFHDeOm81W49vgyrKxLjmi3FeE22Aa4bvXxIWOecEC4OoSHslY8Ljkdt6BY+wAkjOM9llAmQPyBsbUV5IoLPbDEizDzljqicGGOkb8bPTkIS0zfmPR3jlRxMDen6qwwrwlawKgzN0Gl9BAKkMpPJDqyQKlkIV/SRF4fqpC1PlNtYwz4oPzGXlwDvckYOpCcFUbEkdD8ebd+/Dzm7nU1jpBf6V8Iz1jft8xR8BA0mn9K+U9pCcF8+s3xOkrcOufOLlDHguJbLuk4wnDC3l0SxBAfFMGiGsjc3r/lVK78ZOhty2kZSshN/PklvoBQfCJgnlFI/WsY2K3BsCDs0ApwXUHN/VhM412YwvIz5SEnmCMeHgTgbAGfuYjXGsHW+pNcOIkDSxNnR4jvj8vMo1PDKcyV+HTpHXdbtT9oaQuVfQBdpxnm4StsXmcBeOUnrEDIqcgL4QERE88FzOtthJex/yMVNnGmSOEQjbH9YqXz5WxVtpq79pqP3qqCJwT7eHXexOwp8n9ym1ozhM0kEeKZAN8xO54rtUXE3xO6qRVM6Jrz/DnpMSX2Vw6Hb5ia2sjSbjvEYm82GJ981FmcwFDjtA7yqh6SiTskjoO8BJJVyhS2ojEHC6bTKVk6IIylpP/liMsxJ7qIXGndNAU41pXTvX/bvKk2tXdLi8+AxH48PkB/f980aknhCqcdsFpKMHHn3qQta5tIweuhXQJyxu2vj8UXuBZEzHjFXKHuqxaXtVog7+8qjluvqsZ869sFlKpldwSfgvqx6nVdGIE9uf3WoA9IFiaubG4ohzCeVg20e3bgi/iQl2mQHKiQd5B6yxxcIWBI3hUBxv+qlkwFvClb4FL7wRz/tQBwpxU7iUQ9AZfY5j6RSHPjO2KFdxpZg4JB5avf50edQVXBnBdwb2qIMtKh+Tgry1aL/vKFX9Qu7ig4bILZ7k45Sb41kA4izj4teA5ZCUORhd0PS/MZOYRRtzjtI8FSSnhVuJUvDiNhFdSidKDiuRKm82bMIFZiVaBohWyHK164PKSililtPZlA1OcL41Q4VJ7TPmb5nv9OWqt7yx5XSChZYk1AFdYmEQwSgbXCYKFVyH7gF6yPWMXeqlU/YByi/69UDQnNaPVzJxKl9Exj8QkpjOgjsMgst7l2RSQarcrpZiVd524Ej982xyCtDdonCyzMufU1/vWnOKjhEXmnqIaOMoq73TImd1EGCuYXq4+iknBF642vk6oAp3mKURflHN4S6n4Uu4O/pn31/q9iU5Z/LVfZyl3rVfyjbqVOBUrTiV3wl+2N+FgAguryWtiT/P0fvYYWygnYBVYhwxWHLbLYatWhU1G2IyEV8FzuPCkEl4VTIcLU5Q9ej0IrXnaKycutBupcx8WT8M/ifr6zIcbYEtnS4TF2jav1TBiGLbD86Wv4/XISUbt8BXN0XPs33m47n4uvClWIou29jhk07bjMMI6CRNWD9OIkNEHcHz4Fw== + + + 3VhLbtswEN0X6B0ErRLAkWRnUyR2gtiukwBx4lrOZ8tKE4swRQok5U/WvUWP0kVv1F6hI1n+y/2ktQwUBgxJHM684RvODPn9y9fq+ThkxhCkooLXzLLlmAZwT/iU92tmrJ+P3pnnZ2/fVJ9C1gsgBAPluToZK1ozA62jE9sejUbW6NgSsm9XHKdsP7VvXA9lyRHlShPugWmkc29JCDWzxWLg+grGpC94NvIwA1BBAGjOMKr1mDIfZBf6VGlJNA6rdATHEIyrJwxyZIzsW28SoS0zm7HQ1ySaGIj+RKcCM01uAKDN1zk3t4FWOlJEIPXEBa1xCS+liCO1JDAFnydl1IkC/w7XoAnPJGa6Jbg2V6Zu6ldr47nqjdl7zewBA0kH1iPlDVQvBVNWl/jXGkLrXkFmuUkV+cjA7xCKEIwHgowhb4QpZNJeh2T/AlPVRaOeFjIfbELUTMJ4zzAYuJ6SlwtWCI2AM7k8NPnWqvaWZf9Dbroi5n4XDbgBQdzJX7lSuvA8RHMrZEhYizJWegyohh6MdalD/GQvHVRO099hEYzeX1s3tB/oB6piwrK1spqSjOpC4h7YNaVTu64mesHs0jcELQbA6Qv4yRLVmfAGeyP0kk2iIGVqwVkOyRVnzmQZeXROncNSm8g+5QfOaTl9L3KvJjDnLH779Hlz3V6jfTVe3BD3WoCz2sKHubErDKwPKEX1ZJ+B04VQDDH/a53UkKKDpiEYIxG+ZPupEC83dKG2RoBFba5kpaw1GFFqNmTOMmv6tWZOVc6ywetKek7E2fneFczOtSd4S0hAlkQx3FhtEWP1FKM9xOIF0yA59j5DSErPv/YXM85FrEVDhBEDDXUxnteTrEso3mV8oN40eEsdSUMiJ2nV/VnjtKtlKN77niRcRUSi8V0QXlTySbH/b6mnI0Hh4z6yz90wSeVFByP2QAOQc3+PnQ7IpBfemePrHeMe01Dhvq+Qvhu/Nzq4tRNs1V46Ry++pmdolZyhu8BWzurpMGbPTQkj6zu3H/bwHLOZd82/OyRuwbJ8hTBVvGQlqyu/YTkXcQ4OpGjriqU0bbvemN6N2FsuR9Kp6YXK2Q8= + + + 7VrNUtswEL53pu/g8ZUSh58DwyQwTkzaFJwGAhR6U7EwAtsCScFJXq2HPlJfobIciEnkOo5Fyo+/g2cSaT/tSvZ+8Wb//Ppd2x34nnYPCUU4qOtrlaquweACOyhw63qfXa5u6bs7Hz/Uznzv+Ar6UOPzA7o9oKiuXzF2u20YYRhWwo0KJq6xXq2uGWf2Qe+CzwWrKKAMBBdQ14RtB/iwrre8PgzYFzgALg7GI6cPDqxzB/hymlZr9JHnQHIEXUQZAYwPUzHCx7gzPTb0oGSONv7ueHjL19LHFhM+CzCgce+3mZjwwNS7gpDpiwX3uAZfpUvwLSRs2IOM8S38THD/liYmxM7LZmkNQKHzje+BBS9B32MtHDD9ieksP50al9JrD5/r+jH0IEE3le8oaHJ6gj1aOQJOm0G/ckLheGULUfDTg04XIO6Cdgr4ifFzAx7lJ2lMu2Rk+FTr8UUvGCZyZ6ODepih7Xn8ZghYfHgyZ0/akb8NFEQ3aAfcIxdwuxXJd0cYszGdzGm5UzUj5XRyHqENyA0kLUxgE3uYfOoS5AMybCHPW8aRyndpvBsV03E6MGz0GcNB2wcufDziw5vqesMcwzqPrji67EWXeKBhNs0ErD3LNc2BuWmWyAnLHtnG1sgedQ2FrIKPM4+MUB2p4BsJf9WRFo0/YZ/wL+tzFmtePiX+L2Sf5f9bP/93h3p9VsjUq4PFLRh89epgmaHdqc73NPO5G4dzsc5/t1rzPy2Jp3XCn7CXjudYPwd/Fub3r4z/bcW/mNpm+bsQX151k87PcT5SyPNLaFuWszhpESxHHWx8DztwwKI3xlevESUeEWngqIfv9l2FPxsnOWPTvm4Pf7hKWGXPXGcf4TurAGl6znGH9vVXshBpes4ssh/PHL+I1y9ANUGUI+3qHffNVsJXoiCWpxFdAu8R7tNSJ94BmkI3RB5Swme1h7Z/HufJgpUMkRfjPJS3EiRFlLdBnCcVVoKm4i3wW3caquOfhtCx68l+KCGNIXRD/C6Z7928hDIsTydaiNDyZeLtID0JFBAJ+Qt8QZFIFAAUJsnYXrFIxPaKReIZ45/xv6BI/CO+UiT+G5YnEgeg1Ig3hKyCRYEcmV7AKJAjEzlxqqCxWBE5tai9IjSNFoxfWsDyX2L8cbzn0vG8pFkFTNV/iZeYBwo14gC5V+wU0T7wHv+qJiBsYOJA8hKb1JrY90HgNAB5lja0mZCmeg1rRqLjcfKt6HakUbfjEfSedFWKYe737AxtHFnetjw9e6uiLj1uKdkhvjepror9SesAjdtHjZT+UWEqek53/gI= + + + 7Vrdbts2FL4fsHcQdNUCieQ4WzHEdovaiZsAS2LEblrsjpNOLSI0aZBUbN/tYm/Rt+htL/ZG2yvsiJZkx5ZWN7UlL9WFDVukzg+/j4eH5Pnn81/NV9MRs+5BKip4yz5yarYF3BM+5cOWHeoPh7/Yr17++EPz/YgNAhiBhf25Opkq2rIDrccnrjuZTJzJsSPk0K3Xakfu+8tf+x72JYeUK024B7Zl3r0iI2jZXRYC1+cwJUPB45bbxIA6GoDqLKvZDinzQd7AkCoticZmZVqwDY3p6xmDjD5W/GwwG6MuO35jIe+UaGKh9SfadEgk9QMAbT/OuVQHaulJMQapZ33QGofwjRThWC11mBuf1ctqEwX+NY7BKXwgIdNdwbX94NV1+WqlPVO8lfxv2QNgIOmd847yDoqXginnhvgXGkbOWwWx5lOqyO8M/B6haIJ1SxAxxI0whUi6qya5X7Cp2UelnhYy29gIqKSHdcaQDFzPwcs0VgiNBsf9sqzJ1tZ0c4b9K7G5JPIOZFdI6Agm5ItaD6QHxQB1S1VIWOy60ybenbEhBehdQHUGQI/kRKKnryVoL8AZqqlHGJul+gYy3AEf5l72NdELWiw9a9loW1uKiYIzn2JjaVToSToictaljBWPfn+EEyHAty6FDykiV4LvESJrwlBcJ8AonEp5EIc7jCiVNNlJKDBPoxGZ6raYmsF+5BKUMS/cbO8KJtJrpkFyXL3uIZNMO0HHSYJ8BdOGMK2E/uN9Cv31n+oHVvK1NxFgwbHCg/MbNhsHERsPLjzBU9AOesSPUttntcZx46hRf15kghWZkyL29x+ftrZUG+lnPBrqtpCY5J7TYcDwo7+wVn+7vk017ZyBy/Rrh1pHW4uiSYcUY2SMf+YobDuQZ7i4zdg9Fxmb/tSC90ASrsZEortVwlYMk55mEiBCBdf3mAegdweXuEHeRcq2jo+TKq6Q2gypngSFP4uE51RMqom0l/DE2ipwNgMHf1BvngnUx9PrEPenSwtoQTlzsnL+dsF9mKZLZm1vtje72Dk/0fTrtRftlLvCC1VOblwoh37eGw45kbWYRSgzNhWjvpJRaVZUsSqfVek/M1oVxzbm2MqJX0EHsw8jQtk3XAU7Pafod+Z01iwtewjyj7e3n52Xd0y846uX//K12opshFC1FXlE/KyW+B3R6/93FftEccu738NVbEj5s1rj8KgRfZV4wffnxxLCQ4x6hwEp7RqsqExi3dcyMwmzHz0X9ztMIzMcXlwLlORxco5btM/mrH2rPq/NzZXizaa7VEK6eGrKR1VUPnoD7EGZqmnG2LDew4pDR36d49sLZ2WxsL+tODLHkOXS2bngJS1xOegGmtfNzTACwckdKwNQXk2v6ZMO/2pFsHnVVBG//Bc= + + + 7VjdbtowFL6ftHewfLVJbULbXUwsaTWgrJVGiwrteuslp2DV2Mh2BjzbLvZIe4Ud8gMpJCttR6ROCCGR+Njfd853jm3O75+/vJPpSJAfoA1X0qcHTo0SkIEKuRz4NLJ3+x/pyfHbN97tSPSHMAKC9tLUp4b7dGjtuO66k8nEmRw5Sg/cw1rtwL3tfO0FaMv2uTSWyQAoiedesBH4tC0ikPYMpmygZDpykxE4RAIIR4jXiLgIQV/BgBurmcVhE4/gGJLp2ZmAAhuSvuvPxohF0xnL9VrMMoLs6zY2yFbqDQEsfZ5zCwxE6Wo1Bm1nPbAWQ/hFq2hscgYJ+SIr0mAGwkuMQQvuWCRsW0lLH0xdX9+sjBcuT7Jnn/ZBgOb3zjcum7i8VsI4Vyw8tzByrg2kyC1u2HcBYZdxpEBuGCqGujFhUEl3lZL7CCevh6CBVbqY7FyozIKcCkwGaRPxCskqZZFwalfEphjNc0vC/kRtOioycIn10uZCrKnzd09vuIkYphuzS4dz73yKjjUia5VM3XMWaKtI8ZLNIWb0YqUHOd0UzJhsiGZhjd/6NMGIHXhmNa9GPY1vgYNVy4MZW6jMFuom8TaTqjfCzBzirI4KYVEzF0puoWSenEi79NksfboaDP6srrZbaiJ34mwmTu5Y3OswfY97sNLQVELpvS4L5zeWdx8+xZ/3VZ6bp3J+WJ7xwVDgd3le9nVUHM4XIjWUxnvMpnjV7zWVn8mYAoKN8SGJzLYrdwv1mhL/3yp2pUqPal3QQUEE//neml1gq89F5MUXNbr3OZi721ZBZKrJTefcpNvkLks3lazKQz/F2h35m0lTep1/TWXz6pRZuzKsdDE8N9dLWb6N+yhm3ke5AvGgXxMPY8zXLUh6xyn/w3997izUoi/rD5RQyHePkoVzKFlaPI6cJ1oAj4KUxicWpayhlXTD3JJ2WDw1bqEd/wE= + + + 7VzdcuI2FL7vTN/B46t2hgUS0k4bYHcChF1mlg0TSHZvFaOAJrJFJTnAC/S677MX+y59gb5Cj2WbXzkbskFOjCeTDLFknXP0fedIOhL67+u32ruZS617zAVhXt0+KpZtC3sOGxJvVLd9efvmD/vd259/qn1x6WCMXWxBfU+czgSp22MpJ6el0nQ6LU4rRcZHpeNy+aj0pfux70Bd9IZ4QiLPwbal3v2EXFy329THnvyAZ2jEvKjkOlbgGBQAcZZVa/iEDjG/xCMiJEcSioUqgTJQpi/nFGvqWNGzwXwCsuzojWV7LSSRBdqfSlUhbqk/xljaTzNuIQOk9DibYC7nfSwldOF7zvyJWKkQKq+rZTWQwMML6IMWvkU+lW3mSXvt1e32xUa5tnkr/r9uDzDFnNwVPxOvCc1zRkXxEg07ErvFK4EjyS0i0A3Fwx4ioIJ1jQAxwA1RAUiWNlUqfUenWh+EOpJxvbIBUHEN65wCGTwZgqdVljEJCkf1dNropdVKCd2+IzY9TlzE521CqQlsronwEY2sLfZdsH4Mb3XZEC9w+cS8PcASSu5LJJforDyr24BCE1HHpwiKWiCrxaZejMtWk9BocwwOuGhrzQWbFAkRF9kxC9TTur2Uonr9iQFos38iSmjMNMyoLjhZYFghp5aWWmecs2nDl5LthV0ga0VCJhnW41jARy2x9otUsct8GFUgMOSYvRrMItE5YrshtuzTjotG2DBqe0QrNCdrcBmaWcdOBQaTG0KJnC8G1yajFE0CTzukEVZ9zBybFlg2GIdFZnacP7Ina3gNOPLEBHEwW829+3jE8FWnj11yw+jwT9Nr73MvWHCHnf2BjMYUfpcr7wH39Z35g/IeK8lsOOpil/H5OsGNr/NXcjCFMyox95Ak91iRpYv4HeZtxjG4PeMFeIk4IXYDNvmIb+Vl0KmVyazQQ8Mgk/bLUVX9/LpjYNgtN3LVKa51ZFAAL6SdK1FrgIt7zHWedlTWutqz5ibIiMiU6aS1uqDroJMyNOOAkhcT5ATThTwKLbAwGYXO/4ICkTJt1pixVyfRBN3iQnoaocPM8jfRbJWzyMNEHia+Q6Amc13kDQ8mTujsPYRAkWx3OpHClN0XoIPaV30xlpvj+kO2p8P2h23PQ76Zvc6t9USalHgdU4YBni1B/Pfvf/bBlpydip1QReKDmY9ozD2E6Uii2emMySsZsP2abeSYSUZz3mdOEPxjhsbZS6MZyXC5nXZCMjxtE2Vmf6uqn10zszsmk4ZkOx/7nOQNxtcGm2VyYz1GqlI9qVaqlW2k9n44qoGcu9BZ4pH+85jI1Id6LavMO1UETwDOiSF48onfo7aFMzzvSzprpqZ9zxlZD+Dk0sb+pmnc4tPmOWwvc62hgawj4pl4f5wf7nzCke+1AwSVci9MzJhcOy3dLruL5IREXb63l8+onp7/z66/aI48HMZGT6LhKe3yrA8Pv6cxPKRutdGxMAhLCCYObeb44jBNV3w/TNMV6ml3xOq0JZyYpfE1EhOLsWx+n8TkIlqX+NsPclnOK7+EPPLxyXHBiv+kPd99mFbGI6JJj0pcHO9nh/HV+dMWETcutqiVVq7XWD5VV2uI4GqNS0zXrvBQxQDBdg0rcp7H7yrG4Nk/dn1Egjqrl4uEDa9Iib4m8gjJSUq/AFWSd5CAMokIKtok3cKi6ixIsXmHi3pV3fvy9n8= + + + 7Vxbb+I4FH5faf9DlKdZiQm03ZFmCsyohWFbqTcB086rh5whVp0Y2U5pf9s+7E/av7AnFy4JAVooON2xeIHE8eX7vnN8jh3879//NL48+sx6ACEpD5r2gVOzLQgG3KXBsGmH6uf7j/aXz7//1vjus74HPlhYPpDHj5I2bU+p0XG1Oh6PnfGRw8WwelirHVS/X170BliWvKeBVCQYgG3Fz14RH5p2h4UQqDN4JEMepHduJx04xA5gc5bVOA0pc0F0YUilEkThbRnfwXvYmZ56YlBQxkqv9Z9G2JadPjGrr00UsbD3xyouMKmp5wEoe7PBTdvAVm4EH4FQTz1QCiH8S/BwJOcKJJ0vKmWdEgnuNWLQgyGHb+efnA8dHig78zQ+3wMGA8WFzN1Iqo7GPSlhfWWIbaASLPp4VdB7544GLaxXcCadLueqS9y0nG1V841Vi1trVJeM4oVDvRHUJ+KpQxmr4EU6OOUCSTocPVYuibgH0eECWpxxsQBDruJiNHKFrMnvYjS+nTsIRoswCFwiUlCcMyDYpTvqKs+2bgmqF2X6cRGr127xDOjQUyubbFTXoLBGLC1GpMyrJb7YtBf7pVceqVUc1BKzmJfLC01k1agnQ74iD3QYOxRtgz8Rgo9bHjwIHlzAT3XukyFUbogb+eZ3f9bjzx/7sAuUwrkC3/kakB/odGPMz1CcLCPQvgjhdawi295zW9rWGG6pDAnOBkTNHOjctaadagJOyeB+TIR7GioVzWA6hdGNgDHKKIkycLYqizAij9HmIaJk1KFZHR0iVWl9h9FI6TSi2YtgvyhCEwddfUECOSICA6Do9wsDrS1GvVAf1tjyMIObVpTJ4TIhnZ2L6ZIq4/5vmL0WCK9aPL5fg6ucFzNklY0sY1RviydjUJsQdclDCdcPIPY6NznTZg1PJeMpa0aGqFIRZUh6QyQZj7flwjVI/KphXmrzsYkfysVSkcMzNJWCJmNIb4UhY0TbUbQukd3B0m4y6Mmmds/nXHn41CV3YbrcesUDHcutXZIKabK7a1T0LBW1OGNkhD822ngvAy1px/9vxOTelplu5RzV44/ZyplDfN++Ze87ODkxHNVuQAwKzOm1R+q0qYyocDUMeZdJ8cI4TT5cngCxmBwTGpaTnLQtQ83zqDlhCkRAFH2AvdAzdeCGn2fxM/eC6p5eUL6IQpxsZtUWZDwJa9PQp0OY3EHs85w3Z/uRgLSFPr8YIestnI+Tt8kzPTS86OYFA/PQD0pBTT51zK0UVbJ/R1n53r1JKneml9S7toDpU8qdRxX04VFVTgZRPnnFhU/YvEh64NMfnLmb/XdpExScpKSWnDNnOAkoHT4IZaLTNaa0D3T63CVPOpVSLIwFAe1FKSMYUMLaOgDJBfL5f7dNl2g0SORaeSAusTFPv0eZS0U1upTZCoLeday8SjSIY7bStXco8s5z4l5zYGjQRxK2aXAi+Vl3nZvdBxjxfKd9yXeZqWhTh07LWTq5ZCHTOdVohWeVcMoxEzt3APd4XydMK6L9xUhXn7nFEa4+L/SmUJrkShqdNqHxSnDliqPhDWmQblRPN6xr9aN6rV5b3LDefmUygieU2rLnssczO8qkF5ZGcmeiNKpzJ7PMrsanssjoVJYusMzpL/HtLnEXS1jpKs7y806y523Y2xyQgpgs7WKMy7ITauIy01Hnz7eJH43PxPn8Hw== + + + xVXbbhoxEH2v1H+w/NRKZJekfajokqiQ0ERKaASU5NXdnS5WvDayZ7l8Wx76Sf2FDt6FcFmUNqKtEA/rmfE5nnM8/vn4IzqbZYpNwDppdJMfB3XOQMcmkTpt8hy/H33gZ6evX0X3mRqMIANG+do1Zk42+Qhx3AjD6XQaTN8FxqbhSb1+HN7fXPdjyhVHUjsUOgbOfG1XZNDkHZWDxkuYidToMjJcEjghAgTHWNTKpUrA9iCVDq1ACjsfoRiR6eNcQUUOK9cG8zFh8bLiab9zgYIR+wb6hOVO/REA8pcdboVBKLfWjMHivA+I1MLP1uRjt5ZQkK/KYi3hIPlCPWgbpcSYPlrGEuPajbAPYDvGAkWMrX1SCFbTaSfQkUrVbkWykOvN+4/+95Zv4O2SclvxSk5s+d3kA1Bg5UNwJ3XbaLRGuaAnkiuELLjQ4hvp4IleynSk6E99HAoSmSptTtqHB8f7XaQofOboUZ+wYjS2uidD6XJBBhEIy0S2tkZeFg67YiJT770FwyoS1SBRuMcJf2iXLTv8C/W/XgXXi/YXvbhQdIM1BudWTAsnrGTpCOX+gi6Ly70SpIQvLvwetmSftlCgE2E3JSuL/4NqcUy4XWMzofwtvhtJhAHMcEfAg3s0KBIhOeyxd1Tdmn5RuDaDn1b9/HWL+dsDtTHnfZik281gpbgvE71M4s9bp2cM0jYVLqFG7eXtm7XvgSpet3DP8+ZL/ZN4+gs= + + + 5VnNTttAEL5X6jtYPrVSsJPQSpQmIBKaEomfiITAdbGHZMXGa+2uSdJT36Hq0/TQN2pfoeO1HfLjFAhgp0VciHd25pv5ZvZn9vePn5Xd0YAZNyAk5V7VLFlF0wDP4S71elUzUFcbW+buzutXlYsB6/RhAAbKe3J7JGnV7Cvlb9v2cDi0hpsWFz27XCyW7Iujw7aDsmSDelIRzwHT0HOPyQCqZoMF4KkDGJEe9+KRbgKgjADQnGFUagFlLohT6FGpBFE4LPUIjiGYthozSJEx4m+dsY+2zHjGrb59ooiB6LeVFkg0tfsAylzNuYkNtNIS3Aehxm1QCkP4WfDAl1MCEfg0KaNGJLgnGIM9pkB46M0NNChj5sz0RRtybjzVhJH8rpodYCDotXVOvTr3lOBMWmdNKzR/iGHsUhh+YsiJpywNrKlg0KZfkMQuQeqQo2KxYJS3TMOeR2bfAa3SRtuO4iIdc5fKgCAfREEiaEx9q5p1Itw5jGko0q1U7CWRfyA9HUE86ROBxkN6Cm3ocThrtmFALzlzP1jvGxjWQou4YRG9efdR/70t7DlOOIULqHPGxQKtj4xN0+FeEhuNOBoN2cs+RvtwRQKmwkBkkb6nxA39tM4kxJb3qSSXDNwWoWGOxJnbIEzC0+dtuNZMSInzMlp/UsFyrhDw2uTvERHXIPLISwsNMuIjruyjcN6nCjowUnFdHnMxICx1vX3OAARC5JIE6+F+NOPl0p/4n2chHPFAwgmeALN2vikPuMLFyLlGUC/V7zyZ/8zGfj+sgVI5ozMmbnu1QCnu6UDgHu0zMtbn78kWHeJZDMVjDgWRxlj9r6/fczi3zqRCh/d64dUljEP2pGd5HFvnyFuT+n9RHHxbKw6iH5HYycsqhnUmIs/amOyHNS5cePLbyPKVeEEfaqz3KXMnima6RnVGpEyGzOTWp79WzUhl7MGKHbOULdBO9zDf++O/ydC0Yu3F/8YS/kOdlWroYd2M6FQXNuZybcrNNTE2iy0Q4b2u8MzZ+reDftKDyj4aLUEHRIx1e2f1RHhQOzbPbmPSWXUCGTla8kfZ+PpMHYyFk8DcO0LFnnrNuP2qb1IyfMk4BTbzYqKHsU4XJYy4ku9b4ebjGpxLQEy/4ESKp6zELd17WL5zMUJSlsZIE7PsWUnLTMI+/yilp+qHrJ0/ + + + 7V3bctu4ln2fqvkHlZ9mKmrLFnVzV3JO6WLHSnyRLDvp9httwTJjivQhqTh2nT+bh/mk+YUBQF1ICqQlhSQoca221QE2rb2BvQGCi7j83//878d//hrrhZ/EsjXT+LR3uH+wVyDGvTnUjNGnvYnz8Edj75//+M//+PjXWL9+JGNSoNcb9p+/bO3T3qPjPP9ZKr28vOy/KPumNSqVDw4OS3+dnw3u6bXqH5phO6pxT/YK/G8v1DH5tHeiT4jhnJJf6sg0ppJvMwPK1ACqrlD42Jpo+pBYV2Sk2Y6lOlRscwmVUWMGzqtOBNcUpnnXr89U1970Lxbf11EdtUCt/9PhF8y+afBIiLO3WeHmOqiWnmU+E8t5HRDHoVX42TInz7bnAtd40VWFlmqT4SWtg/ajajnfNPLSUq2mRdSmoY1VhwyLYYJyqEQJlVRCJdVQSS1UUg+VNHySlmlRHwgL5BeVI2RKhKwSIatGyGoRsnqErLHncy5174Do5N4xLTsgcD3/TbMnKg05+rezCwuevE97VMNeoRT80pL4Wz+WQoJpzYhbKkTgcnFZAhcVZulPe9fUWkt72v+uGW3TcCxTt/dvuvSHV+SxTlu84eyfmBZpm7pJC/xNpZ3Cp73qYbHg/i7XQVw6DWeubkBGJincdAsDMtbuTH1YLDSeHVH1v1Mfv+v0M80gtNn80uz0fd/S1fsnN6gRBnLDgN6byLU2Jm36/5FpafeqjphATLgxQa3TjIk5sRESOQ+JM3OkWprzONbu5cRCcKx3av4MGdQtSZeHqj7x8njVJ14etPrEyyNXn3h5+OoTL49hfWLRQDa84AK5aEgbUXjBBaLBbUQFCC4QDXMjKkFwQRID3v2ufU47NnJJ9aQfzQNT14bfHzWHuMUNfZTZzuevuP3V06hgxLpHiR0PGzAXfamyP6n4kxV/supP1vzJuj8Zew2yLx3Quw+R2XWzGOGRX1zOKgvyFEFeRZBXFeTVBHl1QZ6ni+2ZmuG47fHCNEjcLhjcq45DLK5lerPPSzT76/3aUg37WbVoBZRDJUqopBIqCRVUQyW1UEk9VBJ742T8YEbCYtUajddxMfvHLwneYRd5ZVGmIsqsiDKrosyaKLMe+w3R1N1bLvp0YZ/uiYaQ58ffdICHLkHL3eWWK8qM/QZwpQ7lNmf+KHKi6XrR+1DC2Yeb7ox7OOLUxHpFZ6/E5mWeNhL3NVkIG0KrwkuH5Pe9RPmwUizMPpIim1xHd1T7kb+RnCtnObHp5Derz5Y23O9Y6gtPsVCz59qurQlJSBsNJ03VU1PHUwPH0p5JisVLVCGPF66wqdPHF0Nlf9ZS75/84erpxVNSXV5Nd+LU6NwjO9tXtakbiK2pxjzuTunQ541eEWxaJ6puxxh6S3q/0evZmEuO1mA7i1fv+3eEgzK9GUw/JAR6i3ZtfHyy28G+YqdTrhxRR0w/tjzkZYwKJA2AovqyZO+jK3eiCasN683EalOZh4JuJeFuJTONLfO9WeLxvnjMR7wj3nc/3qevvWSGfAbmEWVxTo/7EkHubJ5svj7wvb28UjWblkCYWRbmKsLcijC3KsytCXPrwtzY2ei2agx1YtN+60nuu43c0RvSHkWyxavEWthsPttKpnIuH/X7HAxCZfgevUmOepPstWzPzVtmA098AkZLtc7UO6JLG5wkXsKeRuSWsKcO2ZLc/zo8KLo/f5QP/js4KeCwmsasAN7orjVHJ/In2rChN+3L9KVngmlmWZirCHMrwtyqMLcmzK0Lc2N/JmADBu/DwH7XnqrKyxzWROb8ZGJadmDes+CJOEsP54lMpczIHL6tDmhekZkI6EzPHVx/9nqmZ2zGHUWZmNQscXHEzve3vvcBuOtJv+tJd0Qm67sYFieJDAOz4YiteNmxyMVK2VXoH/kr9bfbQT4JtpJaeY6o/LjLyQ4Rwa0Eklt7L3fLhJy6d7ntYgOQxKY47GchvrdiGJY0v4z6l1v/tK+/4prQ0aOj3+KOPrDT0+zfHfPFQGTv9AhVrqvfnx2Q44nHbM6x3Jf5cM877pE78yQlb5xpo0fHLfp82DNWR4uJgf2nw3KnOUXnb/Zpso9T9tF64Z/NdtODznFn1Gz+alaaAAAAseH4S7v/rHf6B71S/+CiU6K//dIRTZ9rXN5plHpHhwv5G0sfJGxUq91/+nrrt8fV3x3xC0q9t9JwIW/wdMJGNftPX9rjG789XP9rl8t7tG4Uj5yn+wkbFeq/kHSa/rs5aU3c21mrf/O5HrRnYf9Tiv47afXvbDfN7AvWz8vC/uT81+Lti+mrP73jr3fSV3Gbdkzr5/qCff9kbXto/X5LMN6Zv87XrJ/bUXL2LMD8eXG8Sv0MX9Kwx4Njqr98mx17POD6A/aMk+4vVwJr/18UVl//SiV+AAAAsoBPn+JZ1uZnQJa39isrjWJh9hHbSjoB+cJW8bE1g8ks3RMovJiM74h1+cDLu1gxGN/ZLiGFnHKOaRXTVed3Kufjk1f62VKHGk36F9zyNwLxKL9ShzONg0f1eaFDdHF7YjvmmF/37/JBkf+wlW0Hf7opvkS1eDD778+yOPuwWiseii4/EGbHXtDpwrx5UQ+KBfpzqND/yTgtyqJNlvUap+aYtCaOY0p43wLGGAAAwINuuzn6Mm6Oup3SiP67VKHp3lHpQWloc/lF2S+/SJpxpDq67duFPR+4/gflqOQyxkzeGQbkiTOOTN/474U9XD+16WHKGLO0EpAnzhgL/fchOp2i/1zGmKfrQXsC9qfnvzN7np4E62dh721y/mvx9sXiuW6u4K+QNPv72Bnj7tf26McF/e7SZF17Rn9/biXJGI/Mr+3zNesnJcaY6Tpepb5SZ2hPaf9UVrNjjwdcf8CebDDGrP23FBY/YIwBAMgPtpgxBs+XQZ5vv2ufqbYD0g+kHwAAGcBlfVJ/Nib0s0R/J6UP9PNn6aXRa7qk3+WbXb9QPHKWTpo06lBNtVuPPVx/o9d5cUm/jl2/fBt65DydsFFNpm9MFvZw/aXOS6Ptkn7UBlvxylk66YdYsf8i0un6zyX9eLoetMdjf7r+s+x5ehKsn4W9t8n5r8PbV+3yh8l0RvsrIk3ti530o22s0emZ1LbJ2vYQxUmS9GPt/3xNe9Ih/Vh/9Ot4FXtSJ9kuFaf+/S479njA9QfqKxukX8epk0OF2QPSDwCA/CAt0o+fspVDDqxnEdsmu3uICugvAAC2A6C/Vgbor1UB+isaoL82AeivDQD6awOA/gIAII8A/ZUs/SVxy+w0CLDMLI6XtVY9oQX5fkXL5+jW6sWC+4vF+HlbjF+prDFJtxwyG3flSbrp9Zq7PE82M/0k3k0AAJBBYD3+ysB6/FWB9fjRwHr8TYD1+BsA6/E3ANbjAwCQR8T1bmI7XxjkYPV4ZlixY0O90wnnxhZnX92/zg3hNCloOQAAcgbQcisDtNyqAC0XDdBymwC03AYALbcBQMsBAJBH5JKWmy5jBykX+9TT96a6vkMCpj0/MV8zurfEHR3zJRetcdkdny31NRO7Fqfu+Lz2yBmOgdSXVsjr/BF2IWGXukt23xF4ZQgAABATji86/YOrdv/p623/6Ut7fPOl3X/Wad65JtEe+tub9A8uOiX62y8dUfu+KLBnW+xplHpvpaEnnoLxJYi3i3Fy9hyxdGntNLMvllcsLd6eem+NknLzG/bwNKuvpziMcsHq67Xr+muhr9W/+Vxn6dsnmi7fcv9EpOn1x2/xGeWCfX/3B42lo0N/+Y37uFWtiRB/0niR+YqQQ+xPef2DB9yfwfjBK0MAAHKDLT5ZL/WtX7AVC7Zikb0Vy4B+uU52mVNN+y23ONoTj3NQxwAAADGBbZB/fD3f8JxvMP5sLDbQl2NPcANvvqEx7Nkae+YHHEzjKRhfwTSzPx7qWGzPZhvUx7aht7th/tIBC5vaFyd1zDbMb58FD6RwDzxgG9BP+Abs3D8RaVa+2KljfmDGJHiAB9X3l2zqOMSfkjek5xD7U17/4IHrz0D8gDoGACA3EFHHcoiwXZ/5Hxsnul+uK9XDNJlRUGMAAAASAWoM9sRvD6gxH0CNbQJQYxsA1BgAAEBGkTVqbHd3YQBXBAAAEBOwAhf2xG4PVuD6gRW4mwArcDcAVuACAABkFFu8AneL5yVJYuN2f0u8zCwEBwcIAACwNsABwp7Y7QEH6Ac4wE0ADnADgAMEAADIKBI4uAuE3HorR0HNgZoDAADIMEDNwZ7Y7QE15weouU0Aam4DgJoDAADIKEDNyaLm8nOMNFgyAACAmIANz2BP/PZgwzMfsOHZJsCGZxsAG54BAABkFGDJJLNk6RNj15Zq2M+qRX3lHg1b9OZQM0f0emO4xJ/9Zi30TF21ztQ7MuPJ0i95+1G1nG8aeTnTDFL0pcr+pOJPVvzJqj9Z8yfr/mRjkWxaROUnkQqyyoI8RZBXEeRVBXk1QV5dkNeI28+De9VxiMWKPqAtn9jp+7lDHtSJ7pzQ/kYeC3xNfjlNXRsZbqxPu8NzbTjUyRl5EIb/73VE16/PC59MzWB54VaTETGG15qjE7TJnW6TDnnWJTbIlFohr8nPljbcb+q0CzJU9mfz6dLlxXzpylGxMPuIbb70TZfr9x+73lHtR/9R1CwnNp1tqpDYmmrwUrMT7U9NS3ujV6j6CR112MkcbR+lduBY2jNJTfE3er12HywtH/WloDXRwgYC6sS0SGDe/2GFhvD0Q8LA1t+tsMqReP/IZEdelHN7i/v+0SJvGrFw99j5u0cavWnmuzVvtMvp1DIX8Ycs2N0PRF/C0Te5u9OzcUuV+EjmoaRCBeVQiRIqqYRKqqGSWqikHiqJ/xbsCYud7ZCycRMMe4RK+qECz1AynqEOyrSnn35I6O5P9fvM9PVXqmbTS4qizLIwVxHmVoS5VWFuTZhbF+bG3qnSyu+ZmjELD1R/dPXnjDWdN03EBeLCExeXj/ICQ85AbO2nJFAw6QzGEh+eXKnGKBsPozvxVOiXTKdfCPLKokxFlFkRZVZFmTVRZl2UGXuP6Ymine0ys/Mcma3HubTpO8nPczzUW6pU+njepKkdrFU3DW1MjfMMygKCcqhECZVUQiXVUEktVFIPlTR8EreDEhbILypHyJQIWSVCVo2Q1SJk9QhZMn3tPAARfAg+CcEnP+xOzZ8hrlqSLgegT7wchT7xcij6xMvx6BMvB6VPvByZPrEoPMMLLpCLAjWi8IILRCEbUQGCC0TBG1EJggsSC+P9rj3fZxQhjZDesZCe/VvOKfN4st+BJ/vpbH9Otu7w831mdmB23ehX/v1Rc+J7wg5V+tlShxpN+tlQTrEnqZxxC64BybwhDlHJyJPUFGLHIAAAMohuuzn6Mm6Oup3SiP67VKHp3lHpQWloc/lF2S+/OEjYKKqj275d2POB639Qjkrd0UzeGQbkw4SNYjY1x38v7OH6qU0Pr925XAnIlVh2dImA0H8fotMp+m/yMk/Xg/YE7E/Pf2f2PD0J1s/C3tvk/Nfi7YvFc91cwV8hafb3V3Gb1v3aHv24oN9dmqxrz+jvz61vCcb7yPzaPl+zftLZ8YX58+h4lfpKfceeU9o/ldXs2OMB1x+wJ54dsH4XrP23FBY//8KOQQAA5AZx7RgkZkIuJuM7Yl0+cIZrMYkkplVnMe1SFL4R0Rr7EzWUfeWoUqmsuEvRbxa3pw6H9A8WFaoUCwfuj8wdkU7N8Ww/pK59xcLh2gzbHGX3WeSWTrMQ6aBVAQDYZVzONp72bay82Oj8MrjRMEsnTct15hthezd65hvl8sfcTnAjX55O2KjmfGNu78bTJbaxsEurLm18zNJJ0wRi/0Wk0/WfS6t23I2zA/Z47E/Xf5Y9T0+C9bOw9zY5/7kbZdcuf5hM58Ybn1P7YqdV2UbZnd5mG8UTxUmSVmXt/3xNe9KhVVl/9Ot4FXtSpzEv+cbi2bHHA64/kYMFfhcdvjE8swe0KgAA+UECG7Fnn/PzzkTeefYvZ5RcimQn2D8AALYGYP9WBti/VQH2Lxpg/zYB2L8NAPZvA4D9AwAgj8gl+zc9ARHcX+64v9SWy4MDBAAgg8DC6pWBhdWrAguro4GF1ZsAC6s3ABZWbwAsrAYAII/IJQfYtc9U28nPEmAQgSACAQAApgARuDJABK4KEIHRABG4CUAEbgAQgRsARCAAAHlELolA71JgUIKgBEEJAgCQS4ASXBmgBFcFKMFogBLcBKAENwAowQ0AShAAgDwil5TgYn0wCMHYCMHDo9q+UqlW1mEFQ7J3jA/E0drbfbS2X9GJaRG/L2v1YsH9zcYBVun1qeg689l1xh3x77Wwd7rq1AMe2wvnJPSzH4rY6yangUiHdq8ZiD88QyEId2BUv/bjodQxB5pcXppcKrTFltxqQNslFP+VmlLLc/yDtttF2k6sUFLVYk4oAADA76B/cNG5fbro9Mu3HfrvMUt3Zc/ZOf7S7htDak+vxOwpvTVKvaNDmj7XJFvW7D99aQ+pTf3SEbevR21Tbmh6OodVHlptapvC64vbR+vsrTRMxJ/HJ63+9cU8XoLxs5ym1985CfuTlf/r7aL8Rwt9a6Tj9ieLl/HN5vbM0x+qrD6PYzHqmPvHrS9uH21vz3p4+nrmr4TsWdv+QP8AezJuD2tPX4LxJc8eAACA1CCaE5oe2TugX64TsLv5ZHfTmUsHEhAAAGALwQ+CnfCDUNnBnuPFQdISwQ5m/eshcDCzsjh4WyKWDmZlByE/LA66lofFwazeg78T8ad7EDKPl2D8iNPsYOmfCftTfDD6JgdHx+lP4cHoa9v3w6xd1vlByrEYNT/42K0vbh8/KD0sHTzoPmZ7NrHf1z/Ankzbw/qL9lkwvuTZAwAAkBoyRAJitdXO0oHgyQAAAOIHJsutB0yWa2Ky3BrAZLkEkLnJYLAn2h5MlgMAIK/IEE+GrWDAkrkASwYAAPAuwJKtB7BkTbBkawAsWQLIHAsEe6LtAUsGAEBeEdcxI1uzaWdgFSs2LAQ7B3YOAABgdYCdWw9g55pg59YA2LkEkDn2CfZE2wN2DgCAvCLf7BwO1gFPB54OAABgM4CnWw/g6Zrg6dYAeLoEkDkeCvZE2wOeDgCAvCLfPF0Wj/9tP6qW800jLy3ValpEbRramBZhWAwTlEMlSqikEiqphkpqoZJ6qKThk7gHwQoL5BeVI2RKhKwSIatGyGoRsnqErLFEqf5mmJ5MDIPoAzJizUh+7J2aP0P8tSRdjkKfeDkUfeLlePSJl4PSJ16OTJ94OTx9YlGMhhdcIBdFa0ThBReI4jaiAgQXiCI4ohIEFyQby7RXnb8UQVwjrncxrmf/7pgvhsQYZ4FwbamG/axa1MJimKAcKlFCJZVQSTVUUguV1EMlntjtmZrhuH69MA0StzfbVA2xNdVgFnBd00GsZA/yk6OKy1llQZ4iyKsI8qqCvJogry7IS88jLfKmEStDrkBjWtl1k7s7nWTEdbvx/MQb3/dHzSGu2/iVcfutYxoTB08d6Y7Ogp5N0qkYfufIwRkah+Z3FDMfV55pRlbuiPn2SM/U3WYKb2TFGxlrGxjor+q9K3WItpSZtsS9kbG2lHNvZMgT6NVW95wxylIbgudW9dzgXnUcgjtSVvrAqT9wT8qKPxzyrEt3hqdrSIYROdXvz9Q7ossPt4A/F47+Tg21HlRdP9F0/UrVbPolaSzMu+nSH27FfH3e2DSdR/qX5+ZwsVztVBs9Dp4JGUqYpDWvm5bqHszJKyfrTjyh/4cTw5w4qx2ppHPExDPv25aUXDivoQGVEnufygxaEZpp+OdMHh5UioXZh0xPunZKdKGovXGyPe4biC94vYS6/DAW3TjSrQPp/XHoG933Rk/oipn/BpPxWLVe4cBtdeC16ah6BobticxBaNPPkWlp9yrt3Yaaqjd/aRLuOekU9mIypgF5v/sFvXyU/UiWTjndSaF5KCnvquUWVM7t4cS0iH+AXj0sFtzf2LaTWdLJ6neqbkD7R1K46RYGZKzdmfqwWGg8C6s/4duSp6uW03fxmrjpzurhiFfTeoW8fn1elG5a3SwvfKMfMiLGsOuQcYbZpUyynIm8YKMtcTI2kngyXWo+/ILF93wstSaaTqu+ozrqInfgvOrEfiTEuSK6yp7mvao/UqOXryhMAywy8Ohfzit17/1QvaKD2MUuXP6qCbHiiow027F4wv1ij5YOeVAnurOCZo+tAu3UJaE1xN3CxdOq9VrEr5lXulfC/pz/6fUjVfeP/wc= + + + 7VndTtswFL6ftHeIcrVJkLRM2xC0INqtoxJdoSmFW5McEgsnrmyHts+2iz3SXmEnblL6k47RUVIGQqqEfWKf7/uOj4/tXz9+Vg6HITNuQUjKo6pZtkqmAZHLPRr5VTNW19u75uHB2zeVy5B1AwjBQPtI7g0lrZqBUv092x4MBtbgg8WFb++USmX7snXiuGhLtmkkFYlcMA397XcSQtVssBgidQxD4vMo7ellDuygAzidYVRqMWUeiA74VCpBFHZL3YN96IyjRgxybIy0rTvq41xm+sXdeF+IIgZ6v6e0QTaSEwAoczVwkzlwllPB+yDUyAGlkMJvgsd9OWUwdj7PyqgRCV4bOThyXSSowd1YNriAOmdcbB0xBSJCiLfQoIxtnRIv0ehdubT/cT/5eW/OTIMTOcDAVVzIuY6xDz0qY4LgiYLM0Jhqq5r1gKgu5+yKCMcVnLETuFa1WCkefWWoWYR82fNz2vmTVuwlqFei5lSAxIYJOU+P3GrxWEIb182L4aBD/WDTSNi8NbLI0mZwsw7gTsAHKfgXkBAW0RYZ/w74HM6b5VKDI+0Pg5tsjROcKZbxdtnFVkFvrAsa1XFcDGhpdThXHeIVpnCKdHftQM+bVqJzC0OJ+CB7FAbFhfVcJsMO6ta4wAJmq8aIe7NqqD+YEpQ+YaUwJlqERpqCP0f83CD54OeMjOz/fPDjDJCtdSfEdRDgVy3uYT3bI1jFVs1jTPdnaEXVKI+ae7x6jLSUhmstvrpiUHAaPuaYC1/FephYVlO2B1Has2Hpde1CtfvE1XKkEpWsz8VKkxxRN3Ore3laJC2xLH7nmaqnx1vwa0JLlDqLqXtTDzh1i1sx2Qnv077+WzzfrV2ZGhZj40IsU+UioCo3ka9ZD6zUujBUNT4sTg5BQyJGyap57CPYIrqFcXCkekCZNxlg5pqvzoiUWZeZ1b66NdFZD60dX/GGc57rlNUcYE8sSleQSPaJQLRL0tdzkCZ1/X8TR98sQOSNr4yaYVKCcBGSR18/sxMVliFy8OpTw1MkbozTpoLQSiJqkq0LKnEWpHiul0n3onVi3wepwDtyk/eZtUTegmRz7y4Ve+r1565Vv/zI5OWnA2zmhUl3Y7wsWhhpOP3NpYn5L7dryMdS9zQny17AtM0E8fz7mf5Uv7kd/AY= + + + 7V3dUuM2FL7fmb6Dx1ftTHB+YDuUJruzgbJkpgGGsLC3qi0SFVlKJQXCvlov+kh9hcqOnTjEKUuI5dg+FwQcyTo6+j4fHZ8joX///qf9cepT6wELSTjr2E2nYVuYudwjbNixJ+pu79D++OGHd+2vPr0eYR9buj6TR1NJOvZIqfFRvf74+Og87jtcDOutRqNZ/9r/feDqumiPMKkQc7FthfeeIx937FM6wUyd4SkachaV3MQdaOkOaHGW1e5OCPWwuMJDIpVAShfLsESX6c4M1BPFKXWs6Lvrp7GWZUd3LNo7QQpZuvdHKqwQtzQYYazszZSby9BSLgUfY6GeBlgpPYSfBZ+MZaLCrPNptawukti70GNwgu/QhKpTzlStj8Q9Fqdc4GNOubCXmlqVJ5+Vp4qz4uuOfY0pFuTeuSXsWIsTnErnhsgJor9RDQtTThe59zPR1g3SyOl7BGJyjIQuta36FgReIa+nsO98kThS/YRI9AfF3iUigZBI8CmiEq+KbNdfGIT2QAt1FRfpoxMwJa5hRWrP2JPaWc6V7nBUL6036dLa9TW4v5IcGguKxvqiy4Wm8woh/l/XGbYDhdRC5cR3HVurdjzC7n2XT2MVVxrSTR2P9MM0b2HpcTqmSMq4yI4HNPy2Y3cnSnEWdX1DU5JCuXq6aoahSTwYp4TSQkITdrxswPQJG5Bv+Mfm4a/Nw58Khkui+fD3pSA+UeQBlw+m5bmulpgHDWBm3JLHk9xC4WcDsN+4xMJN4dP2tXfizjjXfDjU7lBYsccUFj72iL6A8VkdnwtmflR2YAzMK23C7Z3bVeks29lnl+HrwtwnPecsA5f0u9HxNRtgtgFObZtTz80cUKxcFNMtHO4SxXrMw4GvQVjgagDbNmHbJzfwA0yFBbK0EKGowNEpaaBghlSfTyS+eMDCGGRziYBWAdBafsAAvMKCl3yNBhjfAOOlwNJg5Hs9iFFHAMJCQaiNKABXFOAAqdcjFbzbIPFUwOTTAhnk3gdaMQ/QeQs66+P4AFsRYcvcbwQAMwYw2wkN4NsOfIBSEVACY7ixM0+1SWIoCIAbwmqeNQaoNnnvOufCRzSHySuzmH7ZETvj2jDlAhjYxe0EOfIBD1yPTFZ37kzOPedlHWbMfHXS7UWhXfpSj+3KH/w1QQLfEk+NPnl/TuRiz8a+GdFnmAxHyrTsMy7IN10N0Yu7O5yQvNfMWvSNvom4mQle3gO02H4Uy3nfrFmzn92zaJlFO6tj2wxbs56PhnjB7fByTrUKEywaCCBXuckFHAIOvZVDGb36A5uqyaYsYhHApWpyyXBKG2gGNMs88V4NkoWq3Y6Iws2DafNgpmSpwpOAW9GSUYCgOQTBchZkei5BFsqQuYCYLVDOqH0Dwpkn3PZSni/lwRo1q/lLs2a19luQ6MxQ7VxSy6/IseZtzHKIq4Bhy4Z1u2PY9t/rj58PSvyEV9SmFtWwgb9WzKX/sBlxe//9j7A8wYNNAa+GTP9B3NmG89Z4WvwNN+XcOp8bSqZtYznhK5rLnodblYldqI77tLsU2534qgmfoTqMq94Ok5eiEq3GQc2KPyA4kInojHeWbCkOtDPWDXabFG1mLcBaNiOuGqy8qBaZYA/T9lgWqhYPrNElWnm42OXE8KWj9cwlNnI/Rcb8ol7jGvfc+blzBmaI5ReZgc+5Gum7+tzbxdd2CEECwbIkGPDoFTwKUny5JyLgQI93izppFRbttOuJk4UX34YhMhmcKnyF6dLpxWGxBmK1hhU93utPn/3ScxIQzod5s+Nq13QieZryrOGElOhMxu+QvNzVlA5oUNaOUQjMuiOewzrzYX9+QHR4a3io9If/AA== + + + 7VtfU9s4EH/vzH0HjZ7uZqhDaG6GoUk7EI6SmQYYQqGvqr3EOmQpJykQ+tXuoR+pX6GK7Px3hgZixzF6gEHWSrva/Wkl/8z+/P9H/eMgYugepKKCN3DV28UIuC8CyrsN3Ne3b/fxxw9/vKl/jdhVCBEgI8/VwUDRBg617h1UKg8PD97DO0/IbmVvd7da+dr+3PGNLHlLudKE+4CRHXtGImjgE9YHrk9hQLqCJz3XIwP2jAFGHUL1oz5lAchL6FKlJdGmW9ke02eM6ehHBikyKHl29dgzunAyYjLfMdEEGesPtBUYzdQJATR+3uLGOoyWCyl6IPVjB7Q2LvwkRb+npgRi49Ok0BFREJwbH7Qp79Dv8Ge19r5a+wvPjF5Uoeb6UzWgUbuBr4CBpHfeDeVNwbUUTHkXkkZU03tQXjME/27cnmtaV2F0TUwIG9jMsI9RZd6+yhMG1jvGAl8LmW75NVV9YoJCNIwE0dSzBr4kgbUqIvJu3jl2kmZoIj0eOxPrISpGPRj9wwz0uI6hspJfnomUBWcN3ZW+5gWvpnvNDk+D04qYa/mCHwlpNkgeeIvXm7jf60RC6NCMaotggq4zwVMcVmh0NRlRagFe9mkD21nbZtbEzWVD0Dhr7b+v7i9mrXWGJQUV2a5tuO+JfDyhjGW6sGzwRvy74Xp4UDrM5RQX70p0u+aOYHtaPAANMqLctFzEVozYoe+bBZ8JGRGWa9jOuYvVirHK+ebZikgXJjdP2xzfBrbsJvD8e+asFxymyoup9Z0qDm1L0GZ9fRNSDdXaoFqLw1/cE8fFsRhZYwUOpABvqRsDXckpkeKCLp14W6/+zn99IuEUaDfUh8G/faXH6t/lo/uGBjrMRvUs/3QiJDQFG8I/UfN3dQfFP1kv9VRI+t2IEXZ+ewtTK81c87UZRP3f0fvqbkUlT2zxO7hjezdCF5ST/D1kZpuaTWq2S+aszjFV5BuDwPE5LwvSTptQnlu0HBm3fTvM8d5rC5/5g/px8t/rDdypm1s6L+d56+BUuNxVTqBtGwmyHbnLvZpuHdwKm9sc4/sK0Jcf45sh67pJsvkpxndvt7aDRr+KQ71ujmwuQGZz7G9m38RH/s7ps/jGDy73fXydaaXQ/1WT/53cgevVgasI55SD3YthZ2Lb0hB5XxQcwy3pMz0K8AWhfHI/OiFMZfD2Nx37p0N/KYQ2Bidy+RdBDD8XOcpx45+4yskzuvqzItSdbB+2FuIxV3Fbr0zV/U6eWnZFDWt+L4HN1BbbbhOERQmUwCfO0LMFaS9K3kvUTVc1xxNPaUmOq9/Q/KXlLSueM45f6gfr/GVF1lZm7Nr5Em071JZ1f/gF + + + 7d3bUuLavsfx+1k134HilloOFQ+wSnsVGqfaUxEVj3cIAdGQOENA5dX2xX6k/Qo7/EdcpBFR20Pi8PupakqbCEGGg1/G8f/+539X/nPXcTJ92++2PXc1Ozczm83Ybt1rtN3WarYXNP9VyP7nx59/rJx2nOql3bEz4fFu99933fZq9jIIbv6t1O3t7cxtfsbzW2p+dnZOne7uHNbDY2v/arvdoObW7WxGfrZc69ir2b+cnu0GW/ZdreW50T3HDycwH55A+HSZzMpar+00bP/AbrW7gV8Lwru7ck94X3gyh8G9Y084JhP9X/X+JnyubPQTo8ezakEtE579vwM54OGRDi9tO8j+3ov773OEz1LxvRvbD+4P7SAIf4Wbvte76cYO0Cc/6ajMWq1rN/bC38GB13MbB3Y9OLys3dhyMz+b/eVBHj9Td+z+iU+Uefh+NVu1HdtvX8+ctN11zw18z+nOHG3P7LRbl8Fxu9urORtO+Ma4wcx2p9YK38HjWvi+rWb3r/P2ZmujJKyz4a03vLlshTfb9eGXa6X1Uoy1YYX33ZUWSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAadYW7K3Wwe5gd6DCf7tqYa5cPc3J91fD74t39dONw6TPEpjG3rpc2KgOy2uhWKnmVWPrYFYtdH62m8W5xumpqlRni7p8U56RamEpraiKdVtQXnu7XcnX8+WBKqjKQBXzjXwzt93eviqOynMh6fMFJrOG5XNxtrFVVWHJbahxUp51/Sx5o5X0CQOTlatHc7o+VoOwLn5UlKV+lrxRkPyc9PkCTxjmi5zk4+Kgnn9clCVvyP36ejDp8wUmk3xRKFSsQe5ywd5SDSnPUj9L3tD1sVwPSr64TfqEgcku5ov9jVh51u0Xw7xRlPws14O6PU7a65I+X2CaWHmWvCH5WcrvgrRvSHvdftJnCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEyWzagff/6RiVlRFd+7sf3g/tAOgrbb6o4fcGg7dj3w/PE7wrtOO866U+t2Hw7JbDh2x3YD+c/V7Hr4pV9zLC+Y9LyTH3dFhQ86dkqbvte7+fWoJw7KrNW6dmPPXc1mx5/vmZc58TEzD9+vZqvh2frt65mTtrvuhS/Lc7ozR9szO+3WZXDc7vZqTvTaZ7Y7tZadzRzXnJ69mt2/ztubrQ3967fOhrfe8OayFd5s14dfrpXW4++RtWGF992VFj61ZAAA8LksZ9E+VQt7VkvlrNZCRdn5YFnNN9xzVXTP55vqPPw6/n0zX1Tx4+Xnk34VMNtCrnKliv2LeaWqs8WKGuwOdlUhvK2o8KvBR35fHtTzaq5cPVLF8KuKul7cq1Le8by9ytWCUidzwcXk8lXcOZztq1ZYl6rlvUE3KtpLub6vVGVQUGo5p/oq/LesntUPj9XHF8MaOvp5dzHXVOFjVtWS7d5E9+zPlq3H51PPl1WxeTqnKN8olebLV2ePy6u1P1tRV2FdrAr9nfuo0CVN/j70H8nWXaGp/54G3eW9x+V7+PlRSPpXiw9lST4df/8lr+ryIZXkVxMr35LPY/W31PQL9taluk36d4832Tt1FpvqcDbYib+/Yc01UIXm1p1SYcluJl0S310hLMFRcrk6m//l86ZSnaW+/jp0+T0Kr5Wi90/ez7AmHqhc011MuqB9KolG8lHkLe1dqfBv+jD6ez4LsxX5Oo309dqofaGYb+SbKvx4rSQedbv+3/dq/rxz3tftcQmK1ddyvSj1dXiNe0L+SJguv9JepcuvtFfJ9X965MJC7OpCo+vDdJC/7537Ql+dzhWbUf4KP7n6tId8LutgtrEVlV/pb5Cm31Ra7Jx3mroQy/mmU1icT9Vc4/Q4+nuTz7ek32VzRe0PUn4vTub6Krxm30o8PzwnLMnnUSGWqjnFpBV72c4HUXukbv/o7bTJH+9B9wdLe6muL+T6RV/KfAW6pay1vV6K+ju+hmEpzkl+0+0fw/ZLyvNvi/VfyPVSru8vJf0Wfz/SVXQcZo/o85D+l1cpj66vdf+wke2/X4g0BUmnOuX5BXR7sOQzuf7Qlx5IDWnFkysTyRvF6tFchfL8K0vyQ6w97Uv2H38jYfXsqlj+a+Qb+W/f3iHjF/XvQ67vntPfuQ+vR9ybJfLGx8nJ5+Nfd/Xn3w8Z3/Hd+w/Lo/EBy73lnnquKi64P++j9tmLk7ng/d44xEh/4NnmWitqP3yuf1JaZZb2rryoPEvLUtJF6/NYo/HAejzXi8ig4Hx5UFeF8M//Qvn/LPXe481DzGL7rFPRhbLt/fP3C39KGhzl+jw2XivpUvbR9PhK6R/9rf5l6RSRnyzWThxfj4/BO8gV+jsDdbBxsBGNF5Hxoq9VqFi3UXmW/tiky9uH2JXyG/7lLr95fJpcRC90frabur8V72E4HiNXam1bb+5fl6FKRpZnnSdmy9a+0kNX8A3IeHCD2jdkfnE0lEbGW+JbkfEcX/16sCzzk/XQRpmvgW9Irgflej26lFzo7Xyh8mxdzBf7Om8xaAKRxd5FJyrPlwv2F8nPu6PzBeLywbKty3Pa+7stWa9BzpdojMekv1vmX+lGjqQL7ETSKKbXO0nvfA6kgfQK6PE2w57CFJXnsown19d3sv4J8CyZ/66vpy46i/10lGd9Pt9tUj7egVxPSflJen7K7nDkiV4vJe3z65BGMn5Mrq8kdCRSni29Xpn0b9J/hzfQUx8lnyZRkku7+fKgqefHAG8y7AUsLtv5vp4/+HmFWM/30OPR/KUcUz3wDmLjjz6v/0T3fwThX1HSLx+GGfUHfnR7hiXzR/X4NuDdSWrW818/br3RWP/5faG/k/Rrhrn+Wer5H9g+Z0kel/GarEeBDyXXX9KeIeMf3rs863x8W6hYSb9QfAe5K28p2k/o/QqxJY3GMv5jSn0s/dWyCECu7v6k/xoT6J1UZH1eWcR9SlOudB2/93j9l7VXyOfB/sZaKRokUtrfsNT1z/X9aP1efFe6/JavzvJqr3q9GJWPzYPriyivPk0G0b1Le0ZsvaCX5WN56pvaiaNmnZ+HTX2+DM343uTzeXattF8p7h/9ZSn/7/vutPo4Rjq19fie4f6cbyjPuj+vs9i7eP0LGLbafaX1V/GhdP372vHrUpRlPtLv7y9hyfr9jK9A4nLLveX+G8Zn6PVgZb4/492QJJkaqq//ZPzaa4sy80uRJrK+osxPekVe3hvma12fc72GlJCpdq+db6KXYpP9VIA0kfpVrh9fdP1nyfGyviiQJno/UelaeVGlrPtDUrZ/I6Bi6xs9ly+s0X71NFogfeaL/YuXjZcrD/dHSXz/ZeAJ0t/8ovFyo+vDpM8ZeIKe//fMeDmL9TaRerJfzZS8LIti6f4UGQ8EpJTMX3o6L1uyHvkrxr8BCZH9iZ8ej1G+OJnrs2kpvoDheMsp6wvIyDudp4HUk/n+Rb82/6j/Ourfs92bpM8ReAHZD3Di+nK6fy+8Mnz9/mzAp9P7QU/My/p6j6iMr2Gp5/8zuT1O54uibOUEpJ7Ml57YHqfzBfst4IuwbguP2uMsmX+q8wVLy+JrkPnb4/lir3K1EI1n1ks1A6k32o8nli9kvpRuby7ILgyTyPRtvX93a3u9pBbWS61Kbv/6J+tt4R3o8jRWvqQn5AmylMB4vnAW7Wi+1JT1Ca6273f1QbrQy4PMOecn5BG8jYynkPI0Xr6W9wbdJ34oN4wSj/LFTnshKt9T/grk+cIy76jcqbPYVFL+6U/BO5HyNF6+ZP37yUbzVWP5YnGveh39KchUEyD9pNKd0j9C+wW+BhlPP61/hKXd8DXI+Iop/SOSP4DU0+tlTckXW3cF8gW+AGnamJIvlu18kPQ5Ai/QXujt6PHKk/OFrD8LpJ5upJNFksfzheyHWnTP58kXSDe9n59s/TCc7/QoX8T2Z5AOaiClZL0sycPSHzKeL+LrzzKeCCk22v96ynpxOi/LelxASkml/Nx6cXp9LZkvBaSTHp/xzH4k1t6gu6zXxwfSR6KvbG0q7RNT8kVZ2i/2Z8uW0rtWAmky2u9aJu1NyRex9eKY34fUeXr80LS8LPujAWmi948czgx52f4jMgiUvIxUGbZaFGX9+tp84L9s/5GyLIKh55OQl5EOsf2tty4Xpl3vjdPty6/dhBj4GFPGcz5HxhtJ+U/6ReCb0+1vw/3Zn2t/myi+P5S0fwAJkaFvv78/uy7PevzycL8HICEy/1pWZnltfRyj9zuTRTNesXXfzZLtqquz+bLKlwf1D32V+CrOO+cdtVg7cfqqu7z3xHpBj8ilmvQ/5xv5xsva3ybTfw8vmu8nLR3N8KNADcJC3Nc/dHB9vqly4Zlw6fh95YbrqxQ3D64vovVarhf3mjkZhPnc+ikT14N7g7Ak7ulFYKbQeVzK79Ffa/tq+e/7bn/Kel34ZobrUeRu/qm5unxIfafnM00m+znJ+HmpRN9QH49YUt/q6z/Zj+dpxZ3DWa4PMZ3Ub8818r53fRwrz7Jf5WLvovNZLxjflXSFyP4i0v72LvVxTDlM3VF7SK7pLib9amGuYqU6G12fyXrf71ySNd3/x/7t+EjHc41TJddn710fx0h7iP57YZNVvDvddDxav+LjSrIW689mKiveiVwFns2Xr1T47+wj6+MRSxoxdHvGzn2B9gq8A1kE+UPaK54tzyfhtWXUacLQObzFaL/1fLBsf059/Kg86/2DWVQcv0fyqUy6k/6Iz66PY8qyn7tej3nYfgK8iqwX+/T6Qp9enrcOZpvqaK5c5SIQL7WYa7q6va14ejz36vHHH2g3Xx40o/U/Xz5+Dt/RcNZocVDPV3T9l3TRHbfQ22lH7YGynj7wmPRHyyY3z62PlTRZZO5l40HxDRUq1m1UPmQ8XNLl9Tmzja0DVVjeG/R1HgLi+53ONU6P01wfj9N5/uJkrs8izd+cNLVJ/Va09mc/vf/jfYTJvhz1bzP+/huS8ZN6/4TqbLGS+jzxtNh+2bnq9WKFrQC/D2nEkvHGUh9/oTzxtFh5Lsp6R28lj3dXP/3r7Q+FXyzfF/oVPb/4DfR6FcM8nMh4io8WG3+k88bv1c/D9kgZNKUvgucb7vlbfun4r5/3dTcaBLF2W//d8TTSXjxany3pUvdxrMsFeysqzzLf9ZX5OXfRWXxYVLe93Wb80vvJ+f8s9YvhR92W2gujoFrevOu+aii6NBVLnnj5+ppfXax+1jXzi4Yi3e5apegiuH3W2WGTlI9QqG7cVYq71Y2BOg1TXLQf3nNk/oV0IhSH4xdMyxMvI+0buv35ufXI9UXE1tqtKuys39K093EkLxfDyxFXz3eeQs+/k/dP1ltJujwlTeaj6PVyGfT8FQxrFb1+vO7v+Ij50F/YbPgHHl3KSfsE45HSSKqa0Xoo0v/1PfPEc2T+gC7PrYU9i/UJ0kOisLQXFWT8o1zvJF1evoRdyV96/dAwhSX9Rn5nS3tXXlS/kId/V1mun0f7Wen2nq8jtj/ic9dPaSNNF8XR/CBpLyIPv83ecP1HaXnX8w30eqBfov+7c945jyal6/1cUk466XJX3lI0X3Q22DnUTfnk4fdlyX5AUjR0+89dobmV9Ns/RS4syVH/mf58Tq9ceJXS1PlBX88N53dQfj+D7Acbuz7UTfkpG0q6GNbK0fq8umpOEWmFkPmhMohYl9+rs3nKbyJG6/lHeW44NEOvL5OKqbKpyxfD8qvbg2W8pS6/37d/Lr2sg9lGNL5DxndH+wNIyk5E+De1o/fPSPB6Vedf92bpl/wgnXRJv2GYypL1S0fjC/X7p9eDlv2FUlFffyC5HpaPKj3+UG+VIOX3d/YHQ2qUpaVjVB/p8i3j8/RQxJTl61eT85f+i/CaoRW9Pl1+hz1zstUH5dcsur7W/VWj91uvRyrtfbeFykP/YirLt9S3cqPbG0b7KcY+f2QrLtp/vyFrNL42Xp/J57E0ish4EF2y5VL/o+cnylPJ54W+PpP1cWLtNbHzk/WgpDwn/VtEWlm6fWpS+Y7X58P+Az3/UvKK9Efq/j253pT+dt2fE/te5hvI+AUZ5Kt/fj/8bHj0+LHv5X7qW7wnWZ8vtj5UbDzfxPI+5XvZn0h+XtZLU418I5+O9f8AJCKbUT/+/CMTs6Iqvndj+8H9oR0EbbfVHT/g0HbseuD543eEd512nOr9jf1wRGbDsTu2Gwz/bzVbDf/Xb1/PnLTddc8NfM/pzhxtzxzUGuuOV7+Ojp10RpOfcUWFTzd2spu+17v59agnDsqs1bp2Y89dzWbHn++ZX8DEx8w8fP/k69xpty6D43a3V3Oilzqz3am17GzmuOb0wt/P/nXe3mxt6DfGOhveesOby1Z4s10ffrlWWo+/e9aGFd53V1r41DIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApNRgd1BRu+Gtuk36VIA3sMJSrApSnpM+FeAtpD4eSHlO+lSAtyBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL6AIcgXMAT5AmYgX8AQ5AsYgnwBM5AvYAjyBQxBvoAZyBcwBPkChiBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL6AIcgXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnyubUT/+/CMTs6Iqvndj+8H9oR0EbbfVHT/g0HbseuD543eEd512nHWn1u0+HJLZcOyO7Qbyn6vZLa/nd0u+791Oet7Jj7uiwgcdO6VN3+vd/HrUEwdl1mpdu7Hnrmaz48/3zMuc+JiZh+9Xs9XwbP329cxJ21333MD3nO7M0fbMTrt1GRy3u72aE732me1OrWVnM8c1p2evZvev8/Zma0P/+q2z4a03vLlshTfb9eGXa6X1+HtkbVjhfXelhU8tGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBKDXYHFbUb3qrbpE8FeAMrLMWqIOU56VMB3kLq44GU56RPBXgL8gXMQL6AIcgXMAT5AmYgX8AQ5AsYgnwBM5AvYAjyBQxBvoAZyBcwBPkChiBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLfHmN0+M5q0q+wFe3ppr5wi75AoYgX8AMtF/AEOQLGIJ8ATOQL2AI8gUMQb6AGcgXMAT5AoYgX8AM5AsYgnwBQ5AvYAbyBQxBvoAhyBcwA/kChiBfwBDkC5iBfAFDkC9gCPIFzEC+AAAAAAAAAAAAAAAAAAAAAAAAAN5FNqN+/PlHJmZFVXzvxvaD+0M7CNpuqzt+wKHt2PXA88fvCO867TjrTq3bfTgks+HYHdsN5D9Xs7tttxfY3ZLve7eTnnnyI6+o8GHHTmrT93o3vx71xEGZtVrXbuy5q9ns+PM980InPmbm4fvVbDU8W799PXPSdtc9N/A9pztztD2z025dBsftbq/mRK9+ZrtTa9nZzHHN6dmr2f3rvL3Z2tBvgHU2vPWGN5et8Ga7PvxyrbQef5esDSu876608KllAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA1Nq5Py9VCkmfBfBm/Z/XJXWb9FkAb7Ve6OxbKumzAN6MfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL6AIcgXMAT5AmYgX8AQ5AsYgnwBM5AvYAjyBQxBvoAZyBcwBPkChiBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL6AIcgXMAT5AmYgX8AQ5AsYgnwBM5AvYAjyBQxBvoAZyBcwBPkChiBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL4AAAAAAAAAAAAAAAAAAAAAAAAA3iqbUT/+/CMTs6Iqvndj+8H9oR0EbbfVHT/g0HbseuD543eEd512nHWn1u0+HJLZcOyO7Qbyn6vZQ7vuuY1uyfe920nPPPmRV1T4sGMntel7vZvYUY/OWg4YPc6KWuu1nYbtW7WgNvrfw+DesbuXth0c2E4taHtu/KlXDmqNx0dk1j038D2nen9jr2ar4Sn77euZk7Yb/X935mh7JvzJdcerX2cffgNPH33geUF4eHTcr7+WJ87gwG61u4Ev3+gHjj2LZTdrPSd4wTPHznPCs4dvx5O/HXlL5O7o1xo/Iznmv7/w+D3DH5cfrV6GT/fj/wE= + + + 7ZzRbts2FIbvB+wdBF2tgCs76S6GzG4xx3ETIG692El6y1knFhGaNEg6tu/2DsOeZhd7o+0VdiRLsmJLjVo4IYsRNoLIInkOeT7+R7JF/vvX3+13qxnzHkAqKnjHPwpavgd8IkLKpx1/oe9e/+S/e/v9d+1PMzaOYAYelufqZKVox4+0np80m8vlMli+CYScNo9braPmp8HlaIJlyWvKlSZ8Ar6X1P1AZtDx+2wBXJ/DikwFT8/cZA4cowNozvPa3QVlIcgrmFKlJdF4WiVn8Bw6M9JrBiVlvPSz8XqOtvy0xra9HtHEQ+9PdFIga2kUAWj/6zqX20ArQynmIPV6BFrjEL6XYjFXhQIb58tKeV2iIPyIY9CDO7Jgui+49h9V3W9f7Zwvbd7Ljjv+GBhIeh/cUn6KzUvBVHBD1YKwM4Zh4Droksn9qWBC+t4NwUh1/NuIaoxg8wCmrkh4oWEWXCtIO9mjivzGIBwSir3NTPYJUwc2ecZjO2kvRxEJxTI3N5aLEmvt5hOD3R6hvYkWsjwKMYFZCS81vKGy1E8hNPqalivzptxau1nB0xdC9xKkDSWdUU0fQAWXlEN+mBzd0lBHeUiODhP9gsU+ZWxrMcf8uEAB4WpOZOnwP8fEOm792PCyP4fnb2N+pIneYlj4rOOjN4zMFcV5MSQc2DkQFMiMwL02sdXTCDU0b+yRihZp95/GvQqFr5Tgsng1y8fghefVe7aeR2NY6cbFRPC+kJBA0BiSMM6xPxz93IpfrxrxEBC5jjFtYG066QqJ4WgMiJxSjuWS16uXmKeZZsZu57T+8/sfzzEtRjMUvghrDUQIubFzOo1+xVJUrw+WBjKL6chvpabh4buFbwvmYHehteDGssAOo+VIOgQNcxGcreaEhz0qsWZ82dwTS+5g2YXlT+vjdj13UXNTvBYql3Dn8kGdKe5g4Z0r9PX/TMu3Hs8L9UHoTVAhfPk4DsRCwccHkHHsXCowTUMeDkuu+4YSFP7r4LAGjpgDS+B4nAOKX2QU8oG7YjCNTRksLu04RGqnHdOw2JGEHCo1kpBpVJyu2AdLqa6Y+DrM6YhtaJTqiAk0bNENd6fzpG6YTjF2qIgD5UkVMQ2K7bfHDqGKH+pMg+OSkVWAVCcjMz/UuQRkGxylCcgMHLZoh7vLqaEdphONHUriUKmhJKZRseZi1tQjpd/mU2c2oONSklWIVKckQ48SuSxkGx2lWcgQHbaoh7vfqaMepnONHVriWKmjJaZZseaS1lH0xQ88m2ZnQOQ9pqSMnj1KDjwiMRlnphaK/cI0SE7iJZvJA947fX/TGoKclCwjtfLuzzDM2Rp448RWR+350H2m3u+FdGcnhnazsB/E9tNkLwgV7wVxBezRnhPJaRTl/RJeCmL1Yufri1jOdwehxirpz20KUOFMcS+MTcMFK+mmCzUso8ufXx5e8AXjVDlsSayq9upIyuSR2N3pI6ma7A7y9j8= + + + 7VpLb9pAEL5X6n+wfEqlxBDSVlUCiUISEqSSoEAe6m1rT2CVZRftrgPc+pt67aH/qP0LHS+2w8Mk5IFDEwuBwDue1zc7O2Pm76/fxZ1+h1k3IBUVvGSvO3nbAu4Kj/JWyfb11doXe2f7/bviZYc129ABC+m52uwrWrLbWnc3c7ler+f0NhwhW7lCPr+eu6x9bbhIS9YoV5pwF2zL3HtMOlCyK8wHro+gT1qChyvnkQIFVADFWVax7FPmgTyFFlVaEo3LyqzgGirT0AMGCTRWeK056KIsO7zjlt8+0cRC7Te1IYg4NdoA2n6ccbEMlFKXogtSDxqgNbrwUAq/q0YIhsonUVllosA7QR/swxXxma4Iru2xW6f5q4n1RPZW9LtkN4GBpNfOBeV7yF4KppxT4lU1dJwzBaHkfarIdwZenVBUwToniBjiRphCJHOTKuXu0anYQKGuFjJZ2QCoiMI6YBgMXA/BS1RWCI0Kh3RJ2iRLK+ZmuP2B2NSIvAZZERL2BBPyc74O0oV0gDqnyicsNN0pE/fa6BADdNGmegEADcU2NNG3OI1cK9mIh1GkLPovhktd0g6RgwplLH0oGh2MyjbeVRMexHAcC74kaEwxQlZ7bUyHMYexhLjHiFLRkh3tSXM18EZfI2vj6EeeBZMuCaMgwbKUg6jqCh5v7dVDNui2A3NX68QLzsOV/NbGVn6r8CHNrBwoEIfUnx8/E933aO4HPEj0ZSHxZDyirTbD9624pvST4XqivHklLXyvGKDr1MWUXva1FvzF8ldTEq66RKLwLIfNxuU5M9mQ86tMZDXhKzjBqj6wbrWGZVxiUC0IJScWn+E1H151CQq/pg/SvujxDKTlBSmUmUE0H0ToR0a6+GNY0aQF0wLgCQ14bQBNtM8by9Q+Fz4WVq3oYykaNyd6EJN+PbrLNEhONL2BRSS8u2zNutX5IMIv1B3miUK3f+IjYCNdREo9aoTetyr3oB/vpU9LsX8WEUqvNDFnwXRvggo0xU5KmcI5C625Q2vXDU74inB9NaMse8vRZPySRdMDoyl+wpBFVHJEZdlq0R3Kolr+l6v50fQW5Sv5reC1Pv0vx3P+j3tWdYwHDjyK9FEov7o+536Usyc7c+H0wPr0/2pP30YqTQGk8aLqpYdDUjR4eMq/IYOTipxnNX+qgpsY5SrmRgbKbq+aYTIVDJOdAhsbWjPLaNE0hRWeineeliO+sJ82JjVDidEhuiHjESnhYNgcksdVTVAAQZnpIwPMrMk+QxO7fXIu0NxqZgm3/wE= + + + 7V3dUts4FL7fmX0HT67a2dQJoftHoZ2GQMsMlAwJtLN3aiwSDY7lkZQm7KvtxT7SvsIe+S+2sSEJtuS6viCDbcVHR9/509GR8t8//x6+W81t4xtmnFDnqLVndlsGdibUIs70qLUQt6/+aL17+/NPh1/m9niG59iA9g4/WHFy1JoJ4R50Osvl0lzum5RNO71ud6/z5eJ8NIG26BVxuEDOBLcM77uf0BwftU7tBXbER7xCU+oET27CDvSgA0DOMA77C2JbmF3hKeGCIQGPufcEnkFnRuLexhltjODe+N4FWq3gG+v3DZBABvT+QHgNwjeNZhiL1m7MRTSAypBRFzNxP8JCwBB+YHTh8lgDv/NZrYw+4ti6hDEY4Fu0sMUpdUT7ArE7zE4pw8fUpqyVeNVDejz1PJOcEV4ftcbYxozcmZ+JcwzkGLW5eYWsM4Hn5jXHQU8GhKOvNraGiDgwSDcIEAQckc0B2U66S50n+nQ4AqITQVl2ZyVwYQvjxAbhcIQPZlZnr89kf4/pfI4cq4/YL4mrK0pF8IqsjmZ35LCTg9CWMAJ0U+K82HvTfQN/L9NQtofIklr2Yh8a7MsGY4Yc7iIGvT0ltq0S6xNHAtynDDTkI5nObPhbIz1miwygn09vU0rPFakbwhcI9ByJtWTF7h211hLTXwghrZJyYaELji/BDmciXzB7ZkRNPaNDhjn8q47NAV3qwDOl7Glj0Ch/BZV/TKdTGVRUwAQ86fhLYboihkEn83rMxecZEXiMV6L9fjIBE/CJsjmyyzWSCd79C0s/5x9p6U4wW+KrMwRKXGS25OsbhA+MuDALFGSC7LM5muKiWU9MDCQ1DSYucPrdNz1w+72XbXhCJr7j3ZLdrWdJa95HApiv7KzoAuaYTQCURERZADQAQtIMVCIEKs/2JdmMuYD3E5lCGiKmQzF0884YXephXYnDSzEe0FTPLJg5G7lwsZPd34LhkWsTEWjyg3fB245nxLailyRSonHv0nravQwZmRNBvmFu+kxFN3bMqGZZ204294rRO8e3IjZV99mNnFbbU6LjGf7GqCOFrZRIphCIj23E+QOMvbs5FDzeagdoJmJrQL0ITYKuUFuzHVKDbwFZlWy0dYMced4G4wJ1OJ5Q0oJwGGI0qO6EagqzBJ5xxK9ddV7WDKPISxc7DbS7Qqtoch+MrwkMk68ExvQ+mmpHUbjW+bbS+G2EIWZFXutGnBpx2kKcgHfPDtXZJDV5yQrnJeOCXdfE3JMTQOWMN2Y1MyveWNbtxChV2dKWcn1r0+VezxVhtiVle4kzIn/jF/tduFIhhddn5rm0eP5ghQI5YGgZzBefqHl8vtENaI5myJIiUAq5kK+/zhwLryIie2Xw88M6rcQycyjqulxXnuqFBb2RCpa62J4cBTMkXjVPXnogl63jhWpEjor3ilU5n4MBdsXsMSuiU9cqUslWSyHLlYFu2XK8XzEhO+NhbDiaVaHMeL87xEyWkLXf2wIzB8k1WCWl1lU16qXXTdRzWpa/og/XK2/H1DpIpQvmN+LF6P8jxMfU/Uys4k3OIyTlCoRqmlcyklVNtE9Bsud+wXUUOHT/bBvhh6Ie+J4l2Y9YIKvHBVwgfoetE4sIkP/AOxWaCZD1v/DqcL5ZsxyACpuVnLz30eQuKUNemXXhMiy9zlqCPzBkERl+JSzkiNokwzOWQjkIAGBO11vbDvO33+utNp7vr5vSSHARu98hrnneHtoTbbXhQd7PSwJ6y//hbiCZHvRq5rMSgsWl4NcrpBUriy8/rj0nvHq7Acpj+xx9xbZ2ftVt+gjs5PfG8RaIJlyNej5jW3l67upyAdPveNCqdiktlTb5VXfaJJC+Jm4uWarKw8yUYoZgxLzER4Pgd4hglKJrwNsUPH8/bpTrK6d4eBOtO6WTBW908FkwemOoGcIGtI1BCzdL50aO1UkhaQ2mNCxv7pqWqFrQWMusUckrf7oijFpiVQWb1nvdaxvhR7Vsm85V5ZyF9ZIzUhXkWF0pQeJImh95IBIbzio3Dmpy0RVkXJ0ApIpN9A1FiuMH+6fDnvl13JmHIyhWkyJDjx9oR2bu9qay97fU/NSZrP3g9ec0tUu6ngynjbRmnos4eiZhDXONYZLxwB4Wye6DOUfqGPXDTuww9/Vdr+iGy4Pcr7CdODDeewwTjYctjGCetHl1xAbnIcljx9erccmxyelG/Ah7/8UxKsEx7BtQ3qiUo/QuPLHsrHYIHtuDo3AkcrewqkQj93xjhZ3IqLxQSD2/3EWlLGTXGWkYBs2yoIX8owfBgtvK9SKe68r73RGvTeSY0r9a4n3V+6WTt/8D + + + 7VZLbtswEN0X6B0I7iPZ6aYwpASwHbcB+jEs18mWlSYWEYoUyFFtn62LHqlX6EiWnNiSUSQNUjToTuQM5735QPN+fv8RnK8zxb6BddLokPe9HmegY5NIvQx5gTcnb/n52etXwXWm5ilkwMhfu8HayZCniPnA91erlbd64xm79E97vb5//fFDFJOvOJHaodAxcFa9/SQyCPlEFaDxPazF0ujasmgInBIBgmMsGBZSJWBnsJQOrUAyu8pCNiIT4UZBhw+r7+abnLB4/eIu3ligYMR+gJVDEylKAZA/LrkdBqFMrcnB4iYCRCrhO2uK3N1z2JLv8mJD4SD5TDUYw40oFE6MRr73tB3fHdg7w7PmHPI5KLDy1ruSekThrVHOW0hXCHWhqA0avaGIb0dGGcvZQlCnQn6VSqQO+k8ANRPJJULmXWjxVUENGaUiMasd3NwWT4y2BRhDjukOpd+GCPzfFDeICCRGY7urXk5c48Hq3LZT2EnOGCSCtV8Xm260wD8yPw8csv+T9VIn68tlyS+K6aDKYkyFBvXX5mxqZSbsZiKVao3cs2Xdik8Io5T2wS7+3kYYKeFcY+INdnUb8jZKldsj92LHNPoHuT9zw+hDxkNjaVe+1IbV2f0TLWv9Ow4kReDfEzZ3t5WocaWomYHaE0+VuaxJy4PVvXlgz/ifLDsqzVGmVXmO6bytSPSPqMRtR0plefYL + + + 5VjNbtpAEL5X6jus9kxsftskwokCKSlSUqJAaK5bMzGrLLtodwlw66Fv0afouYe+UfsKHRs7JAYSQVocKRcLdmd3vplvPDOePz9/VQ8nA0FuQRuupEcLTp4SkL7qcRl4dGSvd3bp4cHbN9Wrgej0YQAE5aXZnxju0b61w33XHY/HzrjkKB24xXy+4F6dnbZ9lGU7XBrLpA+URGc/sQF4tCFGIO1HmLBAyXinmwAoIgBUR0i1NuKiB/oCAm6sZha3TbSDewimbacClsiQeK0zHaIuGp+Y33fMLCOIft9GAslN7T6ApZsZd6cDtZxrNQRtp22wFl14otVoaO4JzMAvkyI1ZqDXQh8cCQtaojW30OBC5HCD+zWlET19cNWiPpPaX6qOJP892gEBmt84n7msK2m1Esa5bDoXrNfRAF0O4w8C6ZHWOeUS6kooTUmXIYNIVb6cI8mDEjcNzX0CW7WNyn2r9HLQXW5GDMlhFhJBcm/NowgyJBNdhO6KYS6DsVxN1V3Bw5pknWs+YHoaErUNcmYeSEhpqNDkmI82BArIZTNH9oY2R0wY1t6lxKgRyF0GBM3ZqWuOT85CMxB3ZmSdiOmw34GJzZ0xfQO6oXQc1FugDuO1aWHghPrvSPv99ce/Z6YumDF3nMTejhaRFM2CzPx/DNdsJGwYto9mtc3Ni9yafXwVirmmr+QLiK9v3zN48+tCGSzO1oYFftskZJGGdao2lks5Unj/DktjcdEBz1dYY/5NqhiXC6isEhbj0l6muT5i42Gid05VwH0mWoiA4VHvSPZeZ1wUkaV8SNS2wqK0i9rKYSBWKi8+LFr6dURFhk3bY7UzRcf2uXiqKdvctLAmvoSuZ02Two/YtEWzD9ulDYBSFpuADD+FwODPTflbp6twztTIQOsWso/SUv4ctA9rc7uWucfcsC8CXmvVrFSwnYomDbvbTYlJLvwv79QC8NS0qOrem1nNV6N5lQnnVRcgHszFom3MAIsSJPb16uQxm/rM6zV9Tr5Br6wEGXlm1fRuNvpzV8z+oqPRvPDgLw== + + + xVfNctowEL53pu/g8bUT20CmQzI4GYMhyQwhAfN7FLawXYTFyHINz9ZDH6mvUFn+CSR2DA2kOnhY9tN+u6uVtPrz63fjdrNCwk9IfBd7qliRFFGAnokt17NVMaCLi7p4e/P1S2O6QkMHrqDA8J5/vfFdVXQoXV/LchiGUliTMLHlqqJU5Olj1zAZFly4nk+BZ0JR4HN7YAVVsYMC6NF7uAE29hLNOHWgyhxgdILQaAYusiAZQNv1KQGUqX2uYTrmjEG3COZghOS/4XbNuMRkxos9HVAgMO+vKQeklgwHQir+W3AZB2N5JngNCd0akFKWwjuCg7W/A4idz0MJTeBD64nl4Jm4K0C2HRchcW/qW/v+K32ueSGVVXEIESTuUpq4Xgt7lGDkS6MHaQCsKC9dsMUBbSO2IB6V2oRg8mBGazQGbM1Usb9Uqk0tGfos+uLo044+saKptbSdobd1W9M22qV2yKgMTU3rTWps3qDeZ/KizuSpnMnzSD+qlVvSR007xU8VJo9/sPnVVnsPxeXepBfpr7QU378rsqdcLSN7eiqXxqPNUvyw2k/kXX0XR/zfCudn8Rfo5yyvPeN7KitK5P8wfNe/OJ9jOSzSR/Hro3pmb7Lh+Tsg3rJRmV1m9i7DyH4JviT+2F+2fIk9ji8bZfEfy89HbO8Y/rPEP+f1/HQI//vxx+sd2+vdp/Xwun538e/Hn+zHZy2xF49T1z8fcf2Oa9F+Mx8L9nOBfxw/tYr2T7yf+fkUnxcztoA929nnj+T4vKks+in+sPPiQ+efqoqCfJr7oOvaDh27fgBQehvoBIT8RkovgyEJ4GkI94mawFy2MMIkY5o4Lj0RVX5sdwRYLvvBO4GM1sDItc6d0iYmrCnJODsA+TmhNuSSe79hMFaTYpLfEETNUIoQEvq4QTqiIchzK5+2IRf0OEc2QjpcgADRDnPsMxqhT6xDlt8HCldS2wNzBBNKwwEWDs+wwVK2mECHa+pkLJX/XW0DjClz8CxF9iaSV/14Q955Fbz8y88BP3oRDCDae3lwNfP2LUJIAjp8W4kfyQ3LSqGTPDNF76P4cSUXvK74VP4iu/kL + + + 7VxRc+I2EH7vTP+Dx0/tzJ0hpu2kCdxNIZe7zFwuTCC5m77psA40ERIjyQH61/rQn9S/0LWxjQ0mFygWjtFMyIAta1f77a7W0mr//fuf5tvZmFqPWEjCWcs+ceq2hdmAe4QNW7avvr0+td+++fGH5pcx7Y/wGFvQnsmzmSQte6TU5KxWm06nzrThcDGsufX6Se3L9cfeANqi14RJhdgA21b47Cc0xi37kvqYqQ94hoacRXfuYwZcYADIWVaz7RPqYXGLh0QqgRTcluEduAfM9NSc4pw2VnStP58ALTt6YtnfBVLIAu7PVNgg7qk3wljZuw0uoQFUuoJPsFDzHlYKRPhecH8iUw0WzOe1stpIYu8GZHCBvyGfqkvOlJ15dL1/uXI/t3sr/t2y+5hiQR6cz4R1oHvBqXRukXel8Ni5kziifEEk+kqx10UEWLDuESAGuCEqAcnaKku17/DU7AHRgeIin9kAqLiF9Y6CMjC1AC+XWc4VMBy1y+Mmn1qztkHsW2LTFWSMxPySUKoDm3sifUSj0Tq9MYx+BE9dcw8nuHzirABYFpR7CqklOqlrLRtQAFvCfTLGXTJ4wCLGZK076LAzAuNL+smYX4ciKeNbdqwB4VUwhQyFNho8BHgwb0dLXZNSpBg5g9WsV9dIwAAvucAdTrn4rd7FYpAjzeKVLBByyEOiYJ9HROXLbmtSd1fOJr1xOohi5iHRI38tldv9vf7Karj1Mim4fqeDvGA+/sk9b5y75+7PJVaKwlHJQnKN5EMfz1Sbzw6GjqY5OoYCpEG+EkrUPMECkKFoAuwcAI8/hODTtq8UxHL79Pww4lTX4dfKOf3Y412N0RCvqdGLAGbBetWAWZmNG2Wajd1f3FdW/K9E06ITvzXo98B9gZicIAFcmMBck+GHgq6a3ScTaZsLD4uX6ZIj3quGTVdgCV9zDXx/uDgRGWM5pUTnmvsSX/Cp8WzbRjSB4G4eIajRgVBAyCBUqrknMBoz9ez6OkCYCSztu4mJKkto2RpgMXZdZbvWMjVU0rKPe+lXi95Uc+X3uBVHw4xVTbUJR9UZ4UfBWWB9J+7stJDNAy2mXc29gzRGd5PCENJgQ8eAT7xpUThOy+0RA1iJlq4SeMy6VflWfrPgmGXfktnOMkgw1lNC61mFx9jPDsECVVgwpMgjLgSi7ySzFRM0RDQqCZjJ0NlGqw6QPq9lm/hKXgAbgcPrjYzXK6URpVanovTmxH5OX1n1xd/+jScD7ZOHDXoTwj6iOfcPkFK8kn+4b1PZnIIP6CBQ0Es+8OXxDTsMk45v2CHahxYCfCGDxT6jO5nd+BB3pdI6NXukP6+Yh2eJQ/q1RGm2RR6vquYu75aaVZS1FRLKGwD1AZh1kAbFbV+lB8EJinCuKSYP5plRjQFuJ+CSFb4N4B3thPxkGGWUbesFgs3n6wteFjFrbM/FKDmOXD+Hj5bjyHGRincsCKIWyv+BDEcUPssSFX3h7+mgepbecylpPdul/RWt4MXw9AKehs3ySppmfKI4ll/RJ4tNVsP/daINcKIN40QzkteVfniwQh4G9EMmK1dt4kxt9Jt5s5QI6UwCrCY+epNqteQzVTOuySIVVonSBFfB+U3VhysQYLGAaU5JOw7ItKFl/OEe0Cr8wIHeaPDlgbb2prFSo7dZS1UKXl4NqwTLoErwLaaZasThbZDKegsreinaXM42rx5mIvDdquBuYCVdI3nRcYpKVPf3GZSfKOCZZgMA2iivEKRN5ZvDNgkEq8Wfw0fDgtFv/gM= + + + 7Vtfbxo5EH8/qd9htU+NlO6S5B5OCbRKoEkjXQIKNO2ry05hFWOvbG8I771PcfdN7uG+0d1XuNk/wAJLAinrRWAhJLDHY8/8xuPx2P7v73+qH54G1HoEIX3OavaRU7EtYF3u+axXs0P1/d1v9of3b36pfh3QTh8GYCE9k6dP0q/ZfaWCU9cdDofO8MThouceVypH7teb39tdpCXvfCYVYV2wrbjtLRlAzb6kITD1CZ5Ij7O05n48gGMcAHZnWdWL0KceiDvo+VIJorBaxjVYh4NpqxGFHBorLeuMAuzLTltM+TWIIhaO/lTFBGNO7T6Asl8n3KQP7KUleABCjdqgFKrwSvAwkBmCZPB5VNYFkeA1UQcN+E5Cqi45U/ZMU2zcBgpdxYWcq0j4RkKPKayPFBXLVKKIDpYK/8H54rM68hWcSueOc3VHvJTOttz5ztz83qruEhHWlPOGiAcQl1xAnVMuDlvEi8zu7a9n8efg8JwqEAxhfYRLn9JDbOl3L7hAGAtVzOdrB/XSAPmgeHCO9ao0HV0JP7htXw9ID4oWORYUyzw+rJMgmktR5/pFPhcCR9CHR8FZgw9ZvvBzPPJ1MEdkjf8vmQ/Eu1YwcD4y8g19S2xnn/xen+IXob8n6LiwpQhhUSk/39+qPVXdF0R/wS7ufRkSdHpETc0jU4b6n9pBMzYDeREqFblq3ZaAboGSAP+8as6/LGg3ki4RbjzBFzghr3ofV44Ji5m1o06JlOMqezzN4tKanXBOx/7KdTPHztx82XYMm2VGuEmAGihh5GF2GqiOIEwGRKDY0SKqw5EmQqe6dtoDjDP62OqGezBxbrecleLctMz5WNG7Zkg3PJTQxK1CrhltHhdn0qFBaDWEWgIk/tSKT+Q/DT4r4jPZ4JzgBufkQEdAs6Xhe0HhwdRnOIkyWkTssw6icZSvgs+BXgWM47pmAAy83du3TOVu+ayAuHin4+HrLq4uCzmno7PKGX4PDq/oKOh34EkdHesIlZNUU6LwOBnQ8GVAyShOSk4zATiezeYcEo4p+3//+qOIjIbJoGQnqHYvpDNl9rI5laL0zBbCqL8E9acbEv3KX3DrM16/RGh+GEdbtNF1eK9HIaFo7pffzbGubcBgT93wtqJRmlc2qWit27gE9h3OpxWbkX4+njRArQFUkYnp5+JOA9IaIBnvvG5oacxrDfPS7QOWBD0GszUw07/ALt04GNzWwE3HAUSdcgnm8GGza+z2A7OT86V4P5cBxdxr2WTosIdR6YItmTs4q9vS7PFv5rR34Sh4f45/f/xpTiWyBJtehUu/f4RWFWnI03wNJ+21BPlnHw7puAw5Edb44ZUgmnv8dVJpgejm3MYuZJdZnmVqFTsbKOzuZFwqqZmJW4PP0glo0joTmjyCKZ+qm3nAPC2NA0UZPV6+AzrzSDquxghpkcJKA6hnX4NmX7+2eBAG9s88KEbNLB1orJ1lz7ljmons84/B46bxA/L3/wM= + + + 7V3NbuM2EL4X6DsIOu0CjuykBbZN7F34Z7MxkGSNyJtd9MbIjE2EFg2SjuNbD/sIbS/tm/TQN2pfoRT1Y8uWE8cRKa0s5NcSTXLm+zgzHNLUf3//U3/3MMbGPaQMEbdhHlo104CuQwbIHTbMKb89+Ml89/b77+pfxrg/gmNoiPIuO35gqGGOOJ8cV6uz2cya/WAROqwe1WqH1S8X57YjyoID5DIOXAeahnzvJRjDhnmKp9DlZ/ABDIkb3LkOO3AkOiCaM4x6a4rwANIrOESMU8DFbSbviHuiMzafY5hQxgiu9ecT0ZYZvGNRXwdwYIjeH3NZIKzJHkHIzd2Ei9oQrfQomUDK5zbkXKjwAyXTCVsq4Hc+qZTRAgwOPgodXAB6B+kpobBNMKFm7O3rbbCV+4lNGOHrhtmHGFJ0Z31Gbpu4nBLMrGvEpgC/xwIKl1st4Nz5TRvXQKAlYKn9WDHCX6ZRXe1S9Yk+1W3RqMMJTe6sB1ZYwgh64QOY1NkrQvgVGATlknqT3Fq9ukH1z8SnA2/BFPNT0Z9KDwy8ofLq4PAk/H5daWIOqSvoeA9PEcZrAD6uDB8LmwO+0MnStYZpc4om1wjOuhyOPa0A5EKqXw86iLnA2RLDYojciJIHRxWjVjHkn/QZuSMIVotwTsZNjIaufkB6FI0Bne/AuRcNwLUaRZ3tkbC2UY0xe9vGgLHwlhm2Jq8KtU4w4pE6pSQ7epxV5QdqXpZUMzziH+S0CBVeSL9Nt8cCtJF41wUZwGgQXRI3QVWZmnN1bApUXxg+9Slw2QRQIa83UCorcUNlyU9pMtWeLbTeu+BGhGZS2WdoOBK2cMQjxvXpNFmZL2xv25aUO4Y+uJG+wetbpi6g0nQcjxoRH2w4JPBT14ZjdEPw4GeNxAit0C9ddwAfFmFlxvhYfhE4yDaIXB24F2TK4Mf7wP+plD9qSb8CPo8Qh334wBN5GZD3jOjQQsiCUh1xdfSQ62arlQ94PhlJrXQd4mqdEofuxWs9Mlj/fv0zHef1qes10JqK2YIrm+kgNsFgLpMRCxcm287CRLYxYdDvnn7UY1hXIg5kh/qvf6SG+rkXo8RD8w4Fs+4YDBe4nwLMsohdokntObzltiP6jPeQAy9EKUXa/ZYlB648HZQkyJwEv2ed3TpHjJcMyI4BSTGHPgZkGgn0KGTi382BnzJjl2XUq03q+OjeC5GX6JylvBvs2uFRxV/meFU7OToRP681WTpheTqiTIfMXF85kb3bfl7yjfs8jwi3mMzietBPDUEJDCbixYalAjVippl296tUkm5PEC+vIzdaG5YvT2oah/JueYX0xu9fX1Wk+Pd2SaE55eQMDfKWjykpryAxWFJeUj7TWYdiD7wsW+l284HJioktYdkSFrmnJXFFqlA7Wp5eMiEEi64OyKwNJt4+1FQp1EccQwWbobLnj7+ueUnoGOCSRus0srpsca3peFtKS2ZtxaxoQT31tfJtMNIes6xsBtvzcaQqxFqqt5CDpmSRpqAwXnXJpcJzSUPa1Z4zMZOPN1BIZilz7ckg5cK/K5M5bolyLqvCHV9lwo3liQOP7/dMUdi8LAIrl9EzaHkayyowzAV1nwp81I7UcrqzPVJ+9ince6IYq2gQlqjlHLWVkEgbcHswKVT8OZYk5Db5hRK5PHm1p6chJV55wmv7qXKZ4sifndyAnjZ7uWc4KoxVHkNSR8yyN0gq3oCiYQNBQbegRHsQ5df6lsNcAxPU6Y8bdg7mZLrrMWS5RujRA81SR0h7yifg4JsT+fWNcVAah0h1BeOevvzjJm+r/7NUGWzCLldRslnl9ThGoo8qFWzs6k7MllnYfICzKYtXpoByDVHqQ6iESGVmoEwD5CqefM6iU3FW8Z+zYFOs/RkbnVzxxcxmJ4pSMZ9KqO+RuAXbZ7TLUsl+SJ8b76Rznpj6PKTo80TFK5lbbwMsMdses4xmJamPrb2Zleh68oN/1kYPDKE8S0tcFsWbFIL3WT2MRdvBYatHohb5tLT4AcCqJF3LxssCi3rq1aVnNi2uynNdmPe8piuIY8+FkrcFP9dLGAGDH2V2hzh3oheW5zrCA7HNZz+/YklFQjkb+yoVtOkhVrJMJP7qI7D85054j816+z8= + + + rVRLbtswEN0X6B0I7iM56aYwpASwU7cF+oPkONkS0tQiTJECOarts3XRI/UKHdOSf5JaNO3GkGeG8968+fz8/iO625SKfQPrpNExvw5GnIHOTC71MuY1fr16ze9uX76Inko1L6AERvHajTdOxrxArMZhuF6vg/WrwNhleDMaXYdPHz+kGcWKK6kdCp0BZ/7tJ1FCzGeqBo3vYCOWRjeeRUvghggQHGPRpJYqB5vAUjq0AsntvId8RCbFrYKeGNbY5tuKsHjz4pjvXqBgxH6MPqDNlBYAyJ9X3AGDUL5YU4HFbQqIJOFba+rKnQTsyfdFsYlwkH8mDRJT6zyBDNNCVOB/RvwsRxfIXfh7cVj7P+ZzUGDlKniUemo0WqNcsJCuFuqNon5oDCYiW02NMpazhaCWxfyxkEitDC+phH/gEqUElqGx/SR3nWojWIO+714fycQYTETexPWx6UeLwgHd/7I59CGzibE0Sp2e/L7OvbwpCjyWe2Kjvot8ZmzZltZJQmmmBQ3x4fXZGE+VcK518VZIbz2kbng/c4cvpW5E7anrP/akM10XKxWFJ4t9tPqldrulTkCdHQ/vJj26EawZsuHhe3gf3JtsRSyCmTJiR4fcuVnzfxlckmeQrZdo6NbtD2U4cCn9U39db38B + + + 7VzRcuI2FH3vTP/B46fNDGsSstlpE9gdEpJNZpKGCSTdV61RQBNheWQRYJ/2YfcHOm1f2j/pQ/+o/YVe2djYxoQ0YMuAJ8kEbFm6V+dc6erqWv/+9Xf1/ahPtUfMHcKsmr5n7OoatkzWIVa3pg/E/esf9Pfvvv+u+rFP2z3cxxqUt5zDkUNqek8I+7BcHg6HxnDfYLxbruzu7pU/Xl22TCiLXhPLEcgysa65z/6E+rimn9EBtsQ5HqEusyZ37nwBKiAANKdp1eMBoR3Mb3CXOIIjAbcd9w7cA2FaYkxxQhltcq09tqEtffLEtL4GEkgD6Q+FW8CvqdXDWOgvUy5oA1ppcmZjLsYtLAR04QfOBrYTKuAJn1RKO0YO7lxDH1wh/oD5GeP4hFHG9cjjs204sfuJTWj+95rexhRz8mD8TKwTZgnOqGPcoM6FwH3j1sENfI8GVDSIgz5R3GkiYkHH3CFADbBD1AE0y3GRygtkqragUVMwniysBMsvoZ1SIIQlPAAThWVMgMCTcknSJLdWLc/p+v+JT5OTPuLjM0JpFtjcXkh4mqiL7wgeTrQ2JFzHjAOj61ZHinLNCVx3bSCA65xx8hnqQXT1mN0RZ4DAeJCYQhe6VtNDQrfRp5bgxPaFv8T3ok5J1yrAWz/wbki3V6C3rugdMyFYXxF8VzCZZIXddIYwmqgj/ZkAm92SBr8HFfinABwXDgmN5JEUFzoF8+zB+EDHdq+NR6J0YTIrU3fDs6vjAVDRcv0O8DZsisauKxbAJGWb7ZZl3Buvxkn1/3z9QwH6YI8nlDnYU17FCIod+KjEu4x2/5/f1HR/k1he5xtXbODg60cVxpe5yeUagwYbKjCFCAalYDjcngFQOfrba3dfVdsdfLJwpwBAGQDBwKcMihy5AvlAQ7oCytBoc2Q5NuKwYJFLpKhTXroiVot8xq8qb48qb3emk9VeRR1qX35fzeQEk+GljCl46PiLtgZHw4s+rGIXBR+XUejUkkFObzF/DjJQKcd0/uWDVNp7bkvZLUVlQK5lgqhU1cScZ/orJGjM4n4t6J8G/d2QZsH//PP/t4L/afBfCndJHFGQf5nY4ZqZVkF+j/xKw7HBuiNxWyQt905l5NNfdWavr5ooYxb6zvgvKhXOhtJzVFbD6WxUjs7Sm27DSdpurgWHJqHNt90ZZdWwOOR1elkRni9UiuXflSbpA68OjuTPm51SC3cZvr340Tg4AyenlHFWQ+G8ubFbl01StuyJUzfNGGf27VFAgxg9Vm1FYdUNr4iKcHWqI0VEx7zM66VE2DOBNzeZCuHFdzAuVo7eHMHfzvZsnK9q9V+M5i7nla7A5/I7Ozo3oIz097wuCIJAKpj95RcF+MuB7Z6yYbQfsqcCUIAiG754lrjqoT1M85kaoI6THqGd4NHIOyonFDmOf0v3X5Fwr9Z0r8qJzC98PyeBUeVknTYLkznUK+B5JjwqfIBi1syKuvEm6qZ8x8EfnjeMyrFNqHUZ/UP1umJvGiypLjSTI1EFPM+HJ8XgaHJMtAAnF+Akzz6hPMo652zYRHwmALYUYsnNbiR4qQ58i+Fzp/oCv3UyPv/rtY1lCnOBWx79QAVu+waDVacCcwsJ8ohfFCBY6uSJVWLWsikRwdvAqUQLwrpmDBN8IKanlMzN2bNH3jbKvj1yEznk/tlT7/avEsToS/3yMhSvc4xO83igyFrSN4WhRiF5i0Mnljx0YqNSdmb3phWl6kSzVPZ3m5ibCWa9Un39U6G2eCveez8wNzvyKSidk1y0ha+npqCpojST7Ew5rLFCY56jcCnkzmebIK6uL2Iqx7MPUyPDE5nUW9wZsazjLe6JfI8UWUXUNl7xfMCc8rifqGSxkZQbfBZZXxEcnUFtZjkfO2q4Wg4deDy96mYTOvKw4xtMI4cqu7dhDT9bQpuEJp4MqTWY+QBSyP8DNwo1WTzpy5znCx00V163k+adAu2WCbogfoa0F1CS506/+w8= + + + 7Vltb9owEP4+af8h8qdNapOWbVLVkVYByoZW+kJY2330kmuwMDGyLwX61/ZhP2l/YU4IbyFs6xu0U0Cycufz+e6e6C72/frxs3w47HHjBqRiIrTJrrlDDAg94bMwsEmE19t75PDg9avyVY+3O9ADQ8uHan+omE06iP19yxoMBubgnSlkYJV2dnatq+ax62lZus1ChTT0gBjJ2hPaA5vUeQQhfoYhDUSYzlxMDChpA/R2hlGuRIz7IFsQMIWSop5WyYye08a4OOKQI2OkvPaor/ci6YqZvhpFamjr9zERmGhyOwBI7ufcdA+9y5kUfZA4cgFRh/CTFFFfzQmMjc+TMipUgX+qY1CDaxpxrIsQycLSZf0qM5+r3pjQNmkDB8m65iULq1q9FFyZF0xFlB9xDUOIZoV63argQhLjgmqk9BpJQ9WnUs8Sw8oaZP3ForKrt/RQyHxTY5gmEkZqwxi6PFNbQmCL+qlcnjX5u5WtFUG/IzLrgONrw3T7nGHMoCwEOUEm4SLIS+ZjZ4rO3uNjMn4hXKQ4g2aOZ5Nc+wo0nhMaZkPpnIrMo3z9wDhcBybU6fgG6ozzNeF0zIIOLiezQNsW+o0eDWAK03m3VHICZ/yrfYtHEQ9fEsZ5PFScqjP3qx3VtPzQeT/PdG6bt01rT49nln66tQq6oAv6gfTAtjeVRXGaP4/pSEQbqGkvNnVW4qEaFKmzoAu6SJ2b/QCdO7LGWXSrSWUXZF1ISI62W2fUjy843nz4mPzfLqXZB0akTb+7KFm/gdBbv/eXHYbQhiFuOZ6nQ3AiZI/y3HLyiH6aYxHwn1/R/LOXVU6Vyt5BJMzs2SpRvnbv9CvLaV8TFSF9kE/mXar+hfl31+yUVZ/oqXYY96fLF24HF+JH8gKIs9Dd7240G/A0tDme/dfIzFeMAqR/Bilb25oiUnB6k2arp0z40502X+I+i3U4PKlwT+X50pdapn1QtuaaGDNu0sBQcQOjBXyhUZJMt6i/LGGkx7/Vd+36WFgTXldbYWoN8SN5yAW9jstKM5PYrGrojLtB1op2ULI0aSEd/AY= + + + 7VrdTtswFL6ftHeIcgUSpNBJ0wQtCFp+JvFTtR1waxLTWjh2ZLtre7eL7RF2tb3JLvZG2yvsxEnaNA1ssCQtAVWVWvvYx+d8X3xOjv37x8/a7silxkcsJOGsbm5aG6aBmc0dwnp1c6Bu1t+ZuzuvX9WuXNrtYxcbIM/k1kiSutlXytuqVIbDoTV8Y3HRq1Q3NjYrV6cnHRtk0TphUiFmY9PQY8+Qi+vmIR1gpo7xCPU4C3suogVUYQGgzjBq+wNCHSzauEekEkhBt9Q90AeL6agxxSkyRtjWHXugywxHTOdrIoUMWP2W0gLRTJ0+xsp8nHETHaClJbiHhRp3sFLgwiPBB56MCQSLT5My9pHEzjn44LJPFO7ikTJnBsLQDqbYVlzIREcw6wWRAwTmIIUjQSPWVje7nNNLwhw+bCDPd5ZpVJIqKuk6apU7lv1A2/ZsG8A/48JF9JBQOmdiYni6pQkhI/oPJsLqBbm1wMwGZ0pwKq3ABwcUeMaU1XE5V30YdcodIOYFAjrWzTPOcJo3/rKc7BGZmwdmavSBupMJZsjboEjKqMs0QiN1K8xOFMXay498apP+CHmQYlbBNGpwSpEHf/a5gIc6/wclc1jChZcNmMnetXZEx17f/7VZXWshxw8oK9XtjW34rq6dItEjbEX/266uFrELtJHzXmHX0htr9Nj/+vwt1ZmPnv2AoesI3GPS61P4TtV1xSAdvP/U96+act/PGpRLiMpKLSK2TLk3x7c4GRfAvQ/vfcACv2jYmkR6FI116jHFTDMzS3bMcv37lxeuZ8j1vYHix8RZArovBbubINPkQxa4I8q2FkL0T18XQIdzeIm6oXw464fiadEViEkPCfB+aoKdj5lZ5kedsQRMZxWUMosNXoaOObg0D6hmNyjrlA8k9uHLFKxZJSWGqSWwhIaigPKp/wLUUm19iYD/As4ygRN/88gSmdi8pYQl5xgUc19OAeh5AJRj9JmDKPPQU3aIcq5G5rW1BVOWtBCZMyY55gIvsCz122mp4WkJ4iIxfkSY8c9bJ94MPRacwabWbThXbeSEctlWDzxKlK8IERbmNNmiFLe0YHjgB7GfPDiqbLAU9dQEhdYW6uELgod+M4jvCYwiqAovNmpCBnvhPod90T3BN6qtq/MZ7+wxw7vouqME8RZmdfJ4qcjjy2d+6FJ4+XnP9s//o2J+ycJ9zi//6WDlVAd4ZqcGORYE7oMt89rAs4EtPJh9u60/8zFj+a8sTS4NPiFk5gJS4kZmrRK7Fzpt1efV0r8T2sZ05u6p7obgOC9hhLHz3vytye1bWIUV1Q+iXMZ8cFoe8yc46M71aifddVlWy0xckLxqG6TV/vXcnT8= + + + 7VjNbtpAEL5X6jus9h6b0B4QwonAJC0qNAlQkh5XZmtWLLtodxx+Xq2HPlJfoYN/wAGjVilt1Mo+LJ6fnflmxh7W8/3rt8blcibJIzdWaOXRc6dCCVeBHgsVejSCL2c1ennx+lXjYSaHEz7jBPWVrS+t8OgEYF533cVi4SzeONqEbrVSOXcfet1BgLrsTCgLTAWcknjvRzbjHr2WEVfwni9ZqFUqGWUAqggA3RHSaEVCjrnp81BYMAxQbGMJyhDMAFaSF+iQlDdczdEXTXfs7LUZMILo6xArZJYGE86BPi+4rQ/0cmv0nBtYDTgApvCd0dHc5hQS8EVapMUsH9+oPOhio3ZPXmiTZLRHh1xyI6bOvVC+VmC0tM6njjOYSwEbBhOKmyuJZVCQcIGbezGGCSUjhtXyaI0Sdx+V+xNYjQH6DUCbYrwjYSOGyWfAM0WS43m0EF8RjmI/DfdIostqnKwaTsfimwsiYPLvF8bXUrI5Ei1t8MU+qNMpAobdg3dgBe34E+wp2+1PuoovmbWZiJLUSszd2U6RP7On7ic8TW1BZP91ZfIPYVmkXy5SU2JsCv8zH/m1kAep+0NtrivCCSTBZ+VrsWAaIjY17sxYyLdd7m5arTbDZnK1P29WvVlam8UPk1u/mbvaV21kL5tv88zmurfuuTVcb128W7slXdIl/Zv0wvNe6hCy6/xdttLRyx5C/tku+iFm3JVdtKRLuuyiJ/6wPohhbxDScHPjmB03HsXYzSimz+WTkU8s7rPxoQZJG2My8DnSMNs6mCKKzW8UH/GzD9ntof/49r7WgJ4LBhCYoaOA4ywdG1IlEy73yIgr3hqPxS5+AA== + + + 7VjdbtowFL6ftHewfN+kZbuoKtIqQLtVa7eWdNBdWomXWBg7sg8F+mq72CPtFXYSAgQIW9d2RZuSC4vz4+Pv/OjYnB/fvjdPJkNJ7rixQiuPHjj7lHAV6kio2KMj+Lp3SE+OX79q3g7lTcKHnKC+skcTKzyaAKRHrjsej53xG0eb2G3s7x+4t5cXQYi6bE8oC0yFnJJ870c25B49kyOu4D2fsFirQtKbA2ggADyOkGZrJGTETZfHwoJhgGKbS1CGYAKYSl6hQwrezTTFs2ixY2mvw4ARRH8EucLcUpBwDvRxzi3OwFOujE65gWnAATCE74wepbakMANfpUVazPLokyqDrjZq1+SVNsmc9ugNl9yIgdMXqq0VGC2t0xN2xOSpxNgrcFosHLS11IaSHsP04B7DlE2ZQSkl7jog9zeImgEeGYI21VCz3Mw1SIFhlq8qqF2tocuiQq8KTfVpTXdLpP8wHf1EAG9pg8WzkZlf+9mWzNp1R3OmR4NUCsh8ZEJxU5h/cd9eotQ+nzurzs6rLucCN30RQbKovMPnr7dZsQfAYFl2Jd56MnZWaXU2tmfDObd4SYAImXz5xGBvlCxF4lFt4GEOw7LwNqygnXaC19di+8oFttJmaFWfgWWHedz1vR7wIrQVnv3XmSkXYZ2kByfJl+ibwufZHT8TciN0f6nNXYg4gc13TozYVHQ+ZDFfdLnrQaPhx/7s63zJVp0tH3LGdba0/LZf+jqnHdSf+G/LTP/+8v7SPcT1ysVf925N13RNP5Eee96uHiHLzn/Bpnq0gyfhP9s6W9nSjuvWWdM1XbfO3f5/uzJiyMy0soM+1wgnN/6snm0kam2a2HRLM80lN59n2mye2eVyZW6ai7ss2tQgRfefTeE6OhysOkefMqbDGGyFlMdh2yx3Ngh2t0yC86359Pj4Jw== + + + 7d3bduI8mgbg81mr7yErp+4pscfuVdWzTEiFBBJMQiokZ2wMYZ+wMZtbm4O5pLmFsWSTEIoEkG3gy7zPQXXrh4AsZFuW9En/+9//8/O/pt3OiWUOhs1+79dp+Efo9MTsVfu1Zq/x63Q8qv+nevpf//7Hf/wsdTvFZ7Nrntjv7w3/NR02f50+j0Yv/2JsMpn8mER/9AcNFgmFwqx0nbur2u8t/2ezNxyVe1Xz9ET87U25a/46/d0Zm71RxpyWG/2e+8qfRQYidgbsrzs5+ZkaNzs1c3BrNprD0aA8sl8eilfs1+zM3I1mHXPNe07c/1acvdjfder+xfvnpcuj8omd+3+NxBsWn3T3bJqjU7mDe/sO+1uMQf/FHIxmd+ZoZBfhxaA/fhkuvcHJ/Lp3naTKQ7OWt8vgtj/u1W7N6ujuufxiin8iodMPH/L3Nw1XXl/7RSeL9K/TotkxB832j4dm76zfGw36neGP+8sf6X61bb9x8b8X42bNvOyWG+Z5x/6ZeqMfInF68qds/4q/Tgvt6EWuoDvSj/zfPv/npvGWTuln+pL0edp+barH9L3LKXU9daZ1G6kz66qhV3OzJ/2qq3YLZ+r4pa1HcrN7PR+pdwvpZC/e1pWkSCfs9KN11datxfv11MR66uuFAf+8/R+Gb3LjJ11X1M4kdT+2j7eT7D7pNw92eaQZP16WtI/XUDykxecl7fItWVdV/Y/4PvXQR73BGetM9MY4btePweujfp31sTw2pcX3Je36NbPiVf3y0EWxZPRyrqcHs0f9YmzX/3RmP+XxVbqhT5MiP5F2Qc8frmTO7PqdOuf5ea0csjy+SOtnL/z8vt130fDr5cWM56d8VOXxSToy4PmdBFwo6XSnod/y6+Fzcsp0Y3Y0x7857eS3MznLTOKP+nlh89HuJKfc66kmv1/cH8fxyqfF/VQcT8OXohHlXbHvn1d3R3F8/qT58RTF+eC1fJzz6dDHE0yan2/yJXNmf15qaGVUneWO43j8TtcnaZWnK7sWDW+Pnt+RuT95v7/x493uov3W3st2jyb/e0jz492qPcnbe+XD5/dA7cnU4POScZ6f3Pb5ceR37+VjPx99+vx25jzfHVN+D9I+sp+vV5tGTn9Ewi6/s0Pn79Dp8UtDnwxW+ktys5L+e4/tPzXfzhjsYfJgsPio22DMGIXqTFUsw/6/g7mb7kbKaRYe/m45799rednlUfhYf67MPXx/hoXV3x3G0v1pne1AvL80eSjxz0sFXz68PKrO/Squ6uc5v/v3VuvLRePcYo3QZW+XQlkrdnN25XxekOUjyoP1JnrB6c8N9PdIMSVdaO5UXzYQn+fUxwDr+8f+8oDKxzmfArE434JsD014uhtI/x9Lv6Tm9qW19Tug8pkkrkv2P4VqcNejsyeetgKpP879KWji/hZc+SzGn4IoH3F/DppoHwRTPu74W0FPBnN+zZO1TODloyrR26DqT0dPj9zxyiDKx2nvBY23J4Mpn+XxXJTPJ+WD8+vr8wvX503XZ9zfv7q/o324qX2I54svny/wfPpZ2nk+Rf/GmvR7/wb6x9al3/vH0L+6Nv13/yr650V6bf88xnfey2fd+A7GB937+Vfjgw6ML38N8xO2gPktW8D8qG1gft3XMD9zC5jfuwXMD98a4gu2gPiUbSC+aVuIj9sa4it3Qzg+9/SE7Sn+OtMfEQ7BNhSm68W+NdFj8WRMr41Npmczdjp9FUuqeiLftJsQ/PU0S+TsRzJFpFt2us/TM1O8v2c1UhGezovPC7qdESCnPLpWIZXlx/Oav0joRm7l+JmH9OLzzvrxQUi/syiUV/rFrh/XiVxMr44f7B+54mN5bEq739dIzRIVVU8fuiiWsKh9aR/b+b1o8fwO91MeX6eTeZEfVp98vMLsV7pvN6pHidxEnx24PD5N6+lc4tq+w+371BO/T7E/mKSjR1Ue69JZVdd4+iLoQkqz14aejtv3m27+iI5/+3TPvp4/soR9m/f7afLm7lXXK/zzR0d0vFJp/vsOavx4Hn0pGlHeCm9/RI/i+PxJi+MR54PX8iF8Pm11vsmXTNr+vFT7iI4nsPTTrkWTb+n6WZTG/cmX+xs/3tBWReO291T92jqO/O8nzY93q/Ykf3/5e15vtkin+p+XzOL5yW2fH0V+954efv78lnae744rvwdIx/6eouP0R3Ts55Xu4fN32HS8MtHjq/0l+bKmnw/2mB/rImOwaeTCYNrYbDBmzUN1pjDD4P937qYj8USaqbXnlvv+PeaPl8fSpYhfb7KtPXx/hh9vh7HBZLcppuL9dnmW+Oel9lKfss5Jxuz2ccr3/r3V9OD83GKh2KP3Kcpa/uLK/bwA8yvKg9n3q3Oezgd7v0oxVnz2dYq783miPgZb3xf95cGVj3M+BWJxvgVVPmI8gD9/9s1APn8wfZ7bl9Z0UCE2CfXaLh/1sRpY+UzOnnl6Fkz5iPtT0Jz7W2D1f2n8yffPF/fnoIn2QTDl8zb+pgVTPklVCz5E1G403QZYf0IBXt+c9l7QeHvyiNrf/x/LB+fX5+cXrs+br8+4v39+f0f78Ov2IZ4vvn6+4Gk8n36W1mPo31iXfu/fQP/YJ+lsA/2rn6ZX+lfRP/+WXts/j/GdpfSa8R2MDy7SX4wPOvj7Mb78OcxP2ALmt2wB86O2gfl1X8P8zC1gfu8WMD98a4gv2ALiU7aB+KZtIT5ua4iv3A3h+Nz9hWDn+lWx1Xi+d2YnzYF4x1s8thr654ka8ic3t+Xa5cjs/jjvlSudxfffPZdr/cnb9xUHY9Pfb3O+IG2+jJ7fviX891f8ZBu2IP95Z39JddQfrN+b/KxTHg4XbzlxD078x1+nv5udjhvm/vfXrv/Yn+yTjdW/8+7r4cjvRf1fCv2/4v+cidNuL6H/fLWGp9z4Uc8mxGo845drXR2srl4k0on2JD1zV2tz3q+n2r5mZgtj+/uzIr/ZSKeQ7ntdjWP0cq8nnM+LdQv6xq4zeWfuah9tPRncanVDsVqJj48OvH4U+OpD14n9rqZzLeqXhzVAxOpJTZ7/+KFWT9LTHf57PO660BhfDeYiG2s30oNDr2Y0vrrUE3w1uYvt1uxx68ujng9wNe/d005+tqhP/P3zYFdr95L+YjWp9+vLEeV3/ep7q9enXPNJP2uK69eh87dNOinyu3RSO/ePo8nf5jTP79L5nCv/0fPNI8rfpjTPb+PtevNEdfVXu/3EV2MbBH29UYw/HcZa4ae6n5+f7OpnY6c9GFz+Y9pDaTG/JTbo+f35bns3iPw75S0oVnNc9718nPZ4EKsfO/VFSCjZeFD1f7G6sZ+fH78pVwKsL4GnA67vf6eJ1x/y5y/16yf5+xft9gP19tv3aD8Tf36h/vz4LZ7fF/mn3X/ins9k+6/eEe4/XEK3/3bd70Gv/3wV3fGL9Q49fnTQ1buPYwgvngzpWaXL9EyxZxXOLD5bKaysHe3ns4VK/P2Dt/frGzfs8ls429dT46aiX1S6dv4KnmcTDlQ9lBefd//a0C+Cy3n6xSqk7vj3x4KbXdhIVEL6vY970yTUgp7m0bN7iV5bSmdbg6mu33go75Y10av888LBRP9uk/7DZ8/svMtUPs/01LxvFdLNw8+GC+mxMc/Pdve1t/pyUzr87Mbl9E1pq/rkzBY7gvyuTZ99vfqje305nvyuSa+7Pjmz053r16Hzt0U6drMy+9y5fxxN/rZI2/ldzn/ZPj/Sx5S/DWmeXyfrTvvl0PmRSov2E59NWwv6esNK7Q5j4fhV3c/Pf7EmqZDTHgwu/5p5t+iCjiZzPZ/Lf7m963v+RXk76sNxPYDysdvjPO376kFOfXFWS1Bm8QDPB99Xz9LMh0pA9WUv6QDr+6dp2vWH9vlL/vr5De5flNsP1Ntv36L9TP35hfrz47d4fnfzT7z/xDmf6fZfvSPcf7iEbv/tKpr956vojl+sd+jxo2OJ/uTBnxqCPz0Ff+bM+gjBnwj+DAbdyRM0J6/QnTxEePIW4clz1Ccv0p08SnjyLvXJ075MXmeXr7M5i42yfEeM3oQxVbEMZjfU5m66GeozNkuoMe/H41/w5+RKzTPNuqxZLKLWohtXqNasTIVpg0zVUpReQTYYxb/gz2Q++2WmrXjsmqmRecFg9Xmsbv+HaPLtJdVg1tPwXP7+4CX4kz1OL+Yby3v172fliV2VilZ4MZwwjKQl8y8f/Kk+9K4Mt37vmH/n77vDa36W1C3n91DHVl7u95cL/rTrb23LLTW++P2c+sQpubsW2zn/8sGfSq/2annO/731Z+Dmn3/e7uUvHfzJiuOw9/K3r7eLU59/3h7vJ77lf3H+e8j/4epP0frT81x/5M7f3kXVe/m334NDM7dN2fNX6vqZb2cMllRMyfw79zNHfR5lqvmSlb1+yt+//liRzfs2rf79vHJjnz+9cNx9PTKshbzdv7y1H+Laa+ur/E8T7T7Tssk/ButGnj68NIwN6p7bD57bb6+XD0ybZ+2qFFWVzb+HZuVM+5+rGmN6P5Xx3H7zsf2cfknNWaT6NGFKvdxnbJ6s8UZGtOimn6a9NJtmHxv+t5+JP79Qf378Fs/vi/zT7j9xz2ey/VfvCPcfLqHbf7vu96DXf76K7vjFeoceP0Lw58EH73dFd/IEzckrdCcPEZ68RXjyHPXJi3QnjxKevEt98rQ/k9eHs+acaWbe4FuxTtjyVqQiHY7FGEtWQzEfjse/4M/qdZ4xo1azmKppm4fwmFGpMJarVi32MinIBqP4F/ypmJEvM52oXl4zJWkUDL71MO+yTS6G8BLqtcES1/q55O/hNfhzFuluHsJb/fvk9dCuSlZ4MYSn5c/Skvn3EPxpXV4Zbv3eMf9Oep675n9qWc7voURv8lLlLxn8adffbYfwvvg8tz5xpVaLSdRf2eBPVn/ddgjmi8+bhDvuEJ7zeTLnn1zwJ7NC2w6BfX29XZz64vP2dz/xLf+L899b/g9WfxZDeJ7qj9T5W9l2CO+Lz4vEn97O32ZT8vyVvH7yrcgVRZHNv7ifuVUnGrWvp1dZ2eun/P1rGt5iCO+v+9dQs3+/aHwxhKeOpiGv9y8v7QdNaX45hJe8bvcZS9//4fUl/uGleLJS99x+8Nx+GxYe7EaZadpFqW0xhMeMuinae4y9TqYZz+03H9vPg+nz3K4PI7t9U+/bhZ7Ubngjo1h007NI1H6/Wm343n6m/vxC/fnxWzy/u/kn3n/inM90+6/eEe4/XEK3/3YVzf7zVXTHL9Y79PjRsQR/xhD96T3687LXMwcIAUUIaHDoTqGgOYWF7hQiwlO4CE+hoz6Fke4UUsJTeKlPoSa/fxHd/aOo79+1l/3TgknvZf/PgNP+7P+pFB+6W+6vJ/ZDFO/3nH//9v/car9G5/gE8X7v5e/v/p9f7Nco0s5LYj/E46l/f6VX92sUv4fD7/0PnXTA+3/6WV/W1Z+g9/8MsL7sZf/PwK+f5O9ftNsP1Ntv36P9TPz5hfrz47d4fl/kn3b/iXs+k+2/eke4/3AJ3f7bdb8Hvf7zVXTHL9Y79PgRQkAPPoS/K7pTKGhOYaE7hYjwFC7CU+ioT2GkO4WU8BRe6lOoqe9fRHj/KOr7d+1l/7Rg0nvZ/zPY8vdp/09W6nS33F9P7IfovN/78fi1/+d2+zWK43OI9/vxe/i5/+fn+zU6aef4+H6Ix1H/1tePlf0anfoi+L3/4Vs6yP0/fa4va+pPsPt/Blpf9rD/Z+DXz29w/6LcfqDefvsW7Wfqzy/Unx+/xfO7m3/i/SfO+Uy3/+od4f7DJXT7b1fR7D9fRXf8Yr1Djx8dSwioqv3zJIQIUE8RoMX+C2I/MXYcGLrXXpr3PrptD8JtP8Jtb+rPPnSfPQk/+1Pve/Gn72s0b/Hlg++KjA1mM758cJ3vOMnXSO2Nx3z54L7lLEfn/Xj8GzsePlYYKzYafNhpPGCbKMwoMJZ5KouxHe/Lz3no+32ZFFrLa9iK8tZuFPv1aN7grzfmfHnkgv3K7d2H5SIFZ/k/+d/b69ixqA8OKxRibDi7a238+7+XX3wZSubfw9ixKF9n+V+p5SvZXfFt+cv5nClW5lKq/GWXDy6124uxVlFfpMovmigv6pNYznT38096+eDBZOqWX7Iaikjmfx7NLIY5JZc/ll4+OMnX8NaUfJEv752XzP84dL9Y+dO+vsotXyuXdvLvI2/5l6o/9c252p6X+iNz/la63S2XP95O5vGpLpF/6bHj5eXTPeLtC2Xw+0L2+unl/hXzfhaotU7P6/1Ldux4oheZYm6xhvN60YR90/PafvDcflMbTbv99tw0ePtt8/YPznK8uUrFp+0ffGw/i/aPWE6aL0fOlw+u1d32nX2+M2e7hcTw/tH39jP15xfqz4/f4vndzT/x/hPnfKbbf/WOcP/hErr9t6to9p+vojt+sd6hx4/2N3Z8nON3hw6/3RXd8Gea4ed0w/8JL79AePkL6suP0F3+hfDyO9SXP/Jl+Sl2PSzOWUzj43eZ1xljGjN4/0PPYkq0PWbsOfRosWmi3fd+PP4t3zpJFCpMS940GEtoyubxO1WZF5jWSpf58oqNjGT+fVm+VenpLaaO54uRIFHe0eFMZ+psahh2yTfmbHKlFuxMR+4M1g5/HL8bxgYel1P0tHyrUx8cxijEK81da+Pfzys3OmO98GL8LnJ9O5TMv/zyraJ8+Xipnf/6PMpU8yW7y99rZ9G38TtjMGfqXfdS7nyQW75VMe4X43eivsid7/1odhGQ2Luo7p5/+eVbWbq/GL+bvaoRyfxXZovxOyVn17zdy196+VZmxZN8JdZ80T4/Y3nJ/Bujtjt+p0RbY2uP9xMn//7xkn/Z+uPn+J2H+iN3/pZKvo7fafXUU33n/Msv36p2h9eL66dHon2hZlsXstdPL/evvvezIKxe9bzdv6TbD1p3UrSbUg+yWe9FXg3P7Qev7bdpudpkStpoGiyh5DeP32n5ZNG+X/2uWHb7qbB5ufJN7Tcf28+i/RMZ1kJM6dVeGQsltbrTvuPnO2OP0wu7Pfd6/eh/+5n48wv158dv8fy+yD/t/hP3fCbbf/WOcP/hErr9t+t+D3r956vojl+sd+jxo2OK/Ywh+NNb8KfY/hMRoBg+Dgzdyy/N2x/d5gfh5h/h5jf1xx+6j5+EH/+pd7+Q372I7u5R1Hfv8nv3NLFbXUC77a2kA9n9M/DdDj+m/dn9czW9n90m/dv9c23a/90+V9P+7v65sT61wy/WcZ3/x3A+EK8/5M9f6tdP8vcv2u0H6u2379F+Jv78Qv358Vs8vy/yT7v/xD2fyfZfvSPcf7iEbv/tut+DXv/5KrrjF+sdevwIu38ePAJ3V3QjoGlGoNNdAYDwCgyEV8CgvgIJ3RVgCK/AQ30FJOq7FxHePYr67l1+757m7B4Y2G57y+lAdv/cx26H7+Xv0+6fq+l97Tbp1+6f69NB7Pa5mvZz98/N9enJOqbz/2jOB9r1h/b5S/76+Q3uX5TbD9Tbb9+i/Uz9+YX68+O3eH5380+8/8Q5n+n2X70j3H+4hG7/7Sqa/eer6I5frHfo8aNjiQANJ9V/nqgaQkA9hYDeNhvPI8R/Iv4zGHTnT9Ccv0J3/hDh+VuE589Rn79Id/4o4fm71OdP+7P82eXrbM5ioyxfGLA34SvtWoazPKqTbob6jM0Sasz78fi4fPCVmmeadVmzWEStbbH8nJWpMG2Qqfq0/JzX+I1kPrvItFiOMaoqGaZG5gX39/iCFVcNZj0Nz+XvD56WDxbL4Tkq0whjV4P0h9fPX5rpjb9HdBhJS+bfw/LBD70rw63fVjTJ1LGV//v4tsr/53+/VVou/tOuvzV3+V1xvq7/fbbLPye3fKp8/CdfXtFdeVQsJ+05//zzdi9/+eWDi+OwwZcPLrFJ+bzoOf/i8/Z4P/mQf/3uoPn3Wn9yl+yQ9Ufu/OXLdTtfLZbr95z/zG1T9vyVun7m2xn7qqOY7veridCtbP5llm9fvn7K37/+WJFF/sRy9oVRaL5z/sVysZ7uX97aD3HttbWcn/ioW2daNvnHYPmRfWn6grP9gMf2g+f22+vlA9PmWbsq2U2fzeWtWTnT/ueqxpjeT3nf/sHH9nP6JTVnkerThCn1ct++NCVrvJERLbrpp2kvzabZx4b/7Wfizy/Unx+/xfP7Iv+0+0/c85ls/9U7wv2HS+j23677Pej1n6+iO36x3qHHjxD/efDx+13RnT9Bc/4K3flDhOdvEZ4/R33+It35o4Tn71KfP+3P/PXhrDlnmpk3GBtMJnxIyeBDHPO5mw7HYowlq6GYD8fjX/xn9TrPmFGrWUzVtM1DeMyoVBjLVasWe5kUepL59y/+UzEj75m2LKblLzJMSRoF9/f4QkK9NljiWj+X/D28xn/OIt1F/uaRCLPzO//w+mA626JLLn+Wlsy/h/hP6/LKcOs3SyaZEr3J//3+rfL/xd9vUf6S8Z92/V0M4Ynzdf37t8w/V2q1ZOKdZOM/Wf11MQSTHGqfvX+H/IvPkzn/5OI/mRUKG0xT8iWWGBaK3vMvPm9/95OP+b87dP691R+VHbb+SJ2/lerb+XvnQ/0pNZuS56/k9fMiY191FMX9eiVZuJXNvxWNMmV+lZW9fsrfv6bhtyG8aDzOK3F7vnP+1dE05PX+5aX9oCnND0N42tisM5a+/2OwcejrIbx4slL33H7w3H4bFh7sRplp2kWpbTGEx4y6Kdp7jL1OphnP7Tcf28+D6fPcrg8ju6lc7/ftS5N2wxsZxaKbnkWi9vvVasP39jP15xfqz4/f4vndzT/x/hPnfKbbf/WOcP/hErr9t6to9p+vojt+sd6hx4+OJv4zivhP7/GfYgtQBIEiCDRAdCdR0JzEQncSEeFJXIQn0VGfxEh3EinhSbzUJ1H7M4n9elicO0EpLPM6Y0xjRp3Hf1pMibbHjD2HHi02TbT73o/HxyDQRKHCtORNg7GEpgw29/gq8wLTWuly3f77hvcgAg9BHEpPbzF1PDc2d5uu5QRxeLo/eAoCbYQuN5f3FxRmzVl4+LstmX8PQaCzqWE4Qbee8SBp9a57KXc+yAWBKsVS14esv9Hqqaf6zvmXDwJl6f5Uttavo+Tu2hLlLx8EasWTPmbfvr62xhJBiNJpJ//hpNbiQWC/Je8Xd+Nw0Xv+ZeuPu8LurByaSubfnF+m3+qPRBC0fBCo+D6HCPqXy/8kUV0sM9w6r+xeHzwEgXaH14vrpwiC5+kd/l7k1y163r5Qs60L2eun/P3r/fd3FjHIDeatjX8frmh2U2OeUN2/FGlP9y/p9oPWnRTtptTD21WE/x7xm4cS0y7i94bdiLNr2aw8mTDtTikZTnthSS/yanhuP3htv03L1SZT0kbTYAklv8UiHvlkkWm93xWfFvHwsf0sylsEBfOgcsZCSa3utO+UUqnLnEUzJq/Xj/63n4k/v1B/fvwWz++L/NPuP3HPZ7L9V+8I9x8uodt/u+73oNd/voru+MV6hx4/QhDowQfxd0V3EgXNSSx0JxERnsRFeBId9UmMdCeREp7ES30StT+T2Efz1twJSmGD2Ux0CdV5YKLFWG885kGgfYslr9t9H47HvyDQ4WOFsWKjwZimjDcPKSnMKDCWeSrX+d97DyLwEMTxMim0FpGIMpwgDvnf22sQaCjW9zSExwOMmVp7bkvm30MQaDQvSt3yYRyMB0krVuZSqvxlg0ArXV+H8Fjm8akucT5LB4EOJr4O4bFSqy13PZIMAk0mfR3C49dXuSBEubST/6RWa/EgsN+SnzcJ/y76kn+p+uOORiSvh1PJ/IeiscUQjmQQtHQQqPg+wQn6l8p/Ql0M4bFcuSJTH6SDQOe567frJw+CF+kdjl/k18HbF8rg94Xs9dPD/ev99xeLGIzmxdbGv1drNbupkVQXQ3gi7fH+JRsEOtGLTDEXkbjO76GNH0o88vCeLyJx1+Lnx4Sx9EPJcNoLS6KJrOG5/eC5/aY2mnb77bnJg9LHm4fwnKDKXKXi0yIePrafRXmLoGAeVC6ur3W3fWffr5mzaEZieP/oe/uZ+vML9efHb/H87uafeP+Jcz7T7b96R7j/cAnd/ttVNPvPV9Edv1jv0ONHxxIEqmr/PAlHVQSBeg8CTfVHo34XUaCIAg0G3VkUNGex0J1FRHgWF+FZdNRnMdKdRUp4Fi/1WdS+zGLfZ9q/KNDDpP3bCvSgaU9RoAdPy0eBHk9aLgp0qzRrhZ/qLKY9lALKv3wU6Ka0YvzpfBg34Gn/y186CvSLtChvxyA26LGEko27afF7HFn9+6u+OOVtNcfLUcEi7bzke33yo/4oxYeuW8iivNcfn/g9nOPj7/en/vhy/jr1XeRv0/vF8flzPshHgR5P2kMU6MHTvmwFeuj2A/X22/doPxN/fqH+/Pgtnt8X+afdf+Kez2T7r94R7j9cQrf/dt3vQa//fBXd8Yv1Dj1+hCjQg4/i74ruLAqas1joziIiPIuL8Cw66rMY6c4iJTyLl/osan9mse8z7V8U6EHS/m0FesC01yjQQ6c9RIEeRVo+CnS7dDh+VedR3aXAjkc2CnRTmpXaH4bwnHQQv4dcFOgXaVHebpRVMtdjmjJbDOGJ3+OI6t/a+uKoD8fLUcFOWgiiPnmuP6zUWQzhifJe/37xe7j1ib/fp/rjw/nr1G+Rv431S9Qnn84H6SjQo0h7jQI9dNqXrUAP3X6g3n77Fu1n6s8v1J8fv8Xzu5t/4v0nzvlMt//qHeH+wyV0+29X0ew/X0V3/GK9Q48fHVUUaBJRoN6iQA8aAHqssZ7Ri3jDnX+yNFAc4RepG/F/9zJQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwvV+/Tk/Yv//xHydLfjJj0H8xB6PZnTkaNXuN4eob7syOWR31B6sv2C+Vup2zTnk4XLzl5Lxjds3eSPzHX6dn9v81B6lytd0Y9Me92mW33DDXZWH9V/xk9uev5O7C/qCXj+/65E0nqfLQrOV7v05PV79vwxGv/cyTRfrXadHO7aDZ/vHQ7J31e6NBvzP8cX/5I92vtu03Lv73YtysmUO3QH6c9Tud8oudoctezxyIgjjrm/V6s9q0Xz49+VPujM1fp+EfYf9/ouLsxVz9hfh/kzoSf3++vw5NvOH9c36y1LjZqZmDdHlUfv+vd6NZxxw+m+bo1uyUR81+b/mrf96Wa3+/48Q9wt2P3H3D6eayu+33R/aXrykqu5A+zbMoKPGye7C3ZqM5HA3Em8R73oph+RX+5+JPi8/21/37/wA= + + + 7VjRTtswFH2ftH+I/LRJkAAT0sZaEBQ6KlFgTWG8muSSWnXtynZa+LY97JP2C7txkkJDurFAs4FQVam1r33vOce+tu/P7z8aO9cj7kxAaSZFk6y7a8QBEciQiahJYnO1+pHsbL9907gY8f4ARuCgvdBb15o1ycCY8ZbnTadTd/rBlSryNtbW1r2L7pEfoC1dZUIbKgIgjh17TEfQJG0egzCHcE0jKbKe8zyADQwA3TlOYy9mPATVg4hpo6jBbm17sA+D8c0NhxIbJ2vr34zRF8lG3M63Tw11MPotYw3ymfwBgCHVwM18oJdTJcegzI0PxiCFX5SMx/qOQRp8mZWzRzWEJ8hBl6ohqLZU0JJcqhUfIglnnU/uZlsKQ+Zmw/l84BAYqXShI3WV8JBbOAccuRYm5aaPrYoN3W9MtHBeJbl2e1KaHg0zO+J4RWdeubeGtwDVX0Lfhysac1MB5znTMUUtqbmFe6cNp5bB8GvMguExnbCIYn8bwYKqH2Smpw8jdil5mOm6ckrDZNe92/xsP++fmoB58H0pOSofyukR7p1DoLg3jugl8Pr5KAJfKSdouXzg8oiTNf+fcII7n9Mx/tmTCqNYLvYEbcfAqOjFTtcaYN6czTKXOVucap13kTy72NZFLjI4FU+RogoZ3yVwa5arr6jQY6oQfptxfk+uwuhy1QpGTv6/PFWnoDPOXX+EyWyAo7oyRKLOKR6yTXIsRQlrDe8P4Tzb1WW5f2lrqytjDSd4RStdWUuRyp35fBWt4pmmQOPPGiXr6N3AsAm8KvY0t5A6cjheta12B4Je4mvGno2HLBpw/JpZFu+ruJy4R/p7qKd/dV7Ufuna5fgeEDTZRRU27txG+u0+SvTIbwq1g8QfLKh0q3w4wPyW97wErPCETN8IS0y5qYMXmXBrFyt77y9PrNTBsxPrXn4vVK0a3p3a2W2rrZvppG7WAz5Xn7PdeNbct3Cyo2hxBeqs4ybKYRTuPLnkMdUrpGdhtJaiReXEtBbpLShG2qG2gLn9Cw== + + + 7Vpfb9owEH+ftO8Q5WmT1oS2mzS10KpAuyKNFhXa9dUlV7BqbGQ7pXy2Pewj7SvsyD9CCC1jbQYhQpFIfL5/v/P5Et/vn7/Kx08DZjyCVFTwirlrlUwDeFc4lPcqpqvvd76ax0fv35VvB6zThwEYSM/VwZOiFbOv9fDAtkejkTXat4Ts2Xul0q592/ze7iIt2aFcacK7YBre3AsygIp5xlzg+hyeSE/wYOQmVGAPFUBxhlGuupQ5IK+gR5WWROOw8kZwDJVp6zGDFBojeNYZD1GWGcyY8qsTTQzU/kB7BCGndh9Am6sZF8lAKS0phiD1uA1aowu/SeEOVYzAVz6NyqgSBc4l+qAO98Rl+kxwbc5MneevEuOp7I3wvmJ2gIGkD9YPymvIXgqmrCviNDQMrGsFgeQ6VeSOgdMiFFUwbggihrgRphBJO6mS/YJO5TYK7Woh05WdABVSGKcMg4FrH7xUZYXQqHBAl6ZNurSyvcDtf4lNTTBGhnhTFRKjaQ6f5229ocolGHBET02OPUPoUXhdjHjV1RoXxxwTZFPrYxxHs2ciucaIUuGQGTrTe5pkHai/4mpOej3wb4p5BTxLwoNBfSKlGBXwrCU8uYaliXn+jDKWxW7jWxs412oPMJ/3cVZTOBDtNBeCv8FGsz6r2/N1EURFEK2Sg/IZPMJVcImvIakR9KqQWJEs66Q7eWNoETlXZxc4rRVOk9RZwLQ8TC0JCv9mAFIgqQBm3YAJby+HwAt8tgqfLSg2NzvBbQFAeSoUCrg2q/7eArxaxJmc0Hz4crh/iNfHLM8JTvnkcMD/FHZOe32G1/SUoCPddMf9o7xlJW3yC/4s61gM5y5+M4rX8AsRGkzvKKN6HEVP9Ck6XyE0m/u8v7kLHs+qWh8epeATNzYGpAcbdJYwi5GvfZ4xuh5mgFB2L1T5ByyjRZV1JZhP4JpEPmDdLiTglibkp7A0/Hzo/YrSMObxtd7X440w5sudMNeNYNX40k7Djph8h/cbb/OZ9xMlzNsvtUB2IaXx65U3y6DDa/sMLhblGxQLoXczqfNWRHLrC4X/XOFl8Gl283CbK0kSDcNlO9a2PH3qtSyrScvyFbCZ1mhvGL0yT2EESerZ5IUzkzviiznvuZbcBarEG7Z9xjEpQRPyctl2TuEUNRCghf7yQFrUS+7RRBAkO9G9qV73+tEf + + + 7VvNbts4EL4vsO8g6NQCjuwk2EUR2y1qu2kMxI0RO2mxN1ZmLKI0KZBUbN/3LfZR9tA32n2FjqgfO5Lc5k9SoghxAFn8mRl+M8OZofn/v98771YLalxjIQlnXXPfapkGZjafETbvmp662ntjvnv7+2+dLws6dfACG9CfyaOVJF3TUco9ajaXy6W1PLS4mDcPWq395pfR6cSGvmiPMKkQs7Fp6LGf0AJ3zWPqYaZO8ArNOQtbLiMGDoABIGcYnZ5H6AyLczwnUgmkoFnqFmgDZiZqTXFGHyN8N127QMsMR2zmGyCFDOD+SOkO0UwTB2Nl3k+4mAZQGQvuYqHWE6wULOFHwT1XbnUImM/qZfSQxLMzWIMBvkIeVcecKfPG0PT8MtGeOb0Rfe+aU0yxIN+sz4T1YXrBqbTO0Wyo8MK6kDikPCASfaV4NkYEWDAuESAGuCEqAclmkqXmL3jqTICorbjIZtYHKuphfKCgDEwF4GUyy7kChsN+WdxkU+s0dyz7HbEZC7JAYn1MKC0Cm0siPURDaa3JAqR3YNSIz3CMyyfOcoAloDxRSG3Q2XrXNQGFAVAY8CU7BeuLEElNBtP1HTC9eJYbxtenSMqoyYzw12/BEML59Wrf0/Ek1yVUhQzxCtakPqcUufClxwX4pZQ2PR48U7xSPb7KA6Fw6lCEqkH0M2N/TvBU0n7eU4UFgz3/GhcKkBXtjjVSt0RqBGFEvWEmN8z3QvBlz1OKszxMH6htUaikXhUUHEfKBAKTr4QStY41Kd7DX5g66cfK6dOIexKfQS6c836SDZcVk6/9wF3DNCzhsUTU/PYatXtXORojJL6B2XGBwaNy8WdrjIWd4cJyylkLryLAA7GDpOnAXZ15EMlOBWLSRaIwqfOJY7cJVTQrfBLg+QEKhNVSu58awTumjrbvXI657cnciy9ZoGnKNWi5ml2+ucBfQzbDqzgP+KP8+D/P+muFtSpwBXHoXZ47qD368ygGFhZBVTLoh0B/TtirVrvV3tuHz+vGGM38s+ZXB23/7/B1kSeeH5gPX2ASJ2TuUPjfnHdOhZe9lA+kd1tKT6CCVHhipHnoO/hacObzNVygecoZPufKWSBQ1cz6acBWSAWtBvCZF9OqD+CFWxJ8Qxl1mDg1iA+3wii+LAnOXMLbl4BjqQcSxRlhJTOUYjPJcqyuksDp+uApvgpLHA19XB9ld1VKISpawkmcAZZSki883y1X6KDU+MKEzqq2lr0Eh8UeeG/2mDIEDwqAh+1Wu5Wu9j2evImf1RYu6Ue6dh2ficbQhi03groRr8Devq6CFlrx9PmJy47//f1PCVXHEJc+xUgEG1p1zS8ta4mmFxx1nfDrHH1vhsCbolxJEkfZWNEy6zrWo8qcss3E9bJOc+uS2+atvuAm/Qtu55jeuEinm8E3pHsYoevYfRPrYmgldhfzYde3djCyfbkvmHiLSvgjsltQTrNbOhO7dyhQkp2YaUXZdftR94nVIHl3Ug/V9y3f/gA= + + + 7VdRb9owEH6ftP9g+ZkmwDZpQ6FVgbEhrVtFoOurl1yJhWMj+1Lgt+1hP2l/YUdIoJSgaW3VbVVfrMR39vf5vrN9/vn9R3CySBW7Buuk0W3e8OqcgY5MLPWkzTO8OnrLT45fvgguUzVKIAVG/tq1Fk62eYI4a/n+fD735q88Yyd+s15v+Jdnn8KIfMWR1A6FjoCzfOxnkUKb91UGGj/CQkyMLiwXJYEmESA4xoJOJlUMdggT6dAKJLPLLWQjMiEuFVT4sKJvtJwRFi9GbOfrCRSM2LcwdyhnChMA5Hdb3AaDUM6tmYHFZQiIFMIP1mQzd8NhTb7Ki3WEg/gLxWBoMh0PIcIwETPIm3rtTNgp2L6x0DXK2FoIEwPjwTvvTd9o5DsQ+zzcLXslDVb+t/kIFFg59b5K3aXprVHOu5AuE+q9Irk0eh0RTXMmnF0IUpSke92ssbLhzH8AyKGIBwipN3bQgyuRKexJJ74piM+FpFWX0H2hHOxDBv5vwhCEBBqhsdXxWeVQ6cGKha/zqpKsMUiEC78qNtVogX8gI/4wbf6DHLivIGv4EAVudbnRR1tHxLRF0r+mAX3IqGMsHTSPIce5lalEeQ3OW4NuOsgtxmSjS+PB9uNG+xxvlMhoqsG5LVKN1WuM2grIx5Z/bxKappvQNbAZvXMRdJVwrjTxcsPnvZupC23veAtWaOBXr+v57HiCyTNIxQSeaAadRhGtt2+izK1X2Jgt/vUj8JFTyhu41d9ptGL3fDhVS3CrYg78G3X7tjev2d2qZh+C2nkb5GaKx74HK3LmcAU3HnhFJPl9yj2Kx0F6eUwOvV3WDx//wMsnH5q/lo5/AQ== + + + 7RzbcuI29L0z/QePnzYzxFyy26YJ7A4JEJjG2Syw2d1Hra2AElvyyCJAfq0P/aT+Qo8vGAMmF2JbtKCJDbHlc3Tux0dC//z1d/XTxLaUB8xdwmhNLWslVcHUYCahg5o6EreHx+qnj7/+Uv1uW/0htrEC/al7MnFJTR0K4ZwUi+PxWBsfaYwPipVSqVz8rl/2DOiLDgl1BaIGVhX/2Stk45raskaYijaeoAGj4Z2b2QAqMABApyjVsxGxTMy7eEBcwZGA265/B+7BYHpiauGEPkp4rT91AJcaPjGH10ACKTD6E+F3mEHqDTEW6mbERTgAyzVnDuZi2sNCAAsvOBs5bqxDMPikXsoZcrH5GXigI36PeYtxfM4sxgvXnNiIT1vEstQFUKv43KX7ieiU2f81tY8tzMm99o3Qc0YFZ5arfe1oXWReICrEDcHjpgXyoULrCGy3MRkMgU03CGQIwjpWlWJ2GHuORYTA/BsxxTBCmi1Oj8qegwwAEGE8LK+irBaf4Xy1B0gNwXiySDz1nPVQQuSByr58sEmjSsZaLa5RuldqJnwhxhnjYEc5aWJE8wVHzpAYyIpL65LQe9c3krl6fCgowbEFQnty9PmL75pjF74mOpKnKb8h7giBp0RizoDYtZoaUdrHE+EZ0UxEOhu5uMHGdDfIDbpjM39qczLI5sRBFOzfI1prcDTukQENXcLMBlvIcnFqbjoRoy/UHPB5uPwEIULWsdEgQ2Qh+BDZl/tS5awetsYP78y8U9M7BTfO6uf1WGs0G4N6fVJ/X9+3F7WpfvfnD/2uM7VTBKr3m5PRnf6oF499+CmCnuj9i98A8mPxsTPVnUF6kBvNif6TAeTrYsb8MFIBmvZ4dw1e0DLR/91otVr6OebrUg/v008/YmFkt1KPvBKB/FOdfeqxb1vY/FDRSC/1COD5qUEqoS0GL0iV3piKLcOL3dooFfPg0WR487YU6ulzQAN5rIcXx+/zI+XUcd9ybtuZemgdN/xXQgGkzxF1HcQxFV5SUAiLlUIwe03JMi129Ea2V6CP1YH+n8WuVTol1rvqhgEDuGLcRpYvbx3xAaHvSqfHp3AcZM2FS3wrpElbNvFdbx5oZ6nXiWlaWDL5LWaM3DzMPaboMqv5OVMd13CZZHfZiJpdQNAbIgf7p0qpoBPaI4/4Xbl0Wi4dFGLzcnnPFgdMjMKBzZgYwlM6M+evkm3g5RfoRcRUataC3HtvxrANCYp08w3jdSi04JqvZp8fMF+42mZwZS/Ol4lTpqnKS0A9VkjNPuuWwJwiQR5wttOti4RqkcXkT/LyKp1zZjvBqELvO89KKpCVVFazEknme8VoQhExX7uVpqjP2mjhGpne4jcQ2xGI7Si7ZFInFnYFCEOq5XaZ/dPPKgodg9F9mFkvJmkiipxcpq51mU6ZvjWWz3pvH34uHhnmezBLOA7imW6hhwcMf+2US9qHFihZput9vM82RjC4c2xZ0tQikUm58YHY2CKB7+ozR55tzGJs6fSwfLr4KpQ58VLFn0fBLylESSz5NfAtGlliA8V+3crNLoSjLjKliXa28PkGuniLRoOJ2ayE7B3uDOU2eLNMZRtflTtz5hJteH2tJqMVqv8lyb4+LEv1yGHs/WOj0PsGLY6F4uBNBrhjyHvF2lyp0+HB1kxLZJ5/9JmJph1qQoyAzjtA9zbRm/1MRPIbmaTZl5wKfIkZp8Q30Vx+Q7JU1JQ4p56TlBMWEkiUcW7F66SfRskheW2t7420eqoMmAee1ch31E8Xzvbld6lG90wQ3UtHYhzIp+K8bn2JpPm8PGleXV2yA0QvLJvaZt+TPd1ykvg8Z/jm9VMtqNFHLrZUUIK/8u8SPG0ok+1JUmLKGBTJys5kv4hrk1U/6TuTFbKW9nOpFmO7ysyv+r/acr0dZbrYWti5xr8NprHaQwmF8eJNQNS3zWOsGUV8K50AcAxLOP/yAszPb1gCYlnLJV806zb48ftEjF/eHsh/1N9S6OO/ + + + 7V3bcuJMkr7fiH0Hh6/+P9pjTu7+7enumQALDG6gMWC77TuByiBbSLQQBnw9b7GPsI+wF/tGs6+wdZCEAIEAnaCU2SHakkpZhy+rMuuU9X//87/f/jkdKCfvSB/Jmvr9NHOePj1BaleTZLX3/XRsvPzt8vSf//jP//j2a6C0+2iATnB4dfT36Uj+fto3jOHfU6nJZHI+yZ1rei+VTaczqV+1aquLw4p/k9WRIapddHpCv62LA/T9tKSMkWqU0VTsaar55sFKQBYnAEd3cvKtMJYVCelN1JNHhi4a+PWIvsHvcGJaxkxBLmFOzGft2RDHdWp+MecniIZ4glP/d4MGsDi1+ggZp/tlzo4Dx9LQtSHSjVkLGQYuwhtdGw9HjgAs8W6hTgriCEk/cRkI6EUcK0ZJU42zmqi/Ib2k6ehaUzT9dIEVZtZCCuoamj5aesHiIYVghTgpKrigVYMVTBs/1eW380dZvcbx6JoyOm9qmtEUJTPc6UlqObKUe2zfUmuytGO+G7o8EPVZSVaUlXwufeme3aVAJ9a9e3bvK+c3uiy1xY6CzDyf5xUD6apIvm5qE1bkJw8illgsmhfZsxPrZ7V0gkoCzj5OA469jORe35hHfxlenNHGRm/KSMS1cSnWXIjlej3Wdfw/zSqJujIQe8iO+e4tnS3kTRKeyK9Gforkh70o5K/zDhKKQi+fn+Yv8kDxUU3ITz5a2u8fvUlwTIXaRy11Oau9Vi9qr5XZcy8Qrh+1j0YKc/5IfVD+k5og1H/I2m/BB1MHPwf/yqz23sPpv9X3Yios8wukPELMv53fgQ9Wc8IyVaulf+O01QLhB+STvn8PTy8UJfmIlcJypcK/9ZFfpu6NCv7N+mhk541KlTQi6lIj09mPK80v+f6S8EvncSPw4ymQ8hBofkn6JoTfnYAbmWEvkPKg+aX5p+nPk/IYQHmsLw98392P9XJ5TGvt8i0xGnLt+0y9WUvXhWZ7L86sPF7K09RfDn4kvWW/5VEX7tL3Hy78Upc0vr2YMiL5lVfqNylvH0wpOcsDc1X88vOkUJWCrmt6TFoh0+5iEXjM4e+al3f4/uUS3/9K2fcd8v4+581JuC/0rPC/0vj+4RV/n70uLoSi9/XHOnl/lbfC392s45e+eiP8BOveMz/5Jyt8O3tn3jvfVzUS/6e139v5X/O+g8u13vpi3afTJP3tycb0sfJ8SK2roDT/wv2lze9xSssvgK5A5unC5ncxIfw9wnvkn6UXw2fyo+G9yCv/u8ZPifHbJf5Q8t+h8vxzm/g355/hzfjVy5Y8LMuvM/zm/Jv1sZE3+TEKWv4pMfl9yJH61q2tqc9r0kfD/5LW1R9Wn2n7xNqLJwxgvddfjJ/cs/Ym83Jnhd+uvfDV/oWpFepoEp1OcLHsd79fZkrfL8s8s7Rc4+fyex/leRDpP8zv/crrclTb0374e3HdK/9eTL3Kf6v6vEN5bxV+Ms+vD/n3W99cy9+vvLEPwtQJdA6rokp0xiyCyZMWEvVuvyz3+gqZOlmcosr8dXV2ks19IVNUIaaB5tl1AifUaSMdoSp6R0qEpY2LdzxQBV3slWVHlH/9NU41hKuLzuOkJw0eZt2s8t55Tcu11sWkIheUzqD+/nyjjJ8/0rL0qzmotnty4+Pi8n5Qems9ZvrP2Ye2eFOaPLcKmMd03P0YXnSzd1eVQT8tlfNfqrOrnJTrjqWP2riTu1WrH5VJTSi+PxYztftsXXvGPHA8jm/fdvq2+qiMu7lmH6dTqbzidN2Uhh21We9km0rjra7gv5Wu0m9L5VtFuqlrj+3J+0KY1+lt57GkPj/U093BQ7/T/twUPwrtu4FUuLsv0atZUuj/nTS9L9/T58UL9v62cMeeO65mqXmDv//VL9SLy+8Cvn4N60jJv7fJ//LVF/J/9aMfbpz+rjp6y3yp5nB639LvP8ss/QeQrrVXs5j50m5dXpB0319fmemXoktD9mrayko5KZ0pNouft/mGyMFdNY3T/Ut7J+kl6d/iu+LdL6nebhdwfMp7e/e0Flu/lHrnQaHx14ssfmmlfqxeS/Jrpn+LOBfk37Di3/RNVXy8mjaLzQIuz3qtvG/9aS7Ir/l9bosycpX/9j1OT27Y7uRK1WdbtjK/cX76DL8rdVH+dq8/rt9v0T65y/9C/On24/AWPZa+uOFvyd/u9cf1+73l3xn/j3TzFt1njEfzGyLv3fumJf97159F+fUr/xmSni/3Zv3f+D0p/4fhb/p9Vtqz/uwt/2kzfnXH9gLHT+tj3ZT/5r71Z5u4zPbTrP87ptPHFbv+2P3aV/5ju/bWH7Fde+uP7S9s61o2OrF/nx7TnxrFTL87kLD9W8N/l0Yd4cKo4XB3j9MRtoWvO7lmupNNf6oJ+NngKi3dXBn4ee358TndeM1fVtNT5Vm9+9Qo3Q6fs332LGP9Pb3v5PKfau0aftZ87woXOLwjvlKh/3zTHHYG3Y1xV9tFbOeTuG7fpXLzvdO+uGzfPAwk4WLSuL4y0zJtiY+SZj6z/r58uLmaNF6LH/gZTQv+/+7psfkmPn5WG6/Y9l/ut7QvQuxS22OsrPf1KEtGP6plkAnt6inzrp7gu6tXZKr7Vmfvw+/qNYvK5/Zj5hkR00+9DaXpsUwdp6lQLxpDbHoWA46rjtVsDilNN1N3G1W/zYXLa/ij424qWqbCgqm3+1XH5WWoUs40ddxNNUf8VyoOP+ykM3vgX8q179OTTab+Uvw4PMbyLXg5gYvPy1t+N3b1luUvcd/HjR9cx3ZtHGpylb8dhvoWL3OogMqv0PSW/6y071CfdUWgfxcv0364dx0qCRY7a6iQlt+zqf9N+ykUWdnb/gu8q0e7UFt0tfK+uno7xI2/z09I+PuBoopl0gWl8U4Oo6vHZjNXt5/l0pHEeZRL/vcn4Slb79Ml3I/19n3G9+YWxs+otnIDe+L9at3iuD34zdJGFeFnr09dH6nclR9ZIk2XzGdfFxcWZF/v0vUS3Wd0swM/sgRfrbbSxmfCL5Mn+4puyL6nArt3lF9lVnvzLD+ypF0l4S+uyb439/A2/08svBdTsgQ8Q5b0e68DJ/nv0fBeIdlCDZpfr6B2erdcmEPDey0mZOWz3cKcsPKf7ZL4exvSS8uH4snCeybASu+QyR/B947yl6381u+YvOH8/N656njJ/678AiS3hTzfUh57wz32yD/Io7GotAzRmG+Vdzz7frqsQKLfGN9CPQ3dV67OP1OfAPi53C1oOlZeBc0wtEGT6s4ItszPvQOcP5NVONP5sGxg+rpKMsMAsOISdHHC8mvH19bHKE5ZYLYDNiJiEwoqBRR5s2gODX+/YOzmvMJp6a2As8Ifx3DdlxXJ5r/gEcRFDE43ysE1UhRbEPZzkOJSe1JLhRCxgMUrUJnkCZTZH6GrG7mUqLYuqqOhSNxwECcvns5t4ha4PSOoGGhwXlSJ4LCm2V6t66G+/Me3bUyRKEqXtjFqJVnTxiP08x0LmZtToTDyeG5HGYcDJTTCf0acV0GbqOeVUUvTDSQJaNRFKvEeliyw7QLIJzz/cQrAkn6JpggOAPhY8x0n4NhsUMQhvlnTBfKZcZZp5pCtNFa7xL9gYYx73OquBuC1Io5Gc9PPLEP6FPfkKEurgxuoseeSRZ4apfUAOdRw8FDRrPAGVIjGgxdMxIIAmLaDyautD6HPtDgY1xpomtHHX9U0aT5vVtfUOLoZkbbQXMpTpYszZvXASY+8J6t/ZL6mv+Lrz7MbZTbst9HUOGuIEtHxf6S/ZvHL7J8ReWjF3VtW+LSTK8ijoSLOqMfeeQ8XJy/YvjTjaLL/97/++7AEO3Ira0FEYlHhycoyVYeRZznf7RKdonXHozhyXhmxx/nhUJGRlLj8O3vSUBLWoFLMJRF752WlCMCq2Qq4mDszANtBDmTtoH4AsK0As1SF1X+wz094R3SGb7+VKwGMV9qnKMQ29TTvOi13qpa7Umebrc1Edaz25G4PThg6Mrr9BxxY7oqKMrNjK4nKKI4RigR04RLVeUtity25HbaNOa8hddzqJwv1hHVTD72DGvIEKEx9HnBvBmY9jgoa6GIe4BgcLB04coigVh3cACms8zhqgKBGwcKcyDrOIFtbyZbjZOSzDadDH+TO0BA2cm01A0AO+o5z/P+xLxuIjv+zgYq6pg9EhUJ4iDDlDgImsqqcBo1jMAUQ2w8x82TtmJdnHEVjeCCYlTUDmyvdt1g2bUA189cwxlnjALugsIM6GK93CZ84AnpHWAsPouo5+3LHYLIcSN0jKRVxV92qgWQr6gjQO5K6Z6Fn1kACHmB3vNgdSm2s4TTsovYCKJzWeECEKM6RpYhWiBanQ1ElDonIys2W3FMXV4eaflMD8vq2EBnx90YiZGO5mxdwBhnfko+5EGMksSXI8exhEHHE+kQcZ3r7+Nyeau3idMwcZVL+AbKe1to3X2zHsMMAHW8KxWmtozHHnuGWhx/HvXMKOr1J48coFPlPBsXieLYsI524Kp9ZqgNMDVDEQDERbTiF4BQx4+fwsO2zYXbwY4aDT8NkmZ/j1V6GCeGnuvOb05Li83Rbz/BYz88ZPy2PgA0poIjJTRHz3+WM3tQ4r4zMP2NYiBGH1RH9GEDUIgd2FdABEthVNoFdBRQTxXSyDlb7MLgR+jwK3zYNmBlATrr+Mri77o6Hb/mxl0aq/n7GFw3vxXWM1dugOnvONz6R8O5qkfG7HNwJKRp+2/Tmr5/eb9/yqb/I95pPfgvpecrfyub3uDx0n/wc5CiPQPjNiZVHcPyADofiNzNiHdjwOADJWsZCFrAwnf3T6CPd8dWOK1r2OvFqaePUCuOTAI66utYGA4wBl6dcsTW5jv27mXQD6eTZz6HYlY2ZN8yeJ2NxAzuujg1ZVUllBPyTgH9HK2hTvgUAWvn1cPODMlTztbiTOKCKJ6KKL0ENCHOH8HUfdd94bcQB5Xk9Rm15gABlnlGmQ+UAcQAQb3doJi4PXZHVt1jPQAbptzSZqHTHiohfQhXgGmeSXYCYZ4gLujYZgSbjGuOmSEqHS4y9x44AdY5HjwD+7Rt2gD9J8C+bboB+otB366CBCBzS8IUDjXjO+4GKs8W4HtSZJKHvMnafSAFI7Hy7yxQdhwIAu0JhV2getmvsTOD2yiJwe5UsfozA7dXeFMt2Dfz0pYleELbYuph9svaHgsEBBgdQDARuKGwCNxRAMdEhGRyx7hRtiJKEn/6Rvfia/kp+/jyznZ1HPoqFU9YQVRTfEkY761sefnhmFd/F19xXfP15KKdxluVe/w6Hko1ZMAZPU5SooVNUxY6CWO5JJAr1f29F29bHARlYi/FtG1M0W7xLMlKk2GT0RpkN+/RQnkpXU+di2dBGMjkD9efLywgZf1z+HVdlSzxx1cbVOx2JeFrIkSTacP37X/8Vh7dBJJoGOjuzNb52JcyDy1dk0nGwfOQ5XZRJW1YzWVsWP+Om8nNETeUByWILEb+XTW1yrWgjxOQxenio7qJnlpgd/whmpmgSWFUMfVGfNmERcbya03EI2/x8tiTNQS9t+WWBeZqAJG2oaV/uvBqBX5zZNLPzUFJe8F4BGSr2AuBc13CPbRj8wgvVmMdqvMHzEpc1GUD3cLcEqHOL+obVgIA6r6hvWgQMqPOK+tqF/wB57DtkFiCIfbNMEmvH5v1kXFYRGKPaAnZOu7jJHoFehzrXdTwho1TrsOWuIicQ2tUd/9yhCs2zK85ct8zJtb7WufDgt2YnvZu1AXH+6jhAvtFNE5eYQ7vuATmnDXuyTTY3xLmu2wnpcrnhyl0F9gFrTHtD6poawtaJg5VCN0ef3EkhqBF3oPlTI9At2Oi8l0vMA+0WgNaJXUK5Uz8R9lsDWS9hAxDPcolI9LSfgopvPUlovSQ/xRGbuMB40OalZ9w1pGDHuwLOtUmXkNEgF1i5q77QXnsuEOcOc2iy12EOrTavyHJXiaHh9tzPxR3m0HCvwxwabl6R5a4SQ8Ptuf2aO8yh4V6HOTTcvCLLXSWGhtvLWQp3kEO7vQZyaLY5BZbTKuy6+ogXIN1WbuA4rTrK4YF3AOq8quI2aTxQOQTZ+9BKEIO5GOCHHMpAAhB223MAFT1xFX1rMeCzooMMuG8XTpAIAMD8N/VJwHiNR55kAQ3t+a6iwGejHqUc+FkwvwUkB+SoMu6CWWm2jrdsDrbxcFl9DCokcSpkWykA7cGtCLgvaE2QFADGiWjvEwCz+xLHZMEMbfpugsBnmw5S4HrEWIIkAPDlvqlPAMTua1+TBTO05bsJAp/tOUjBujWVCRICgDgJDX4CUPZejgOgHh2onssvANPjw3SrOXYANvy5YZgLjm8WEOT76DDdZsoHYD06WLcZ2QdYjw5Wr6FcgPToIN1mxA5gPUZYvcZneEMV92sVcYhv2MBr0D0AAUcuaBO1MDYMTd0VtWtFHI3meJmY0KfLrM3kB4uLS/YihsdR3cKF5tyMKVCImqKU13VtwqKgmeANoJo2HqGf70iPACI7rnNaqg1R37kdBLhigatryJoKeO2Blyir4UMFqOyGShTH7OBitGwwnGG5IyuyMbMP2LHNluBP2Tkc2aF/cic8x2txLqLDqcVJc3jdR++6ppJypOPHRwsSSz1g5BujqK0ZAO44ew3843Y/jAI16/bnEKmh9sr5BKwhShJ++sfF1/RXfP0ZkcVaMdDgvKiKHQUx86As9/oKvgzbcm3rY/eC8xnftjEduHnsHAo93WpwmKkjFps1OsybOP8ckjyOnDU2XNQiX4lxvL0CrnsDRzj+wvG4y3HPBnAMDE+zAADTcfSXOcaJOFSP9Ex3c41BC4l6t++c/hdkVlgFZEwQUutoauRVCbeO7zLG1zKWTIM7E4O17Zps7sy3MhIxV9LbWbTzg6xPa+Lg1LBbOqggikrGMm3VrNZA04w+/qqmSciuQnVNjaPPGqN8cdmARy9Oc3VhidLnzNkJu2JplnF5lGSkSGGI0pw7NQF5HfVY2/kMxwKoktGzRakSdHFiKQBTrEqiMgpoAA/H2RB7OFxDVNFckmV9ZODnaGF81oz97i2dLeRNEp7Ir0Z+iuSHvSjkr/MOEopCL5+f5i/yQLHQR+2jkXJ9c639/tGbTGqCUN+VaQ1zTU2WHgqVWW3wROK7cH3vRQL+KnVJ//wha78FIT+p1dI0/ZTfx/z9DsS+f63MRPp9b5nf+vLZQOz7pfw6+B1a/lfSj8vj+XVeHrsy3ZC/3zjttRpO+8fdrlyB/NH372EqhqoIeoEjou0+bWfc3/toF2m7Mqu93g5c3+/XLjraQdou0nbG8X7XpLrqAXL/ieqxkc/8Xy7xZ+VxiPln+X1yfb8rU9rut6hd4f5+n/wD+aRw9QIZlAS9wBd51eO9aN6OXVD7sxcI1+V23EuvbUUe7bi+F9OVdjyQ8gg5/+56fC8SlvQWUMwUrl6wZqlANySAfIwluZLfsSQHBTiWQinosSRKy/n1O5bkoKDzv0x+x5I2EIwlxUZuusHvtNXOjhdWtUpcPrrqmj4QlUW3E2dkncheCw6OywOF6RMU/8W+5Mn/RNLQdXEbA/ByAu+qoyeAlhNo3V2zAbycwOvuUBHg5QReFx+ogG0IC5HX+Pp1K2voRcTg2BqEnheAV73RA7acYOt2fASAy/X+hIOVxaZIcpMcWTQPooqiOWmKEinhBxnN1+9HbRSFuJ+YmoN0x4tTeuimSLJJMkl5JTVF03E9yY9wS0fcksRl/pa07ni0fmNlIJuocAEb+HesOtxy4BJgj2tIHbf6seDvteEtyswHuReI423AltCa8nrWQj0N3VdaaCB3NEW6KuHm9MzRZLMTBJvUCU4IVbyOJg59G7kAR5dRtp84zryC+6Yjdd+0g8d2hw8y7lqu6By1hOgnjmPNwgU+CXA0XRP1N2xPWRZALt1Aetelt+sXNFvjXSvaCFnQySPSMsc2WF3W3h15jyTLttOauI/iiz7XcfVK5YGoz+i415KwW+bu1fnniA1dmkbWoYnd4KWZjG6AtzUeEDxCH1fTJisDBpyNokUN3HKfBXA7CtwWO9UA2lGAxsazALdjwy2SKSP+UWPmV3SwudtjoaBXUSXSweQRug3zzMsDy8zijsy0nk+qRm9kR+Rbqzgdiqrp/u68JfdgKyLQFpR6yV0NGrmrVEB71Rm/1JzIfTD8rlIv2S/kfvxu36/49NiV3/yNwPhT2r48CD/VlZ+DSPl2dLs8VC+mFI/X9fyW4h+/B4cfUBwUxlbE7TxoWmpjriGb5EQ8UJKgJJNIVAl0aaPq1Z6yRp2G9+K6Xums8NtRadL0PtlKq6P55LeUnudX+3uqZPzwc1DQRsKczPIIjB/Q4dCBKUl8Yz6PYf5y4ZwNj3mt6HrZZc1o62L3LZYFmF6DDWfLwxMxjD7EW0JgZCWDwlGCfnve62m/nvdW5NcI2kBL5eFpBG5FQac3afwogRG4P8ViZJVlpJPFBTMYjQBFCeRBMGRvEQzZA8VFB6goYx2RWFm38dPoI92xJ5CX5Tdu3gMqalGSDbaPnZfVHIkB1MXVB+B5zHiu8c0DoHqD6scJlbN8QftE52gN5PqI8XT3iwiQHjGk7p5MAdIjhnTV7zDAecRwunsJB0iPG9JVt/48IgpzE8kgmMS3CSbxk8WPEkzi708HMzeBtT4LHMeMBGhKoMMlmMW3CGbxgeKiQ9SUsU7jz1fRJ2boYHVwb8Fs4WXgIIHIug4KAbjcgOsyiAvocoKu6yQaoMsHuu6z3oAuH+i6rFEBaCNbhhXrmFsCpX3dckMQeU7wXV0eDNDyAa3bUn7ANvxZEzgHcKtzALkURZiVSwbB+hWbYP1KsvhRgvUr+1Mss3L46UsTvSBsBHUxe3BFAeoyQgJ1aROoy2TxowTqcn86MHUJiz5BXwK5Eiz6tAgWfQLFRQemLw/EgRNoTqDDJdCcFoHmBIqLDkxzHsqmiYYoSfjpH5+/0n9/Ok8Sj2StBDJEGRdk+Cf9zmPi8gTLSldT7WM0wkcOx12V1Te7GKOWW3YiRll7dxweEvRKRXYYBrH2CmPD0FRreYN9gklc2W7oaIQfxJNxQZuo4CUv0tU0PDqDSdxhyYsH6ACMxwrj4qQ64MgDjlA3OcS0MmrIqor7V1yCO18XTSx/hq/fc+IO1iha3ee+gLN5g23h8UCd3wPYRwm2++5oAJxnwFd9HQDe/OLtukEeAOcWcPc98wA4t4C7bKMHtCM5xXnNzvrtSj++LfcJqBPrNttDxeAX8tX994A2t2i7bckHuLmF222ijh+4V5bG0ABzPt9ShTEuQKSTop4/bRkzBY36CBlNhHWdrKnOqL81RWk1xImJ3kZU8Zek0MnyjVNvMWhqmoG/sPBfKLvIEmHKYlvsKOgAUoLha4gqUlySggVlLW5UWOhrE/Am6skjQ6eBaBhbFJxvyOdMPrEYo3/8Pw== + + + xVbNbtpAEL5X6jus9tRKiU2SVqqInahAaCJBQUBprlt7gFXXu2h3HODZeugj9RU6GEP4sdu0oql8wTOz+33fzHiGH9++B9fzRLEHsE4aHfIzr8IZ6MjEUo9DnuLo9B2/vnr5IrhP1GACCTCK1646dzLkE8Rp1fdns5k3u/CMHfvnlcqZf99u9SOKFadSOxQ6As6ysx9FAiFvqhQ03sJcjI3OPcM1gXMiQHCMBbVUqhhsD8bSoRVIbpd5yEdk+rhQUBDDcttgMSUsnp94vK8hUDBiX8UsYH1TfwKA/O/EbTAIpWvNFCwu+oBIKfxgTTp1WwEr8kVRrCYcxB3KQdfKRNhFUyr1pkJxEaWrMxWRxMUJBcmoZiwpOWnASKQKm0bjSVfEy5K9urjMntd8B/OQmNvzF/Ji6/eQD0CBlV+9z1LXCc8a5bxPd15Ljic4lC4V6kZRHTV6A5jjeyXHevnG2VBQuUPelnGsoAUjMvlHwO6J+A4h8W60+EJ9kCXklsioJaEN6sCm8C/wnooU+L9Je9AnrAiNLa7HKrN9FAjrQLZlC3ndqDTR9YkxDuySYBGHYozAL2nEP+zWtkkddGiCLPv1oO2Orc/bwD2/0q4FRz+fUWfDzPR/0JnPkreX2XM4S34ttq6EcxuZ+VjIjHs6c9dxBR58cnsjOPC3FsGjNVsCbrkEeqB2lk3mps//MILl02G1akom5I7i3MHXWSk/2TMGCbQwRSVstrfg6uItlHxXPAF5n3MBBapPabqyGpUt59Vm90tWe3Y0+ztw9RM= + + + 7VhRb9owEH6ftP9g+amT2gRaVdpa0kpAWSutG2po11eXXMGqsSPbGfDb9rCftL+wi0kohLBKrJQWTYgHfHe++74z5/P9/vmrdjoaCPIDtOFKBrTqVSgB2VURl72AJvZ+7yM9PXn/rnY7EJ0+DICgvjRHI8MD2rc2PvL94XDoDQ88pXv+fqVS9W8vv4Rd1GV7XBrLZBcocbZf2QAC2hIJSHsOI9ZTMpPc5AHsYwDojpBaPeEiAn0FPW6sZhbFxklQhsGEdiygRIdka51xjL5oZvG4X5NZRjD6I+sU8p3CPoClq4Gb+kAvba1i0HYcgrVI4WetktjMKEyCL9MidWYg+oYcNJQQLMYfdaUxYjpnjhuEIKBrlTYFwWTvG24ShqCYhVyRzKwF1Hmrq1FDSYuJKG7v9mn0kayp+RxdDcGMyUWUnAlMn7RuNaB3LuKihxXPjL+Izy8HWGTIL6fImZdx/zoTdA6sZPdnzE/m4H96VkpPSym71vRkDrYtPU24Z4mwLbVYe4rlszxDBSWS/w5oBwPX/MH7zmVae7QSxrti0YWFgXcm2Z2AjO+wzyI1pOSG4WWEdjopZ2xlbxMHTYhtf+ql+rwurg1kVDa5SbFFbcbTavtXUDX/CY6f+Huk9+r0ZGdsTu7a0ljxCGO8mV5ZNOs9a5dMP4BuKQ1YFJTeDaGn4Prik3eYHr9dFPe43Kkeu8+HNRfy14a+zaK0zds5PK4c43dt8PM6tmH4B5U26G5Jx/O8OL3837j9gCfneoOA25oPmB63uBC7uMi7K934c1dy4UbOoW6sgnU0kyZmGp2nMN/SY+Ae4932p8ALpWcNT4HZ7GzpQ+CFkrOGh8Bsct7gM2ChySzMQWr+zDTmcdVNYkw6ibkCMTfxcWJsJBc1SNZrLu9Bry/Sljlnk/5L04qcLA3R8bJsKjUZaflLZlrO1M3BTv4A + + + tVTLTsMwELwj8Q+WzxAXuKAqBVFKAYmXmgK9Wsk2tXDsyt7Q9ts48En8AtskhVIaxENcvbM7s7PrfXl6Dg+nmWaP4LyypsV3ggZnYGKbKJO2eI7D7X1+eLC5EQ4y3R9BBozwxjenXrX4CHHcFGIymQSTvcC6VOw2GjticHkRxYSV28p4lCYGzorcK5lBi3d1DgbPYCpTa6rI3ULALgkgOsbCdq50Aq4HqfLoJFLYFxGKkZgIZxrWYFj11p+NiYtXGe/1OhIlI/VNLACLStEIAPnvmnvjIJYbZ8fgcBYBIll46mw+9kuAUvw6FGtLD8k1edCBocw1dq1B/iGVkiPQEKN1fiVQ1p03vUCwE03GGiyN6NOrUw/BvTLHVNdZ7YOetdiTSYXjTKySifVsoahp4Yd9Xkr3AK5rHRxbbd3WkUZwhqb4CF2l9RYBVdy2jqb2rz7cngdkw3kmUzhJFKX8iyOh+Ho3QrG0oe+vxXb6+Xb2QH/4BUWYhH9GsKq1H7TM/7YuNTqWP2ZZeImlWvNvMH9nQDSaWqeK8dQdjPLaiJpzU6QWJ+rgFQ== + + + xVVNbxoxEL1X6n+wfG52SXKp0G6iEEobCVrEEprrZHdYLLw2smcL/LYe8pP6F2r2oxBYlLYiytGeZ78388bjXz+fgutVJtkPNFZoFfJzr8UZqlgnQqUhz2l69pFfX71/FzxkcjzDDJnDK9teWRHyGdGi7fvL5dJbXnrapP5Fq3XuPwz6UeywcCaUJVAxclac/QoZhrwnc1T0BVeQalVFJrWACyfA0TEWdHIhEzQjTIUlA+TCtoi4mBMT0VpiA4ZVe+P1wnHx6sT2vi4QMKe+TQWgvimaIRL/v+T+cDiWodELNLSOkMiV8LPR+cLuAErxTSjWAYvJN1eDLk4hl9TTij4MwMzR9LTBWy214c+uOuSze/FGOlavQz5GiUbMve9C3To6o6X1RpDcEWbevcVKSVdYeJSYDEEoV6QJOAedjyCtc9Y/AeVE2BzkJ+k6QZHXgXheZltTjQ0ouwCDG/p9wsB/oQhB5Chj0qa5OptOqRGs0lB2T5PU+7tNgfrwiHKkNVX4JlXNrIF/xP9/bJI3aIyd1GurxriiGylSVRahsmsgkkRiH6ev4FbZKhEBbU3b2Qv5nsQ3d+ayNUQTb5S8bqJe/UpPm/GBX3sjLfB3But2txiqdjNURyifDe8i7LQfIljVaX/1+PgpnqorzFGdRXGO/TLlF+Uf+aOKo8W/dvUb + + + 7VfbcqJIGL7fqn0HitvNCB4yiSmZqcEEoyWOggHlroUeaG1oq2lAebW92EfaV9gWNEajMzXJbqZqKxdU0//x6//Q1f/ff/7V+rwKsZBCGiMSKWK1IosCjFziochXxIR9+3Atfv70+2+tSYjHAQyhwOWj+GYVI0UMGFveSFKWZZWsXiHUl2qyXJUmet90uSz4gKKYgciFolDoDkAIFVHDCYzYPVwBn0RbjrUDUOMAuDtBaKkJwh6kBvRRzChgnB0XHM7jYEy2xvCEjLCljddL7kvcauzt3QIGBI7+hhUCO0tmACETX3a4Rx/cy5CSJaRsbULGeAg7lCTL+IlACf6UlKCCGHpfeQx0QBeQaoTCNsGEXtzCbyDBTCMREw9MPfcXH/FPuhN2e0UcQwwpWlRsFLW5eUpwXLFQnAB8h3laIlZRgbsoYIiCBXjmFNEOEOMZlY6hSD/A0jK5M5cRehrkJmE7CWHrvUziKZAGIcwA3lbuFJrT3lrSmfD/ZI6GFIWArjWE8QUnIlcllFfXr82VGfKoBFxLJx58zNeARCfS9RJvD91KH6xJwraUzQJQBOkOwJDCFMHM4IEHkY/hJjyPOK4uLwT5QqjW+Vr92PhFkEwutdgH57uAXlvSbQzi+LimC6Iibgr4NPK3L+YvmEEa8eszLTP2BoV7nDcTLgG/wAntMhhW7glF+SYeuBsCf5+tq6tEGt42GzM7873QWrs1nM7mMtLNRtZFKp6Fg9Tp4MTJZeRNjLA/9tEwb1w/hNrCtKuBU7PGoKNljqlyG6vEzZcNtzZqdsNA9u6/fOyvm3Wv7iZeriezei/q591Mv71L7buq/lAbEIfb4H6e6C5+Srdv48StGwHHibtzjqujLWeRMZjVDDxcDDD/x+48Sw/o81VvZmuRYw1kN7SC2fjSALnKRpamjh7Kz9Bwsc7kYt91yrVX8nvqSN7Llp+hGR1PHU0CdXB3zNMWtjZd9fOBrdtG+HW82fupowW2bl7n1lxbOPPFiu+n/ZoxteZ3qV6drpzO9JLLT+12813/rfTzLN3VtXffw1Nb/mPYbppT29jVDJlOVDz0FeW/uW8P+5Y/4xhy37v2RV2rll3bld+79n+u/6qufe2jpHwymgyw/XP7CU0RD/t7iRHjr4NNe/+7D5Nn5zialVrSk4ltTy2mtXgzrRkQH0yFBZvPBM8lhO1hzo8T/FrjmgcnF18zhPDAnMVZBOfc+FrOvtKZ4bdQLQbmT/8A + + + zVjbThsxEH2v1H+w/NRKYTcEVFWQgICQgkQgIuHy6m6GxMKxV7aXJN/Wh35Sf6Gzl1x3Q2hDdnmItLFnPWfmnPXY8+fX7+rxaCDIC2jDlazRXadMCUhPdbns1Whgn3a+0+Ojz5+qjwPR6cMACNpLczAyvEb71voHrjscDp3hnqN0z62Uy7vuY/Oq7aEt2+HSWCY9oCR695oNoEYbIgBpL2DEekomM/cTABUEgO4IqZ4GXHRB30KPG6uZxWkTzeAcgmnbsYAMG5KMdcY++qLJG7P16swygugPbGQwWandB7D0/4Kb+kAvLa180HbcBmsxhT+0CnwzZxCDz7Iip8xA9wZzUIcnFgjbUNLShVfT65ul+czlyeR/jXZAgObPzgOXZ7i8VsI4t6x7aWHg3BlIPNe5YT8FdFuMIwRyz5Ax5I0Jg0y6y5DcNZiqbXTqWaWzwYZETSzIuUAxSBuTlwlWKYuAE7ssNNnequ6KtP8jN/jAvVOlUUmlE2FBS1TdCzS4EHlwdXcZ0nWFak8y4ExByF7I4pkSSk8pe+hzm0HZ+3gO3V0A7/VnEqnsF62PFMz8JdLRTBqfaXQeyqLUZPoZdENpiMgpzc3HQqr4o1KLdcMt98v+YfkQf1/z/PDPZfi1x1gukE+xwGlHB+8koUV/b/W0qX7uuQkYbvLMzmQ0N1ajiV7isRBg/pJpqsDADVbhSDCZAllSUUof750EZ4op/3S0NBh8zPp6coq7roYy/7hPPC/cNJQXmKTErNlLtp+NEy8sbwVIYN1++HqkZ4IZs1w1okH82Fi8JxVSHJYI/FZugQ5JX18ANqS2DsbT3A+PyB8l+L1J8NuP1ZkcafMPOjqDdWCUR5SxYRFR5kVteocqjtl4u75WesDE6sK9Nf7TqSiO/lQq0qWsgDwUVr3S0S+e8Io7zH2glHyMU95WEpK6syz1garuXDdqNhp1okzYiboFsdDxiqYxirQFSa5Xb7kSJ0N0szbLChzzTbh44TkvSWPpDZ5fvcAjJytTFPGyqisYtxTdFT3F6NWoD3n0Fw== + + + 7V3ZcuJIFn2fiPkHgqfpKDcWS7lMld0dYFY3qLAQ4OJNSzaSnVpKEov91P8wMV8zD/NHM78wVxurWA1K2SiIDEDKzJt57s31HqX+9+//3Pw+UXBihAxT1tTbZDpFJRNIFTRRVge3yaH156/Xyd9/+/vfbh4VzEpIQQmIr5pfJ6Z8m5QsS/96eTkej1PjbEozBpcZikpfPjYbbQHicr/KqmlxqoCSCSctzSnoNlnBQ6RaNTThBprq3en6BchAAUBcInFTHMpYRAaDBrJpGZwFt03nDtyDwrStF4wC4iS8a+yLDrKSXopZfiXO4hJQ+q+WE8HPqS0hZCUPq9xUBkhpGZqODOuljSwLIKwa2lA35yK4hQ+KlShyJhK/AwYl9Cc3xFZFU63kQtLV/M2l+4HZJ/z/t0kWYWTIz6merN5B9oaGzRTDiXULKamOiTzJJdnkeIzEFidDERJdDjQGeuOwCZq8XC7S5ZYy3bRBqGBpRnBhbUX5MRJlDMagWq7yAguraRYU2IsXVJpgaTeXa2DfUzdNznhGRkUz0J2GNeMCbshCUTPAslZ0dcx6d+q2nhpg5l0ZjYlVnzU41dQ5A4RXZIz3rHJXNocctDfOmtV87tpt0q+fI5XVBgO7iVsWdBMr+UGOdxK06GlGC236DnOm6d9K+vA6V6EScxk7tTiwT1sG34M5oJYhawlME3M6/FljmCfoRFqGrMiWPEJmyhU6vQDRREua9iLU8XuQiJiVm6UH+UczqeV+r4AtZKicreDAjuAEJgZdoF2cpT4wVTK4QW1+nPryZXjZKuVzfG88EJXui5DBI/6Jkpvt3LguFzGv0KN+FQ/7r5QsPjJKgx3IrdfcdUepPLd7aamf6bJctTLut4uQx2QovOo5IfOQrysSJdYKV42XfFbMCkPxtTnks/dq47U+bpbKo1453exkaK0PeYCcubTPe6Vt9PBQyDISlBPXn6Bc1YrOqwzNZxjceqYx/MYCxqxYu8dildZ6pfFoIc7T5J7vVdR+l6YEpSvx7GeGey2yD4pYfOhUnMBUsPPNU87/suh83xvu/fvig3t9LjAVpgrpH6UiXV6+t39gyvgz20v3USf9s63evzm/oNAGvQsdpsw+6nQjI17B9wNdtnQ+WykfWRbNlCtZhBkaPVOj7zWdRrgwYjtMUczqzJFkAF76H3wnDfXQRugZvtvXOfu7c5en7e9GVr8HPK3ewTJowMtSocx2+SkbNyTnrxz8XiUHvwY1Lz+vQnydp9IH6L+SZTvUeKn8i/gtyof4oMvn49tJHD5m2G6/K+1nk/2dXXrS+ovDewsw3lFpurmH/UH8MlP+vL+sTH7SzohZx35LzHb7z4gTez7AHl6/EMbfxeDNHzpL+JUfHsWrznF11+B6+QlTducvfW/89+ZPJ7GVg+d/7Hjkz9Ht+e+PHvWpVU5LgiLC/LcJvysmX8pZTYj30JuYMBe+47MMxWeoT02YJz8oeUqs5i243uz3+lTrqfzaust7vydtridqYik3hmv+7+tuNT9uPRWuG2lmJMB/0MFMXqUo9auMzivCsWRbNFvYLD89JxPi/egx/nxf+/FYxK3B7W3gSvJYKy5naWhvGbblVzRddsGa9iKRuT6p5N2FnnxPoS0rOl4uIPENuYsWJ9pb9//IfaO+QfjlYi6CuzWR0ScXS6v5MHeZy6q9tewWpSYPJAxhtnZnjWHwLsgb5e0qKWSzcW/Z5SRqOTPD6EmyhVg0sS4KggB3aM1QOHyKrd51QKTc6Egk35baaKChTr2NFJnXsJhPfbZdMh4yoTYe6A4btvW6MPm9YVvSxjXNkF8hGocbsopO7avZU6sOviRtfKmfy1ItZNjKuzixH2MjDCnfvUYAD21oou8jgCT0StfNmmYB7MIzFCv8mpPq2JZhuBsaBpGJQlQAiE73vm0SdFo78F104ePQMpAJP8lj4JsCSTCi0iOeCQbRGRCq+EWX7P4wnQlpBgcrEtdF7E8CdMy9OOSj2aIEynPc5Y+bo5f9f//6V6S876ErPcyF7hLy/4wS8in3jxvt+3kpIlJNIDXte89KB1FuDCRVEh1WDbk93jPl80gzPg/7Zj5PzfUPlXPu/dPzeTaGx0B/4Gllvi28O384Uw7yR4rhlcHzx+7hzw30B++QzvZ/0ixbPNSfW24/YprvYo8P5soXV9rHagj2Z+8gc8H+LV/+pjS+P3aTP32HujJB/vDsDhgF+9NdfzTLZyuN/tS20j+hPpLPB3srnyQw/Q79U7D9L8in2J5+j3qVqyD9B/vzd2k/gekPtv95+X9QzAKfwOczevZ/cPsJ4mMcbv8eH8Fr/xvT2/h39Z/zfMz928/B9k958tU9+wuQ77RHeg8+58H27/WfXvvfs5xvCMTHj/3DofZPLBw8fhALB48fu4ej83kK1w1qgvvqw6dW5V7vZyT3Wtr/Penw2cKnJtt8E5+nwXZgnm/Luh+JNWbEs7lrttpVPO7QDnwih/vjlAW+H370mGeu91ltPcHcf3ndwuZOy+dZWeZ9yVwkrnIE1uh1QVMjR6nZhUEz9SyHtn1OzokcU47eF+VovlFFhHBEvl0Fg/JRqRlrakvYBRdoAMvshBklLSRQokNQ8IlmwtB08Tm1u34NIsQ4K6sAELcOD4sIWon/ZG4wazFmKa7RLXGOYsi0pA11J8pBIcTU3AQHuclAeGS9jebw8bmKm6pProsPbS54npS0nRGICQCnJgCUkMXJeFk2GN5QUWMiQEwEIB1iIsC+ISYCrA8xESAmAuxo/zERYFv7iYkApwjEx4/9Q0wEOHmIiQCbiQBHkk/6YI8zXXHFRyluC/FRivuG+CjFOHycQPoowveenrT+4vDeQnyUYnyU4m4hPkpx/VGKzaeCszrrKFjlavZKzJE7ji71mtyBhoGuOPJ0mJje9EZNnhvBaWPtz5HitBmQcyA5bTGJj09z2gwAOaJTiEeR7QbBh+U8ba4+YdZTVGpOUvv7jpKneV7Kn9X066qIJkRf2rWotwhPYE72jNI6BD7qU0pr60ualLn7Qydn2yoj9EBMpHrOdJR0RGymu+Zkdf9E9VCnfjXEici4Q9hfwpOHg8yAsgJEhNaCNS2UMWYVAoKH/y1jMLc4IoJCSRsTOBnUP00g/c3+UL/YjWMgq9PTBULuzgtYHqhuL+H16E1ZFDFi3Cf7j3RsgC8NlCTzMpatl6m4GohDgXoIdRRZ7TVXck1sfHXu/Ouuk9vfdz33PuGCYWjj6f8P92ZdUrtAq62e2PQgxG2gXR74izeBnK0QpyXWVU5w3uL9UTHZ53HI80Bkv7cWRAYT4qdnrD2qKULnZ0Tg/V7kT9CI6n5OFPcKSDqHtp4rFoa6lrz9iqZZEqRqauLM0U9r6vGOEIvsZl+Jszii2yZkztw7o82R3d7VQ7znXhjT52dCxEb4pUlRVAgFqydnkTYd8qPKDKMNx8+dDKZdDuIjefDMYvsJmkOTPqbwLFvXPsBEom1tw+N859XvV2fhIBKdzi8CXAdynZ3d44S3yFrfdjPHWVcdvooju8ha6SD8C4w2jo3i3I2CpC2EbAEBnlHnEiavnVVHWt1sa4Y9hq1kn4h9pO/T2KLqhp8jrMTGFhtbWASx2NZiWwuNgxYbW2xsIVGfYlPbbmorynIizPK5uSwOATFk2MuW2dW29YKRKSFkMQhzlqyp86JvwHBWYyQ86NZD2qnbJucrdgcdMLDKmxnpIoRrCsGgAeRvOH/cjOeklNCf3BBbO0heLGpAAUApazFyFOPc9sCdL5QTZwr7/B07uZOUBctBv/0f + + + 7V3vcto4EP9+M/cOHj61cwn/mk7SkLTDnySlxSQBkjT3TTWqrcRYjiyH0E+dm3uOm7nnuLm5N7p7hZNkgx0gIVBbpo5hYMBer7T7212tJMv6769/9t7dDUzlFhIHYWs/V8oXcwq0NNxHlr6fc+mXzZ3cu7c//7T3aWD2DDiACqO3nN07B+3nDErt3UJhOBzmh6/ymOiFcrFYKnxSW12N0YJNZDkUWBrMKeLaNhjA/dyh6UKLvod3QMeWf+Z8XIEyqwArTlH2ai4y+5B0oI4cSgBlpx1xhp1jlenSkQnn0Cj+sd7IZmXl/CsCfg1AgcJqv0sFwZhT14CQ5lYTblIGK+WEYBsSOupCSpkKjwh2bSdE4FV+HpVSAw7sHzMdNOAX4Jr0EFs0d+9SdnEXmlCjmDhTJzy+XOgxhXJgMsVa1FNEjx0l6Dp/gaw640uw6eQ7GNMO6Pt0OaUwXVhhfml7hQdEWFJOFZBrSA4xgXVsYhKrrGfNPBNVBXZi0s6IN0U+X8opImX8/0EpVWShQMz8OYJDGxPqk9SAdu0pWzkHzA+ZxxfLG8rONvu8YZ/yPL0sqGjUON2XQD5QR+bINnrwjpZ2NpoatiYGunEC+jwuvtjcqhQrm68rm69eSkKV2W7NpRRbTQoH+QZybBOMROCaAMlrPKusVcpjhYliPI4++3+//Ra9bZwjxwUsAAMamEjoGAsRni30sK7zaM81sH528Yxs4Nta2UDeO+bRHVvyTeKEoAEgo0NkmjKMwFPLWPjugLXfBrtKxf3ABNrYgmsF0rRiBMu6wZKxCad76VjdBI4zPpUbtxjiKNNKiL/Q+orp6BwXKcwXc40sSpofZYgtgZik6N9CukHvB4DmAOiB459eF8u1qv9qXPJvzL8O+Jd3olatV0OvxkFDr1bvqlvVtX81LsttY/hV/Xpy0e6dldRo+NFW99VAZVwL7KO+uYyO36hIW5Adu7rUvqOWy/IrthudS05fvmLfhR2ur4L3/7TYPtRH6tWHoyX4MfqPVqtbpK85v1L15iPCR+xzU/P+h/TXHKnXC/XHKNsWp9+q45uP+nz6Cf9fPPpFTNWr5qjUYOUPFlFyeT7ogn4RZUPoT8i7iHRS38LOIlKBh6DXF1B6+hH0i5jGJn9Z4+Xrj9RX6Efg6dEvrMC4vrZnfxzfU8EfjeVtn3r2xuS5Wdp1Ftn/svwifO3vx5iXr0OnHdhdCIhm8J5RYl20DnatfocV0DUAE4B/lYsbKiA6sl5sVcT75caFgSjkCtwIunTlSed+u1IqVrYrO8+oa//7H9FyP7DAZxP6VsBQ6ONhIAtx52dzK5fmFdCANjWCUa0kukDA/hXjQdPy4Mys/0ex/j8z64/M+o9dmpn/j2X+f2fmH4n586mW9bL9qqYxDNqYDIDJx14ecQbxq46IZsJS+a5U9sYWJDjBWptNXIO075FunDIqREfJ2Gob3CJdzJcnlqvXsWkCm/2pYdKHy87+Lp2NRTmm6bH065228Uw5uAR5QgbM2gATasEyVJ6IynQbuy7zgIk3MXF7eSonkzJrSiI0pdiUDrHmOqveYre0m+dV7Drw+JbHedn5pCfvCYEOOyBZ4gYeJtDpk4Rw4HrPAt5pcZPBNuZkz+//QdbSUCOGuMr62VVC8DDVqZ8kjC6gE0cWlUEUHURd7GZutOYYHYDMjdb5HrdgJQrvkaDPyOts+B2QiZEk0P2Q21iKn5kFpdKCpDTlmQGl14DkJBqZBaXXgqSkQek0oB4BlmMDwgddYlifIRWhVA55SgJIThDOEFodISl5VgbQ6gDJ6UqlEqHxrYrlinjP3qkYA0TyF9ZKEjIUKFIrYyifkD9rw52xbsBbgq0zOzRhNf/+wuhNNzRlFV+c8RdipizQzMPOn3+Ti56YgcvQWx29FvxCxQ2+seImJel6HmDJCpQBZFmcjBg8GZFyGr4sUH4nfFyB8QdKOeMHzwMtec4WQi3ztojxi7+lm0Eva+q+E70OfyCNPPcLerGZ90WNX/zuN41e5n0roCfrubD+4zw0YMKm1UcaYFcdJLVMUK7QLahDq991P1NEJ6tR5QvdhTqGZ81SMf9aquC9RKWOe4GbnEcUpvpGQH8B+XZFvJcdsl79qUI1kFwEki+z54zPSOBgOXqSQGeL7+aGzdgX0qdymlbqcrQxOEmuWJI1nRkePUt4PjP+oUI590mks7s009mNHy4pt+6lFC15y5XvR8vol7PONMlTu8DsFUJ70QRHxWO/HL4PTQea9/a7EaeZEcxSKH4i8YSNT3KLk7HHNoR5oPzw1jse41Apft/9CSU/tj0Lg+JBzQg4HtoKSNBMlD29kZC4VGw+9PZ/ + + + 7VnbbtpAEH2v1H+w/JRKYINTVVWARAFCGqkkKOT2urUnsGLZRbtrLu/9i35KH/pH7S90bGyHgFET2mBIeeGyl5kzc8bj2Z1f33+Uj8Z9ZgxBKip4xSxaBdMA7gqP8k7F9PV9/qN5dPj2Tfmuz6660AcD13N1MFa0Yna1HhzY9mg0skb7lpAd2ykUivZd83PbxbUkT7nShLtgGuHec9KHitlgPnD9CcakI3g0cxMDcBAAqjOMctWnzAN5CR2qtCQap1U4g3MIpq0nDFLWGNHY1WSAusxox4O8OtHEQPQHOlwQS2p3AbS5mnGJDtTSkmIAUk/aoDW68FQKf6BmFkzBp60yqkSBd4E+qMM98ZluCK7NR1sX5au5+VTxRvy/Yl4BA0l71i3lNRQvBVPWJfHONPStawWR5jpV5AsDr0UoQjBuCDKGvBGmkEl7HpL9B0zlNip1tZDpYAOi4hXGCcNg4HpKXipYITQCjtaloUnXVraXuP2Z3LQk7RM5aVDG1sHNDVU+YZG1VruP1ndxV1N4kPByLvgL0DLV3NZEP7AzM1YxkYUmUT3wTjyqq2IcU7IgDeXVuvjsJWIePX01RpSKp8w4AMLRwCXjQHTo7RUTz7xfolBIMW/NkdQksgeyISTUBBPyQ6EF0kXTczOPf65FvCAT7zml/ZJTct6tP+aqxO2FAJN4u+1SvUkBt/YcMMfcfszcJpDjvHdyRvyxOSRZ8Sslc7YWSHohgwPG8PWpGsL11X9ndVP46bXCq7Y65DprH+AP6laFxFrXGYwvfI21sCRcDYhMy1HbUwVMbXp1dcBG8DUXtDv2tou95O26I+6pxB27QckWZuzIwkwKgx1hzyMszE8XQ5AZkrZLlitSeOYKnhRnuVM2GXQDg3NYtnUo3yuU8sVS8LGWY2587RUgSI5PP79+S/XfKtLj2InO8ImOQs7IF3NG8JXFCS0KsRoDIqu+1sEd7MaeoP+5rRkeRKcJ7JMYvuAJJcXgJGNmZXFLgsKBtdtcF6MMQvuYYQnIiaZDSL0k3sIKcOuuXxdy6FwbpmzPNIMeRsNGkAoaQZfAHjWcwml0/eIKI8r4yzsW12fWPGnm3/U5liCZ7YJNBc9oiS6Vn6A5BW8KCqRnqbdCipb156bNPXtJdy/cGnYED38D + + + 7VvbbhoxEH2v1H9Y7VMrJUCSVmoTSFQgaZBKggK5vDowYa0Ye2V7A/S5f9EfadWH/lH7C529cd20JNldKFlFSMH2jmfmHM/MGvv3j5/Fg0GPGXcgFRW8ZG7lCqYBvC06lHdLpqNvNt+ZB/svXxSveqxlQQ8MHM/V7kDRkmlpbe/m8/1+P9ffyQnZzW8XClv5q/qnZhvHkk3KlSa8DabhPXtCelAyj5gDXB/DgHQFD3ouQgW2UQGczjCKZYeyDsgz6FKlJdHYrbwe7ENlmnrIIGKMEbS1hjbOZQZPjOVViSYGar+rvQGhpKYFoM3HGTeaA2dpSGGD1MMmaI0u/CiFY6uJAb7yUaOMMlHQOUUfVOGGOEwfCa7NqUfn5auZ/kjxRvi9ZLaAgaS3uUvKKyheCqZyZ6RT09DLnSsIZq5SRa4ZdBqEogrGBUHEEDfCFCKZn1Up/w+dik2ctK2FjFbWBSocYRwyJAPXPniRygqhUeFgXJQ20bMV8/e4/YHY1NElR5SxlIAJ7MxdUEWvKaN6OILDa2JLB+S85upZB+6EmMwJRbEVCxffSOjU8qswolTYZYYTeq3obpTrufuRYWfWNwERJk1MmUAVwRix8UtZSAxHczz6OzYIukMwYhE9hmiirWQGWLgLOlYgJuT6ijck7VFN7yBmaCIsTH2Jy1uQR0ICYiXkRhO6As5r7914vNEgHTc1vnqz5/29TjNAH3I3KvvuP6Zdi+FnHJ5b0on26hPnW3Smp4adB1E79bjfkoQrm0hcEWmFf9/4MAM0e5j5LHyqLjowguJE8GVDkVCUcb28xjFGOApOseyOJFN86ORGE2U4PQanj2xoWy0Y6I1aW/BxTgjTwM7e2z38pJIG/Eqr7GgtuIctluk2I0Pv/WUcnFHZeNOALzEQ/+vL9ySSzLNNanXKce18Bh/W9PNaRvA5gn/LCB4nwckgI/hqEfxrRvAYCV5hQi2N3QnvJkzaFmf96IsMdF63mjFhTGYCagbLisAyXchlsCwIS7axkiqLEthMzzi0YhxKOkFkHFp7DiVb+K0lgRLd0p3AI6Et3QyZOKJtBs5qgTNVTmXgPBSchgSF/6YFTVX0s3SzAtBEhLQMmpWAZq4OyHBZHJeZgz07hQbIdsSJtTh/fw+PUv5vW8Ordggwkd2vJR4D/NB2mXciZI+wpM+A+COQg3GC8myOgKSJVE01hO3YTSvuqP5s0Lq0qAbv9860YEo9sKdi4ihmLOGE/VSWTudw3LKtTKwWmXnNWl45kprB0y8v62/w5CtBMtbO7TbP3Goq5ifuVo1bvVMtyr1XdQZs6v6W140LcX6EEZSUi5Sa5lNuC6E/7lXP88l998u8MSOLZ2+n+WWle6Nt/w8= + + + 7VxfT+M4EH8/6b5DlKc9qdsWdtHe0XZXtCxLJcpWpLD7apqhtXDtynEo3Fe7h/tI9xVu4iRN2qawlPyBKEJFSuJ4Zjy/+eOxnf/++bf95X7GjDuQDhW8Y+7Vm6YBfCxsyicd01U37/80v3z+/bf2zxkbTWEGBrbnzuG9QzvmVKn5YaOxWCzqiw91ISeN/WZzr/FzcGaNsS15T7mjCB+Daeh3z8kMOuYJc4GrU7gnE8GDJ1chA/vIAJIzjHbXpcwGeQET6ihJFD529BN8hsxY6oFBQhsjuDd6mCMtM3gj6u+YKGIg94dKNwh7sqYAytxNuCUNpDKUYg5SPVigFA7hNyncuRNr4DOf1MroEgfs7zgGx3BDXKZOBFe1AZG3IE+EhJ5gQporXW3Sc9aeJ5IzwuuOOQIGkt7Wf1DeQ3JSMKd+Qey+gln90oGAk2PqkGsG9pBQjoN0RVCDqEfCHNRsY52lxhM8tS0kOlZCJjPrKS5sYXxlCA6ufGUmMiuEQoaDdkncJFNrN7ao4Zm6OmIKJEfk3UFXSMTXhoYel7bHiOOsi6tvdkyUy3KvB8DdIeHA/P6Hks6oRy5/WRGBjMzxImtJz+BGFS7tI1ZYGxLbc5DvPrb03x95mOVl37PMrquU4No+R3Cv+jMygQtg2vUtLVPf7cIN8us12hy7VOhrKkeMTrhvegHxAbVtBj28hRBJhXLokL5yzwv5wDilkymSnkZ0R9JNQMnL6f0qpZf6vSvquASDEVGR+4vd00biWYjHWv7W8GNKlQZThf2dsZ8nQup+C7DfWph4lhls9IB99KaY5y1fXcn0VkKQuRmDwn43Ys9uOW8C8hrJEuasoZEk3JkTicKfUMbysGBf6GDE69YM07YpvjUQNiyt51zwov1qRoDyRrm8cBrgtCARRym6s3AKUmloFw3lNG0MzTvvwPi8KaMfzD3F96Ywvp1hbp9/kMQZxYTydwetZgt/uSRRqy44KimEOjrYqxn+L7U0OiQ2oNyif0ee/qBm7DVTp7INdhd+9l7GwHIkpVhUfuslAFqOnlPX/mB5vXapy4RLZOHYKJIOgl9il2XA8Oowlw7DTyXbr1RBWite3atLxreeSNwus2re1lw1Uo7PdtkU8xrSob1PTcxSgn8FF3Oynv2U3AWvl+8tmAi47Fswo9eC2X95Nf5Cypivuox4CgR9SzHl5nxqiDEJMzCsqPey1xPzd9deUrLqrvebH2tG+C+dxDw2M1gpD0XU92NrQstUojiLtQA5IPg0dUifUQ46ey0bdNdDQ2w9v5jSuI5FIap0oDIu+zXjU/1gngGyHluU95bPCttXkU8A8HSA4lVrSbsrKlwObrb2W/jbrGSmr6kiN/nsMIV/zhYfDCxrKxGllbVgOaspZr5TzKpSnTmc9B6d17LtpIJRBaPdYdR3hmLuzq2pWPAKSmnMbD40hyDHkFDoyiKIFLc/MUvxVlBZxJaBR48CpCjoQLgOfL9Lrj5mLGVIOusdRZGMGfmXcm8pOhp7zuRcyBlhWasq66Si0tRbitvl1laVAeZj8yVf8qxglJ9DKjmUgq2qGRd4V9euck87cypjR2v/pRXxVDgFlenzWTOKqbBaMtrQ04ZzXzsB327EzuFHd/XmWsc7gx8e6IuTbntLBxstjCAQPbXT/xgZOkb37w2v+bIT5VsYiX9/wO84RiU4R/wLlKODCdvcRB7048NV6CBs23+UF/11ymgWW1GqTWPbJyl0myXw1z9ooV/VH8H4/D8= + + + 7VvdbtowFL6ftHeIcrVJbaB0mqYWWhU6NqR1RYW2u3XDKVh1bGQ7BZ5tF3ukvcJOnJ9SCP1bk9I0EqAQO+fvO8c+Po7//v5T3596zLoGqajgDXvLqdoWcFcMKB82bF9fbn6x9/fev6v/8lh/BB5Y2J+rnamiDXuk9XinUplMJs5k2xFyWKlVq1uVX0c/ei72JZuUK024C7Zlnv1JPGjYbeYD199hSoaCRy1nsQA1FADZWVa96VM2AHkCQ6q0JBqblWnBNhSmp2cMUvpY0b3+bIy87OiJG3qHRBMLpd/RpkNMqTcC0PbTlEt4IJeuFGOQetYDrdGE36Twx2quQyh8Wi+rSRQMjtEGh3BJfKbbgmv71qPL9NVCeyp5K/7fsPvAQNIr55zyFpKXginnhAw6GjznVEHE+ZAqcsFg0CUURbDOCCKGuBGmEMnKokiVe2Sq95Cpq4VMFzYAKu5hfWXoDFyH4KUKK4RGgaN+adKkc6tXVpj9kdh0JfWInLUpY3lgc0aVT1ikrdPzUPsRPnUkBpDg8lPwDGAJOfc00TfozN1r2IjCEfoKbQnmeyixdyGaYhoDs0QTqbZGGIEJsVsx2GJEqbjJjt3A3G3YMW1j9CeOP4vmiTwiRcucHeqIyCuQbSEBDSnk52oXpJtiwey9q0ncKyND4lnnI6rXz7Vyj3m8oO4PuNRNIXEGeeNxH8MxQDaHYsKbvtY4jz9nwCP+B1KKSUg6snrxAp/ychrJ352KOYsIX8ExpvGpHpUJRE7CswTrsTkkKLzMG6rgfwnVMw3S2eDUUdEKrMRp3UMq4lgC9TigOi4qFi92NnDxM6T8Q3W3uru5hZ+PG10yCEpPH2p4C78f8yyAfOVB1SNMN7/T4Yjh96b80Zd+umH/k99DOb1UJpb7cmthRby9Tivi2qfahhX/rNvK2InrdmuMWTaD8doo/tz63o134LaYoKi2cH31RnU3qe0b1d3g/tKWOGAaJCeaXkMW6dcDR7yy3vxAuO7awHiOwbkPU53RPkBEupCwZBxFKdBkEztFxsjsA4TLg9p4euwjYn1JuBoTmUGqk//+WkEL7QdukImauXLFBk6OSVqJ24NxW6NwW8ixShBfJYiZJosFxS8cPJOtnhcfQMtIfCqSOVVSY9RQYXpBGdWzpHiG8DIyVullmqJtM5vLwjmR0ao1gmspeGDGjkeGS1H46rAKtSg6VvH0lyNm2Uy5bwK8HOoBLwJXISsDyT7mdrBtubxpmUFhLf8679xwcjrOcxDJfqv99Y0hSwnTwkmDemXuvMPNXXPWQQVnHU6A3TpTYZrRKss9rCi9W/1S/mnHSU/h7f97oX+FPPPHPULCc1ziF2ju57xS6hRZEKqVljNwrTqOYvokYCweZjGPmgMwe/8A + + + 3VfbbhoxEH2v1H+w/JzsAq2aCkGiQkqKlDSIJTSv7u4AVrw2sk2Ab+tDP6m/0NkLG1iWklIuUl9Wu+uxz8yZM6Pxrx8/a1ezUJBn0IYrWadlp0QJSF8FXA7rdGIH5x/p1eXbN7XHUPRGEAJBe2mqM8PrdGTtuOq60+nUmb5zlB66lVKp7D7e3Xo+2rJzLo1l0gdK4r1fWQh12hITkPYLzNhQyXSlv3Cggg4gHCG1xoSLAHQXhtxYzSwum3gF19AZz84FFNiQ9F9vPkYsmu54Oe+aWUbQ+6qNDRYneSMAS3cLLsNAlI5WY9B27oG1SOGNVpOxWTJInC+yIg1mILhHDj75PhLUUhqaSih95sFQwUPbg5B/VyIol1pKWrpyKB7rgQDfKm1yCwliUzBjFibks0DOpY1/1qnnawDZ4+OWUhaZgxky4ebPd4sBau6GeP4y6I7mIdPzFhdiLbTczuIIc0Zk8V2nPXRc8yfnG5dNZE4rYZwIjlv+DMaJILNP50azgCM3sSoo6TNUK1KkBA/WSTkIcgd0lH82hEqGX3I+XBTlZAszW0QR1UheE0ndFDn+0Ha6LLgfDLgPWAoXmWzSnfm0xSjNEVZdhrFSdyuSpBs1GQlix6ZTkC43F/aRVX4NAzYRtrCAD6DyPjcTJlJmnayjZLJqCOY/7V9Xr2o2p2kzx2A9KZRbLqFtIXSil1XaK6X3Z2TxOBH9Sa+PfDt+Ev5UBfvsWF2METOx6E9HjxNfuN9QGseOg8Z5ms6cBvbf9OaTjV1NNo4m1/03xLVGkhtHa+7SUPzyNx59TDQQd0GsDN7xMkpt3YKkYtxBpPTfCnmDP8t3guTgJZS0Ab0CeWtpLfmCqdrIXJyuTXeW5MLjbrjxJHUR3ZIufwM= + + + 7V1Lc+LKFd6nKv+BYnVT44v1wB4zY99blkGADTIIIdnshNSDZITESM3Lq1Tq5h8k2SSVVf5FFvlHyV9I68HTwgMYqTVjlesUuNXNd06fR5/Tgtb//v2fy1+nAyMzBrajW+ZVlswR2QwwFUvVzd5VdgS//HyR/fWX3//u8mFgCBoYgAzqbzqfpo5+ldUgHH46PZ1MJrkJnbPs3ilFEOTpQ73WUlBf+WfddKBsKiCb8cZy8gBcZVljBExYAVO5Z5nBFXHOAIUYQHCZzCUz0g0V2Dzo6Q60ZYguO94VdA0x04IzA4T0yQRtwmyIsLLBiOXnFWUoZxD3n6DXYf5JLQ0AmD1MuAUGQmnY1hDYcNYCEKIpLNvWaOisdPCZD+uVYWQHqPdoDuqy3Qc2a9ngxjIs+6Qu6yarG0Z27XNegjkb10OxMvP/r7ICMICt93OSbt5YJrQtw8nxsloykEJMmOtUTRVMsxlRRgpDpkEg0zg9AoSoOyPZmKMwstL3xFwAUR9PMucEoovj4LWruZre0+AWXAoXMI0LOB83sGUjx8Oi5CVy7GpeQseu6CX0bqq+PP1GJLlsIXAFWnZ4iPHhW1CGYN4xs9J2lW1BWx+KOphUIRi43KOIBuwwRsKBLk+3BM2oImsk8uZq4Au8NvSe+e4k510rfZ+iMxaE1gCT7IItm85QtlFYcEU+qSqWuZyJsjEbagKYQpI6qetmS38GP1Hnn6nzP8SUargzlXMZWISp//7xb1GGxqItT/zwuEBkZcMBUWNWB3IPRAE5n8SSKXdRPuyJVkE8GC4fC0DBHkWCFyXSW9LE+BY0N6S3FMSwwYyQn6cunhSH2Igqf3lP7haf+Xvremr/ybf/v6b2H4X9u8zVdAemxp9g4//t76nxR2H8N4blAFyWv1HV0UQD2AoysJNrAwLblKE+BpFXeUvXzxV1x9WS+g5n4kUSgHEyVgKiX3j7bnqybRPgpCGr7r2On84+u3/5WCvfZAeS494+oPBXhenNg0TfPFgHXLjqAk/SdBjJ3gKLmhcodR0FMsf6AjOPcgXoJ5nCEGJYZJEjNVCS5IZXL866/otjaQmi5LWibERUejjdDKrHXmDC5iDnd8WxtGwsp5vSL9bdWKYBY7phjRxwP0aSbzWMWA0ht2AonYtcQzdNvFOyqDnXa1F8NxT+8WcM4XuuIpcfpBNcRVLDBg56m2phRQtL58C4lqSKeU0x8esjKbHqt8Qow19J3rVnJEcZL0NWqp9k6idVy7/+lES12GCMLqcrfsIV9G5X/gQpBZsqElc6ht04jFUpWO+wLdXx6l1mjOr5Z9Q3Lcj3dOM47tsxse+hc75Txe9J6I2uBF87jcFb2tXciuhz5biiF225V9FX7nZ8/Dg6bRQL+a406akDcaZQxrj7ROj1Vn5S1RmjO+DGnbIx6jwTuvrAD2pCT2885y/aA7bfkkitQ4mCXGYnnRaDPmM6Up6HeYVqFqoDjVAr1+e1WYFWaWWkPtdHXfrWrD1XJ/ViaSyVyHqb4qwO+gyEszK2v9fYmmSMFJrXEJ9G9QnxVWaHXZPnuhRvNPqcgd4biqEJauXWUMucJQmT8Vqfp+ltV2LNjsgRykDUusIZLz8zQnOgMs026xHPGt5rl/D+r7S99lLev37LNP32FeJZvozGP2gMV9q8dmR6QFZtXI8F91UvnLuvtWctWsy3EQf65HmNRvz2ifF9xec/AXxtJb5Enguti7zLd/umEPCvxscDVZi2KJVWCbLEl852GePaQbNGIL4frLHLr8v/DuNKzQeVEwQG4RljYX9eS60Hg+uKhofPlXx89YV/vKQN+w343wFzzf7hHP+1MTVZKkz5Es+g+eTqlUP9h1+z32A8vcMchdq/0Eb80EOhS7O1zsK2yK9IHs3XX8Fct7/9/Sd0/A7xKdz+1/AJQRreAok9D9P/3P7295/Q8Qfb/yr+HcHfgjYJpWCMa+9Km5/b/8H+s26/b7V/0uXnvB34/6vj3fkXh1+98ZR6oP8cbP9EgG/uGS8QvuePXGD//KH+swtWED8D/9+TzzcQ9vVjfzrU/rHRwesHNjp4/didUK47z9Hd/PdRIj40SqSmDFSU/9bRe9bpFvOwjvo1pamDcuGbLs0TXYr4UC+itkGBUMsFiNrrHalDNJ6uL2rE1OiYzQ8N9nbYoTS/jZy/n7a79PWHulBHbfxYKeZR/xU8ltE6ZX7YHSivYteE9uRo+OQK5k2h9Sjx83zfenxgjEbv6upoX5vbUnT5hd+1qbp7J/e2jtq9kyoWRVjFsvVn9/eiRjxFOVk4yeTPTzJndPS/Qq+a5uZP/+OE3x059t2IgNH4dyPSLYh0C+KY9KzBdrs5VvtDu9m6oFEayLSLid6CoFoDyNSe1TOpzzbvAv4TwNdWEiqG3BSv7fsyyfM3BZ//GFNI4QaK6PWMG0zN3bYg6vmuyJZqdOdOJkpjjvb43yWFrCuiyghCddxFdnvAFkRdReU/T/Zn3Rk85yo+/i4l2Jr93jg+/7ukkIH9CCbbVGYwwH91C4LiRLcsmE5FguXqT4f6z3TNfv3xO6WQofavPjAdVA7qd6SI4kZgWw+duw7BamDAfuVIZrhmf/v7TzFs/C5bEKH2Px9fvB3f0RaB5DebUokO039gf/v7z0Po+EPtfz7+XhGZ5ztiSkools+3INQnEZW//Nz+D/afNful32j/tDhB/J0/6p7/v2pbqiCaTXH49VGy6Ha5v7f/HGr/C/37+PtvQcwKDnrlAvvfZQviYPsP4mfg/3vy+QbCvX7sTwevH9jo4PUDGx28fuxO6RbEgVsQuMpRvMdVpaUphtLUWJamxV1KU7bxSmla8lON22A5jL40FSpip9nWau7S1jS5aEL7k4jk0fzUquQvTSr9SCKZq0fGIpUyx6jm7WZq/oRS0f1Tm1Dy+L9RwlPT1dSmskvaGE4T+7HN3gDB5Z+nw1PLVXymWKNIlL7vrz+hwj4iPOq10mQDn+pW1OJdopfmlJJE37bf8NJ0i/29u/G49ZfS90bTqVRi61zY1tgW+0OlNd2cwb2xhBuooTzlzLPfivpt+y/Vx11JZR4PXj/iWH/XKcgfZptbO0gGqnPcdZDipALTKvmlpb+1g9Z/P3+KxFbiyP/eSqjs28ij8xeCxM46FMrPUb3glZ86MUX9mG55gkrT27Fa4ceo3wS1LcrSRskvPb3ycpcyFOXzYrkwaTxNxqt4KMfv+3XLkbB1gqwXX8dfxUT9tE7JgI+SarQpTVPK7Q8JKoExHtOdFsBpAZzAAJgWwPtSWgCn9OMQ7gLyex+PW38pfW+UFsBpAbyj/tICOC2Aj1sA43xaE2fVZbunm8G5zNEe3y3PrBGGb2DHLyPOPQ0M0uI04PmB4sRn8jPxmXh5oHgE8mL90sbaIaixHHealBNfI1Pt5lOlcEo8P7gqfnmL1gTjmanxPjEBo8DxmPQWkX9kL954QsgP7sNh0v64HrxyMteP77svhMVlxfpAtmdxPQo9ST+jfbc/4F3CU5jx81jw3cwoCbNP4zN7PIrHLXV05nbgc3beuhslzIbLdSZAd9t2+ZKC24y6X9tAxvaz+Qiziu1FLqasIqYn24SfP5u8J+lFKfdqboVP8m+eTh2RxIl95EOU8uJx6tjk3TjeO1khLOqHYm45czYpz+uKS9wfc6/jVWnx2Dmuh9Jt37pN3vId24Nwk7GWJ31vJL4HVPuqcBqyCUKOVnuLHl7I4HVYfs7lKTPSDVTLFWUoL1tbcGYARwMA8sDwDoFbhb5E8eVlj0ww6bvWStl9i6vtp5FtYYgHPd2BtvePD7KCWARf5JEBj8YF0tLWSfM05V0OZnuVM6/PQg+rV9zh3lBBQ3C//B8= + + + 7Vlbc9o4FH7fmf0PjJ+20xQMJmloQztcbC4LLviCU95kWwsOsuXaAhP+2j7sT9q/sMfGJMQhTUNJ6O52QCNbOtI5+vQd63L+/vOvi49Ll+QWOAgd6lW5Yp7nctizqO14kyo3Z3+8Oec+fvj1l4tLl2hT7OIcyHvhu2XoVLkpY/67QiGKonwk5GkwKZR4vli47PdUC2TRG8cLGfIszOWStjJycZWTyBx7rI2XaEK9tGa0MaAEBoC6XO6iPneIjQMFT5yQBYhBdZjUQB0Yo7JrgnfI5NIy7doHXVza4ra/JmIoB9a/Y4nApid1ijHj9hvcjQ7QMgiojwN2rWLGAMJWQOd+uCWwNn6XVK6OQmx/AgwGyI7h/614+n7zf3Wi4gnFekfFrmNSYhf5/KlEPXZSsyxAU6IBblBCg5NB4LgouJYcQk6gR8eqU8aoW6cBDP5k07XwPvm94u6YBsapmGCL0SDMVKztbhAUhhuRnEhg5jyWFMZWT/DIwVEbI9DE5QrZrgu7+74oPADIIVDro2CGg6+go1E/hSYFuBKjeg+WjOrd6GSEcpv3KqfByANnljccrwHdB5SEeQXZHYbdvOghE5icGNF2JlMCCZg4QuAm0DKY4/tYfr++b9V0UXhk6I8wZuSEcwQuhhi+4c1WWZUDszbMgRJrFtv4w5DH8RKmbGrL75Pfc3iNRCk7htekn4ijeIDeyW/NfopLPiZAM0CTtuPdkvPt23lh0KyUTSOa2O7o2iqRhXnFO321HHWcOjFdeTFukfl4xTv2peL2tIkzWJXPdVeaqUZxOi6NNNSSorFahz6Wc2vll63SsNJxp7zdrp31riuCLVhze9Wfm0LX6606Ub8pLgyx2NdLMh1DH6Bnq+3sSW17BplbgjIFO0nnCuxqSb7pKbJZUshgJhN4JhYhmt3uErslU6MZLe7IXC27piF545HMW+5oamqnClrVtaFr14e6lCRFIklu8sm7aCd5N1jXd+vDdflWUiSlBe0vp3VZzNY9PSkiOdWM4hjrxS+q1/3u/nYlFebd0hVRu/TlXsk+g3woi8w3BUk8sC5ZESUBE0XGM37xqe3LmNQWmq7UbcFXDqQD8PJ/N/UijIMu8Axy9bwc53qjIsd5T/C7gCcz9tYhA17MA5tj+/kYN+xUzhL8VtMEvx6/rb/igbxv8sU95l8SNJ2PMvbfxe+ufpCHuZwdnic/038zPc7fe/7zNf7979ofe/5+pn9bgvWOL8r9J/AP5EVFPH26rlJlqZZsIeFvU3mc/yV7Ge8HtP3H9wLr792U7h/0DH7i8NI+0w87dz1kVJaKuN6/jNP1P90/PQtX9t7/adFis0eP97+fDf71QCxOLdeG/W8fnqXQbJZZH+SGxjKEvXDDFBTeLPGv+7BPHroV3m5VGJT3x8aYH1yJq0Gjkj4vVWTY1G6WIyjbPJ+PWpVocFU77xWVhQXvMAe3+qT6dNxSfNO1DqUb2teiWF53iYfaQ9CR6I1t0k2h9hry4WdDmSHj1BtcxXKZc4tWrv4Ah/P0jPbyx1Rj6jCs4eXmvkumgYtIcjjPXIztPr0+wyVFfi2K7ZdHo0/nIf60wEECQPaO66vH+OcA4sacI9zbBDiEx104vNzQmzTyjukSijjo1Rqi0dHatUZDlLX0lrNNNxRZO83t+9F95ricubkDfuKY45hC9h5vHWd4/HorLgbxWoDR0b6iGQ8R+AEOYmKc1AjDgYeYs8B7wLIfFZpOGF9EH/jzeW9JzERgLgpbcaDb0iQGFMYxIAWTO7GmpBoGcF8il870tzKAeyplHlpyAZ8HzU0weig2tg6sFR6IrCVNk2jch38A + + + 7Vtfd6JGFH/vOf0OHp+6Z7MKanbjGtuDCmqqRAEl6xt/ZpU4MBQGMT71O/T00/Sh36j9Cr0QjMTobpN11XaNGWFmLtw7v3tn7g+Qv//48/KnuY0zM+T5FnGqWTbHZDPIMYhpOeNqNqAf31xkf/rx++8ub2ysTJCNMiDv+O/nvlXNTih13+fzYRjmwmKOeON8gWHY/E23Ixsgq72xHJ9qjoGymfhYUbNRNSvgADm0hebamDhJz3BpQAEMAHWZzGUtsLCJPAmNLZ96GoVuP+6BPjBGpncYbZDJJG3KnQu6sskRq/M1NKplwPr3NBZYnkmeIESzLxvcgw7Q0vOIizx6JyNKAcKmRwLXTwncG79JKlPTfGReAwY9zYzg/4E9ryz/X51Br2XUCKXErhEPBnLW8yxb8+4EC+MzzjAAU4F4qE4w8c5kNCZo0JaRbekEmyyTOxeIQ8+Wpy5W4s+r7CPTntrvr/VvND+zrFezCsLIs6Y51XLqoM8j2M8NLT/QMI/BzQ7NyTYhdAJHdYkJcTHUIBqqWZE4UMmvW5P/jDmXMugzKPE221nHmu8vRTKJBXFjBPIYDS0UtpAGYG7Svfncl/kt/numk7uWI1sL9ANTuXiVduU+PDJo5zrWeEIfe6ZtAyQPHulPiwUu5O7/Gh+ibxJ99eKGfvRV4+pc6q/BN8YcN+dK6UbuPNDt/GvdPp/lbdjPn+qn+ql+qn8r9d1ntYjZrCe1e7azZa2/DigmZBplu2tgeh8xCZue5e4/520kNl3NmyJvRV1ioqMQdwPLSVhNOaIy+8iTkma2KbJzvKPpQDZjg1qQOHGUPB8ypeIFG7jLl+v7t5q+NJ7uWYBMNboKq1RbNQtmLdlSEkqRlfsPH3ViUaSgOT2T+F6Hq/NqW2lx9TovKk+5sEg8W8PpsFmS4c3h81Uwyt0LI/MYwWoRWAxSiK3qRwBYrksCH0XL1QGo+VJ1DMb6+vTJRejrgHJALHoe8mF3ExL7HHyDhM4BAkGznHjkycV3nJBWF25F5un1865Td5KvIyT8qAMsOkQYKJ7m+K7mRTcZIkAeMnmpwhYq8ffTTL4UOq8wFShHfrPhRBBePHMjmzjfJ4YFVbMWUEoOMVs/tWzverHaNORvZJ3ePvTDrNIrprPO/PYy8lVD1H0MhG+Nzu039I8Wj9QM2e+MOBpEmvjOncSItA3irPL01uReqFxUWDa6QR0ToA76SJdX5YlICVJ7aU+pfZn8ohE8ZLy/fv19N6l1v8QBqF2K7iZaI0flIg8k6D7oZc4y8P+Ghc2Jt+xw3i7ZdRc5wVGwluOaRgfA/0go1AH98NsR+eEwfC51sb2nh6FPl+Jc5JqGp41blrPyzrt3Qb7XKJd0NRyb9vDOKOCZfstYXbkUtq0a1m1xNmriYLRgLPNGsjvK2OotShcDW5jKKjsZFYaK1hTCkVyDc8wDY+GWjEK/3LYnjNni3nbuykWzaATmohvoxSuns2iH3QY/U3m2OyiIZATnAD2pY6fPOraj4sAoShOwE7dvwa6m4OqOJOoFCfemIoZ9bGCsmK0rbDZFojbC2SOZ2/mVrgrOaCgyhj2c6Mq5pC1qSt82a/2BEBdJwPFWZ+I6b8bbK+++/6rWv29PFUmQmnD8zaQm8ut9zy8Sj88VlR2hAfuL7Fx98fk2FRn8bgwkXrlxxU7BfAvbvshTVy8K/I51iRIvFBGWRDRlZtctV0SYmykDqWYWXWlHOgAv92d9wMI44JphClv5ohRtB/WyGG07RfcK8KTqi3WIgBd1wObIfibCDVnltzF+i0mMX4dJ6y87IO/qDPsC/wtFZcCEa/Y/xu+xfpAHX053Hyen8v8sn4/fJ/PnU/H3zR1/aP+dyn+tQL5jWLH7jPgDeV7iz5+vq1CeywWzGMdvQ/p8/BfMecQHlJePbw/593FJ+MNgDT++f2O+HezWdx1NLc8l/p6/jJL8n/CnrxIrL+Z/SjhbcvSI/35Qmdc9np0Ytgn8twv7gq83SrQLcn117gMXrutFidELzOsu8OS+XWbMZplCe3ekjpjeLb/o1cvJ/lzWVJOYjVIIbcv9i2GzHPZuuYsOK80MqIMPVvqE2mTUlFzdNnalm4oK92n9bEonyH1QpSXfJx9uarg3rlaP4vcnyVXa0fyCKXlMvO0BaKkSf478Aeg+fm0tgDmHubez/QfWO35kn4rWqBnEOQ9ph4vY012t1V2tdNO1i5xDPIVZWySKTA950fOpMw7D1HA0as3Q13hItQGOhuVH9+N3DMITx669BHOZT72Ks2qNX8Pxo9dwJIQfve4Td0NgPZXIJHH3bydk9rkzeHu+AYS2GhyjtO0FpVjmAYP115viQ+NXon78Bw== + + + rVTBbtpAEL1Xyj+s9kxsSNKqQXYiEUKL1LQIA8l1Y0/MivUu2h3X8G059JP6Cx2MSQjYqpT26J238968ed7fz7+C61Wm2E+wThod8o7X5gx0bBKp05Dn+HT6mV9fnXwIHjI1mUMGjPDadVdOhnyOuOz6flEUXnHuGZv6Z+12x3+4+xbFhBWnUjsUOgbOyrvfRQYhH6gcNH6FlUiNriqznYAzEkB0jAW9XKoE7BhS6dAKpLIrK1QjMRGuFdRgWHU2WS+Ji1c3Xvv1BQpG6rtYAnadojkA8vcN98JBLCNrlmBxHQEiWfjFmnzp9gBb8XUo1hMOkh/kwZ2wC7ADY+HGKGNbEaQGpsPLgdHI3/Q6JnQH9Vo+tvsO+QQUWLnw7qW+ofbWKOeNRTJEyLypgz48iVxhXzrxqCAZCUkS2EzQCmmRQjlarf8fKGfS5ULdKoqCRq8n4kU5+gtV57LFLj612MfzY77A/4sHQUSMMRpbb84mKTsEqyRs01NrjjFIBlW4OjX1bIHfsPf99BxOchCfwN8L8etpGWC3CfAY1JsfpSyT2mMEqwZqHnQ63ARhJFKYSSj4vzhDnjRKLH1p+pm3L4Hf8BSUV8vn4+oP + + + 7Vlbc5tGFH7vTP8Dw1MzcSQQsmPFVjKSBbpUEImLcPS2wFZgLZfAImT9tT70J/Uv9IAulmXZjhzHSduMtLOwe3a/c1s45/D3n3+df5j7hJnhOPHCoM7yJY5lcGCHjhdM6mxK/3hzyn54/+sv55c+0V3sYwbog+TdPPHqrEtp9K5czrKslAmlMJ6UKxzHly/lvmYDLXrjBQlFgY1ZplirIB/XWYmkOKAdPEeTMFjNjNYMVIABgGOY82bqEQfHKp54CY0RhemkmIE5YEaj1wTvoWFWY/p1BFjsasXNfi1EEQPcv6MFwXonzcWYsk8TboMBKIM4jHBMrzVMKaiwHYdplGwRLJnfR8U0UYKdj6CDQez5KL6WPEKOYNCzm2EMnLO3trmLlezM74Vi1vd1VscEx960ZHrBRRjQOCRJyeiWVOQM0ASPPJyJBEwT0FKXYr8Vo0nHC0BHIwQGrLNv36blQatWtcxs4vija7tCZtYV58laNet6TWL5ymzcJul4wXnOper39Yk3WFRPDV+aaibvjisjHbWlbKw1YY95ai+iql0Z1rq+yzmdxkn/uiY4gp06Czm1hF7QX3QzuSXOTJGXjYoSjmEPwNlaOz1obd8kqS2oLvBJulfAV1uKrEBVrIpKBlOFwDWxCdGdTo84bSU0W9nsFs3VvGeZUjAeKZztj1xLP1bRoqkPfac5NKSiqRIpeosr7kWn6Hvxcr7XHC7Ht5oqqW1Yf+k2FXF37vCmiuRYN/kxNvjPWtD76v32NQ3sbhuqqF9GSr/inEA/VEQaWYIkPjOWooqSgImq4Ck3+9iJFEwaM91Qm44Qqc+EAfqKfrcMHuQIZ3gKvXZazXvjoqbkfV+IeqBPaj4ZQwF90QB4zvnncr1hr3ZS6G/hFvrrc9v4tQDoI4vjn2B/SdANLtvh/7b+buMDPdhy+vx+8rP9N9vj/nvn/Dzkf/+79d/bfj/bv63B+47jFfkA/wN6URWPD8eq1OZaxREK/22pj/t/xZnn8YD+dPle4P17u63iB2NHf+Lw0jkxntd2fWTW5qq4jF/Gq/f/Kn76Jr7y5PhPz2brGD2Pfz+Z3OuByLu270D8K8O1lFitKpWBbmjOE4iFLyxB5awK91qGOHno1zinXaMwLo/NMTe4EheDi9rqeq4h0wmdVjWDsfX16ahdywZXjdM+r85suAcb3OBJTXfcViPLt58LG9Y3spzegJQPdYaAUeDmPBmW0HgN/fCTqU6ReRwMrnK6nbxFr9ZZpryblJUfycrONUi7bBrG+9O1kZekCFJSRPGakNkaq7Pb6dk8ImGM4yaKV5naPn72452X70lDD81VkZOXCn7jj8/W/1dH60HhrPi9OtLwJMRGV8O+Z4XE4bnSsQQp59F2ptuwbZBAAoEuQhDrTrb7sN4uCEqSjcZW6igGcx6X+upglKfRP4aOZOQFNxm+HkbLJH+ju+pZ8Xv1Eln/0sHW2b7mhyF1YZUcOniT7ithgJ/f3b/EbBKw8wOZLZ7ieOOlR3dqNRtLvoTh4GGQ12ZKYoAsgpe4HW/iEmg3lRo9TveY7uvxvhTpJZ+JMGJPcx5f3l/kME3wxxl4BzjDgY+vJ4lY2iB+h8MR4wQuX1bUVpgF30PUrZcUgUdRgKg3W5224rhTGvoHaiEvT+8+95Yl68fLsvkwkDdijL7Je//Oed2pYp+Xt2rpN6NFHT3J6+gqJrfq9cU0CHCXglmJ+KWis4fq6uEYCbR0L9OFpu77yrD8RFG+5xtFsbT4rvH+Hw== + + + 7Vndcto4FL7fmX0Hxle70xRsIGnohnYw2PwsuMY2mHLnHxUcZMuVZQy82l7sI+0r7LGBBEjSNilJtpvOoJElHek759PRkZD++evvi/cLH+fmiEYeCaqckOe5HAoc4nrBpMrF7NPrc+79u19/uRj52JgiH+VAPojeLiKvyk0ZC98WCkmS5JNSntBJocjzQmHU6+oOyFqvvSBiVuAgLpf1VSwfVTkZxyhgLbSwJiTYtAy3ChRBAYDL5S7E2MMuohqaeBGjFoPmKGuBNlBGZ0uMbpHJbeqMZQhY3KbH9XgNi1k50P4tywS2I+lThBj3MOOuMABFpSRElC11xBhQ2KQkDqMdgbXyt0nlRCtC7gfgwKBWEIUWBZZkD2NurzsMoCOMHEZodNCwHnvoRbEFRlkMbQVzO3VVTmfUC4ceStoM+XUSMMsLEOVyhUOcwu1AF4U7LPgRzMx30SdWw94keCkGa95k+rIsFgljxH8mk2uYIRpAKJqj1OQTaPCc1OlEQiH83JOCNIpd2S5hiJQBW0c2A2qpN8ubXpBaTgmO8oN2XrNc1ZqglJS0GsRrFFmbnk/Phjn1GDLQgp3UHAc0UAj1LfzovtC1liR+BnNVy003zt+E0z+2v99PDhbBiY4mBA3aFRnm5+SKoBt8HCDdTsuBUG5bvt0/1oRtnCGv+4SwKfTqERd26KEF+3KVU0iAbhL3EDRwxXQu8lJg2bBVZ+7fgmCE04B0hWfQ+FHwvhXpovAVor/XMXdWZOajqY7/Ec/sQbzMXFKT1G6tLplto1Wr1yXFUKnnW3QpE4rqBBMKonSG6HV548QCn3rxsdfyIWWZLc/DWxa+7wjdj7BC9yP4dqWmpjeoNWl5wbU7v3kTF9RGpWybycT1h0uniOf2Je/19HLS9kRs+8p83MTxeMV77kjzu8bEU1fl84Evz3RTmI6LQ8NqyslYF2GMReyswrJT7Ffa/pR3W7Wz7rJScktO7K56sV3qBN1VO+k1pLkpCb1BUSFjGANwdvrO7tW3a+LYKWlT0BO3L0GvphzagabYRQ2rMwXDN3YwNtxWB7tNhZiNZL4nc7no2KYcjIcK7/jDqW2catZKNPq+K/YHcpY0GWe5zWdlyc3yDl23d8T+un4nabLWhP6jqahIh233T5qETw1TGKOB8FkPOt893m1Jh3l3BppkjEKlW3TPIO8rEgvtkiwdGUvRJLmEsKagGT//0AoVhGtzY6CJbinUjoQBfIV/2gMB7CBzNINcPy+n+aBeUdK8Wwo7wCczH4yhAF8sAJ1T/fmUN+RVzjL+VtOMvy6/i18JQD60eeEB8y+XjAGfHOi/z98+PsjDXM6O7yc/0/8zfd1/b6yfL/nfi+v/3PP3M/1oCfY7XlB69/A/kJc06fT+WMXKQi+6pcx/G9rX/b/oLtLzgPFw+55g/91Pm/PD4IA/qT9yzwbHnbuuZVYWmrQ+v4w3+//m/PQovvLg85+RzLdn9PT8+9HkX6mSMHV8F86/PfiWI7tRZj2Q65uLCM7Cdbuk8XaRf9WDc3Lfr/Bus8Kgvjc2x7x6Ka3UemXzvdAt0yVuo5xA3fb7fNisJOpl7bwraHMHyjAH13iyOB03tdD2nWNhM8WofRlf2MEEuY+mtj3vk48jEauTavV5/86LljOLGBSe7XptfammUhRBRfZP/u77pEe4xsivRZH79Jb3SByhD3NEM6sPbieexPYrDV6s8Q2SHPmC/cbqPXg/uyjsvOJd12YveFH6gqchvPdSmDWDBTclcps7l2+9Tefue/3+pegAHN2pcsbTXa+b66fRwh1vo1nX7D313b8= + + + 7VjNThsxEL5X6jusfGol2A1QUSAJiITSIDUhIiFwNcmwa9VrR7aXJM/WQx+pr9DZ3/ywESGFDZVQThnPeGa+b2zPzp9fvysnY59bD6A0k6JKduwSsUD05YAJt0oCc799QE6OP36o3Pq864EPFuoLfTTWrEo8Y4ZHjjMajezRni2V6+yWSjvObfNHp4+6dJsJbajoA7Ei2xb1oUrOeQDCNGBMXSmSlV4awC4GgO4sq1ILGB+AugKXaaOowWUdreAaBtMxEw45OlYi606G6IskFtP9zqihFkZ/ZCKFdKeOB2DIesllPtBLW8khKDPpgDEI4Xclg6GeUYiDz9OyalTD4BIxaCvmUzU5Z5yTOVM07gCHvpFKLyzE+4ZJpxrWN47AChMD0UWpYj/tGybqUhglubavL+wrOmhTF3oMRqEY1U8V0MSSWM6ieyfff8VZktQzM29SJopIu0UfmBuVS5h5AygWxsaSPu330W9LKp/y3OQXzPMxWFCy0v/5GPSYDihPUrY7vpTGQ6umHOBZ7VE8oVXSkgLy0HginCe4ij13DDVTymZkVdKg/l2gXFC1wBgpUloebYbb1T080tkuc4e6zqnW6RJJiyKSVkm8c4T1mtfZIipJNeQkt5Fiaki80dc4SGuSYzdloOESfb7T9Bya2go0Coom6kyOxDtRb5uoxOM7TavRdOMxA10Ym60OuBKuL3ZK5/jWbbXpIOxkPx2WD8qH5a+fi2FvAz0EN6AEdjQPUFQLMd89zndUaRXHnVUDmOuZrK/Y288tpFcJoC45p0MEqU0F3LCB8bIwvpQ20Nw8FXDxlVNEqWDWKSGIBrtjnJlJRkTG0cvz8S/fQxcG/PhU67B4ePHUdBUVekgVBl2TCg/S7nC8NSMMT3p2w+2Xo9+L33BLKzbEZ1MfSzPv8dacJMZps6DYsU1+PRfa/SfYZN15jE6xYEw/Dd5mrWwAjaj/LhyN7Jp9nbwL+2xPwv+fOthHz9jCWLDizAwnp9JoMKnDweQV8LkBaLSMlfZYw0pes1VfOfLcZ3GFtmVJZLNT2tjbjOszuKcBN6uFs0rX/epBrPwwYuUsJTKqnmWj7HgO7iwZhEem0fD8+C8= + + + 7VZNj9MwEL0j8R8sn9mku1xQlexKbbewEl2qppS9mma2sdaxK3tC29/GgZ/EX2DqJv1MgV0oB7S3xDP2ezPvWZ7vX79FV/NcsS9gnTQ65udBgzPQY5NKPYl5gfdnb/jV5csX0V2uhhnkwChfu+bcyZhniNNmGM5ms2D2OjB2El40GufhXe99MqZccSa1Q6HHwJnfeytyiHlXFaDxHczFxOgyMqoIXBABgmMsahVSpWAHMJEOrUAKOx+hGJFJcKGgJoeVa8PFlLB4uWNzXkegYMS+iT6hOinJAJA/rbg1BqH0rZmCxUUCiNTCt9YUU7eVsCJfl8VawkH6gXrQgXtRKOwaja96wj6A7RoLbaOM5TtHHeK5vXgtHKv+Yz4EBVY+BJ+kbhOcNcoFA5HeIOTBtRafFVwrkkdjkonUzDgbCVKP9tmCRA332YS/oBMlhDdGY+t5LjWrMlgJvNKxlqcxSFzLvDo29WhReESBR8rUE1J3pVIHmvy8yJF0hSDTCdzUurUWc6qpLzSosrCgI91SiHQfxx/YzsjV63N2fN1WwrkqxKt++tUNiC/giXd6v+Fla2sK/MfK9K3MhV3UinOCC7MquJIrycmXGe3qmRTWF+bW6BNcmMd66dlCv2sh+pDjlrH0Yjxb6OQWKhv9v5lo6yE/8SPxd1+/A0/tjTFRuDVMbVb9IOWWg9QA1M7A5sNE+TCDlVfg+DP/8SaoiuV/MhRQQ47y8005NlGuxtHwyDzqt/oZ9vIH + + + xVZRTxpBEH5v0v+w2ac20TuxxjT00AhIJRElHlpftzAcG/d2ye6cwG/rQ39S/0KHu0NQjohCJPDCzux838w3s8y/P3+D03Gs2CNYJ42u8JJ3wBnorulJHVV4gv397/z05POn4D5WnQHEwMhfu/LYyQofIA7Lvj8ajbzRN8/YyD88OCj5963LsEu+Yl9qh0J3gbP07pWIocIbKgGNFzAWkdG55W5G4JAIEBxjQTWRqgf2BiLp0Aoks0stZCMyIU4UFPiw/KwzGRIWz2/M49UFCkbsy5g6zCKFAwDk70vuCYNQ2tYMweIkBEQq4U9rkqFbcMjIF3mxqnDQu6Ya1KEvEoUNo5E/u7oc372wF4Zns98V3gEFVj54v6SuUXhrlPNuRK+JEHu3DnLkunTit4JeW0iiwO4EKUa6CeVISf8lJf8VTkFIoF00tpjsVKiZBztX1AwaM/EKyRqDRDj3K2JTjBb4K8r+Rm1awj6AbRgLNaOM3QshMnDbvJTRAEvHhZJtM/3bpteRClJSO6tBW/Smz8OXox/p5+veWbdLRK6MjYVqSKU+omupEmnR76RLhMpr4XVgjGdKRjqrTN65HTO8hH5Bpd45LjO0GiiVF+MJ62iP5d+twaXTea6nI1k1lt6wC0pcTZOfZ2iTgtHcHG9dpE0fgUzFEAXOh2HhrMKJ1rTxd9bzWYu3LTg6KOzxrSbotUxCz7EZ6R2kqhCspj/TR3hHom9+zyjxttDGiljsWN0LQ3vQR2l7TVjbTXRpBl8sH4G/sALNT9P1x03XnxtQz9as1Ezclz1YLuC6wvLN/thXkFhc+7LACyj5KrMG8qs9SKKsrFEqzKpdNFtk/RWbbHo13X5P/gM= + + + 7Vlfb9owEH+ftO8Q5WmT2oTSPlQdtALSfxq0lDDWPbrkClYdG9lOA3y1Pewj7SvsEgh/g0qh0GoiSCG2z3e++53v/Ofv7z+5s67PjGeQigqeNw+sjGkAbwqP8lbeDPTj/rF5dvr5U+7eZ/U2+GAgPVcnXUXzZlvrzolth2FohYeWkC07m8kc2PeVsttEWrJPudKEN8E04r43xIe8ecEC4PoKuqQl+LClkQwgiwNAcYaRKwaUeSBr0KJKS6KxWcUt2IaDcXWPQQqNMayr9zooyxz2GPNziCYGjv5ExwQJJ7cNoM3VlBvJQClVKTogdc8FrdGEl1IEHTVBMBh8GpVRJAq8W7SBA48kYPpCcG1OdcXOLjBoaiHVTMOAb6R0QmGcMzQs1wND1LFW0ifrJ+Ul5CsFU1ZNCF0j3pDONOxZYXa6tJy9QIVX6okftFkUElHZq0rqE9m7oIxtVOcf11a9HfgPnFBWRqd5N+UnFN6bMMSmlUe8q95jg0II8uPoXqOttl5ggBlW6XaYITKS8gLHHzm9VSFdl/YxQDUIhqW8mdkzjucNsq4QyqeEHLydFIS0HBmvQVVAWCLw2ietsbi7p2y20CoMHudX9BbR63tccRe9ioVSYeJxzh2k7xaOJisL/Uq/Yh/ju2rjV9/elXflXXnNcpjPpwXgF6LeC2lhEA1cTfQ4O0zURRF4wP5SUi8KTfjf+QjpYBvRPz1kOpKEwwyUxM0LwhS8PTjrLViugHjvmLorhPJtATUNkOvjcrWNvSrCG+e2G8E3ANGL8weTezHQWvAEiDk2yKjUxh3HqP/UnqPEiFJJk5l4QVyL6+KYc2zlFXdbKSsLO12tbbuPCBTc4nZzhYX+q0GxRtJ28CwHT1WCws/tgeOIkO/AWQ6ckmCMdLCw0k7xI4S0JL/+Z8BUiRcdl305+hb/vm4AmTJ5gCQTvkfSl08YsoUE9EGxrS36tQbfOufkgcHAca5w1caildso+9dlkO4Ya8pbVtL21xlbx77ANEhONH2GraQFh6oIAW+XFZbDZ2ZuHmaqIJsp4XtzQL2pS87NqJkT9Jw9cY4/ro3P8FV0hl8DNnVXEDfj4OcpjOHkX/q81FznSB2NsnCMsWEWXWgMbkPsBdchcdf4CuX0Hw== + + + 7VzdcqM2FL7vTN+B4SqZccBOdnYyib07OLYTT5esa7vZ3UvF1mIlWGKEiO1c9236CL3oG7Wv0MOPCSa4IS4G2qAkTEDiHHG+j3MOEuKv3/9oflzOTekBc5sw2pIbSl2WMJ2wKaFGS3bE96NT+eOHH39ofp2b4xmeYwnaU/tsaZOWPBPCOlPVxWKhLE4Uxg31uF5vqF/1T6MJtEVHhNoC0QmWJe/cazTHLblnOpiKK7xEBqNBzc26A8fQAVAnSc22Q8wp5kNsEFtwJKDa9mqgDjozEisTJ7SRgmPjlQW65OCMJ3kdJJAEvT8TXoO1pNEMYyHvdnGhDtAy4MzCXKxGWAgw4SVnjmVHGvidT2oltZGNp5/BBjri95j3GMcXzGS81sHfkWOKHqOiNuBkjviqR0xT3hD7XLcdq09ULa33W/IYm5iTe+ULoRegijPTVn7pK0M0HZAHJi45mXZNwIoKZcgWV5gYM7DYDQI4AbdTWVL3pxCuV2CucYxiek/qe9ULADhzeoURMCfFFTfVFzBojkD3RDCeDI5L2nULKeiDT+T0fU7qVbLWprqFiq/ka5SfwF2D0IP6+VHD/z2MUrYG55BJm3EwZx70vSG2g8w1mKM5Y2IGZ+lsikMcrxnFJUDSg1EzDI4NJHAH2xNOLDjZbYMIBXuVAVcf1XqF6+tw9d1IWUGN3qwRIPOONf81UCEIlgJRbTKB/l4zPkemdzN+mRGBx3gpan6VD2fDWtYGaOomdgcn597P4f8bVl/zSIA/DdGNHGvJQegEaz4BWYooGkcwAm4REALjP7m5zyaUHY4Wgctf49hDpl0YkH6OWAIk1xA1zt2f+uHazx5D4IS/55DtkcbPJILMixk8CYWiNp6Fop5QftkVuhGCCPKAbUXjnC3C/R2fpJJSeTXZBIU42SsGT8rebRjZD91r5U230VDRmWPjzw/FhccBxzYciGAXHKnQS4lehy1o/uhV+WjqfDQe/wpMScccUdtCHPody0gvzZU1c/9rHENYXI7IIz5onJ43TnNJZIZo2hd4rrgdCDH889ffshlDWkvvUnRr4gC30QxN2eKlDClffu54cWtVQX4TKqnXpOOa5G6LTf16Dp24Q8BtRwhWgK8Kg9wm5/Mk9j9Rb8yd7LjgafMVdLAlZqGWRpk4UGTeEc04Ki6UhQvFZDHxeOhnoD02cexwmudtUaNUoULp2/5hHVNnNKsoslsSUwIANcsyCZ4W6+2Lhi6lK87XgZTB8RdPk80UsSJKCYniolMCoqyn5upJM3M6PNeXfxgk48fMk5r03nvMTHjlI8fhscKmFQJKvANKvEuaRdjPxE93aSEKnPMdBjGo97pUCEp/joyMoI8rc+eXXIUe0fcwfrJNX7o5razMGRgwUPbzff24rQWl883dMnfTdTd+RVu70CKl0+0YmrbU3mlVSVVW+t1P3/S7/mqeoVB93F06d/qjrp568jMUvdTHl+9B8qP62F/plpGd5E53qd8ykDxQ92yPSSZCs+7vW5Pnl73w/22UVquAzCMaMfJPOt5MlpFf1M87r6myjKqkK15U6GSXZfjyvCwgkygWkednRf8y64rLi1TtlHW58miyvKcSi+r0JaE+HtvlRfV79sg4S6xKzqXwLEPp28FuAQNf8XmQ+GKoN7PSIN2Q1AU2zeJGpDZGs1+DVMaXXuQ8f3Rcdvt723u3QN/2GxZxz8Yve4eXLbM2xyW4kemYCWT6a28qo2wYZehOwxR5p8SdhebOtlDkvjuey+0ycm4LZUcZbVEIKaqlLjugl7BOdC9JwLOria1nb6qRVfVPR73BG9tdUT/E5sbKfa96iKbPW0gBBKmXO6dYnjKEbO1pQnHTNFt6Ef2UgC84oiVYopVC88tLswGWrVbyoNn2gQOvTWj4+OcRvFO9Typ8+Bs= + + + 5VdNc9owEL13pv9Bo3Nik+TSYSCZAqVhJiQMBpqram9AE1lipHWA39ZDflL/Qhdjly+7XynhkKO1K723+yTr6fu359rVPFbsCayTRtf5mVfhDHRoIqnHdZ7gw+kHfnX5/l3tPlaDCcTAKF+76tzJOp8gTqu+P5vNvNmFZ+zYP69Uzvz77k0QUq44ldqh0CFwls69FTHUeVsloPEa5mJsdBYZ5QTOiQDBMVZrJFJFYPswlg6tQAq7NEIxIhPgQkFBDsvGBospYfFsxnq9lkDBiH0V04R8pWACgPzfivuJQSg9a6ZgcREAIrXwszXJ1G0krMgXZbGGcBDdUQ9a8CAShW2j8aQr7CPYtrHQNMpYvrXUPp7biRfCsfy7zgegwMpH74vUTYKzRjmvL6IOQuwNHWRMWtKJrwqinpCamjQSpCDpKJQjZf1dSv5vONUCAg3R2GKyS+HyDPZJ0ebQuBKzkKwxSISzvCI2xWg1v0SGv9RqR5+TpomnKy7CLtpSqddQbNjxbuR4giPpEqGyXngtK2YNY2nPH1qyFW6AAtfKbYzVOSlECGMLzjWEPZpYH8OQcG+NjYUq1OaFZQ6nBJ4X2tGRDAXl5Hp0HP3lkMbUsSq/NvSjP0ThZTW/mUKPK65CsJpuvydY1rx7Z1xUemCXXfnfzSg81V5+Wbyx432Eq8ckDu4OtNF//Ss7nsZdsiCverAPU+rejbtjFGv+hl1dj6ZW1S2tah/UliVOw3Qg9zNYZhPKPRTZh+2jzF/mu0p4bLr01cIbKJnT/APkPbYFHEia0k6l8pS9HlZPD7/k7ZFOTd8rlz8A + + + 7V1Pc+I2FL93pt+B4bQ7JfxNd5JNsh0TSGAmISQQQnpTsAJujMXIYoGe9rC3Htt+gX6DnjvTfqP0K1SSbTBgA06Q5RI7M+zKkiW993t6enp6sv/965/jH8Z9PfEZYlNDxkkyl84mE9DoIFUzuifJIXncO0j+8Onbb47bfb3Zg32YoOUN8+PY1E6SPUIGHzOZ0WiUHhXSCHcz+Ww2l2lfXjQ6tCzY0wyTAKMDkwn+bA304UnyTB9Cg1TgGHSRYee0nA7kaQdoc4nEcXGo6SrEN7CrmQQDQrNNnkPzaGcaZKJDjzIJ+15zMqBtJe0nZvWVAAEJ2vuPhBdwamr0ICTJlxE3bYO2UsdoADGZNCAhlIXnGA0HpquA1XmvUokiMKF6RXlQx1of4MmZpuspelPrFBGmPU/OVbPclrmQ79lUwkmfJJtQh1h7St9pxikyCEa6mb6tpp0C51hTm+BBh2WdAmSQdJXAfgVq3R7lUwtQEClaB8lEJoRmq4ZK/7uy2ePMGnYcN2jDHYKwN5+YvDglEnbblgwF7LBX17ybPs74iEJAebkE+AniM4ThKdIRTpXgIxjq5Ix2dklmBDJBIv2awQdLHahMb70rHPG/9yGNmAYBnacLMEFD4git/W9jADq0iqng7osZLgjpDwA7bc8nF0ZsIRu1oTPX2/CFJ2QF29LMIdAdqBp9hEiPPnWJVDjFqIYMuH2UrJaprJIZWK57tLsWEk04JkU0dgBZqovWdtqjU+m0krnJ9FQHpulkJR1p4HcZQ3jVNrdfaEl4DKCMN3khS5KjfbJHuaPsUfZ9akEvf8jWIe548FS8nBWpguJ9mE2h+/lUwvmJjLCFPvrP9cmgxzqRqnaQMZtCZzNJnmMZ0kxyA9TikBBkMKMnXdLMgQ4m3D6dAsc6u51ZhDbGm7FqtKt//vKHBGk4pb9dhLWfoarogx54gETrAL2Jul1m5DOOhC8bVBJ0MKAJn9khBJq3qXytKndU9wrGKgbotQB5q1c+UYakXj3VnbL349ZM8hcrb+HqNTo69a6nEcjn27UiIIjmtJWwSl1JYMHcSAiN6ks0NOHVZ6ZZpGEuCeI3TXsdQ5P25a2IuTRyHR/UG/chhGIouSvmPN81Y2mqsDwlSvwUEYMVACxb5YQKlaPmYqACAKV0mPNNBlw+c3KMXmD0KihsrehrS8boBUAvpAX+1CYiGJJOr8LcazQb6PpktgbHw/+zZeTebEuu322ztiXNdLUPulAxVLYWse7VgQF3T9CWHQy+Lnzx/lvpvgZhy8/gxO/kKvwFbJC4Qp3bjSz47kaGwJOSZrKIGQlcEG4EvkIkYosiMJDC7MFXKbgYyMBA1hDuAz0aSMb4BcEv9nxK2c7ffbkS6QTdRCnE+jxq/tBNUIuNKQFhcPtH/O8NhcF9/Vt6UOSOxr15ErnN0brTcVRNDAxzADAlV4SGDQmcnVSiik4gNgDRPkN+GuVSMxp0qnqXPfoQluK8YGc95o1k7vid6rXrp+yd0lWsq3TPfhH7qfMbVfZTVE4V11Uql2j5sbLvvqmo7VYuU2jl1MfDnNpuZ+J0nA4zvbWgTY8RU8Jg5Mwe9rA5A7opY1HpPijFdAn9d1CWdVbCfSzVMQy/P+J/7yWcU90MOe/dvh3zPbjFpAJ1eSLiOnm6ePop1aBLN3hbbcC+9oB09fAFx1MDM6KpEYnncgXbam5i2QpGGp0U6a5mvNtzQrlXKoMtEs0HXVTQTbnSFukWG5poIJ4TvGvMaJcnAyK9dUukOlpY4p5yaAS7hvabo7dqryNl7BSv095hHVGSbE+UxwNgUPU1g4Qv/Vk/JR7XzeVTqw8YhIXO85fft7YWcVhteT2pLdvQusZmK5Fttmg5Z8S3x9qad+ravgqp8m7NL65+yopRCVW2X4xNLOoBVMWvUZNtqs3tpOwTYimXao8FflcE/jcJAi9Xd/vupM6cZ7ElKWmNGhuJ0Vck0TUSIzNv+qiYt6hWeA+sLWVpWiUaIDx/+TNSONARcolU7VGTF+RvxYaLegXBCtKnrrIIMMGJxpPFhhIaGVLZEKHIi3xxGlQxi7woWzEXG0de+F25ZkdRancF+tzNwTVNPx7QdDszTT+w/NvC+ppKt8WuU76dpenWT/T5/Gl5rhRP1+5qLP9Qccpfn/vVlz18YvWVnPRaepR7p3wzf22n3fkXiLX/ne/zU/p98h8oX2uND046m2X9b45W9s/iZysz8stn9JduD6b13Y05/zagd92Vu9+f1rc/YvWvKb+Gfqu/FD67Pl5+3bWO/qDt88uqL0j7Quh/4PJ8tUn7q+m38Lbqq1UceViUX3f51fTb47Gu2PVZ17bln1+W/LYKbLx1Ln3Gs0//ePm26jd+rPHM9ZOlL+4pgLVub759lrb0Te7x2im/mb54lf47OYnYa5HLGCNcNVStA+jj0ozbqK01nr/+Ei0vBrVtqkZZ1YgVByQx4Eboq95vECKz9yvspkXvFfssc8c9HAPen2pmukugej6KWiy5jjwv1ZV49UvOdzLEPax3CETxxQFi5TLQWxO2Kq67frZNMHAxWltFS+hrQ4Od+o2YJznEs7OSTB1x74CIX/wg3hh4xWenAsf1s3UJ5bS05Yj7KMwCG8KKfZZKtHgiZccKrIvBExXRLnNjOSSAb9CoAoFMcEM6nyL3QMaCdt70o5LiBFtMKP+S848XmNVznHF9+HN2l8eUmOyjnzdQn/u4KM++AepyiYTtDlvpxKVPunmwwSs6V/nWfDri/uCpVbGrFXse3qDl9R9wpMj4Moqj4/cZVl5myvvFj7jyR/mHXz/9Bw== + + + 7Vtfc9o4EH+/mX4Hj5/amdT8u6a5FNopSWkyUwIXaK6vqtmAJrLESHIS7qvdQz9Sv8KtZRsMmKYkQJyMBsYztlba1e5vd6W19fO/H/UPtwFzrkEqKnjDrXhl1wHuiwHlw4Yb6svXB+6H9y/+qH8LWH8EAThIz9XhraINd6T1+LBUurm58W5qnpDDUrVcrpS+tb/0fKQlrylXmnAfXMf0PSMBNNwWC4HrE7glQ8GTlotUgCoKgOwcp94MKRuAPIchVVoSjc3KtGAbCtPTEwY5NE7yrD8ZIy836TEb75ho4qD0h9oQpCP1RgDavd/kpjyQS1eKMUg96YHWqMLPUoRjlSGIhc+jcppEwaCDOuhKGhA5aVHG9k59wZtCouDu3CjLrNRCey4nJ71vuH1gIOmV9w/lR4JrKZjyLqgKCfvE0CJce71ACD3CXm0xQBNeEDRcwz2hw9HfSEX1xHVKi0KV7pCq3kO2vhYyX9xYgJ4mGlJCJ/Os4Z6TAf6paIZaC55IuqgaM9rRCO09HWTO4hE20hbXSQaJAZOnla+nXsoW7XJ1T5Qs6SrSVv6Ul5SarzTTPQ9Ka+LtGC5JyHRLLGtyGyBDRZ5qCLyvChLOx1SR7wwGXUJRhBRoLcJUvtoeiOsm8a+OBItsn7DqS8LVmMgISxvHdBZtd4PtHH0ONZQiO0ea7YIBFcPIGG9WRJ0i+O8RI0otObB52nDlbPhkCs/NXzNojXLEkzaRmcBzM1A2gX/0fZy4TeF34Mvri+EQl2GGpMNtRn8QANuU9+i/8LKy/66y/+pJB4jIl6im1/DsjBRHhq4EtTrb2gCxIkB4id5soHgQBu32cl3onXINMoABxRsLvg0EwBNxDTJ3Hbt1BLaEhPmNYHnPqfxV2XOqtWoh0YeBry1CBZ3rZY+9C30248aAOxMyIKxIiHtTw8vBQUERZ3G29v6PDKL6+cvyu+hXfbXXxvCNQW5q/J0syHdeOvrIMDVyEpnUbH2xgfrx6qI6vrULjNUOlxZA7YLiYdte42a1MpJEgb4zJj5auSiRvvI2ivXJZTN17WkIVV40y+mtdxYG30F2Lo0EaibCk0e8TS5zZYOiYDsCde0NXvb/LAzENlMwsICLATfddthywa42bDa723rp/VFoC6Q2+D0C7Gy0s8B79KybLdJbRNr8Wyg82sS8uVrPdCdaK3fjos9Oaquz8sXOi6xr1Li2OnP7kmC31fIiG9OGpl+Fpt2YcsGCjxSXHjseb1UNSwuJhdMd9VLmjMnsqTlfoqLzJefA5s6xmGaczTKFkzjLbzlRrIrfcLxffVu+Qo7s0Zp44AyX5PP99Vx+5UtKNM1KTRnzrDryY2imyl88MGS6mkNG7/8H + + + 7V3dbupGEL6v1HewfJVICSbkVIoSOEf8JCdIIUmBJqeXG7PBqxgvWq8P0Ku+Q3/eo9e96Bu1r9D1D2DABJKDvQvMRCJh/3e+2Zmd8cb739//FD8Ne7b2FTOXUKekn+TyuoYdk3aI0y3pHn8+PtM/ffz+u+KXnt22cA9rorzjng9dUtItzvvnhjEYDHKD0xxlXaOQz58YXxo3LVOURcfEcTlyTKxrQd1b1MMl/cr2sMOv8RB1qRPlPIwHUBADEN1pWrHiEbuDWRN3icsZ4iLbDXJEnhhMi49snFBGi9Lao77oS49qTNurIY40MfpzHhQYt9SyMOb6+yY36UP0cs9oHzM+amHOBQs/M+r13ViBcPBJpbQKcnHnTvCghp+RZ/Mr6nB9pqqo3MI2Njll7lxG2K4/6XEJ7dIWjHV4yIi2SGXkJfdInKpol1HbzTUp5U3UicrpmjHfmZHcW9FYMoU3zvOekR5ioyti2wvznKuZPN25Qtr4e/J0f6rnbkjX4g/E9ZAdzTpXoUxIRYVyTnuPpMMtXXtAQkJLen6RI5vutk37mffZ9DMy7/UGP6/utGisgH2F+Icdtzji01UQSyvpQtqbyOlOcqWJfgMRJyu5n4Wj1ROr3hK1GrSDJ2DcUgdLwMOXijJjdFDxxPpz5rkRtFO1hN6eVJ/R3FUbue44Sx8rvCC1pIdNBkx+p81KWBNG8qwylp4qtW3UF1/CtfVGI6EAKtG4dw2Xe4Zd8Wfiwt4sJrkG9VxcowNYM2tiUzfFxCjDYu1QdvTZHvWtNh7yk0IWKljYnTrHvZzf40Tn/vvrn5uxu+PWLx30JPbEwdq6FobY9o3xpLs285Lx+cb+1u0pc2OSuVFXS5Ky5neoku6++nodOJ895wNjsE+c/12GA+ErOmC9OqyXo29U3EwkYAKbiY1JW/YylrKTtzBB8PLWBAZiN1kJ0E46oiA+gfi0TDFCGwKAqgWaEnGBcNObV/l4c5oxRsF+GDBaCyMVd/EQEpwpkIqRAXcR3MVUBE2+06iWQEli+55GolUDYO+iojIeBazargP/pfFfjgJKOWyYldu+o7HDTNCB0C7E5rZDjHYyrABC9IplrLsPok9iogX2gDipF0kEuLYoNA9g7URg7jcVdfU+uZHqAJCohwEKqREVqVDIcO7TNSvgSO6+D7AQHoaNioJOwPKnKICXel7A8kcugJaaZjVbLbijdlVFh+0PJQ3rPrkJCiGw9y6balhI99lUVFkJfvW3tL7nh78gbiYtWAMRM1VBkK53IQSzSjmBd7iWIKXoy4MXv0GcYMEnyxRIkmLxIIgEqY8RPATb6m2wjCiEovEHQEEFl1DFKFACPBAFSsWqZy5uZdMURuaWsh6y5b5fud5D3eme+MeXQqFSjqj2s/9J/Y/LrvgIMyrlajlGtcuayBuWP5SBgBapZkxoAO1D+0D7QLIeMvpuYdvyek9g0sGkA6VD225SoH257QNtI8k9NwRGfT2j7n9U6sEnGHWgvaB743V6lxGrrWj0bNOzAALKnBQw6hCHB/sOBLScwL4DAb2LpMfhFbDuaZ4Pjl9WG21s/CSZL/hMfdJzAO/8VON7VYmTjd3GfSQSiTm9uDkYYKqyXbUQ4y2xiLG/jUXEwexS1t3MIerXNHrbQiF/j5mfctdHJuGjOHOyP2oeDWJ6i3buByn3aMf1UvCbUKcpfokMO/H0VbqYtRly3D5igkWBAIcYygIp+f8BavgZeXaiQGcJV/BF2uJ6bfFscpZCIMwX0b1kLTI5fAqiuEIUZb4ze8bOA1JrISVnk9IgTov8gg9O8heFs8OjBmJd4hycXOT9n8PpuWqRMwwLfvDTHy3CcZAuIyC35Pj1XzKcpyhV+jmmNDfV83OU70JMNpMZzVWOGp1bnKsXY7R8j0/H6xdWZ6htpZ9ISF1g531eBQx/ltOVo4zSfs/ZvDKStvnOaKJTVFUNVuxrgGIGoYA7gJCaCPnKQi5AscDnGxVFe9Sfzi4afzv4v+8lz+VnfKoK7YykTTrVF8rCfRLbDhSgsx46KW4d4Z6PrYDplbsvAZy1wElVw71yNyzAozI8oOXeruVQpyNSD/IXfkDt9DCjJ/Y36AmPnQuFXvO4+aM30wfdfp6Ch4lTOm20Y97JykvDQd2sBZLEOy4AooQITVBg2k7RqHiCIZjVEEfT1BYf2di1MOZNbCNfm8W7LjZRZ7GEFsUwVsQ2OjMKRF8dEWlSykW1RNuxZCRN3CUuZ8GXsOFYL5OH5evFYmbHmzAKAc9SbgUQBdkRm+MjC8pMAIjn+NWDqm0hQ/jj/w== + + + 7VjNbtpAEL5X6jus9h6bpKrURjhRIaVEKgnFhOa6sif2Kmsv2l0HeLYe+kh9hQ62AQMmP0i4NOHonb9v5psdr+bPr9/183EkyAMozWXs0GOrRgnEnvR5HDg0MXdHn+j52ft39dtI9EOIgKB+rE/Hmjs0NGZ4atuj0cgafbCkCuyTWu3Yvu18dz3UZUc81obFHlCS2l6xCBzaEgnEpg1jFsg4lwxmAE4QAIYjpN5IuPBB9SDg2ihmUKxTCcoQjGsmAkp0SH7WnwwxFs0tFv4umGEE0Z+aVGHmyQ0BDN0uuXkMjNJVcgjKTFwwBkv4TclkqAsKGfgyLdJgGvxrrMEF3LFEmJaMDV0yXfevV+Sl7sns26F9EKD4vfWTx010r6TQ1oDrhImvAmmIjdVg3n1TCqkoGTBkCm0Ui/WQKZRSYq8Csp9AVHcxpGekKoc6pWmmQXIMGXVlUHtSmh7zc70yNOXR6vaGor+QmVdPRxbcNcwsWCmcObTHpl6XMFZPgwuBhJvLz9bH0jvyeIpNwbRebbn00KFNNpzOkOoz6ioeMTVpcSFemM5WjK15Ql/NEOfj3MXShCxeUvr0LZ0mww1/AG1NE5p/bjle18jIy16SecWsffE8LERXgcaDhlT4e6l+QrgRDsUQrTrSh/mUaPMg/IFa3Ez2ZEpU1nMZEa+969oSH227mBep48PQ2DF9HZlouMZKH8bGPrXe25gdh55b9Fx2Cn4K5tB7h9dS9S14aL1KW28Xj6Z/T+FbeDRdSRUxsQv+9ucv8P/yuDYnV5afdbuwgl2cputXPV2/9kAsrXlTcY/56xokr9zmit5cWmiZMfkMAh5bLG6AUFw6Z44LUfIV7jMiF4GWhEdCNtYnJWXTHjxbotsbtuipabp5P/sL + + + 7VjNbhoxEL5X6jtYPrUS2SVJD1XKJioQGqSSICBpru7uBKwYG9neAs/WQx+pr9Bhf4CAV6FBIU2FEBLrGc989jczzM7vn78qZ5OhID9AG65kQA+9MiUgQxVx2Q9obO8OPtKz07dvKrdD0RvAEAjqS3MyMTygA2tHJ74/Ho+98bGndN8/KpcP/dvW126IuuyAS2OZDIGSZO8lG0JAGyIGaS9gwvpKZpKbHMARAkB3hFSqMRcR6A70ubGaWRSbRIIyBNO1UwEOHZKt9aYj9EWzHQt7dWYZQfQnNlHILXUHAJY+7XBzH+ilrdUItJ12wVq8wi9axSOzpJCCd2mRKjMQXeEd1OGOxcI2lLT0wdZ1+2ZF7jRP8ueA9kCA5vfeNy5raF4rYbwOi5oWht61gcxznRv2XUDUZhwhkBuGjCFvTBhk0l+F5D+CqdJFp6FV2g12RlSuQc4FBoO0KXlOsEpZBJzpudC4vVX8gmv/S25aTN+DbigNNSWULrVZNEuVdx8+JZ/3pRci71zOGKsqjSF+wfsDgd8FdT0dO5jb3t+mnraNkRtuYoaJyuwiVJbWAoqwOjACZquxtUq+YHhw2eBC7IL69AKyo3rdIWbGAHe1VARzOi6V/IfoWDOG5moDLMtzKw8Kc00wY3IRzWtDshrQ1HJy10/8S3Kkg+8+3I6DCCuLYCN8SNN5LZZeCzkZ/P+NnpaKDVxhy+RM9Gchx5v73OfQZiS1NRj8uWuK6mos9xRtRtFKK3VcboMOHZXomfjKm9zdNwmfw9kxGyqMTVoiS4iXz9u3HZ2/abJWdV/5NyVu90Ul87gvKZsRVNh+v74UenX8rL1UrMw+Kv7SBGaxmkxfzGz60gHxYMqTiPHm1zVI9g5UPCa4bnornNHtZgsFQJYnT6nhJS95cDzueR2uAwSSU3hXCUFFI7F0nuYXDNSSrckQ7vQP + + + 7V3dbts4Fr5fYN/B8FUXcF036cx2Ju0M8teJgabJ2Ek62DvWZmwiiiRIcpP0ajCYB1jsYq/2PfYHe7FvNPsKS1I/lmwpsRMdkqYOiqSJrIgiv4+H5xyec/i///z3zfe3107rMw1C5rlv2y+7vXaLuiNvzNzJ2/Ysunz+uv39d7//3Zufrp2zKb2mLX6/G357G7K37WkU+d++eHFzc9O92e56weTFVq/38sVPx++HI34vec7cMCLuiLZb8m8/kGv6tv3OmVE3OqK3ZOK5yScX6Qts8RfgzbVab/ZmzBnTYEAnLIwCEvGPQ/kJ/4y/zDC6c2jJPa3k2tmdz9tqJ38xf94BiUiLv/23kbwhfdJwSmnUflznsjZ4K6eB59MguhvSKOJD+EPgzfwwd0P88mV3tfZISMcnfAyOCXPfMcdpF/5u+eHhwuelz26lv79tn1GHBuyq+5G5+54bBZ4Tdi9YOCPOocMxcKPu8Nrzoin/q2NvzEG7IByqt+0Pnst/ebH4Ni8eeJ03Q97eKPKC8veMWx5GJKLpja3ctbftARkP2KdPnrtHguQFF0dEPmt/yoHNHlGAdt8hYZh+1G4lT5FX+fPlw/eJL2gjx/uR3F4cGTE25R1cGsLyIZJ/XsaRNYm07zkO8fkve17Aqb/Ep00CKOkCQrQeRHIIj6jj782iiIvbOvFJkZFPRnwej88xc9k1+0IRI4MxIreIkeEY7TteiAA9DqCzgLihTwLea9Q9VfLJSs0T2aRvBUFCNYVQitRGJFRDCKXCTrSSTP0R75gXUK7lekHnB+fOn57R2+jlVueUjIUr9dn2zlc7/OsPKng2ION+RK+74hUyYv32519KB3Dtp5/3RQMxmLKZAxb6DrmTbtSsubjtOtpLe3Pokk8OjbXvIzaZOvxr3r2zYFZOkCe2t2pL6mdoySs0ieS6aFicVL/+G0leO8kX9JqGE72CeP9Eab75RC9ahA0nuiES/V9IdGCidznnrtNLY/W0N0tq64Hg2JuF9OSzcGTj8Gsa/gPvRoPQ1zj8JaJVM/sbLIrMAkPMBd1goDpUQpO/ozpU+wTI7ysqZzk6vtfUT9EVjvSqnV4f+BdZGh3k1r3cOibBFQ2yJXq7d0qDUUnUKYQbUiy/YinRoJcsTKnOrhPRwCUR+0xLpxgEZ7PeI2PXgU5DaKIS8WJpEJwuuBQoG5YiZpbNBrtXgzbUSkKvSU4csxyamUcNkdCMROZO04XEAb0kMyd655Vo54CgnPOuxy2nCuspYe4cp3fECUGkY7LyDqdk7N0AS0iR2poRImk4TnctfU9uDvN3Te7Tbr3UrVP1XZcGAohaVafsqWiVGAeJpZrsacCuSXCHTrN2llQcr2iHAKnFybaKGzdl5SRHR2yeUz/O2OhqdzSiYSi01EvHuwGIdPf4o99lj7aSVsBrh2Kc7FxKjpk75AbBs292XvaU+D3E2sWEPzrspqhll7qxTiwdNDnFOBNODREG9pGMurOPUxbR/jWZ0I78UdjEnZR9r17vbL1WGCpxwO8Rdm9Ba+jKt9t12MSNzZ+EgMdsPHboPr9UHgKnSsXZ9X2HjcjcT6veQFPi9C7tap2z7eTyko2o1b7u1KO9tdPb4V+qPNrpTOIDwD4xh0V32SySlxytNgIsq4oyZTcIrBXnYjl0o9hdiPaCKn7x6ZUjlZUGQ0ysI6kNgUUrlAGV25PYHYnLpySouUAZoqcEPTHGCN5jwTsNuJ1Dx4rhS1pFyDYHslTZOfGpi8gZuvd8jzaeGXJN0Zfkj9YRyQ57vIiUpRa57OH+lH4OPFdIzrk/zArU4p7YBlrmqdxQjPKeLuvAsUP45SGScQu2yj90Gmlml5WqtBFOBxiXUUOws86AtR43DBcqJdnhrU/cMYAQP/MmE8dmQmWiFFQI5PHJFbVBpNZASoWwLuAE4Ru2HiUU0A8TKyZBfMsJymvT5XURLhTfGyK+F2BDaW6wnwtMf7Xar5/lkXeK+eWLOeW5C6/4hVcak8x//hsWBN74pPbFCas8FriC+M2pd/fzX5HW0LReVNMbVCagTEprAqGRFYANGv9UbW7S6JcIVyNEUEMng7FwaJsb4nwdofnEOW2pdv9qR/5Tqt2j4hDTROeJR8ClS8r6WL+JbqX7RI2zco4LkG/SYoRUeCUX8ZEHKiA+K+GjygEJKtsa7n5sjlsGz9kDmJ3HB33dR+0h0/H8MUVM13zWHjIdj5ZRw3Stp8uoqaBe7CTqlYaBsyBrER/T8ClqfYjPivhgCKYeOlnpgFHgwlzCBt2YxrkxKzBCV6ZhGFWd34sYrYSRImlXdcg1orQSSqjg6LFnkEzNIROs58JKJqlZPHLA4Mphog62BBAqYKsDpLg83Z/67pjeZkL3ZW2u97SBYxJMmJs18Op1p9XrtOR/GqT7MAqYf8HojdgZEK9LmKsjmHTxqODc73se53ZyeFJn4STlr9OTlDtDOvHoef8bcXAbxj/W3VLF7NjSpo+ckU/qSbpAPk5G5sItHLyLcnYeGnIA3uLc68QVc/LTc9u/1Suuv/5aJyO78eeaj1ovysu8BrqIIBhvdaYl3NvjFTlbOyG0DkhxCLazJXPXiWjgEnHWEagU66ZHmmrv+7K60P2q9KTXp3adjLM4UvlG9dY6TR+9P525V8lh6dbp/dA5DKAQSWT2vPGdlSZZceBiMSoTj4ZT4i9XEDbKX/aY1nKnxMWdnZ8R95GNo2nWpA4LTqWssTQ8YuDN3PGANyD5K7/1lmzIzn0ng9eOoXXxb6AsFZLWUm5u/jKYKChWroQbjU7x0Zkzo2kYGaWegKsLB4w43iTeL5A8wH2I1WgEupe3hApu5Bm0kVeBDu7irY4OsHqpQqpZqmA2vnLar//AdK78DbVPReW27EOObaM0vno3wJ6XBCw8FfIzLiQzrJN2z6TgrJ7UPxCHf3SX7l3WKY37biANl6QJgOUy32HF1FUfqZAM7nBKxuJMQjAxFTdwQP2cv7S+6JpcE/HylTbxuifja3og4TU1zAzlwpH/wEYVWhjsXv3F8smf8pJTE9P0Wd1mS0gQxVWjjCzWIcj015dbzdFZsdpvrTprMlHOtRXsQ0r/9vNfkNL1U/rU82cJq5Hb+rhd0xkHyO08t4X/VRepq4Lq6nZsLnXVnGA66D6nq7HGHgN7rStldJ3GQFUjlrqz1UB2DlEadOHZCFA9awMARPOnWwoScFyLEpB2g8C7sXhLFTQgYVnvgAlIaAhWgMEJFUjVHpzQEKTUSD5I/cF2hFTIvXPY4xMaghS81DuHPUahITipkXlKzFzboVIh/JaAQilothSsAAzFoQ4PxWNiAY6pO4MIBBDPtW33PwkZWawSA5R+k1Be7IJATCXx3PgWWzOkYEugFQCCXaYaABVUOZsSlKDWJvtRErnnJAl7XWzaqMBm+Ehz/nggFzKnrO1aDmw+WwGauWDu7sqJeUqCehUdxAsKLzGqCJdRVt8CWOmZ0wjQWgDpD37P7Eyb1075o3XkgU5nVYWOpeELi1X/cqV7cucWbu3wL6wNmxt9o4VO3ufUXsmzFiubcWupe802qqM5qEBoWqwGWWUGIk4bYf5ZDNNmm30WA7O5GrvVmvrmwlJ8tKXw3GNIAUNlW67P0HdYhDRsFDZWY4KGJzR9GuCEv49E9aGC+4+mG6AVYOHmo3FWaB4p3HnEncenEAi3HddkjuzV/pR+DjxXKP3y0JVN0YaLAMWvjgA9DSDVmo2dqOF2sZHbxU8QRLhXjCa7Po+PlVqrelMd9x4bY/VZjIoOvwlGVzxRA0StT5vWx1/rzJtM+AgUdTHV+4GoLD2ASJ2iJf98OwUMcBpsCUBA6bDWQwWoRlUABaFRWQ/TxymLqCyzrAak+Fp8z8lcC1a+Lmnu91yo6K4/rHhyNqS7GvHVy2ztAKPRodXoGFCfkgiNDnOMjjJE0J+xEo+gzY0SaPDEYrMMjUqI8Nji1SEaeDOXj+RIHI/oU/mtp6Ae3EAe37ZHgnho5UupX4yeVl2ttn7XT1X5XLvODeW65IS5z3o7L3d6O71l1fGp8iQFRjY7pJwVhN/UveBvxEbEOQkYH2Qith3U8zR7uey9ZJiKnK0qtCihtDFx2HDYjRXo7AK/bVz/cadFrW1uIKbNbPVedVrpNx2qWwVZjryAfeGdKNKlzumdtZUhYN2KlEx0Oc0VTvRy7JRPdfVG0drTS7UE0Tady2Q/TmZjLICiKqXCAui7caNWWgLorDPHWVdKbfTfNpgSRQGk1WpGF+7DoODasxaldp2IBi4RKhCEqlCJ0/zkVQTMHPd7NVyQHnir8QLUwx9AC1Vx1X7pwugtDF7fdWkg9JvwPbnzZhp0ytIEws5DoSAAekXskC9Wl8kCJ+htJF9sQJ3EEZSqf/yT3U/eZ5okCmqyDeSg6i4olIfy3AfJBK3sbTf99cSnro7gpYfmaLM04WpW4j7sSnSCjWeonEWYUgO8dY4eEeNFDqZSmymQMDvWGBuvGi/MlX269aN5uVdvNzzJ23efeVvcyU07P+CKcr0lY0qbASBs4S0Uo8R/YKNHlSM1FiGQQqU6MVKwSJdvsKMP9hFgUXcmM4Bil1eWDNQ5Zu6QfaHPXr3e2XoNF/C06/sOG5G56trth3tkdMUHrtyTpXYpnA+NwhHA6mIWIqmgqKr9QJ77WmBccOsigusheMTGY+o+SmszPZ0BRHnTmNCQ06/PPP89vYwGwq227d/qL58rLzkAXr17TYPsFPVTz5/5wxF/UT6l6E3NqiZvZ/5s60wC9RtRQocsBpDLlcMc8myYg+Mxgjjpu3wP4ayvdcLkH77nje+sSyxTHXrw0PzZ2u51Wuk3Tanp6cqe7W+onkT9kedC1gb5ccZGV7ujEQ3DM89zeFeFPUwd7ybuu5Zw6zjF8Xmc49iRKgJXDuJFqvP4AqWPESmnXD8WAlRc5rfvBpRo48KGHo/UiKOotWw7AZqJDdp9SqOfS2PwtnunNBiVlCQBRDWNxtad6QLW9xUi0a3te8V+QgM6Xl6rpBEdLytLpq/jQt1zI/X1LytKK9a5bFlfDjPG7shTW2K2sjgkYrc2dh+84Jo42sBDyNaBDNjkqkhxrl+Rz3QtO60vaJhUFSlEeOqTewiPKfAoyYopeb5M80PMarXQQdYmuJ1t/UDlDxkELvWdd+BiyS5zSmhhuSxjfOn5g7TQe95McBpw9HhaomprR/7DElW5EQZeA6B2UYuqbY7A1pHX3G3u9XNk3wtKFtQW6+BSUP9Cy8JgZ2i0zpPrMSPB8J3KwjzTtz15X3yGki4jPzeIn+BreCPqXChCsCrUCUG0AET1NXjRzNVl5gLu5DTH0lVgOqmLGG6CoqNUNa1prUTQVJi8gPIQMQLBCKteWAAcupTM28bDJCXEpzE7rYBV/NQVgqhqx7JafsDnq8TRP2fk0zAKmH+oP81HRXfvTWBEWW8OUNUZh/WjZHUBQ2i0HkiTxDllCEr35nTWiZL1SVbAWCne4kWIDIQIoTHZC43omIwOircno8SI403i8ZODitNoTYCUhTZUI2VtfZK89yfJc9Ud2PG0ox9r6HGd0zJpzXYZqgazcx+h2hCooPWShoClvoyuOKLjEKCIgniudVVzRa1SEX0oS5UCJ3jPt2pkdeMN21EwuqLzPvFFDIhd9BzSiUfP+990vxLlB3TAtWEUNWE/Nn7wKXGps+cQ92roe5FtG7GyEBqkmCxWYgAqWJc1sj+duVeJBLFP/wCvFll9Dg5EiciTy0s2sno7BbhEpL7Tp6yHTvmCPRdhqfTS7OVScsSB5mMcOmne0h935L+H7QaYPKaEI91hFNBoNL3gN/P57DjzE5DeEScEyWNqbN5UjoxCUF468+Qm5TMP8tjUyn4C6WJytXOsdgQBqmDVaAFGBzcAMrWHChxRZ8k7rns9B+7yMbll1+wLbVi39x0vNKDP8Odu5ygNs24keq/FMgjccl/ESCwXiJFZGB0zNy8nESdjJV4ZUij1jESqqHsgUhuHlCghfZ1+WK9xg7hB4xafo4OgGaZolECGisbm4IQicWNRQ4H4CMguiMPGJAv9AffWoJa4QTjhwmVaJs097k/EyTicFnwZCJW5UJXtHSFM68D0ccoiekZvFWz5zJUI5Xs+qnspl+ANiyJePYQOetZZPN1UQXR46xN3DAmS9fU9FIcEHPSr9A7LowJEz5sZD8F7bkhIhNJuV4on5f0WC5mIcQUtiH3vsmkv1Lko7UPtRQVV9fqeiETNfe+7/H0iOl5IYoLE/75SY934w/jmEx26Mnh+0HoDgKrZGuBBH/2uD7qkroedh4rrhQ1xWhUnhTpCrjCAzprDcjGIdyIVJx/2wz0yuuKUWFY8n0TQBpQ/gxYnukGzVLpYONmsz/C1b6rlIeu7Lg1snW0LJ93InRBYP4cuebl5R94s5e3KG+bPefNib8ZHhgYHJCLzq8PozqHhlNJoQB05zvmm3/BRWb6jlaQYr5xav8IBpQPPi+YJ2cUxrOkt5ICk2ZyiEpfW10q0Ve3vsQ5I8V8UK+6WvBKncSWrJJXlxwkdB3TCwiiQN8l7MqLmPxF/HteS4nONfvd/ + + + 7Vhdb9owFH2ftP8Q5amVaJK2mrS10KqUslbqByKU9tXAbbDq2Mh2Cuyv7WE/aX9hNx9ACERt14Ff9sAD9o3PPccn9s39/fNX9XQSMusFpKKC1+x9x7Mt4H0xoDyo2ZF+2vtqn558/lR9DFlnCCFYGM/V0UTRmj3UenTkuuPx2BkfOkIG7oHn7buPN9d+H2PJHuVKE94H20qevSUh1Owmi4DrS5iQQPBspjtL4AATQDjLqtYjygYg2xBQpSXROK2SGZzDZHw9ZbAmxsrGOtMRYtnZE4v1GkQTC7M/0knAbCV/CKDtvyM3x0CUlhQjkHrqg9Yo4XcpopHKBaTJr4uy6kTB4A41uCHyGWRTSDgXTMjKGdMgObJ7gSZlzF5aDhf0gUFfC6kKEylWl6qIIEmiYRZo5cZqdp30n5FJAF0K4wuGu8FRCbeI4q6HqbolfN5J+mFINXRgoistSUMipxunegkE/WCS6Vm/j1rfChkStlG6VxpC1SIcmLH9zZm4LiQKvzVbnwuukbJZ+h1JuBoRieAx2coN5T79ATve8aG3W5lbYkWEwqrrtSgEWbP/CIukJH12HiiPZZCCKadNBrEfnAtOeizbjEsaDBn+UJkuwfM5TjiCVZk+jvdWpKr7CvV/5o8O6cX5mffE4mDAGyCgfOfLsXeMv93/rti+K+qR1oKbMUZ6L7QkKBxYtsbGTsnsLXDSMBhsn3Wh7Dn0WiBjHbZ3KzoNqmI3miAvIgV3WIent8OyFBvf9Dn69onnXW6EdkOMudFyaB31zZt/poFBy5dQ3lphuDjiDapgwv854gZfATNHXpG7mVPPh0DA/dW3pnj3Kx43NuYcs4srbXasLbOE0FhqbeS7Z6UYK3Q7qm6u57IYTfotKu63tIEt9XWSacx2NcLKCJUTvb+KS8o27fUErxO59KVvf0ynkpTyXad04RxKA55IxPQbkDHx1zowuEmlmiUbVdYMSztpbkkrLXk0ab+d/AE= + + + 7VbbitswEH0v9B+EnnftJN1ACc4um7RpF3pZ7DTdV609jUVkyUjyJvm2PvST+gud+BLnYlO6XcJCC0ZgzWjmaM4ZMT+///CuVokgD6ANV3JIu06HEpChiricD2lmv52/pleXL194d4mYxpAAQX9pBivDhzS2Nh247nK5dJavHKXnbq/T6bp3Hz8EIfqycy6NZTIESvKzn1gCQzoRGUj7HlZsrmRpmVUAeggA0xHijTIuItA+zLmxmlk0m9yCNgQT2LWABh9S7k3XKeai5Yk63htmGUH0A5s7VJGCGMDSx11umwOz3GqVgrbrAKzFEr7TKkvNjkMBvsmLjJiB6DPWwFeZjHwIbRCzFPKlQ/diHCcyB/bGPKT6H9IpCNB84Xzlcqyk1UoYZ8ZNxsRbgXxI64xYuBgroTQlM4aUITcXvTNSLZS4h5Dc32DyAkwaWqWbwW4YqzxIiaJgsQmsr5T1WVT6NaFpzua5LfX/Q5JOQciXG8fn9/dKTpRORkqjfG81T7jlD+AU/zlD3S1FU82kSZluLMmTQ0BpRmq5L5LTItgpQi3TzgUqtFyeXqZFlwSW2VqtO3vYvlu0lTiP4mCkcYzP0TbA3oM0FsyYykSrVsh3d6MXd3/km9VEjdt8uxM31rWwoCXb0DvhQpyiz+p3pBTUNObhQoIxW1F1z0j5PQtF/dPPXd3pyEev28el338OtDg3pt67Dje4//d+Kx0Hs5Hn7kxo9W4+nZnNdOaD2JsCczO27rEHKSXVPj1spMaiup70bwYOrEoryLwybbNqMei6LZNufjSfji9/AQ== + + + xVXbbhoxEH2v1H+w/JzsAolainYTCRKaSm0TsZTk1VomYGFsZM8W+LY89JP6Cxn2UhbYbdq0TV9WWs/xnDOe4/H3h2/B+Wqu2FewThod8qbX4Ax0bMZST0Ke4P1xm5+fvX4V3M3VcApzYITXrrNyMuRTxEXH95fLpbc88Yyd+K1Go+nfffoYxYQVx1I7FDoGztK9n8UcQt5XCWi8gpWYGJ1HRoWAFgkgOsaCbiLVGOwAJtKhFUhhl0YoRmIiXCuowLB8bbheEBfPd2zzXQgUjNR3MAUUmaIpAPLnFfeDg1hurFmAxXUEiHSE761JFq4EyMRXoVhXOBhf67Lo6qRuL16ZkxX/IR+CAitn3q3UPaPRGuW8kXSJUJeKzl6j1xXxrGeUsZyNBLUn5LdTidQ2//lUfWPnzhvIeDqEFV6OJRrrDcS4WOmaldc1llqyy9xqnB6x4vPPFUQEjze+iehcZrArpfn2Hak4eUOf0/bLSelLpfaEtNpH7Ak1gf+ETYKMwNhq//SUcK6AsNwZ6WLId5VWcVfnDvwas//mjbiAe5Eo7JN7Dy7Hz6vajIH9orLRUHUrBsYg1Zrj/m6dB/3Zmw2BX5pQ29V0OrnNdBqA2pmCaZjUHiJYXlB9oV8+lN2X+ZH/2fnUSCnP5ixxiSXvaz3zL9ybF1CxrX9XCJ3ijZjA/1VwBYJM06fObCapRiE12LIkMm2th1Lj1j2l2Tvs1zzE6db08T57BA== + + + 7V3bcuI4EH3fqv0HF08ztcRgMsw1zBSXZKAqFxaYJLtvAiugirEoWQYyv7YP+0n7CyvJYGRjcgVLZOyp8sQX1FL3aXWr1ZL/++ffo2/zsWNMIfEQdis5yyzmDOgOsI3cYSXn05uDj7lvX3//7eh67PRGcAwN9r7rfZ57qJIbUTr5XCjMZjNzdmhiMiyUikWrcH122h2wd8EBcj0K3AHMGeK352AMK7kTx4cubcI5GGJ38eRyWYESqwAjZxhHNR85NiQdOEQeJYCyx554wp6xynTpnQMT3jEW93p3E0Yrt/jFqrwGoMBgtf9MxQvLkrojCGnueY0LaTAqbYInkNC7LqSUsfA7wf7Ek14IKp/0llEDHrQvGA8a8Ab4Dj3BLs2fAXILyQkmsI4dTHKRolhhXejAAcXEiz0I6HAmLN8wjh3GaJcGjOmxuwTdmlfIrTM6BDue2cGYdoC9eC9nFOLECsnUjgobmvTEdsfammcP0KCGCZNaDVOKx6fwhnbQcETX2BArOJkbsZeM5XUyN360TMYMLmvbZ08XXDGrkwlGLuV/d0dgwqB9CRigK7k3Lnbh23WubZH2OZiiIeD8v0I2HYWkS++ThPUATx6ATt0BnhfHjrhZyYUVu0SeDxxlgGkTNAbk7gQ5TlqI4K3mZBFFU2jWfUK4SqExbHNUQBJoaSgYK2+UrDI7lcvbQ0a0Dk3sk1Pkwhjl4jtGdXHaNekuBYS2sYd4BxxWYWctPkOuT6HH+8eQWBcOMTR+tPLGR7NUniSAcTu0uwzOrJGKGC4BTVitVfPReOJAXqvtkI4ottkdM8swYr86w/aK5jlOoqag31krh5VUHzFrHxYTsfcRCrkYCcHwZ/oBSZwvxAmmblORm2L/2AB3lwjOmhAwo20G/zWhMNmhonxMFzSRKqlwagIB5EUP9aPVhWPUx479SXRfqUql6jjsLw1lI1csfQn1CHC9CeCGXAiKuaFD5L45sL4U+b+3cclZRbMsfHPph4GXmq8OBryUjd76DsT7/J76OdRWwwPz75Zrw3lIo7g1Ai0Kx+axC/psfCfY2mQYdSI47RF/ew2S6D2W0kt1IhAac5voangm3ZMsXaAUdeio87IDUDfxlI3NuH5cjRCFPThf77121mjzDPsevJiq6B6C5rcJ9NgNtQxo4JmrigHnmIyB80D7terfFCqp2fJ62AZ3v7iyqmNDB/uu3WEERIxGnIr5KiF4Vh/BKcEuV6XWGAzh0txza29xax+PQqXsQZ9y8xMFfYOAWWAJQ8SfAMfbkgVMpskhI/jTgQ6IDOv5kxq8YfwRzzOzv0Wl4s7wIsjHWK4uELtU4ETc76KNSg38pm5Bs24gU0ltVHIZiYcMHzNA7F9LRTVofXyILs0EyNNGejuo2QBcX7UP3VulQ28B5R6eiEnP9CAtgYwxBfWRg+hdKBFxy3mlof+ln/16JgBkQ5F23/ik3kqJTqt0POWY0n2C2UWzg1ehAtsttTSMlw98r9yGhF9cTMCA9TZpudr7EF6KBpauMLnl88CqYkuB6MJUnKWJCjJ08imnZOyf+JTGBe+X3T5r43atU0kzvChV+6gH8QggpWLANAgy7wljlIJH9nF04dDS91GHnH3gijawUeUaq+10lYebHz/rtHPTWMfElScaE81zJg9l8jhUGQEWQeAD663cT0TiwaoS71J3ZrO4rdSjBzmFekyh7s+UhCL57EMULpOT0rBhmEctd+0qfecoY7JB6CaNzkZZySqkEDLp+rIhH87YzRHPLViyQlpLGV+IsKUlVOn6YI9tbOC8hhU4zBvFvMHPiuZU43VVOynUOW6fVuvHV61es1qvH5/3Fj3+clm0UGeHQuICviguyccPl2g8tHxaK6P+TMgJ6ckBjOSlPVvSqM1Bc2t3LRIpeovctgW1P2+LpVp1cTT+4mfMT8f8FDyoVetV6WgcN4bV6rz6rpodr/ewm53iwD3/OSjNtlJe/8qize9lvz+t+f3xh5m4fmmhTVa/D2XLvr4u2NeXVuGQX78Al7y80lwq79Kybz6J6wEru//U8r5btN+Zi/bGyxPXJcEP2r8qDh5faO3n4PDij8TyYvWdDp9a4ezQ66hUdmcM1tfeSwsxFQyV4xVUug9GZKCjNsUrIUr/yoIka9BUNqST/ef7U8NThUDCxMBrh4DCSOaGCRC1ENjSqGCfIKB24jwzBZqAQH0WxebYcGYWVJkFHWcKMjSoRoM2yVb6wEL5DED6sFA/NaQnFH7BHkKrbMzowCJEiHagUCqmTDxZ963DmjqNwj8qltHc62up09H4JoNtYPMt1t9Y779YpS/iHG40aFlmKZi+3jQVvtqWJLo7WXh7w3x4SnAQiaEnDpqIjadS27NIowzpMKNCg/375M7hHAe5Jwv4re1yk5A3/UkD6GwvbTlLytZKG1iffMkIowFwXtkeOve0WbZI6lof7gyYX9vgUR75qTQlujt/myCtOK9zYzZcbHvi/Cr/VcEYP5YEWcwbB5ZIhDxImDJKT56ciRoYbVU5utw7dpAL5cxVBhZ/7D56w/BdVGGlaYoqoHH2bkJ1VU8upL1kV48xXkq6GjM9euzkH6uUkgWh8kjmsNgOdjCJp4qns1diA3ncA1cQCrovALhjl5ZvnqrUpb0v6WXbS9B34+atqWjsA3JHBekzdqu74mNAHv+E3XJvWJn0Ef+W2NobxqJP2fw9uNhXyHIv+YIcY8rGOgrGbPqen3gnbHb8a4Dip+ILgl//Bw== + + + 7VzNbts4EL4vsO8g6NQCqfzTLZDGdovaqRsDdRLYjtsrK00kITRpkFQc3/oQRV9mD/tG7SuUon7syHJSJ5bUVQRDgCUOOZz5ZkajIcGf//7Xfnszw9o1MO5S0tEbRl3XgJjUcond0T1x+eJQf/vm77/an2d44sAMNElP+NENdzu6I8T8qFZbLBbG4qVBmV1r1uuN2ufhx7EpadELl3CBiAm6pvqeohl09D72gIgTuEE2JWHLNJpAU05AstO0dtdzsQVsBLbLBUNCNnPVItvkZMZiiSGFRgufTZZzyUsPe6zGO0YCaXL2R0IRRCONHQChP0y4mIfkcs7oHJhYjkEIqcIPjHpzvkYQTD6NSusiDtaZ1EGPYozm8qZLmZyxfqu7HGAMGExBGU80BGP7gkcU2nsslUtEoIyJfMrcK+OTS3qUCEYxNy4Ghi+O5cmmU3Tt2kh2C3slGSsOPUeqMR7/liJ7GHEeNekRb/W0o29yCaV7oEHVNoWvJaRP6q2WrjjVLw2RHWEbIpf0XYw38Ep0S4ctQaRF9+mwTV3uIRxq2BjPKBWO7DWkllTNFEkP6+inlKToqV27ZzplMa+pC4tzRAArTEpjZU8kOMToVVHijrGrKPFYOwv/yMShihUlwbBsEeNxKAYxYCyQWIG59ixNnxNq235uLYTMzzOBbp1DJnClSJ0zahOGCJ8jJqUvf7j/k4xsfeAMwnnxlvXONKW0p5TNEE41rUyxMoKbgPasgm635I96HM6ugRWAW8y7gmwXyM4ZcPm3AMBCzhVcu8A1BpvCxaBRN1715XvxYIiY7ZJnzVazVW/Vn2cP4Uf0BXDaGzZbuT/g5dyZwI1oNA/OkeWXb581Wi9b8noeKaHeOpRKONxUQga5yAhZAwEzw59SnHz8+Po91XQeMnqc5ggGwnSmktg1EcbLmFsfYZ5uqg+W5j1BX6T7qIz1xLUdLK+VeBPmZcLvdzkVkMV1kXm1QMziYSJX2X263X+r7L5Udt+nrFCzf8cYXfQcuGaUjHwVDWbIhtgD/mmpXy4WfzHwYQsUEZu+ms4IsKrKxPCpp124pAwC/6h8okQ+MaEWWhblELkXyZJvvrxKnE+6aFYyFEv5BZa7JybexZUj/h8dsVAQS+mHuUO4/v7fJ34lxqiApb0sMSppMBwidgV+hAKJF2UHx3CJPCz8+mKmS+ojSsXq6yb/nHrrVpWS7Bso12aP6Nv/VUv9di117xG13A01WfZYVf3rft1f3d/y4HCV4HWwSJBnXbCqGty1D6CAEHfLMApbkn1igkdLm7mL/clxhao93l8qzXUXRXGKKFTuIj3gD9FAYa4QbCMqbnvDFj3sM+Ur/W6HAMMTWsyOoq2+XGG4A4Y5e2D8/R/gdUwXVbXmN5HKffdeAqu9+1aFVTbl64zgeqKF7FwDZBqQe4+RFZC5r+xWSO4TyZyjayqWVXi9H8uNel7iPIJ2be1UhNVTdSIC909EiLZwrbNuj5C1SaGFpcc7a8Z+zw0t649ZCZHa2TpZpaFt50Qomlj+5CkTQTHfP5nizS8= + + + 7Vtfb9owEH+ftO8Q5b0JbV+mCloN2q6VRocI7fpqyBWsGhvZTimfbQ/7SPsKO0ISAoS1o8TQNA+VqO3cne93uT927s+v39Wz5yGznkAqKnjNPnQqtgW8J3zK+zU70A8HX+yz08+fqvdD1hnAECxcz9XJs6I1e6D16MR1x+OxMz52hOy7R5XKoXvf/O71cC05oFxpwntgW+GzN2QINfuSBcD1FTyTvuDRzF0swBEKgOwsq1oPKPNBtqFPlZZE47QKZ3AOhfH0hEHGGisa60xGyMuOnpjTOyeaWCj9iQ4XxJS8AYC2N9tcwgO5tKQYgdQTD7RGFX6TIhip1IKZ8FmrrDpR4P/gaaGziaql+UyaVvx/ze4AA0kfnZ+UNwTXUjDltIl/rWHo3Co4hwcSMH1OFeky8FuEctTEHUGYECzCFMLnLovkviBT1UOmPS1ktrB3VAUENU80xAut1FjNRvm8HkrK6kReMLSQqUyrUmRzqbprdFwCsQ0gnFhC84i0JB0SObmkjJkAZ6aJeNveUAg9wKeawocEmBvB9wSXZY2EtBoDdHsJiQXH12BEqXjKtiIq4WjNToiHut7Q6y9rJTKEjM0ZtqOmCBT8wLCXaUlvhCZRXWcQDLtOwisffEImhQSpJUHhTwMQRZxKgP4PoI4kXI2IxE3XhfRXLfyD+eSUz5RK1wOtMcHNxaZmtCOlF9isykBv3KiK7qlKk5oj7kFPcL+0qY1s6hp1dykkNAQTRiJfXCpe8Gn1NXP+V7Q/YPg3LxQ7MsjW2hv5vZbTbhyi8Uq0RH/H6C/4LuPwN4l8xOoxNoDjSgtkL6MGz2W7OzyA+co0SE40fYJc67Ls7ZYhqizQ3lXiU9AKLTnSWmNVOUT4vI/RCo1XdL5lEK1cT9QKjVUqwuaMl/EYWyK2xTesBOx9pUVYT8U5EWqAdimjepIkROEQ21LptscZmLFry4KarvG6M9Pl7ODeP/+rQMPpSyELTjP36sbLgkJiZeoox3TSUkiwTDjAhXqg9ID77AEXoCpd4ObZFOX5f15Ufla0n6eL5l+ighYlZo4XTYengoKFdSMjo/zhytv1FRSeD9BzMG3NSeCPIJ6162QJe3vtJIdGXSLbQuj5UdouLv5NpAw5F0rFzR1yLmqzumFyzhwKCVP5wdRco6a+eZgF5K06zBXhl/odq26q63I+GnZcqmnHZRvYQmdnOD19yVZWWJGeXxcocLv2y6HlX7FkjRTpVtMZ4RSXKJi+gvOSrBkSICxrtRRCs64BNlyTKH65fTZ8NGy5Pf0L + + + 1VRNb9swDL0P2H8QdF6tJLsUgd0CTdetQD+GOOt6FRw2ESZLhkQ3yW/roT+pf2GMbKdO4hRYd+qVfO+RfAT58vQcny5zzR7BeWVNwvtRjzMwmZ0qM0t4iQ9Hx/z05POn+D7XkznkwAhv/HDpVcLniMVQiMViES2+RtbNxKDX64v766s0I6w8UsajNBlwFrg3MoeEX+gSDP6ApZxZU2fumgYG1ACVYyw+K5WeghvDTHl0EintQ4Zy1EyKKw0dGFbHJquCavGa8ap3LlEy6n6IAdAopXMA5O8bblODqvx0tgCHqxQQycLvzpaFbwGq5rtQ7Ex6mN6SBxMnjS+kI5culNZ8i04CKWjI0Dq/k6i075QvJQ0lERoga8USngJpSwp/0+S8wV39IDSak1sb/pZfIy29b1Kc1SohmvArZWDwTh+Z2B9IdE+0a4no9iTQu8z+x41cZtasV/FlZPOimle61YdcTv9DLScWbx9ULFpn/RoNJ+3XJz0GvfU6Qnosp/sINrIGndXV45hQy079iX4rU8d99OsyWjObDW3cfZOxt9AtIw+00n5olXqr1Dk8yFLj/5enxRz0KSzn0I+tHrQ48KEDNXz1k78= + + + 7VnbbtowGL6ftHeIfLVJbUJhF1WBVgFKh9R0lLC2u3TBBauOHdmmHF6tF3ukvcL+hIRj6ErLYWOAZMX2b/+H77Md//n1/DN31vOY8USkooLn0ZGZQgbhDdGkvJVHHf1weIzOTj9+yN15rN4mHjFAnquTnqJ51NbaP7GsbrdrdjOmkC0rnUodWXfOpdsAWXxIudKYNwgywrFX2CN5VGYdwvVX0sMtwaOem9iANBgA6gwjV+hQ1iSyRlpUaYk1dKuwB/rAGFf3GUmQMaK2et8HXSgaMZ6vhDU2wPoTHQrEM7ltQjR6m3MjHaClKoVPpO67RGsI4YUUHV9NCAyNT5IyCliR5jeIgYMpL1PG0NS4+cnVTH/i3EZcz6M6YUTSR/OW8qLgWgqmzBuqOpidM8CAa9P1hNBtGOWIJoB2gwGqPLoSHCrWrDXWH8zJuaCvoYVMtjMAKJYwIgOGoCXZ+b1iunRALiT1I9nZ6ITzFtsA8mjWKZiLDCsVd6FYY9iaR8G8YcjfSO/Z4AThmfFxLnzJ4QnHJfFjSRLBA20UhATKF4TWwrskD7pGW22d8XubYFYNN2NaAcnoPWVU90ecCpvY/0CrIQa7Q6yiYAz7UIkcWw6eqXAlROvKPb9dOQQVTby1wDClecM4xNGqeLhF/gUUxsbuDgh1ibnysQRPE0/svxCGYDGs4ajbZRT2GGz/WNgfCq8/FJKPhDW841Ul9aimT0SZoc5R3Yw2+uht7/oxg+1re/gr/QhKERSVblA6QVGwi/bEr3Reatl2z/4y2WgPnIFjHUNZteBpYO3r+/pL9cQ1+p6bjIN7wX1hROzUgZFZ/R1mC7thvGnszlZYIg+4w3QZUDxwsHwksiwkgWNKLHs4LXelrAmhx4xJIsd6/d7w3d6hfHZFpFObWHdJWraePNg42lXcDFK1n46y4f/zOm4gW3Mqlc1kU9n06p1arUtzrJvJ+uasidzzuDXMO6sg71wjbCq/HXYD++cljIh8L5IyGEkH+J6RqvA7ftSF3rd1LbBnMvU+nHhCS7QFv0LzxFIK3su3pDrBceDFQphCbiz6DjH8iGEt+IoxTOIFXz5OfwM= + + + 7Vxbb9pIFH5faf+D5adWSgwhu6sqgVaBlG2k0qBA0mrfpvYURhlmrJlxgN+2D/uT+hd6PL4EjGkCZQzrWMoFPJdz5nxnzs0ef//3v+a72YRaD1hIwlnLPnHqtoWZyz3CRi07UN+O39jv3v7+W/PLhA7HeIIt6M/k2UySlj1Wyj+r1abTqTM9dbgY1Rr1+kntS+/jwIW+6JgwqRBzsW3psZ/QBLfsLg0wUx/wDI04i1vuEgYawACQs6xmOyDUw+IGj4hUAilolroF2oCZgZpTnNPHiq8N5z7QsuMRj/NdIoUs4P5M6Q7JTIMxxsrebnEpDaDSF9zHQs0HWCkQ4d+CB75c6BAxn9fLaiOJvWuQQV+QCRLzLqHUXhq6Or/MtOdObyXfW/YQUyzIvfOZsA5nSnAqnTsiA0TfU4CBKWcw4VyNYVSPe4DbHQK0WvYnzuBLLctN7Ql2mgOg5you8vmMKA8UUjjpaC1ca9k3yBv4hMW8ZYWhp+mMAdZ09BKwHYqkTJpsK55FX23ZC/NqQW+p11mRhELJX9mK7PJlo4fn6ceGSnSJv6GAqi5flZsJJQKkrhSeOLcSx5QviURfKfb6iAALiSJ1EZUGNCnc7akSxLBGFiCXWVBxYDhRqxxuzGIDH4jb5gLMUcOfXQcKzJVATPpI5Ki5IbiSDf/PFfPwLAXoz9Ju80jgpdvoPSTusehygTuccvFXvY+FW5AaLbuONnLvNQ+pMn0eE3UAfqPwDZ7B5PSQMGn80Tiykj97x8ZJ3MQ+QCKsirHsW78dKAWR+C7NLoB8IQSfRlOXMsCq1EerzyWfskqBtlGgPvLCLPvVSf0o+jlu1F8f/fzq6Xn9HH5fFxnSv2ehgY6ipw9kNKbw+xjQD0WQL+RfpPdcSkUqeOEuquBUANZNvhJK1DwVOsQOFPky3z///z2T/lg6y/Ky1aYQj1ROxbmgCguGFHnAuaGNodC/qus9H6JMamkYonC7Q5wru9wN5N7z6IIW2+NBfo2yjIvVyO576RduWB3RrMRVuhdeA81svKoiuok2HXJ5vb5/1TLtdkuqVZGN0gby+gGLyk496UYq/dpIv8KMojPGD4KzMIXR905OGrM3VxM0WhHm7pIkR4MVfjeYLkVrKDNkt75ZwJJiSAXXLxdcqyLq/kp5xWdVicM2UdDIWtGQTnUb5IAAWraaFTxbGE2BJXw0D45hl1aBsxk4BQeIpYRnOT40HhpWAeFh41OIEyo/UqElKiAvrjA6fIyqHXXQzwjcXjmwRPf+I5rzQCUlw/j/wEcuTPH4XOru09IlkNcXFCP2ik9N04ck1tSSDz8sKGkp1jAwhfiYkkJj+AmVNFQzcpPsJaQ8ZvFZcP0VQrtIehIpmk9+CsCrnJFaNq42Dlmxm6ycoPWQGBH2St9oOm+s3mr6OUSbHWeFMBtEOsQz1eaz8O7PbkPZlSg8c6i9WVs4Wv94VR+rl+Gx+htMl47v6+bwOYKVHla8pqfWqoN3jyzq1nanfdewsfhCgWjiBSrx+eZnUF5gdpU4QLJWQhqWdW840H1SoWffj6CH6ncqvP0B + + + 7VtfTyIxEH+/5L7DZp800QX0LrkIaAT0zkSUCHq+VhihsbSk7YreV7uH+0j3FW72LwusoujuwboBkqWddqbzm22n087f338qBw9DZtyDVFTwqlmyiqYBvCt6lPerpq1vt7+ZB/ufP1Wuh6wzgCEYSM/V3oOiVXOg9WivUBiPx9Z41xKyX9gpFkuF6+Zpu4u0ZJtypQnvgmm4bc/IEKrmMbOB6x/wQPqC+zVXgQA7KACyM4xKzaasB/IC+lRpSTRWK7cG61CYtn5kEENj+GWdxxHyMv0Wk/4aRBMDpd/TLkHQU3sAoM3lBhfyQC4tKUYg9WMbtEYVfpfCHqkIgSd8HJVRIwp656iDBtwSm+ljwbU51XS+fzVTH9u9Efyvmh1gIOmd9ZPyOnYvBVPWBemdaBhalwp8zg2qyA2DXotQFMG4IogY4kaYQiQLsyIVFshUaSPTrhYyXlgHqIDCOGJoDFx74MUKK4RGgX26OGniuVUKT6j9ldjUBWNkhH9qQqI1zeHz/FivqLIJGhzRkyFHyqpme8Sortla45sx1wP2UR+gEYdNp8y4zohSQZUZaNItRZPCQTXEmHtd+7Iv+SrPqtxXbszYcmxegg2a86GUYpxjs3rYZBqTJk7vx5SxNBYZb7S+cq32EKfxAbZqih6EC8yZ4AmsLyvyXruK/jAW9H6QWE1hKzhHD9U67DoOXovIObcox2kBToEOUwTLUWmO1euxaklQ+Jg0Uj6bHJ2VRCfw189HwHOQcsdmpRybLFvOf1gok/FqsgxSul5nIo5MhuFZYwcmy6iQnhPT3ygVt7zv9k5xcyso/VreLeNvM8148xF3gsxebOUH7Q8Y/ibR5o6049X5Rn4v5bS2q/N0qDfi6mXOpCPnJFtNIu9w1RYS6oIJGRr2l7L7yQ17LQw7ehZkLj4MujzxvSePW3golDE7T8l2gz0MDpjeUMTwMbSkMHq/Xub0in2w+5g5y3FHVR/AvRTcWRNOhqQP63L2Mg2QJ3qWAbocJQ1PemGl7KOVxuuUcjg9B209Qjs5agmglvx5SDaBemYTlqSjkfrFr5mx7RZbILsQc0PvPZdr/x7eBxttvml8DwQpb9NfsFEsFze3goh5GBbB0vJ2Cb+pBEZQ5adOZGL6rKwhyTi4WZXsFdPVClnMqyLbxoeltLsO52k5lKsG5bKbnhzJlUDybeGGHMRM3j/K8Bnr7KY18GiTj+st6Tpnevc65zXOJGNVCpGUsEmpmw6mnHSwC2BTaWduNWplnsLwZ6FnZyenZXQHu3BGey7X6Qk5oplwXscRLv5W/WVz6bS0MTIgNE9qyoXnqQw9lyZU/mx+n9vUzQnc/wc= + + + 7Vpbk6I4FH7fqv0PFK87o3jZmbZLZ2q8YNuFjA1een0LkJG0gVAQRP1r+7A/af/CRgRbEXd6nNZ2LB6sSE5OzuVLcpJT59+//6l+nluYm0HXQ8Su8YWcwHPQ1omB7EmN9+m39zf850+//1Z9tHDfhBbk2Hjbu517qMablDq3+XwQBLmglCPuJF8UhEL+sSupOhsL3iPbo8DWIc+FvDKwYI0XsQ9tegfnYELsiDKMFSgyBZg4jqvWfYQN6CpwgjzqAsrIXkhhNKaMShcYpozhor7+wmGy+Ijjeb4moIBj2t/ScEA8k2pCSPnjjNvIYFJ6LnGgSxcqpJS5sO0S3/G2BqyVTxvF1YEHja/MB034DfiYisSm77rAnUJXJC5sEExcfmeqfXlegp4qjou/a3wfYuiiaW6E7AYT5xLs5RRgdCi0ci0baBi2MIPHpqoJDBLw3BAw9Bif6zNQ80lt8t9Rp6oyeTolbrqeK8ziEVwkeI1jqp6EUKZrNC5Nm3Rp1fwBBH4QJgYIBg77qBOXLaw9aP7f1iHyfMDWHqDPJm/11XgZzunAUR2MKGXL2fQtLSkinKthsnW9mWJnZTcw8LyYxMceDXtrfN2nlNiR7kfu6qTLI+em2HZmbPousD0HuMxcEWH8a2ITan5tyHR0ZtjB4+wEuJz9XDiphT0XzpoksN/YxhPvr3Qrsx32ImxOHJfOhc2VRqZz3ODWVkZOzdWBPl2fRc+3t83uff1L3HcXULxwIv0ksCD+G1zfMiBSgch1PPYYo0gHOMMk7Rg55j21LW3CTLYN9p5y4EbmxYA/8GBMWJ/CXrYILgWbJvJWD3LjOhEZdHKh2asOgOyN8bnYGSNkUHMD0M1bwZLUL0PjktC4+uj1g8AUhItB5hJCS+Jp9I4RkH6aZ1LiDN9emK/5Vtq49DpfSz0XWcBdnCLHkADoJKhcZX7hfJicetNcJTznjEJbUN0RFy1XZz7uWGDy/LT5+NHP95qVsjYKJoY1XOhFPNOeBNRVy0EH1bFmybNxG/vjpYCMR8WS+hPUW5ZvBpY4VUcFc1wc9kFbDMZqnc0x9/WlU9aLD5WOZQrG3ZcP0qJSMkq6byy7vla6t6VlJ+g2W7NRq9AdFGUyZnMwOVu80x/ilUbY10uKyfTEnSemV1t0NFuRtaKCe1MZs/9YfwpmO/1P83ttJNrjoSzo1tDU+n8qYNlZPIyM+sNADH+KiMNWE8JvKepX1u19/WHdv/VTRKXN+B/NutxK0sQP/UdHlpbmqn2QhAJryQxOWavelFftoFGRV61UclgrzL7esRZ/ma34IKpk/Bl/xp/xv5jfWAqVXqOSOOfKN1Lh3hy3MP1rZOBB0TT19uCP18mjpQSd+HaQhZwjQk5j3S/bWcjJ+DP+jP/S+X8u5Jw7a//m2a1fMWFypWms4/OMO15Lc9omzxq77tyr7vh00MttWydqXtOyvdMgUalbzW/VCz/3hrXC3qpWWIF4pyY5JCvA2B/BRTfYw5Ws7Ga74twxmf+5AtgDqmxXSq8n3pIS1R2/QPL+VXy/ioOhc9BZIUKHKrjDMRv/J+u/Q9awZvzTfw== + + + 3VTJTsMwEL0j8Q+W78QFLqhKQGpZJZaqKcvVSofWwrEje0rbb+PAJ/ELTJ0E2tKy3eAWzbyZN/NePC9Pz/HBJNfsEZxX1iR8O2pwBiazfWUGCR/h/dYeP9jf3Ijvct0bQg6M8MY3J14lfIhYNIUYj8fReDeybiB2Go1tcXdxnmaElVvKeJQmA85C7aXMIeHHegQGT2EiB9ZUmZt6gB0agOgYi1sjpfvgujBQHp1ESvuQoRwNk+JUwwoMq2K9aUFcvKp473coUTKavokBUHdKhwDIf7fcGwexdJwtwOE0BUSS8MTZUeHnAOXwq1CsJT30r0iDjlO5dNNjpTVfKKXiFDRkaJ1fSpR9Z0vXCHakSViDpRA9ijr1EN0q07YGndU+uj6L0kIr7EgDukIvE4bO7SFJ99Z3Qby2lt7XKV5zhmjCQ/cZnVQGXNjnl7+P+LiuWNp3WSmxWqpQt0r/H5pEHyprWUe/1H8yqdroT9gUi89fWyzm3vx7NLx3P3vvXdALdyWku7L/EcEqP77pE//a1661SFS1o3PSkSRrJwyyrDt95d0Uaw5n6cTs2O6/Ag== + + + 7V3dVuJKFr6fteYdWFxNLzwkgqi0es7iJyAtIgKi7V0JBaQJSUglIF7NxbzHPMNcz8W80TmvMPUTSPgvEEjU7F6dZZGdb/+msgm7kr/++7/LP157SmgADSRr6lX4OCqGQ1BtaE1ZbV+FLbP123n4j9///rfLp55S68AeDGF+FX1/RfJVuGOa+ndBGA6H0WE8qhltISaKx8LTbbHawLzgN1lFJlAbMByix5ZAD16Fc4oFVfMavoK2ptp76mMFYlgBLC4UukxbstKERgW2ZWQawMS7Ed2D92FlquZIgQt4QvZntZGOZYXtIxy8LDBBCGv/3aQMY6RqB0IzvJ1xExlYStnQdGiYoyo0TezCvKFZOnIxMOUXcYXSAMHmHfZB2ZB7wBjlZEU5ugVGFxo5zYAZTdGMI8wkN9KagS0JT8HOy0Yz+xeKDo3HV+EaVKAhd6OPsprRVNPQFBR9KEQroFnVDQiaiLhIUnC0VDOKNepZCkgD4xrK7Q52XR3guOIAnodDwj4lV01gWohP8KWwxieXVSy6YWrGYmeRJBpzhGwFWGJtovIivRbLvRSWJMeGGUSzeSwiJxvILPRAGx6VQZOc2P+IX9B/3w6RQtglBRP2opIKXvAZS1P3GkdOmYpezbDgbhJnWh6vpPdmSl1GFlBIbjoJ4/psJiR5rabRsKQt0ySToKcJUjbgQNYsFOSI33JkHBlfpEkJvgbTiO9ShETFF+lRBMFVxn/pQaLiVXrklZHeqeH8PI4dFRqa6lSx4wwRL2IX+P83Uua2ZRWPj/FYPGjGEAUnYfvzX//2QRWZajZLcDgVyxp4Idr6KIjexeif//FBjFxl/vRJZ8i6Z3V/zQAq0oGBhZNvj3Mh2mcNOweJQTMd/J17gjX1rTujAITGu8Jjl9NPr8IMkpqw5f2GBXO8sNjETx6imRIyiJIvo+Sq4oII+TJCrkIqiNCmEVpyw/JDxci2IYjSe6O017kuiNJHqRuCSH2IIvyThukWpza8G0Dj0N+TohPJQR3BFyo8EyH8pzeBymrDoODzYaCmL09BrPw9/y2KVjAF+jVaToEeRMrPc+BsnIL5z59xcm5LBHHy98w3G6lg5uOP1NQXX2xlj31zPJq5UTvTHcB++3W3OO41yJ79jJpqNGYcE9dfj9ydnn7wS7RgZy5sHt5Fe/xBmXSroujk51vXb7fRR83o0r9QlDUhoGhFG2KPWz31GnNhTKJhdOwXdu7aP0WLR6HjRBxvzt/X9boD/XKWooz8rmQJQwBlSrvHjmy+rydnB3pda+MrzFit42QSe8ze7KNl6LO2KHE1UmwcMjtYwaT0sSalr3i+ezeX+/DUnbLt8Gev3VaYuBAv8P9vK1fP7MA37v4wZ4EMq/mR5FVTmMvoSZEZIyUmLjIP5wXSwpfWXj3zwi2Q1S2+Q75zBdBksdLhDc7CFrAUM4d1O2Sr5gOCtuSsjEjh0SxjzztVRw4oyKuyw1FW00yssGfJuLZDfq9J6ZyUX3UyIgtRvZyM1jWvfdkFEttIwpEtEmh2d8OOaZQuRZlIu++KsXTKpuxPstXIRiIbtiOdyqRclJWy7VTqNXWSCmg5VbrP+Tepnqv8bE/GTfE5XzGPi1URVeiHEh6jV6kiVZ+5QDFn5YeSr3RB3/kwjcfPcYIff8B4Pfy/+yLci6Vsoc0D6jr+flYexlKbFK/yUM/JXEoyqojN6wo5fpB07GXychirTuQJIvbPC+IHlcxi9TXH9MHH3w5d8rB+FvFvX8/ei2WL7H/ms5/qR/x11qX20nFVNIvSA9Wf6Yvx6w+l7H0kgfFv17qC+ovZP4mHjU/1m/bH4xnVf7gcb4a/QPOLh52TqD9Fqu81jp3Enz/riOZXb2K/Ke4C9IvQ1ZUHS+UKKsLoOUttkMdGeLVGLqgEgkqAixQAs/XEo9o+buwOL54UWkJCaMWFCB1zzcxL8G6q0u0P0OqU7x51rSYofSAJCTp+0Av3GyMzvEynJWQYnh6RzhMOfvcmJ5z/qHY72e3wnOMzVD82Br1OOXKvPQlDyr8VnouJ4TM86g/Kv9wfLv519nHJn+Pn8dd2/uCiTf2xAW3qD35y+2N3+lJy5d9O8D48eVkJ2HcHgkIgKAT8XAjsjtK551J3WHmsPa+d2KV6N1Zj/GvxcvGHc6nSPC6v4Gd40lOzZvOT8WJUqh/Dk55Lv4SF/G68fO2nIK6RP69vN1ZOsuOpvG3wVurTipVL0lPy19tWePP+oHjUHw7+VnhT+jr6MX+QMU9+LMPblf0r4sGVHxvgOUwr8mMh6H7y38XP5S8nf9dx+pk8KQQypMVS+XqFQHC55KGMYLW6w8GZmlg7HRYjiUiN8a/FeynGzouxUXKwgp/hJdHgxeYn48WoVD+Gl7TKv4SF/FN4v06EszXy5/U9iZQj7Hgqbxu8VfpUxWT5TjTLtbet8Ob8QfFsf0zwt8Jz6evWj/iDjXnyYzHe7uxfEQ+u/NgAz2FakR8LQfeT/y5+Ln85+buO08/kl8tldNz0EVw3P/h189TKj+oRo4OU3dxvpniu+810/I67XqfNiHh7N2ghnOUnL2XhNJJ/EyJ0rMfPNr+fxvCeOmiQZXjJyNt5xMFPwPzo/E5tmZz3E2fxnOOzVD82HnSQICgnL8Uh5d8Kz8XE8Bke9QflX+4PF/86+7jkz/Hz+Gs7f3DRpv7YgDb1Bz+5/bE7fSm58m8neB+e/HK/Obhufpbrpt+pj+ntBm801vbSBz29eSpr/VJM0cED62Ai+9FI69/IfB1bN/j4Hz0dY7k6tjJ4rMQxhhYHGK9HNoZg3IwQX8eN6/jZjq0bLOsJUjxizyYdWwSvQuwbRBx7mTyjf2rWCZ5wSqA36Ni6eVT0Sn6ij7tji4ytU+Ib8pdhkS1fx1aG6kf4z/rUXjrWwaMiAao/0/fUMuqACkHGzXCtK6i/mP0TfW18qp9LPttFoLmuFpS/QPOLh52TqD9Pqb44HzsSf/6sI6Kv3mNGkvwPOrb4yTcdWx5eOPf6aIKFtjrPJPiUxk4VRJ/V1kU3TTy0dY/PQVlqKX3+yWeydGn+flZLF0xL3pi6+o0EB1/uyuBSimIf8GWWObqfJeL5Mt99206ttZ+YgsgO7HNoeLiydeo5MXGxDA3ysJmDPDBmP+XXXCk58x7FS8H1NkfnU/omR5qQFahMvTGS7iY5O8cRsiO7QbaH37fAdIke7pdYMmCXFHtJLYdknpcQ4tAs9RQNz7KXa1KeifNnX81JD6Wv8/z9/w== + + + 3VVLbtswEN0X6B0I7iM56aYwpASQE6cBkrSQ3CRbwh7LRClSIEe1fbYueqReoWNK8q9WACdAi3QnzPe9N9TMrx8/o4tFodh3sE4aHfPToMcZ6LGZSJ3HvMLpyUd+cf7+XfRUqNEMCmAUr11/4WTMZ4hlPwzn83kw/xAYm4dnvd5p+HR3m40pVpxI7VDoMXDmc+9FATEfqgo0foKFyI1uPA8tgDMCQO0Yi5JKqgnYFHLp0Aokt/Me8hGYDJcKDsSwxjZaltSLNxmbepcCBSP0ffQBbaVsBoD8ZeTWPajLF2tKsLjMAJEkvLamKt1WQA3+UBRLhIPJZ9LgEqaiUjg0GvlOKiVnoGCMxro9R113RbqNYFeKhNVYCzEiq5XfgkepB1TXGuWC1BhMxaSJ4yzcbxYe7haFHRSO5HltZXmfXT3eFCKHI5k+SFcJGp3ADeEtW8yJ2OqrcomwLcM/KlGtwYyexbrEzsMYKOFc6+Ktnt5ag6+Bv/CP2Fe70fUAsb88FvqQ48RY+lkSg2iKW5hiKvPZsa/xn89oXbxm899N6k5IPZRKvdm5ePBvaSpR+PyCj8KtM7Ox+hPjVicmBbVzyrzb670fwZo93b2/v94E60llSPuIv2bnkyydKL00XRe3Ptdhx732qf7Gn/8G + + + 7VnbbhoxEH2v1H+w/JRKsAubqqoCJApQkkglQYFcXt1lAlaMjWxvgPf+RT+lD/2j9hfqvXJbVEQDG9q8cPFtzswZz9ieX99/lE/GA4aeQCoqeAUXrQJGwF3RpbxXwZ5+yH/EJ8dv35TvB6zThwEgM56ro7GiFdzXenhk26PRyBodWkL2bKdQKNr3zc9t14wlecqVJtwFjIK5l2QAFdxgHnB9DmPSEzzquY0BOAaAEYdQuepR1gV5DT2qtCTadKugx/QZMG09YZAyBkVtncnQyMLRjOl6daIJMuiPdDAgXqndB9B4M+USGUZKS4ohSD1pg9bGhGdSeEM1MyAEnzYKVYmC7pWxQR0eiMd0Q3CdaxL5CLIhJNQEE/JDoQXSNebLtUjX5+jAKR2WnJLzDs8JWUaiFvpTgaD4fwV3gIGkj9Yd5TUDRAqmrFuqPMI+MUMY11aVuI8BKIxuieG0gu/6VBuu7UUo9h+wlNtGmKuFTAcZim1roiEeiGbaKviadDsw1lUxjrClYUiXUbZX0LE5Z7tgwmh8oWFg3SiIJNepIl8YdFuE+vpHjDQIU1tgxN9cCRWRzcMNlwpWCG0AZ8ZNS9IBkZMGZWz3u6Q9MNr3zaym6ELCy6XgL2OjLK1jVqr1TaRMFpiLlTVGlIq7cEx90OobI1g6sPOGaWLRIpETpCi2Yx86Y5Nh31cwd+EKnsRjPz73KD8olPLFkv+xkzgc734fT+JSP79+S7XfJqvHzhslmURGIYfyxRzyv5wM3DdysBoDIque1v7xYdfBZCEhH8YJ+SXkX+e9k0Pxx0sIL1aclTLnaYmeZ1fVZ8nkXtUQrqf+I32bwks/YmxX31PX33WBsatCmoP9rhneQuaMFPnXcmdIVeAnV+ammQldC+76St665GUbR7OOMuYHdUNmneH4ytMgO5JwNSQyLedvOci+eu2e8PbK1L4wNT2hvlK2LmVrX4Ge/bqX4X0iPMSci6ctJsMUhZNTU1YatyQo07BznetilMHt/pSZ+MOJpk+Q+ly4V+Fn7x7ilh4oFsonZXumiDNtDQo4yi/gXAObKxQF3cboyyNQ9Kiy+tX65sKa0oX/7pV7BYbZulW48IyU6F1/DclzSFPkG0pWWiigZVUtLSzE2SsqccHUoHp3/Bs= + + + zVfNbhoxEL5X6jtYPrUS2V0SqaoSSBRCSZBKgoDQXN1lAlaMjezZAPe+RR+lh75R+wqdXZafwNL0B7E5rdYz9nz+5vPY8/Pb99LZZKjYI1gnjS7zohdwBjo0Pan7ZR7h/cF7fnb6+lXpbqg6AxgCI3/tjidOlvkAcXTs++Px2Bsfecb2/cMgKPp3jY/tkHzFgdQOhQ6Bs2TutRhCmddUBBqvYCL6RqeW7hzAIQGgcIyVKpFUPbAt6EuHViCZXWIhG4Fp41RBhg9LxzrTEcXi6YzlelWBghH6Y0wc5iu1BwDI/21zixgUpWnNCCxO24BIFF5aE43cisMMfJYXqwgHvRvioAr3IlJYMxr5k6mb67s1e+bybP5f5h1QYOWD90nqC1reGuW8lujVEYberYM0clU68VlBrykkQWBdQRmjvAnlKJP+OiT/GUylNgUN0dhssHGi5h7sgyIxaJwlLxOsMUiAU78sNNnRSv4W2v8yNw1hH8DWjIULo4wtNK0cCjutSaUKa7Z3QRNsSCgLNFuGFWNJfoejSV1rsOm8jfz+nquudJEgwQpcUrYyVuZETQcmWDGTlLHciLpU09EgxlKoh0YvCbs2RFNf6qboxTWmkH7fBCfFk+AkeLtPxcfwFvL+8eXr7sX9bMLm2VIgbCVCjCti3po+D2PV1kwYuZlo96VSL/6lmuOS2PkTkf+5XTDSMFF28d0rI0eLknauEKymG/cRktr3Aqia31q5s5QeoCRlN/S0yvMQvVQB7ZqNzTqaox5m+b8yjys738OGF4LLa8dNC44G9r7nqhnv+NrcuPfXHvIlf6WdWI4mrYSLW4kWqCctS2KmI7vpwdLju/3Ne1v3Ng47/7+n8hYoq43UbOGVKGlz8AeRswBnwKAEbeUrSdK2Hm/WIPpbOsRkatJVnv4C + + + 7Zzdbts2FIDvB+wdBF1tQGo7zjYUid0itpPWwNIYsZMWu2Ml1iJCiwJJxfb9gD3ULvZG2yvs6Nd/chqnEqUyQuDAliieQ36HPBR5yP/+/qfzdjGjxgPmgjC3ax43WqaBXYvZxJ12TV9+efXafPvmxx86n2Z04uAZNiC9K04XgnRNR0rvtNmcz+eN+UmD8Wmz3WodNz9d/T62IC16RVwhkWth0wif/YBmuGteUh+78j1eoClz4zt3iQJtUADEGUan5xNqY36Dp0RIjiTcFuEduAfKjOWS4ow0RnxtsvRAlhk/scpvgCQyQPtTGSZIcho7GEvzeYVLZYCUEWce5nI5xlJCFb7jzPfEWoJI+axURg8JbF9DHQzwF+RTeclcaW48upu/2Lqfmb2R/O6aE0wxJ/eNj8TtQ/acUdG4QfZQ4lnjVuBY8oAI9Jlie4QIqGDcISAG3BAVQLK5rVLzKzp1xiDUkoxnKxuASlIYFxSMwZURvExlGZOgcJwuS5tsaZ3mnmo/kM0V4veYXzKO+4wy/ltrhLmF1YC6I8JHNC56o4es+1CHFNBHh8gCAEVixxLJFae1a10TeEzIDI+IBVVTFTInVSLT/qV9ZCT/KkKokbRy9aigcijy4EePceiSdwjlU9orJO6xfWET2WOLxCx3coQ8+w54hjSrDd/Qp0iI5JaZdE/h1cASFkHWcSGe6Ri36z6u5YxCqm5PzBf4GkYGl4TSo3MqMXfBwz7g4LdCZCs7LYBdWBbdyE04coWHOJQ2k1XhHeB4Bl7agaeumI3TTvADc8vwToFd3Xo9X0oYbeZpQmCz55yzeZS1lpa00Qfk3ebXwTRSSTWiwxCNOBbwVQ2gAZvXbehAQAV7zg1IhbjKmlEejIKmU1Oqcle3Rqju7Ko6YNiGVA8Z6veDPK2qtqVKTeUog6PpJI4CPArerTWFo2hxJ+l1ocDkM6FELtMuNzUPfedlwq+16WhnOkq8gp7GE5aq7+AHztxb77i9eD2coSn+Tp1DpLvOjAJTL5SSkrakJyc1S5kD0GEFqYi1TK0HWu/o0nOCFb+jEbKDyKafWmfHwd/PKvzo7TBwpXEjCAJtBkR4FC3DuKPUnwbqZVbhs+N5ohzj7P/98698c79wgznMyGDek6lD4bMSN+F+tkF8o7ynSlIVUZHdMJUHVNQzOiV2mlrO6xQ6kfsYoIKmdTVGVeCyyNdB5b5IojEoNTFUe4L88mS0EqMlpxEnM8SXtSfNjuytLenJlgRfiBWNkdve4tqH9r82VKu2cX3jlOEfQ9fGi1TGr3pbr6YvzgfabxEOLLAtBFUVjjZqet8ZvYKHH5qCO7eCjSuXzPLFnmnFSnmKcravJB1DWE21fR1uX+mLdqFT149Aq/v2F/COku8wslVe76NqO5mWL0JbmzPV9zWl70ctYbD8ooqc5VGUV0BZU7FDkVwfO/WE7JNxqZmQzUZWyJuRxqySlfuTs9YZfJSs3Ndr3buBXOr71Bp8meDXYsNKQ98G8O2zthL0FT9kJfMtRDmYzQjSxJUpiSRVsXtSz1DFEsJ+lezRewm0wl5HIbKC977qj0xhzHbdyHIjVnwzU7zJ/GVgUzIAUXuAg57gqjCAr8hZfI8fdZbriH6nSFunknaaa2ejrq6G+xNEcC7qDaYb56+Gt6EcuymMGMP+Azyj3RCredy0GTzvzM89aqyfCBtlvCYlPuX0CZK3lc1QAcDsracQzr6DasM0adVvH3MbPhoejfvmfw== + + + 5Vhfb9owEH+ftO8Q5WmTaBLaVZoKtCow1kp0RZD+efWSa2Lh2Mh2Gvhse9hH2lfYJYFCUtBa1pJKFS/kfPbd73dnn31/fv1unkwjZtyDVFTwllm3HNMA7gmf8qBlxvpu76t5cvzxQ/M2Ym4IERioz9XRVNGWGWo9ObLtJEms5MASMrD3Hadu3170Rx7qkj3KlSbcA9PI5v4gEbTMHouB6zOYkkDw+cj1woF9dADNGUazHVPmgxxCQJWWROOwykZwDJ0Z6RmDNTrGXObOJmjLnM9Yrtclmhjo/ZHOFBYrjUIAbW4H7sEGWhlIMQGpZyPQGin8LkU8USsKufPrtIw2UeBfIgcXRI5B9oSEjmBC1kYQCLg6rzs9wXVtIGlE5KxHGTMLC+PSI2DgaSFVaSC3mlKy0DC+MaSd65wmF6WSjq0byjtoQwqmrKtza0h8l0YwoB76kw7ghPk807DLxu311pv2BsDPZKXAwqsiHwqhEXplSAfET7ffpy+N7Pf5mWCvqYoJZjXRS8wrMsRciCmhHOSZiKU6A4IbZPd4T6UUSSeEeyl4H+70eUQCqLmScDUhEkOwRa4/iQSX/GSQo54HOzWfuVMtC0MahFXSkNmviIcLESu4xIpUQdStB+PvAvcyzFUCH0hQ+Lc62F2R8HcAu5TlFaEu1bbl5cY63KKwdxhRqlzZM2HL7DDhjQsM7B5u6fSula52rxb4XFoZ7JuQanBhqmunnoce7CLXC5CtXBn8KrHv5kQv4q7wHF/J9bbQWkRtIXHv1SdTTHvKs/xfbH+ncdhwGs7jq23JxHpySkrG4nvjQ6afnvhForqSJLmDpnFN8EmKD1PCFKzj7R9OvfSza3k/7wqOb1zkkr+NZ1cNxdTLadufTF8tp/HbG/fJTMRv4L25VWHaskaH1ZarUnk6cAYg0/N7R4dXl6pU+MKH9qP9W2rKNO2V1tBSmrWFVNoWGgIrtJ+y4SHxH2sY82387K6K+X9diQ3erPbF8oVXrHThjsTsKZaf3gnCMG1kLQvVpq5d3vKzN/T8sqlZn/D4Lw== + + + 7Z3fbts2FMbvB+wdBF21QCsnKTpsjdOiSZo2QNMasZP2lrNZWygtGhTdxLsc+gC734Nswy72RtsrjKL/ybacyK4skvaHwEBsSaTI38fDQ/KI+u/vf6ovbrvM+0JFHPLoyN8P9nyPRk3eCqP2kd+Xnx7/6L94/v131Y9d1ujQLvXU+VH87DYOj/yOlL1nlcrNzU1w8yTgol052Nvbr3y8eFtvqnPJ4zCKJYma1Pf0te9Ilx75Z6xPI/mG3pI2j0ZHrsc3cKBuQGXnedXjfshaVFzSdhhLQaQ6HOsj6pi6mbocMJpxjjf6rTHoqbz80RXT9E6JJJ66+2dSnzBOqd6hVPrrFW6Sh8qlJniPCjmoUylVFb4WvN+LUycMbz7rLO+YxLT1XtXBazbodRr0Vu4fPKqRVoLiwZPDp4fq8/DReZNHZ1zQE8648GdSXsw+njuembs3/n7kNyijIvwcfAijEx5JwVkcXJ0Hl6R13JeSR+eSdoPTMO4xMtDV5nvXROFMrrxV1VcpID+Vmc5mmOIo+X9/+7XY1F9F5GelHy6UJN6E7Q5Tn2l2DdGnm8gvb07Vyj0gq3WVV1NykU34Ooz7RAmbSDo+0Uv9prINpSo9EW8o6w3RZt1EdibVyhIFryhzpWBGeurLkMKClosv4kJCKqmTjjILkxRmDMMJI3E8PuR7r5gyVJHUvx75wyRHt76mUcwQWCW7aCWjaQgSxT0iVHHPQsbKMDPDQo/qOKh3OZcdddUFb02NzDseWdJYileSrudt09FLJqmIVL/8hUJHEx0Vqh6d6FaKxy43KNst+fpXMW6CKScLbpBukRdhFHbDX6gpV8guqdvh8X/9A1LfhNTJrTVSn1H2gvB3SOq/Q+obkPoJ47ExnWMIlcP6YBgFLa2vpVmnDVqCltbWUrqrgJByCamk6dvNktnS+duS2Gy8NwceqzvILcVTEzRW/2Z2jxtpOcEF78f0lN+g88mJSFfY+y9UlA0pyROQ8kFSrl3Y0kEZm6SUchCAyBFEMHX5EZW5uHWl0NBPpM/kaRgnc3qtGgmj6YTeGWGx0ZXTbQ1SKX5JGL7ZuiymYR5TYxWccdF9pz5kIdtvQrXFduu+iabiaYGRS4yC8zj58rKZRAcBWD5gWxb2ggXLOyZslraV0p0gqG6HVGdWanapyxSDLL8TYKwCAxqW0Eim+3QzGU/XtsDGFjYTE2YLG3gyBeZnuydjk/Ds0podBht+jYVgYJ8TNH/CPm9edNo+j35qQWvQWlla290uJ0NrlgwQwMY2NtOBNdjYxmax3QCHVU1ld90ZTG2UoLpUqMMutXsrR8xgYQWL+TAt6574LTdIYCETDwE11kADKSsjP1dehQc6J9AtWQQCvVz0zPVr4OYot8koGKhcQYUm5mLHBnpOtjo8pWIjp9nHvWccEKDKh8roc/lA5mjrQu/lFDfMhGyDfQQ/Sx3+JVsDoem53vQAz2F4GGpvCT8gy4fMdFcHYI4NCMApHyfzthC8VuFl2hCC1iq0DEbEZbywxtCLFVIbYe5SSKJtAPQ2lzsbCI7n2krQ2eySxy41dqPPgORbgQIOs7bXNA5Y4gLzc8oS40lJC4hgeyjL2WB7KLz61KzB3vUtiGwcMQOMhWCwaZftYLBLhwNsgMOGzgVNxQE28P4LSh3e/z1xC2j3FnSRYGGchfEdVAy+jRABuk6iQ2z1t6MrKW4wzQ7E3CUGSPkg2WERQctqWgjyXC+EmojPVEzG6o9qpNVSZz344VD/PXTnNb0npJeIbusI1Wmb06vzn4KnZ2oUtCKPhqq/SYWOKq2h6zRzdMW5VCOs0Xnlj1rmxPhkr0ZFk65c6NwiDMbv5oYa8yJ6zQa9TjL63j/Y/DtuV8WSVrt/v9xrQg3cE2851vMJk69bB22uXZU5UYMp07sGAKYtLJRgiRIML5+V3fGmK2HSB5de6g+dUFI9k1zmkHIXymnmcR0z5bSnFZvRM8pvsD83Lvnyi/ySSSoikkisrAmmjQwTd2dSaePuxHTEaNCbKEmXWWWFLPPJsoztIlJ8pi4fAOUCVML+EPN4tKcKPDbjwRq3o2YPy3FOskIjW8c2OrtumsRqbx2O++a5i1w1vToPVFGbn9+SAe9LY4unxmLuMbE/b1VNTo8YlkF5AlhNcGZlYHhi1OTLdeBMWOoF3v32bext7zQ/ePKOwgMx14hhS3uX3RPsj+52gwMyV5BhIngVXqZtImitQqvsgIe5Z87NBT2Y3tEf76h0FRg8ZRfpYZxjf4TYss4BlKyiNOt9gZLlHtcSXIV6XAuLVPqEaTrVynFfKYGKUyLJ9Ne6HDAadyiVl5TpJ+/TWVcvSWvxDG+0qnbnsra6chJ38G1PDy+5iUvaDmMp9JdhwqlcTukn0mcyR86zt5pxAwrK0jrSYPThUeWmb0qfM6n29JHkcn1pQzUZ+vx/ + + + 7VlfT9swEH+ftO8Q+WmTRlJgDxNrQaPAQFqhIuXPq5cciYVrV7azls+2h32kfYVd869tmmoU1mQbUVWptc93v7uffb7kfn7/0T6YDLn1DZRmUnTItt0iFghP+kwEHRKZu60P5GD/9av27ZAPQhiChfJC700065DQmNGe44zHY3u8a0sVODut1rZz2/vieihLt5jQhgoPiBWvPadD6JATHoEwpzChgRTpzHUGYAcBoDnLah9GjPugLiFg2ihqcFrHMziHYFzzwKFExkrHBg8jtEXSFTN9R9RQC9HvmVgg0+SGAIY8zbncBlrpKzkCZR5cMAZD+FnJaKTnBBLwZVLWIdXgX2AMjuCORtycSGHIwtJl/bowX6reyv53yAA4KHZv3zDRRfVKcm1fUv/MwNC+0pBaPmKafuXg9ylDCNY1RcaQN8o1MukUITm/wdR20ahnpCoHOyUqk7COOW4GYRLySsFKaRBwKleGptxa21kR9jW56WFIThjnVRBzzXREeeqq7Q7R9RBX9aQPOSnnUmyAk8Sya6iZUTM31iFIwUAGwfQEGiNFRseSMlTXDfHc5VoWTl6XU62zKZKRH49iROb0xxF/YuYpxibdCyUuVr2VZKThAlNv6X7aCEF2brOhah2q+go0/qyQqNRiQ9M6NH3yPPT2XKoh5RVylYwlMheioWwdynpU3WMGlAq6kkv1rk/9aen55v3H+PO2ygLoWEyrnkOpsEw8ZUHI8TsrfwYqKg/kM+091lJdd3rlJdZNyAwMYGKazfC3bYZiqquh/F5IFxVfxi/E3VmRWLnDyQ1+Kqutihd3dVMkP4e76kvlAntN5fwE7jC9cDrCP8mFVw1zf5SiRHMK/3+jJ7kHzgTmJAN+ctDyW2G31QfllcRzQ+cteztYezFQV8JZFYAm46xBXi0ZJ6euST3/Bk+bPGL/NW2FJ4e67oga3x7U/ezw0jzfyEPy0nuOQkO17cy1dWejcUtXT1u6l8AXWsfxNDq0LGGlr2RW9x6vzuxCKMjzGpYrgMy3sxPFc1bSFu0jLC/DLQGB5KyMVUzQqj57LJOHv9ilj5fGnf39Xw== + + + 3VjdbtowFL6ftHeIcrVJNAnQSVMLrUoZG1IpDGjXWzc5EKuOHdlOAWlvtos90l5hhyT8B7VbgXSTIiTsY5/vfOfH9vn142flfBww4xGkooJXzaLlmAZwV3iUD6tmpAdHH83zs7dvKncB6/sQgIHyXJ2MFa2avtbhiW2PRiNrVLaEHNolxynad62rnouy5IhypQl3wTTitdckgKrZYBFw/QXGZCh4OnM7A1BCAKjOMCq1iDIPZBeGVGlJNE6reAbnEExPTxhkyBjpWH8Soi4zXbHYr040MRD9iY4FZjv1fABt/p1xcx2opSNFCFJPeqA1UvhZiihUSwIJ+Cwpo0YUeG3koCsi7nXB1T2fhBD/lJxCXxKuQiKRuz6MdaEjaUDkpEEZKzRdwWtConnFcGyuqNvEpNbmMyEZs/9Vsw8MJH2wvlF+KbiWginrpmld0aGvb6mKCPvE0IVcW3VJRgkM07gl6GZcLCP0vr0DlV3izfS0iBxSPtfhFAz8ivjtXFNM/sKYLOEVZ33/4OwGwyqxvUAI7eOqlvAWcL6gB76iFNWTTaUV+wm3V3qo1tVCZsdDAqCniYaZoLE0hlFKvL4YDjF1RlS7fgo1C0i2ooq9JRH+MFvW8uIQ0Y+mNzUE1o2COgxIxHSdKnLPwOsQOuUgdVCDMLWj6F+NhxpxHy4FE8t5Nmdh97EwraXzIEgxJPU1OyOEXqTQ4QPiyfKZlKi4aMbVMykn78qn5dPj0+P3GxH0wkRZzpK+HwX3ueZIanx6erREpKCNx38uRFhN1eavgQ00/AFk2cFFLo62Q+JiUZ1ysn8OZqXj8DxcuFNjOxIUDhzG2Dje6mKUg9cTaxvCjdQBbZ3mVk5hnqd7czU5Dx/nZeu1kAFhcfVOBtKK9qw3xH/6UvhX7875H4f7Tpo2fw3PhL1bORjkZuaiE1B2OsltphiOV5oFF0yD5ETTR9gHE1tiO79rTgvfZOn1lqbclDK6JPs1O//cfkVX3T2QsVGy1zpvFXup/7cYjXt/atr76wJb6THG0+jUTQkjPWi2v4DxzFsLB/Nlz+YtQJb7nsnGS1rSzsQzNG/CzQCBztnKVeygbQ3ZpJtrb2nnxkvjFvDZbw== + + + 7ZvNbts4EIDvC+w7CDq1gOu/XoLYbhEnTRMgaQ3bTXtlJcYmQpMCSdXxnvYd9udl9rBvtPsKO6J+bMtS16ljUXGEwIEtUZwhv+FwSHH+/evv7tv7GbW+YSEJZz27VW/aFmYOdwmb9Gxf3b46st+++fmn7pcZHU/xDFtQnsnje0l69lQp77jRmM/n9fnrOheTRrvZbDW+XF+NHCiLXhEmFWIOti397Ac0wz37nPqYqQt8jyacRXduYgXaoACIs6xu3yfUxWKIJ0QqgRTclvoO3ANlRmpBcUYZK7o2Xnggy46eWNZ3hhSyQPtjpQvENY2mGCv7xxqXyAApA8E9LNRihJWCLnwvuO/JlQKh8lmlrD6S2P0IfXCGb5FP1Tlnyl57dLN+mbqfWb0V/+7ZY0yxIHf1z4SdQvWCU1kfIvdS4Vn9k8SR5DMi0VeK3QEioIJ1g4AYcENUAslGWqXG/+jUHYFQR3GRrWwAKi5hvaNgDEyF8DKV5VyBwlG5LG2ypXUbOd3+QDaXDmfnXOBTTrmovacLbzrG96rVrg2QGwyaF81OuwOfl0Wg+3QZ0Ov7SnGmGQI5j6KFNukEXKDgZk/tYiphjVH1//z65+PW/o4F1tfnAobrBZlMKXyW4sbCz7DC3eVtK2lXe78h0kfgdJBamv3KtZ59hW/ViRB8HnI1bONFeqCUWf1hvvPrlxKmJkUcRIvncI3EHRYJidfNARYOzpgUHrnNsft/BpZXEgf6mwFLHwa+riymXq5pNYfS79U0t0f7K97owNgo8uBHyGDPbjVdva7ndAqLkuTxtWXJKUVSxrfsODLWV3t2WGWk9w8uyTJsq5HdrsPismF4FZgtwYwFYtJDApp7Tih9egNGa11ReRCVAobLQWK55r7EH79BAF8AlHoircJTAjzpFVVF54F0BgJL+FoYmzM+rxybeTbZbq2Csz2cgoOB1U2DitBWhFK7eskGR7uj/zY3OHZFhlwwCueuj4SxtybFLhwqo3wi0VAFqkyTb25gVGEqE6b8GKniVC6/l79Ir0iVaUSlHV8kqoJUJkgbg6mi9EgrkP0vOJ7FKYqMZps7SAGNnhD2otk56sDnZe17A3M/xyrivrgiDMf9MaLExScCo8/EVdPkBXTbwNvnDPWMUdKMOs2K0jaUjPqSEyfwHB+4mCG6j0kubu8QsYk5swxbecH3FBZnNXLlDYmh5u4xdMlvsN7ZNnDuZeaFWiCxKKzB5ibD9KitDbnP3CFIHE2Rh/W/Vrsgj3sVxLFhbyU9I9A8PjHy/bP2O3r58dSffY2l6h8j8svymONRzWo3DXr5VfUO1uutMTDu9cowKJbpHPVrwtYsslmzMgzy+YyCEgQ7+QOiDKZghkrmPt7hLmzTOy/mZvLCIpc13KYjlwJC003zNhOaGm6w0fEMX4iz1zYT5y4Orx5zqzRYnbcObpf0SeNoPykcG7N4Km2621hJ3l5e1UlaMkjcHmK6liCub0MwsVnCimKN/AzjMCUshmTvlpKco8RqwnpY8YqUKAl7C8nrqmYoAFBy+0iDycui12WSbk/n4OtHdd7+m/8A + + + 7V1bk6pIEn7fiP0Phk+70Y7gpT3tme6ZQMVLj9iK2Hb7VkC1osVluHj7a/uwP2n/whaFF7R1+nQL4hnJCASpIr+kMqnMytLif//57/3vcxUlptC0FF17SGbSdDIBNUmXFW34kHTst1/ukr//9s9/3L+oSBhBFSZwfc36PreUh+TIto3vFDWbzdKzXFo3h1SWpjPUC9fsSrgu+EXRLBtoEkwmyLUtoMKHZBU5ULPrcA6GurYqeV4LkMUCYLhE4r7kKEiGJg+HimWbwMbFFinBZViYrr1A8ECdxOqcsDAwVnJ1xZZfBdgggaX/bpMKa07dEYR28ms3t8HAKG1TN6BpL7rQtnET1kzdMSxfBU/4Q7USJWBB+Qm3QQW+AQfZVV2zU/2RYkMBzu3kDpP3SNZe+UGgxPr7Q1KACJrKJN1XtDIGMnVkpXkgN2yopnsWXMlQUSwgIii3gaLh5nkGWHdYgwBZWKdUAJDPiuUAxCJsA5qdLgFpUtaRbm6gMsVUIl9IJW5zweDxum7j21wDMoaBFt0RMKCgr+psoAXTOXCT99QHDX/fxbCSrZuHNeLa5bpGYiWGZ6sfi3tImsNo99QRK/ukKXLAnECzqpuQqCXlN01cSZFKuokfqnMYZ6/h2qdgQviswNlaga691qEyHG2tM3sXjKkcB6zg6+r+B+LbN4dqV4p5sT8byurzQsqiqTimFa6bnzWUEhLV1nRQQ85gSSvyC682haHSXubvemp10u1nRoPsswBq1dmgW8I85o60NPJStlNsqCNarjOF5qKYk3OSIy85R8w9as1lY8ZV2GmfzXC9bEsfYB4Yx3ft5FPXNvvIkXL8CMuJGmMsV61qiBrfErM8ak9aCB8jCSFBrj8iudbS+5XZdKfOeP4o9qva4LlFS+rzSBRuebAsCR1VLnV6VbLxVUT2Ik2+szLZP5pe+WOp4533bXyVr+HrX0alFrtf9vmNZ9Gt0M8MYC/zZ1d7PJnfoa2L9S71eFZ4MVrNrFzA+06LtQ0xV2UDxmrxbDUHEd+CE3r6VDdaEDFToceX5JzBB4SB28v4Q+xl8H3oUzjB++5d3t33ysWWu2/mjEfcnnb/yxgt3F62hmV25afddoNKsUDabzki7dek/fhFDdc3RDrzBf1Xc0KPnu3Jv9t+u/i4PtblJHg7ibe/5/ax/b57fv7K/q7u+qj1F28/24b9HZ1pcZ+wP1yf5dnbz2Nli/NuVs4R+63wH9t/Vp678YDw9fs7g//d3VbxQ2+v/djOi1zoBau7JugX5zzrxS+Dlf9fxU+h2MqX4z9hNl3H6G78+9qnb9psZiSpMo5/OXxctcRK3uZwvU5/buFYuCzmeFrM0jccjpM7apGWa0Ubn+cG/QHdHrPLdrm4Op53QV/W5Up+hs+tj++ea8VZe8zcNTP8VMLfsQ62eNXSaFDjDVGVgsLG1zMzt35PRRqodzAGwXVl6ok55gbvO699fgL6t1p77NbbG7cI+YcwB11NRYO7eYEsnU8l1h9hQ5MM0Qa6qyNF/jmzH/gWm+5Y+QhuNirgXFTA+XMDk3RJQ9OguWfP31KJAo234JIXPwCfjRg/FzF+PhL8Jnyzo9M+7xZEBy/oRnTgESNH87hF+KRF8pCVkWKQGZMPpitOzeR7qF0b2NuEvu/cQ/J9NBF9Ar9tKiowF1UFoVQbyO40379uf6V/xdu/U4IJNMsAJpbU01/WmJ8jtb+rv66q6/YIX8Xp8jbqaulaQFNO61kuVnOntrwbrWMzQjuzCIdnf07HCxlp3YiDhibD+QaDjuPVOF79SQOWcE1sF3HTUW7wyAR8OFC+CUROkUzd0t/sxCuoQyWVKBoHnUXIHst1Vy3c616Mu+KAohFfxUgSFqiqS451vinn4/3pAeM7t3LSVQchXp95ldNlxzQjUZmnmZZuqgARVR2KIs7+O5YjestenN68HTyQUApbcRuVpN6pMH7aflBr0T12nO5Y8GmKO0tXYfv9ZlSR/HEdZi5Oh5sWPL/y2ia08OFPorpL6DRXYjY0INnKFF7c43imX8CxcwNobgrTHVBWTDDrKkNt1UWH8OvMY4iu4Z4Dz8XanXxpqGAYItiK/QqsM6GzJWZFlVf3U3c/WPfDKygxZcZHFbYyZJg5k2di+iFacOM/XrlxY6EGyJQT2Lkz5pYcdUf4B8h6zgm1Aua8pJaNBWcMg+NcYeecqGPObSrk9pACYRq0vNfGz6NQ7P866CG4nxxc34TRF9Ne54v7fJ75OqK5OPyI6ceIuItKcOGHx4+EB4G4Nx8/L1w6MRzb5+cr+lI45vLTDvPb0p671z5i6unjOD8/PmmPgMPHmM5Mh8KPSNxjumGtvkaQRN7LXuXoNjTd3HGKQTY0NeAma0i2INIM1oHp77NnsNZ/pY2jGSaOZsKhOJmypjiZcl38PIqTKV+my4lm6rotmECaYLzYVTKxq4xpQ/HAf0PxwD+miOgiXWWkSYDYa14HVbTprPx6++2OCTLAvjXzjOMoFNOmCP/gOFfU6bBcKDTvGOoGUsxjgL3uE7hhmqY+nVWoENsD8y8HM8AMWt5r40coHPu/DrpUrxnd769jrxnT5RLp5Z6C85oev7VXO71X9vEjXv7UKGKf37bka1GEW187yM9HPi9F6n/ElOhjfJyf/35IewQc9cR0Zrp0rxkPO2MHGjpVitRb9pV6yxWDDLtdfs6UconwD44zkbdAOFO5IjUIsANuY36i6bEOtz2CGXYGLe+18SMUjv1fB12OA42HmrGnjOkQkZ6tHZyn9PhRWzqx5/Tx8zz7iZHDPr9tydciB5efdpCfj/Y804dDTaKP8XF+e/jONOBIJ6Yz0yV6ykiHlyf/ST/kv8BH/6f3k1YQCbh1om+NMwVZEa2TFS9ueRGLWx5dQPg8+q7rprLEVQB6vyT35v1Z0b4yCwu+7htcGS23AOCDCJZ5uawe4W/07+ULfSw/0RmdLbJyBccSRraiX9TPQLRrV0a62nXEK33HvU/c+5AEYCh9z7tb2HvV6j3le+Hr9ixZTcpyX/bKQ7TzUllSzAP5fY3Eqvn/MubwLfadPOW9nrhNjopI2uXYi29Jnc1d7782l1xKXrX72/8B + + + 7V3ddtq4Fr4/a807sLiaWSfDT5KZSdtkZkGcBNqYUqBp2jvVVkGtbRFZDj/X523OI5yL80bnvMJIMmBjDAT8Iyd4Z4UEW97S3p+0f2RZ/v9//nv+19g0Co+Q2AhbF8VqqVIsQEvDOrL6F0WHfvv1rPjXnz/94/zeNHoDaMICK2/Zr8c2uigOKB2+LpdHo1FpdFLCpF8+rlSq5Xv1tquxsuBXZNkUWBosFsS1LWDCi+K14UCLNuAY9LE1O3M3b8AxawCrrlA4rzvI0CHpwD6yKQGUnbbFGXaONaZLJwYMKVOYHetNhqyu4uwKj58CKCiw1r+mosCcU3cAIS3uJ9yiDlZLm+AhJHTShZQyFd4Q7AxtXwG38WGlCnVgQ/0904ECvwHHoNfYokcqID8gucYEXmIDkyNWCGl1TJgkxSW2jHEXGlCjmNiBE26dXCHzEoUrgyndoq6SeuwoQT9Kn5B1yeok2LBLH5ulDtDvEKEOMG4I0mdXFAvlYLXl8HrPy2sE3VEbK2IGiodLGyhUmH9fK61P1B74asCZvKWaQSGxAGfSwSMBQrFwB1gfZp319PioMP9Y1UzMLbl0CGF/WSsaEDD8mybow0VbPvyoHNdrM1I+80/MP674h3uiXrus+Ui5Uvq12rh2WstJHqlKbTTt4od3/VF8TBV1qpbPJur321P1e3PypR8L16k6bZcZ52l5KviPVEVpvUP4QYnA1MfPx785UR/7rP1vyV5MlSC/WPSRoPwLec0IrDxifUpVKw+sbWos/HKKSBcXsbmHW9Qf0DtkMxcx9wwKAaNrZBgLZ3ANDBsm7pCudPSMvVFwNLPPlh2Vabg1Y5/HEay7Z81uufWyAtbt635chbz8+jPOr1Jj1ufd51j0oQh5eftGnN8HhVm3YT8WfQh5hfyi/TWuDzPXx3p9sO/afqyD+hirvcZbHq2c9D5WWx210lI6vb04u/r41hiX//Dx4+1tRNVHS/lQ+TgN4Vc+E/XtxdQlLi9aGd9c3xGYCvLrg3E1ovLbSjF6o3W+gbkjljcJ78D9lZcynSVeteuPVqs+ST5Fa8GRFJGlVNq0dPaHZcSOaX1COh1srPy8vCVvj3v6Yk2z05/A8E3Z1DGl2OwIpFKY1uiA+bRN6QtHa7xA6DR+gNyQtEsB9XDyHbso+gBZDFG5oAgg1kympQpHNVvjZQWelRpYHZcDZOiLGpZmVEO6QnFtX5iZEWgYi86w3xRziLkrBxSRcifrEWDZQ8Bn7Xh6FpzMTWlmc03COOv3CaSMrJ83KTRLVxa3u249DdYIY8lD9YiTSH1PrSl9e7fUx9M2eIG+uOPNg0jClpp2FxMK9ZqtQYvfWTpM8RUoT34VOzZ8/8isT9rSL2pOX+g2gTb7V47ICh5ZB4lzFoZ7ltQgc9hLHwFZ6AzZUYLUrgB0XvHP1Tf8p/ILj0b7yPr59E3lDfv9JY1odDkK9QLheaT2W/Wo4P5mLV7bMQPyJx3F7elXmyATUfQI7VKNEDxafI85FwrRQcq9sKZpPAQLW8+yaXIkPmgXE5MvekFLqlMNu6tfaiZ0Y0yGgx4c06Omhi2vK84NZOXNMTOJxwsDyYylMJgppesMurrDRoIlcloF2UMDTMQaNS+hZY2PLXWe95MuJZBqgztWGGnAMCZJTg24Esz4/+9f/5bQKd2eeO1YGl826Ko8/c641AXjNnthIsrMxyQJKycTm3s6zbElAczCTrdAbTg0ENQPTQez0FuyDpjQBhiyL3ut2t3PjO0YrV4awLZXwlVx9KLospzPFr+wcDThacGUwHHXfuXQRIVmxVjkUD0JqkRn27YEMTlEWYcoH1WZm7bcEivnAGUboHxExbMeI1uLgCpyZ+ZkTom6eWILExMYocPpkBbHeUDw+0aitIy8dVv8nSokJxmCZPYc5qGPkt8zBMl8lOToPA90Sg1MmX3Rfki5E54tpLLobeTik3uezZ5HLjqbZxIO6V62D5ssjZfwPUN6eOgusHBTnfd0AInvwvRX/3RNjOmAXaVi3bu13cJWfLeas5loSV38wG/Buj0gs91kPXC/ZQa4LAWaR58GiEKxoCX7EEqOdgLL8qUl1xsw9EZoPthWIh+ZmKW/EVUb9NklbWBBb80sIjZlx+Fsjdhz23UjpyWqV/X7+3LoqZvhA+iPJ5p129qVq35/Vy0HN1BotKba8ZeK3uidhp7fRo27qv7tTPwLzOGD0ng70eyqaL/gd+Kdfzq58mvW2wk46VT09iDA79V6/Wwg9/qAvD5+WZM/eFRjbf9iefrYkWk4/m59D8DEKtf39MOuXHOKRsnsuhHiI1osjMhdxMsiMWQ/cZcQ4zaBwqS9EiZSmJxYtgmsB024cGHCZEbgGmrCXZfB+O+5TWAjyC8OfSQpv5B3ytoWzzaBrgsTLiEWfjlFpNRcRJvAR4QdO3cTB0ARMolQippJ+Ci+SNqluDMJQUF5o2YSPopb/iBFzSTWU55JyKPU3MQtyCebXg7Vt0SiGyajNtC2yHT/yRZ/ZB6IVBv7T7asmPBGp/JPboJNGkH+0MxE6CNz8gt5uUv7HHp+R6ZbM9OoLjKnfSjMRaS+peCqR3mxd22uxkNg8W3QxUP7BIy6qG8luCd7aH3JbekXrJHXtrwnwSw4SKqyPPZImdztz+PY3tpHau9q7Hyfv4zjXdABRaGx2rv5ffEyjWE8bzwRpFyN1a84vu2+fRTQhxYL07jbe2j8XEqk/x8GJRF77LJ0xO888oAjDzjygCOnhMh930p8AUfY+1uiOCAfPzdAihiABfn5Tu0VgPneZxTk51HAwVvbmLp4rOfnr1/oI+aAMaeUKUsBR6lpz74e+jO72XmwjTcWIGuxdpivLbYPHJ3sPCA6R2e2xpuDk2OTXWyyMpq6sI/hx2YXmugrNvRX4nXZ0rcXdt8AJnkjDQkbLkrfZlG65Cq0nO5AylajMrfK88ReYV7INyEK3TUKmYBM9gAqyiu9FMhsNpMejqQ+fuqOUt/GWdVKGxJ+7P0QaIhOnuFTqdl5nJgNyjayLBnm13t+cQXiZwBhpp5KdSGU+qjjJjTz51M3YZaFB1W3bmuXnJtZDn93jAjy10ZKx2/l7Sg5hEm+8zc5IHMIN0G44ihEAY/PebnuMAVBogAKvKPiBqQ9gJB2oAF4MuSv+pz5qtUShRlAG4FjV/qU+oQXRnUwpp5rXFbfmnZ0YB/ZlIgvLmNfLQr8BhyDPqHmldaGtIFBs1ZTAh5xeqZif7tEmYXy/Wf45W6PYB0H/vk3 + + + 7VndbtowFL6ftHewcrVJNAl0W6sOWpUytkr9E2Ftb73EDRbGRrYz2r3aLvZIe4WdhITfQNOWBLYhVaDaJ/6+c853bJPz++ev6tF9j6HvRCoqeM0om7aBCHeFR7lfMwJ9t7NvHB2+flW97bF2h/QIAnuuDu4VrRkdrfsHljUYDMzBrimkb1Vsu2zdnp85LtjiHcqVxtwlBoqevcA9UjOaLCBcfyH32Bc8nrlOCFSAAMAhVK0HlHlEtohPlZZYw7SKZmAOyDj6gZEUGxSPtR/6gGXET4zXa2CNEbA/0JFBspLTIUQbz3NuhAEoV1L0idQPDtEaQvhZiqCvJgyG5NOsUB0r4l1CDK6wF4b/zU75Y/L3tgSz1G1Sxoyp1eYh1cx8KiJK/q8ZbcKIpF3zhvITwbUUTJlfT80z6nf0NVUBZp8YZIhrsyHxoC4kBNFA1xiyCLnETEF2rdVgtrB3g2loW8cyQY1HTrlHXayFdOgPMsIv23YJld/NM6haj4Sl6gAHF9ZLj9fQc0djTRJDNDFWM9K4ptFIh6laC1TwRKk0yB0OmG5CEEvnWHaJbApJTgQTck4nyx0O62XkaezPsIbSktUSQkME1uZ3EUUwLf46drvDuCbaC5X3fhc+9vdXVgEpVXcR9L4ReXkXgaux8leGOZaxQ/pYhjWWYI8GbqinOyPsFH9zr7cUlv+m7CAjId7Y39HOl2Ql/s5fjQ2h1Rnly7g0on2ABmNhfli9OJ62N2UivtVOztoJebTAcgmXUw5TUYFLHY8dc5+NT/fKnr0hYnL6lHMit3paq56y8AjCXCT6SbkY5h+Gygi/LTFXcFgt0EfBOg43xOUVuRXxBoq4ePQN1rBD/NCGeFsh/xVCzi6lAiuqXNkAJYe3iq2I1y7iR66o8Xfuv8Ez3ZbhAjrzW6u8VySDGfBKivuFl1ETh69K/+NCeo5qCtVtBtU893Wx0FjH2VePxiCadLs+ZIp705tLxX5XQsnHOs7IzTur8yCSNV+XgX5RvgrfhDI6Vvw+dOy64eklZA+z1N7Ryl7K5uvrXEZn+mpVa6K7Nx6NOnsq7Oy1CJvqIEbTsDPNW6A4scsTPtn8MV7WLllAY7KnOVx4AiVu+2RAXtBVm6QAiVkYpyg5i1qtwz6ttaBRGz0aNXcP/wA= + + + 7Vxfc9o4EH+/mX4Hj5/uZlJD2+v1kkI7hZSGmZIwgaZ9VWEDmsiSR5JD0q92D/eR7ivcWsb8cczVKTX2gYaX2F5p//x2V+uVo3/++rvx9s5nzi1IRQVvus+8uusAH4kx5ZOmG+rrp3+6b988+aXxxWfDKfjgID1XJ3eKNt2p1sFJrTabzbzZC0/ISe15vf6s9qX3cTBCWvKUcqUJH4HrmLHnxIem22EhcH0Gd2Qi+PzJVSLAcxQA2TlOoxVSNgZ5CROqtCQaHyvzBJ+hMAN9zyCDxpnfG94HyMudj1jOd0o0cVD6E20IkpkGUwDt/phyCx7IpS9FAFLfD0BrNOEHKcJArRDEwmdROS2iYHyBNugReQOyIyS0BRPSXRuOEwyAwUgLqVIP4rkjxRMK5z1D43IdG2OIdyW98T5T3hZcS8GU96mLl9+IHB+/uqIwc51amlstm12jtkGPRyr7jmmQHKG7hQ5l7GgAEwGfusfeyw7KeNQn48gVf/3jtfn99khjXFEVEkSY6KVNVu413Vj5PpnAGRB0j7nBdm+HB4qlyLP1SxE5yXU22JdkPNfPQyPQr5RRfe86VwQjsumiszESoDhZyn9Hmm1hsMavivG9rvoMbCR8iILCQlEuFG3hBwyida0cNKqZncv20cpapWx3uQhMmdYKtRa860cy7CCcsYb5SCdTHRspscYQ7rQR4RKYqQwXAW7utuAaC6yIqIQwH1LNYK9Xu/83JmUnGItQDoTKTnbpVSBJ+7+/Nr+C0v7xK9TbJ3z8TgI5SKXLDs5qmKBs7/9ek6KYsr2rwffec/KVQUtIrH3OMIWxKI0t8tRQhhnm2J5fXk6Fp8F21HRicY1VQvWQAv4IryeUo/fX0fvrD73fOkJRjtAio5vYDUr3ghf1PshRVM0WpqN3SlVk/szX8v1QtkM5VdODUXctkR2AvudYNpcO7qK7FafN4uI1PbOZoj2lbLwYubYN02ZEqeSRm+xcmLs4rZlyLvIPbkFlrAS1bJX2C5LVrGJBqQgo60WcRaUaqCwztIUkLyQ9Qnn0HryLwn+9VzXwhdBTHNUTY1gU4+eCl1GMF+o6xr776jhlvEFW2JGKXhn22pcO3HcKLvWs6+yv6xT64raXjtOXoPDPTN/5eV2vnggVnIqZhSUnLENJuAqIRGULhmbRxLHIVAGZ7O6pxaYK2Gxo9VpwcoFj1oCLW5DFQ7NgZbHJh03BgZO1Z2CRyYXMGbCgO9r0HeKWuESTl7X3uiPFyv7OZndqlv0tTfyFz9zYS2GM4oMpCR6r/VrEpwJ+ziU26l5rmpq+9H1l+2XM0sC7a8Zb1A8G9bXu5+5xL7JIXykDbYVenT5dGhbbp6sELBmvtBaZ/MgUmsnWunQ2l1UnaB4CY2MmPzCFxkx6O8hGTEKTRbCcp1FbOfRjedcc+KGiAz+Sf3JbZd3A6vYhhTMvfv/zJA0cGb/gulsevLFBhtVzTuKZV9icwjUJmd6ONaKx0TgGkU3Hrhiahb3Th7aYoeaglzf/Ag== + + + 7VzNcts2EL53pu/A4ameUfTjtJ3UlpKxZMvWTGxrLMXOFRHXIiYgwAEhS+qpT5GXyaFv1L5CQZCUKIqK6WgoqApGFxN/i91vd7HAwvj369/NdzOPWE/AA8xoy25U67YFdMQcTMcteyIeX72x3739+afmR48MXfDAku1pcDILcMt2hfBParXpdFqdvq4yPq4d1+uN2sfr94ORbIteYRoIREdgW6rvDfKgZXfJBKi4ghkaMxrX3CcTOJYTkOQsq9meYOIAv4MxDgRHQlYHqkbWyckMxJxAThsrLhvOfUnLjnssxztHAlly9idCNUhGGrgAwv4+5hY0JJU+Zz5wMR+AEFKEl5xN/CDVIJp8XiurjQJwbqUMrhH/DLzLOHQYYdxe6S4HGACBkWA8yFREY4eMJy2sCyKFS0UkjKEs5fhz9QHTDqOCMxJUP/Tk55+IO2fA2T2GqW3VsvRq+QSbtQ2cvJDdAYwZfOj9Uf2tK2dVOSMCOJVYPkEXE1LpIydUxl9+P1W/oxeK4x4HEyQxRmIplVRZy47Y76MxXAGSChKLzMghkkO1FzwAGTEPwiojlYVUOszzCYQuR49gLgHxBxcL6HmSfuXWVx6yPRGCUVW0JorMePkSyTSyku+N7uM9HrsiklkinCHMhJrCHRDllG3rHkmv37JVaRsepW8LG+VJ7ZlZbgvoEAsC2mzcYPIcJrr9jUGoAEK6fd8uQLpDTsKwFAX+hAkW8wUkMjIjyJfT0QDGXq3PBop9CgqScOjXU/U7ysZL5YRHkmsPUeeMA/oBWdZtgfsgAN16/9yWuRyn1BPgVS8o+kSgzbh0BFdyVSfhyr5wTkM+yRHH9vSKUirdA3bCIxASbTs0BNQZ4Cvye4yptIW6tIX6+nbQKEJZitDFFAdupAja9eB1vQ98FG7xylT36jkOQgxyI4/D4DeNqkZ2FzFeZF5lcpkdWw3ScTFxFn1Xjo87BAVBUmUnJ66qtGVHQ8aT/s6j8xyfUctn6rBAWV1ZDCr7gcoNzIQxlJc6a0xzI/ESopHVM6WBx5hwZa9r5sAiQrhhVEeEUKrqKPkemuIMOaKBj7hktoyd3BKQ5dJukNkHZDaEmQacQuAYf7uTAMrozuHqTsk7ooNUnZLXhPytuMGmEDZXQPzeKL4ZUdnuhlWBrBDxdR2ErTBaHmO6kx67Y1N3amMn2Zzw9t+Q+Re67sVoYFK3ButhWbc2m/Aqg07kZxLDM6t5IS26JHPfDa9CNd4sboCqhN9p46gSLgtrCcHj02NZWz9KNW+ogl1mCKPLW7Hm/fPXlzLygT9s/nGTSR1sam4DwxqzdOYumMZ/H4jUIQ5plsu8CpAHLvJfGiWvrC2ZpSUz/GEzG1PRxOmuvEleLkA3s+Y2j7bVNJWr060Fpal8apuvT+X7HAL5Z+kHhtdsEsA5m5rT3KJaGArs9kkq4k6gCSkZaIpBU6LNrCZejdHsk9HkYGOspjg2JVpNKng0JrNPJpMFxthLcWBKTuc+e3xjYCoEU4lubRNExsftk4/7JkrG4RVHqeSb47vLef0Pr5GvHehkXg5q1lLvFy1L1dtFQfh2UfJoQJp08w456y2s+Ozpm48CyZ4RXvbWbwhtmEX60aZo7BShc3hEEyK2JS4R2SgghcqmV6RUm4XMs29Qqa7q3aq3/wE= + + + pVNNTwIxEL2b+B+a3tkCXgxZIEFETfwKi8K1YQdo7LabdlbAv+bBn+RfcFgW+ZD1oNe+92bevJl+vn+E7UWi2Ss4r6xp8lpQ5QzM2MbKTJs8w0nlnLdbpyfhKNGDGSTAiG98Y+FVk88Q04YQ8/k8mJ8F1k1FvVqtidHdbTQmrqwo41GaMXCWa+9lAk3e0xkYvIaFnFpTIM8bA3UyQO0YCzuZ0jG4PkyVRyeRYJ8jhJGZCJcajnBY8TZYptSLF4ptva5Eych9A3PCplI0A0D+t+G+e1CXR2dTcLiMAJEivHI2S/0OYW3+GIt1pIf4gTLowkRmGnvWIN+TkjgCDWO0zh8A67qroTcMdqkpWIPrIAb06tRLMFTmguo6q33Qtxb7Mi54nInDZuJ4t1CUjLAbhPg9iVDs7GP7mu/Cr3bRB7238xwmtz8ZrBiofNCnm4CUQ/UmXcz/kwslUmowT6XsKtcnLUpuOpfm/6D1BQ== + + + FluentHexagon + \ No newline at end of file diff --git a/Analysis/ReleaseFiles/UserControlClass.dll b/Analysis/ReleaseFiles/UserControlClass.dll new file mode 100644 index 0000000..526b8d2 Binary files /dev/null and b/Analysis/ReleaseFiles/UserControlClass.dll differ diff --git a/Analysis/Resources/EH3L.jpg b/Analysis/Resources/EH3L.jpg new file mode 100644 index 0000000..35c16df Binary files /dev/null and b/Analysis/Resources/EH3L.jpg differ diff --git a/Analysis/Resources/EH3L.png b/Analysis/Resources/EH3L.png new file mode 100644 index 0000000..3c7f169 Binary files /dev/null and b/Analysis/Resources/EH3L.png differ diff --git a/Analysis/Resources/EH3R.jpg b/Analysis/Resources/EH3R.jpg new file mode 100644 index 0000000..81c91e2 Binary files /dev/null and b/Analysis/Resources/EH3R.jpg differ diff --git a/Analysis/Resources/EH3R.png b/Analysis/Resources/EH3R.png new file mode 100644 index 0000000..20bff71 Binary files /dev/null and b/Analysis/Resources/EH3R.png differ diff --git a/Analysis/Resources/EHYL.jpg b/Analysis/Resources/EHYL.jpg new file mode 100644 index 0000000..2924694 Binary files /dev/null and b/Analysis/Resources/EHYL.jpg differ diff --git a/Analysis/Resources/EHYL.png b/Analysis/Resources/EHYL.png new file mode 100644 index 0000000..050cd32 Binary files /dev/null and b/Analysis/Resources/EHYL.png differ diff --git a/Analysis/Resources/EHYR.PNG b/Analysis/Resources/EHYR.PNG new file mode 100644 index 0000000..a5b3b80 Binary files /dev/null and b/Analysis/Resources/EHYR.PNG differ diff --git a/Analysis/Resources/EHYR.jpg b/Analysis/Resources/EHYR.jpg new file mode 100644 index 0000000..9b7095d Binary files /dev/null and b/Analysis/Resources/EHYR.jpg differ diff --git a/Analysis/Resources/ERYR.png b/Analysis/Resources/ERYR.png new file mode 100644 index 0000000..2722b6a Binary files /dev/null and b/Analysis/Resources/ERYR.png differ diff --git a/Analysis/Resources/Forbid.png b/Analysis/Resources/Forbid.png new file mode 100644 index 0000000..b764431 Binary files /dev/null and b/Analysis/Resources/Forbid.png differ diff --git a/Analysis/Resources/HConfig.png b/Analysis/Resources/HConfig.png new file mode 100644 index 0000000..19109e6 Binary files /dev/null and b/Analysis/Resources/HConfig.png differ diff --git a/Analysis/Resources/LOG.png b/Analysis/Resources/LOG.png new file mode 100644 index 0000000..78fb437 Binary files /dev/null and b/Analysis/Resources/LOG.png differ diff --git a/Analysis/Resources/LeftCarImage.png b/Analysis/Resources/LeftCarImage.png new file mode 100644 index 0000000..8cf96f4 Binary files /dev/null and b/Analysis/Resources/LeftCarImage.png differ diff --git a/Analysis/Resources/NG.png b/Analysis/Resources/NG.png new file mode 100644 index 0000000..d0f52b6 Binary files /dev/null and b/Analysis/Resources/NG.png differ diff --git a/Analysis/Resources/OK.png b/Analysis/Resources/OK.png new file mode 100644 index 0000000..13ba657 Binary files /dev/null and b/Analysis/Resources/OK.png differ diff --git a/Analysis/Resources/Range.png b/Analysis/Resources/Range.png new file mode 100644 index 0000000..485f3c7 Binary files /dev/null and b/Analysis/Resources/Range.png differ diff --git a/Analysis/Resources/Refresh128.png b/Analysis/Resources/Refresh128.png new file mode 100644 index 0000000..df4ce0c Binary files /dev/null and b/Analysis/Resources/Refresh128.png differ diff --git a/Analysis/Resources/Refresh64.png b/Analysis/Resources/Refresh64.png new file mode 100644 index 0000000..4d5b427 Binary files /dev/null and b/Analysis/Resources/Refresh64.png differ diff --git a/Analysis/Resources/ResultNG.jpg b/Analysis/Resources/ResultNG.jpg new file mode 100644 index 0000000..a350a48 Binary files /dev/null and b/Analysis/Resources/ResultNG.jpg differ diff --git a/Analysis/Resources/ResultOK.jpg b/Analysis/Resources/ResultOK.jpg new file mode 100644 index 0000000..34dcf1a Binary files /dev/null and b/Analysis/Resources/ResultOK.jpg differ diff --git a/Analysis/Resources/RightCarImage.png b/Analysis/Resources/RightCarImage.png new file mode 100644 index 0000000..2484705 Binary files /dev/null and b/Analysis/Resources/RightCarImage.png differ diff --git a/Analysis/Resources/Waiting.png b/Analysis/Resources/Waiting.png new file mode 100644 index 0000000..a91418d Binary files /dev/null and b/Analysis/Resources/Waiting.png differ diff --git a/Analysis/Resources/about32.png b/Analysis/Resources/about32.png new file mode 100644 index 0000000..46816f8 Binary files /dev/null and b/Analysis/Resources/about32.png differ diff --git a/Analysis/Resources/add_32.png b/Analysis/Resources/add_32.png new file mode 100644 index 0000000..ba4e322 Binary files /dev/null and b/Analysis/Resources/add_32.png differ diff --git a/Analysis/Resources/downloadCarType.png b/Analysis/Resources/downloadCarType.png new file mode 100644 index 0000000..979460d Binary files /dev/null and b/Analysis/Resources/downloadCarType.png differ diff --git a/Analysis/Resources/firstpage.png b/Analysis/Resources/firstpage.png new file mode 100644 index 0000000..df11894 Binary files /dev/null and b/Analysis/Resources/firstpage.png differ diff --git a/Analysis/Resources/hexagonlogotransparent.png b/Analysis/Resources/hexagonlogotransparent.png new file mode 100644 index 0000000..30c4cc9 Binary files /dev/null and b/Analysis/Resources/hexagonlogotransparent.png differ diff --git a/Analysis/Resources/lastpage.png b/Analysis/Resources/lastpage.png new file mode 100644 index 0000000..3bdcd59 Binary files /dev/null and b/Analysis/Resources/lastpage.png differ diff --git a/Analysis/Resources/nextpage.png b/Analysis/Resources/nextpage.png new file mode 100644 index 0000000..caab1ba Binary files /dev/null and b/Analysis/Resources/nextpage.png differ diff --git a/Analysis/Resources/plcaddress32.png b/Analysis/Resources/plcaddress32.png new file mode 100644 index 0000000..65e5a88 Binary files /dev/null and b/Analysis/Resources/plcaddress32.png differ diff --git a/Analysis/Resources/plctest32.png b/Analysis/Resources/plctest32.png new file mode 100644 index 0000000..2d97a05 Binary files /dev/null and b/Analysis/Resources/plctest32.png differ diff --git a/Analysis/Resources/prevpage.png b/Analysis/Resources/prevpage.png new file mode 100644 index 0000000..14e194b Binary files /dev/null and b/Analysis/Resources/prevpage.png differ diff --git a/Analysis/Resources/search16.png b/Analysis/Resources/search16.png new file mode 100644 index 0000000..30191bf Binary files /dev/null and b/Analysis/Resources/search16.png differ diff --git a/Analysis/Resources/setupgreen32.png b/Analysis/Resources/setupgreen32.png new file mode 100644 index 0000000..eb78c2c Binary files /dev/null and b/Analysis/Resources/setupgreen32.png differ diff --git a/Analysis/Resources/showcardata.png b/Analysis/Resources/showcardata.png new file mode 100644 index 0000000..dc1fdb5 Binary files /dev/null and b/Analysis/Resources/showcardata.png differ diff --git a/Analysis/Resources/upload.png b/Analysis/Resources/upload.png new file mode 100644 index 0000000..4d8002b Binary files /dev/null and b/Analysis/Resources/upload.png differ diff --git a/Analysis/TestPageView.cs b/Analysis/TestPageView.cs new file mode 100644 index 0000000..a19c2c3 --- /dev/null +++ b/Analysis/TestPageView.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using Telerik.WinControls; + +namespace NSAnalysis +{ + public partial class TestPageView : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + #endregion + + public TestPageView() + { + InitializeComponent(); + } + + private void TestPageView_Load(object sender, EventArgs e) + { + #region 加载皮肤 + ThemeResolutionService.LoadPackageFile(ConfigDfn.strTheme); + this.ThemeName = ConfigDfn.strSkinName.Substring(0, ConfigDfn.strSkinName.Length - 5); + radPageView1.ThemeName = ConfigDfn.strSkinName.Substring(0, ConfigDfn.strSkinName.Length - 5); + #endregion + } + + private void rbtnEdit_Click(object sender, EventArgs e) + { + + } + + private void rbtnCancel_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Analysis/TestPageView.designer.cs b/Analysis/TestPageView.designer.cs new file mode 100644 index 0000000..08b39b5 --- /dev/null +++ b/Analysis/TestPageView.designer.cs @@ -0,0 +1,963 @@ +namespace NSAnalysis +{ + partial class TestPageView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TestPageView)); + Telerik.WinControls.UI.RadListDataItem radListDataItem7 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem8 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem9 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem10 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem11 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem12 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem13 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem14 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem1 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem2 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem3 = new Telerik.WinControls.UI.RadListDataItem(); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.radPageView1 = new Telerik.WinControls.UI.RadPageView(); + this.radPageViewPage1 = new Telerik.WinControls.UI.RadPageViewPage(); + this.radButton3 = new Telerik.WinControls.UI.RadButton(); + this.label10 = new System.Windows.Forms.Label(); + this.rddlWarehouse = new Telerik.WinControls.UI.RadDropDownList(); + this.radGroupBox1 = new Telerik.WinControls.UI.RadGroupBox(); + this.rtbPartID1 = new Telerik.WinControls.UI.RadTextBox(); + this.radButton1 = new Telerik.WinControls.UI.RadButton(); + this.label5 = new System.Windows.Forms.Label(); + this.radButton2 = new Telerik.WinControls.UI.RadButton(); + this.rddlMeasureSeq2 = new Telerik.WinControls.UI.RadDropDownList(); + this.rtbLocation1 = new Telerik.WinControls.UI.RadTextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.rtbRFID1 = new Telerik.WinControls.UI.RadTextBox(); + this.rgpDebugKeyence = new Telerik.WinControls.UI.RadGroupBox(); + this.rtbPartID = new Telerik.WinControls.UI.RadTextBox(); + this.rbtnCancel = new Telerik.WinControls.UI.RadButton(); + this.label7 = new System.Windows.Forms.Label(); + this.rbtnEdit = new Telerik.WinControls.UI.RadButton(); + this.rddlMeasureSeq = new Telerik.WinControls.UI.RadDropDownList(); + this.rtbLocation = new Telerik.WinControls.UI.RadTextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.rtbRFID = new Telerik.WinControls.UI.RadTextBox(); + this.label14 = new System.Windows.Forms.Label(); + this.radPageViewPage2 = new Telerik.WinControls.UI.RadPageViewPage(); + this.label1 = new System.Windows.Forms.Label(); + this.radPageViewPage3 = new Telerik.WinControls.UI.RadPageViewPage(); + this.label3 = new System.Windows.Forms.Label(); + this.radPageViewPage4 = new Telerik.WinControls.UI.RadPageViewPage(); + this.label4 = new System.Windows.Forms.Label(); + this.radStatusStrip1 = new Telerik.WinControls.UI.RadStatusStrip(); + this.rleTimeText = new Telerik.WinControls.UI.RadLabelElement(); + this.rleTime = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator1 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.rlePLCText = new Telerik.WinControls.UI.RadLabelElement(); + this.rlePLCStatus = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator2 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.radLabelElement1 = new Telerik.WinControls.UI.RadLabelElement(); + this.rlePLCHeart = new Telerik.WinControls.UI.RadLabelElement(); + this.commandBarSeparator3 = new Telerik.WinControls.UI.CommandBarSeparator(); + this.rleMessageText = new Telerik.WinControls.UI.RadLabelElement(); + this.rleMessage = new Telerik.WinControls.UI.RadLabelElement(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radPageView1)).BeginInit(); + this.radPageView1.SuspendLayout(); + this.radPageViewPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radButton3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlWarehouse)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox1)).BeginInit(); + this.radGroupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPartID1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlMeasureSeq2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLocation1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRFID1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rgpDebugKeyence)).BeginInit(); + this.rgpDebugKeyence.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPartID)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnEdit)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlMeasureSeq)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLocation)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRFID)).BeginInit(); + this.radPageViewPage2.SuspendLayout(); + this.radPageViewPage3.SuspendLayout(); + this.radPageViewPage4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radStatusStrip1)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(1022, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "DEMO12"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "DEMO12"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(413, -6); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(455, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(126, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "装配站客户端"; + // + // radPageView1 + // + this.radPageView1.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.radPageView1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radPageView1.Controls.Add(this.radPageViewPage1); + this.radPageView1.Controls.Add(this.radPageViewPage2); + this.radPageView1.Controls.Add(this.radPageViewPage3); + this.radPageView1.Controls.Add(this.radPageViewPage4); + this.radPageView1.DefaultPage = this.radPageViewPage1; + this.radPageView1.Font = new System.Drawing.Font("微软雅黑", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radPageView1.ItemSizeMode = ((Telerik.WinControls.UI.PageViewItemSizeMode)((Telerik.WinControls.UI.PageViewItemSizeMode.EqualWidth | Telerik.WinControls.UI.PageViewItemSizeMode.EqualHeight))); + this.radPageView1.Location = new System.Drawing.Point(1, 42); + this.radPageView1.Name = "radPageView1"; + // + // + // + this.radPageView1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.radPageView1.SelectedPage = this.radPageViewPage4; + this.radPageView1.Size = new System.Drawing.Size(1022, 700); + this.radPageView1.TabIndex = 5; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).ShowItemPinButton = false; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).StripButtons = Telerik.WinControls.UI.StripViewButtons.None; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).ItemAlignment = Telerik.WinControls.UI.StripViewItemAlignment.Near; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).ItemFitMode = Telerik.WinControls.UI.StripViewItemFitMode.Fill; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).StripAlignment = Telerik.WinControls.UI.StripViewAlignment.Top; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).ShowItemCloseButton = false; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).ItemDragMode = Telerik.WinControls.UI.PageViewItemDragMode.Preview; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).ItemSizeMode = ((Telerik.WinControls.UI.PageViewItemSizeMode)((Telerik.WinControls.UI.PageViewItemSizeMode.EqualWidth | Telerik.WinControls.UI.PageViewItemSizeMode.EqualHeight))); + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).ItemContentOrientation = Telerik.WinControls.UI.PageViewContentOrientation.Auto; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).BorderWidth = 0F; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(35)))), ((int)(((byte)(35))))); + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(19)))), ((int)(((byte)(19))))); + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).RippleAnimationColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).EnableFocusBorderAnimation = false; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).HighlightColor = System.Drawing.Color.Red; + ((Telerik.WinControls.UI.RadPageViewStripElement)(this.radPageView1.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.StripViewItemContainer)(this.radPageView1.GetChildAt(0).GetChildAt(0))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(228)))), ((int)(((byte)(9)))), ((int)(((byte)(9))))); + ((Telerik.WinControls.UI.StripViewItemContainer)(this.radPageView1.GetChildAt(0).GetChildAt(0))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + ((Telerik.WinControls.UI.StripViewItemContainer)(this.radPageView1.GetChildAt(0).GetChildAt(0))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(239)))), ((int)(((byte)(27)))), ((int)(((byte)(27))))); + ((Telerik.WinControls.UI.StripViewItemContainer)(this.radPageView1.GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.radPageView1.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(237)))), ((int)(((byte)(28)))), ((int)(((byte)(28))))); + ((Telerik.WinControls.UI.StripViewItemLayout)(this.radPageView1.GetChildAt(0).GetChildAt(0).GetChildAt(0))).ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.StripViewButtonsPanel)(this.radPageView1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).BorderBottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(16)))), ((int)(((byte)(16))))); + ((Telerik.WinControls.UI.StripViewButtonsPanel)(this.radPageView1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Visibility = Telerik.WinControls.ElementVisibility.Collapsed; + ((Telerik.WinControls.UI.RadPageViewStripButtonElement)(this.radPageView1.GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(0))).ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewStripButtonElement)(this.radPageView1.GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(0))).BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.UI.RadPageViewStripButtonElement)(this.radPageView1.GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(0))).ToolTipText = "Scroll Strip Left"; + ((Telerik.WinControls.UI.RadPageViewStripButtonElement)(this.radPageView1.GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(0))).Enabled = false; + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.radPageView1.GetChildAt(0).GetChildAt(1))).HighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + ((Telerik.WinControls.UI.RadPageViewContentAreaElement)(this.radPageView1.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.UI.RadPageViewLabelElement)(this.radPageView1.GetChildAt(0).GetChildAt(2))).Text = "夹具配置"; + ((Telerik.WinControls.UI.RadPageViewLabelElement)(this.radPageView1.GetChildAt(0).GetChildAt(2))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(234)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + ((Telerik.WinControls.UI.RadPageViewLabelElement)(this.radPageView1.GetChildAt(0).GetChildAt(3))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(251)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + ((Telerik.WinControls.UI.RadPageViewLabelElement)(this.radPageView1.GetChildAt(0).GetChildAt(3))).Text = "夹具配置"; + ((Telerik.WinControls.UI.RadPageViewLabelElement)(this.radPageView1.GetChildAt(0).GetChildAt(3))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(236)))), ((int)(((byte)(1)))), ((int)(((byte)(1))))); + // + // radPageViewPage1 + // + this.radPageViewPage1.AutoScroll = true; + this.radPageViewPage1.BackColor = System.Drawing.Color.Transparent; + this.radPageViewPage1.Controls.Add(this.radButton3); + this.radPageViewPage1.Controls.Add(this.label10); + this.radPageViewPage1.Controls.Add(this.rddlWarehouse); + this.radPageViewPage1.Controls.Add(this.radGroupBox1); + this.radPageViewPage1.Controls.Add(this.rgpDebugKeyence); + this.radPageViewPage1.Controls.Add(this.label14); + this.radPageViewPage1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radPageViewPage1.Image = ((System.Drawing.Image)(resources.GetObject("radPageViewPage1.Image"))); + this.radPageViewPage1.ItemSize = new System.Drawing.SizeF(252F, 44F); + this.radPageViewPage1.Location = new System.Drawing.Point(10, 53); + this.radPageViewPage1.Name = "radPageViewPage1"; + this.radPageViewPage1.Size = new System.Drawing.Size(1001, 636); + this.radPageViewPage1.Text = "库位上料"; + // + // radButton3 + // + this.radButton3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radButton3.Font = new System.Drawing.Font("微软雅黑", 12F); + this.radButton3.ForeColor = System.Drawing.Color.White; + this.radButton3.Location = new System.Drawing.Point(847, 412); + this.radButton3.Name = "radButton3"; + this.radButton3.Size = new System.Drawing.Size(125, 35); + this.radButton3.TabIndex = 130; + this.radButton3.Text = "全部上料完成"; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton3.GetChildAt(0))).Text = "全部上料完成"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton3.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton3.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton3.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton3.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton3.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label10.ForeColor = System.Drawing.Color.White; + this.label10.Location = new System.Drawing.Point(513, 419); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(138, 21); + this.label10.TabIndex = 128; + this.label10.Text = "当前旋转料库号:"; + // + // rddlWarehouse + // + this.rddlWarehouse.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlWarehouse.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.rddlWarehouse.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rddlWarehouse.ForeColor = System.Drawing.Color.White; + radListDataItem7.Text = "1"; + radListDataItem8.Text = "2"; + radListDataItem9.Text = "3"; + radListDataItem10.Text = "4"; + radListDataItem11.Text = "5"; + this.rddlWarehouse.Items.Add(radListDataItem7); + this.rddlWarehouse.Items.Add(radListDataItem8); + this.rddlWarehouse.Items.Add(radListDataItem9); + this.rddlWarehouse.Items.Add(radListDataItem10); + this.rddlWarehouse.Items.Add(radListDataItem11); + this.rddlWarehouse.Location = new System.Drawing.Point(675, 415); + this.rddlWarehouse.Name = "rddlWarehouse"; + this.rddlWarehouse.Size = new System.Drawing.Size(120, 27); + this.rddlWarehouse.TabIndex = 129; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlWarehouse.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlWarehouse.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlWarehouse.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlWarehouse.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlWarehouse.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radGroupBox1 + // + this.radGroupBox1.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox1.Controls.Add(this.rtbPartID1); + this.radGroupBox1.Controls.Add(this.radButton1); + this.radGroupBox1.Controls.Add(this.label5); + this.radGroupBox1.Controls.Add(this.radButton2); + this.radGroupBox1.Controls.Add(this.rddlMeasureSeq2); + this.radGroupBox1.Controls.Add(this.rtbLocation1); + this.radGroupBox1.Controls.Add(this.label6); + this.radGroupBox1.Controls.Add(this.label8); + this.radGroupBox1.Controls.Add(this.label9); + this.radGroupBox1.Controls.Add(this.rtbRFID1); + this.radGroupBox1.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radGroupBox1.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.radGroupBox1.HeaderText = "下库位上料"; + this.radGroupBox1.Location = new System.Drawing.Point(517, 25); + this.radGroupBox1.Name = "radGroupBox1"; + this.radGroupBox1.Size = new System.Drawing.Size(458, 359); + this.radGroupBox1.TabIndex = 127; + this.radGroupBox1.Text = "下库位上料"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox1.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.radGroupBox1.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "下库位上料"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox1.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + // + // rtbPartID1 + // + this.rtbPartID1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbPartID1.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rtbPartID1.ForeColor = System.Drawing.Color.White; + this.rtbPartID1.Location = new System.Drawing.Point(181, 50); + this.rtbPartID1.Name = "rtbPartID1"; + this.rtbPartID1.Size = new System.Drawing.Size(232, 27); + this.rtbPartID1.TabIndex = 113; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbPartID1.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbPartID1.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radButton1 + // + this.radButton1.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radButton1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radButton1.Font = new System.Drawing.Font("微软雅黑", 12F); + this.radButton1.ForeColor = System.Drawing.Color.White; + this.radButton1.Location = new System.Drawing.Point(288, 276); + this.radButton1.Name = "radButton1"; + this.radButton1.Size = new System.Drawing.Size(125, 45); + this.radButton1.TabIndex = 119; + this.radButton1.Text = "取消上料"; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).Text = "取消上料"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label5.ForeColor = System.Drawing.Color.White; + this.label5.Location = new System.Drawing.Point(66, 215); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(90, 21); + this.label5.TabIndex = 108; + this.label5.Text = "测量顺序:"; + // + // radButton2 + // + this.radButton2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.radButton2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radButton2.Font = new System.Drawing.Font("微软雅黑", 12F); + this.radButton2.ForeColor = System.Drawing.Color.White; + this.radButton2.Location = new System.Drawing.Point(119, 276); + this.radButton2.Name = "radButton2"; + this.radButton2.Size = new System.Drawing.Size(125, 45); + this.radButton2.TabIndex = 118; + this.radButton2.Text = "确认上料"; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton2.GetChildAt(0))).Text = "确认上料"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton2.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton2.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton2.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton2.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton2.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rddlMeasureSeq2 + // + this.rddlMeasureSeq2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlMeasureSeq2.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.rddlMeasureSeq2.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rddlMeasureSeq2.ForeColor = System.Drawing.Color.White; + radListDataItem12.Text = "默认时间顺序"; + radListDataItem13.Text = "优先测量"; + radListDataItem14.Text = "紧急插队测量"; + this.rddlMeasureSeq2.Items.Add(radListDataItem12); + this.rddlMeasureSeq2.Items.Add(radListDataItem13); + this.rddlMeasureSeq2.Items.Add(radListDataItem14); + this.rddlMeasureSeq2.Location = new System.Drawing.Point(181, 211); + this.rddlMeasureSeq2.Name = "rddlMeasureSeq2"; + this.rddlMeasureSeq2.Size = new System.Drawing.Size(231, 27); + this.rddlMeasureSeq2.TabIndex = 109; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlMeasureSeq2.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlMeasureSeq2.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlMeasureSeq2.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlMeasureSeq2.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlMeasureSeq2.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbLocation1 + // + this.rtbLocation1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbLocation1.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rtbLocation1.ForeColor = System.Drawing.Color.White; + this.rtbLocation1.Location = new System.Drawing.Point(181, 155); + this.rtbLocation1.Name = "rtbLocation1"; + this.rtbLocation1.Size = new System.Drawing.Size(232, 27); + this.rtbLocation1.TabIndex = 117; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbLocation1.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbLocation1.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label6.ForeColor = System.Drawing.Color.White; + this.label6.Location = new System.Drawing.Point(66, 51); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(90, 21); + this.label6.TabIndex = 112; + this.label6.Text = "工件明码:"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label8.ForeColor = System.Drawing.Color.White; + this.label8.Location = new System.Drawing.Point(66, 157); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(90, 21); + this.label8.TabIndex = 116; + this.label8.Text = "库位编号:"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label9.ForeColor = System.Drawing.Color.White; + this.label9.Location = new System.Drawing.Point(63, 105); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(94, 21); + this.label9.TabIndex = 114; + this.label9.Text = "RFID编码:"; + // + // rtbRFID1 + // + this.rtbRFID1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbRFID1.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rtbRFID1.ForeColor = System.Drawing.Color.White; + this.rtbRFID1.Location = new System.Drawing.Point(181, 102); + this.rtbRFID1.Name = "rtbRFID1"; + this.rtbRFID1.Size = new System.Drawing.Size(232, 27); + this.rtbRFID1.TabIndex = 115; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbRFID1.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbRFID1.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rgpDebugKeyence + // + this.rgpDebugKeyence.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.rgpDebugKeyence.Controls.Add(this.rtbPartID); + this.rgpDebugKeyence.Controls.Add(this.rbtnCancel); + this.rgpDebugKeyence.Controls.Add(this.label7); + this.rgpDebugKeyence.Controls.Add(this.rbtnEdit); + this.rgpDebugKeyence.Controls.Add(this.rddlMeasureSeq); + this.rgpDebugKeyence.Controls.Add(this.rtbLocation); + this.rgpDebugKeyence.Controls.Add(this.label11); + this.rgpDebugKeyence.Controls.Add(this.label12); + this.rgpDebugKeyence.Controls.Add(this.label13); + this.rgpDebugKeyence.Controls.Add(this.rtbRFID); + this.rgpDebugKeyence.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rgpDebugKeyence.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.rgpDebugKeyence.HeaderText = "上库位上料"; + this.rgpDebugKeyence.Location = new System.Drawing.Point(23, 25); + this.rgpDebugKeyence.Name = "rgpDebugKeyence"; + this.rgpDebugKeyence.Size = new System.Drawing.Size(458, 359); + this.rgpDebugKeyence.TabIndex = 126; + this.rgpDebugKeyence.Text = "上库位上料"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.rgpDebugKeyence.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "上库位上料"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.rgpDebugKeyence.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + // + // rtbPartID + // + this.rtbPartID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbPartID.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rtbPartID.ForeColor = System.Drawing.Color.White; + this.rtbPartID.Location = new System.Drawing.Point(181, 50); + this.rtbPartID.Name = "rtbPartID"; + this.rtbPartID.Size = new System.Drawing.Size(232, 27); + this.rtbPartID.TabIndex = 113; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbPartID.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbPartID.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rbtnCancel + // + this.rbtnCancel.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnCancel.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rbtnCancel.ForeColor = System.Drawing.Color.White; + this.rbtnCancel.Location = new System.Drawing.Point(288, 276); + this.rbtnCancel.Name = "rbtnCancel"; + this.rbtnCancel.Size = new System.Drawing.Size(125, 45); + this.rbtnCancel.TabIndex = 119; + this.rbtnCancel.Text = "取消上料"; + this.rbtnCancel.Click += new System.EventHandler(this.rbtnCancel_Click); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).Text = "取消上料"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label7.ForeColor = System.Drawing.Color.White; + this.label7.Location = new System.Drawing.Point(66, 215); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(90, 21); + this.label7.TabIndex = 108; + this.label7.Text = "测量顺序:"; + // + // rbtnEdit + // + this.rbtnEdit.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.rbtnEdit.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnEdit.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rbtnEdit.ForeColor = System.Drawing.Color.White; + this.rbtnEdit.Location = new System.Drawing.Point(119, 276); + this.rbtnEdit.Name = "rbtnEdit"; + this.rbtnEdit.Size = new System.Drawing.Size(125, 45); + this.rbtnEdit.TabIndex = 118; + this.rbtnEdit.Text = "确认上料"; + this.rbtnEdit.Click += new System.EventHandler(this.rbtnEdit_Click); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnEdit.GetChildAt(0))).Text = "确认上料"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnEdit.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnEdit.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnEdit.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnEdit.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnEdit.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rddlMeasureSeq + // + this.rddlMeasureSeq.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlMeasureSeq.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.rddlMeasureSeq.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rddlMeasureSeq.ForeColor = System.Drawing.Color.White; + radListDataItem1.Text = "默认时间顺序"; + radListDataItem2.Text = "优先测量"; + radListDataItem3.Text = "紧急插队测量"; + this.rddlMeasureSeq.Items.Add(radListDataItem1); + this.rddlMeasureSeq.Items.Add(radListDataItem2); + this.rddlMeasureSeq.Items.Add(radListDataItem3); + this.rddlMeasureSeq.Location = new System.Drawing.Point(181, 211); + this.rddlMeasureSeq.Name = "rddlMeasureSeq"; + this.rddlMeasureSeq.Size = new System.Drawing.Size(231, 27); + this.rddlMeasureSeq.TabIndex = 109; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlMeasureSeq.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlMeasureSeq.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlMeasureSeq.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlMeasureSeq.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlMeasureSeq.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbLocation + // + this.rtbLocation.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbLocation.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rtbLocation.ForeColor = System.Drawing.Color.White; + this.rtbLocation.Location = new System.Drawing.Point(181, 155); + this.rtbLocation.Name = "rtbLocation"; + this.rtbLocation.Size = new System.Drawing.Size(232, 27); + this.rtbLocation.TabIndex = 117; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbLocation.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbLocation.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label11.ForeColor = System.Drawing.Color.White; + this.label11.Location = new System.Drawing.Point(66, 51); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(90, 21); + this.label11.TabIndex = 112; + this.label11.Text = "工件明码:"; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label12.ForeColor = System.Drawing.Color.White; + this.label12.Location = new System.Drawing.Point(66, 157); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(90, 21); + this.label12.TabIndex = 116; + this.label12.Text = "库位编号:"; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label13.ForeColor = System.Drawing.Color.White; + this.label13.Location = new System.Drawing.Point(63, 105); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(94, 21); + this.label13.TabIndex = 114; + this.label13.Text = "RFID编码:"; + // + // rtbRFID + // + this.rtbRFID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbRFID.Font = new System.Drawing.Font("微软雅黑", 12F); + this.rtbRFID.ForeColor = System.Drawing.Color.White; + this.rtbRFID.Location = new System.Drawing.Point(181, 102); + this.rtbRFID.Name = "rtbRFID"; + this.rtbRFID.Size = new System.Drawing.Size(232, 27); + this.rtbRFID.TabIndex = 115; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbRFID.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbRFID.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label14.ForeColor = System.Drawing.Color.White; + this.label14.Location = new System.Drawing.Point(446, 322); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(0, 21); + this.label14.TabIndex = 125; + // + // radPageViewPage2 + // + this.radPageViewPage2.Controls.Add(this.label1); + this.radPageViewPage2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radPageViewPage2.Image = global::NSAnalysis.Properties.Resources.Search32; + this.radPageViewPage2.ItemSize = new System.Drawing.SizeF(252F, 44F); + this.radPageViewPage2.Location = new System.Drawing.Point(10, 53); + this.radPageViewPage2.Name = "radPageViewPage2"; + this.radPageViewPage2.Size = new System.Drawing.Size(1001, 636); + this.radPageViewPage2.Text = "夹具查询"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(446, 322); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(91, 21); + this.label1.TabIndex = 125; + this.label1.Text = "222222222"; + // + // radPageViewPage3 + // + this.radPageViewPage3.Controls.Add(this.label3); + this.radPageViewPage3.Image = ((System.Drawing.Image)(resources.GetObject("radPageViewPage3.Image"))); + this.radPageViewPage3.ItemSize = new System.Drawing.SizeF(252F, 44F); + this.radPageViewPage3.Location = new System.Drawing.Point(10, 53); + this.radPageViewPage3.Name = "radPageViewPage3"; + this.radPageViewPage3.Size = new System.Drawing.Size(1001, 636); + this.radPageViewPage3.Text = "库位操作"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label3.ForeColor = System.Drawing.Color.White; + this.label3.Location = new System.Drawing.Point(446, 322); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(109, 21); + this.label3.TabIndex = 125; + this.label3.Text = "33333333333"; + // + // radPageViewPage4 + // + this.radPageViewPage4.Controls.Add(this.label4); + this.radPageViewPage4.Image = global::NSAnalysis.Properties.Resources.setup32; + this.radPageViewPage4.ItemSize = new System.Drawing.SizeF(252F, 44F); + this.radPageViewPage4.Location = new System.Drawing.Point(10, 53); + this.radPageViewPage4.Name = "radPageViewPage4"; + this.radPageViewPage4.Size = new System.Drawing.Size(1001, 636); + this.radPageViewPage4.Text = "夹具配置"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label4.ForeColor = System.Drawing.Color.White; + this.label4.Location = new System.Drawing.Point(446, 322); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(91, 21); + this.label4.TabIndex = 125; + this.label4.Text = "444444444"; + // + // radStatusStrip1 + // + this.radStatusStrip1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radStatusStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radStatusStrip1.Dock = System.Windows.Forms.DockStyle.None; + this.radStatusStrip1.Font = new System.Drawing.Font("Segoe UI", 9F); + this.radStatusStrip1.ForeColor = System.Drawing.Color.White; + this.radStatusStrip1.Items.AddRange(new Telerik.WinControls.RadItem[] { + this.rleTimeText, + this.rleTime, + this.commandBarSeparator1, + this.rlePLCText, + this.rlePLCStatus, + this.commandBarSeparator2, + this.radLabelElement1, + this.rlePLCHeart, + this.commandBarSeparator3, + this.rleMessageText, + this.rleMessage}); + this.radStatusStrip1.Location = new System.Drawing.Point(1, 736); + this.radStatusStrip1.Name = "radStatusStrip1"; + this.radStatusStrip1.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.radStatusStrip1.Size = new System.Drawing.Size(1022, 26); + this.radStatusStrip1.TabIndex = 6; + ((Telerik.WinControls.UI.RadStatusBarElement)(this.radStatusStrip1.GetChildAt(0))).Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(0))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radStatusStrip1.GetChildAt(0).GetChildAt(1))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + // + // rleTimeText + // + this.rleTimeText.Name = "rleTimeText"; + this.radStatusStrip1.SetSpring(this.rleTimeText, false); + this.rleTimeText.Text = "当前时间 :"; + this.rleTimeText.TextWrap = true; + this.rleTimeText.UseCompatibleTextRendering = false; + // + // rleTime + // + this.rleTime.Name = "rleTime"; + this.radStatusStrip1.SetSpring(this.rleTime, false); + this.rleTime.Text = "2019-11-11 11:23:34"; + this.rleTime.TextWrap = true; + this.rleTime.UseCompatibleTextRendering = false; + // + // commandBarSeparator1 + // + this.commandBarSeparator1.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator1.Name = "commandBarSeparator1"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator1, false); + this.commandBarSeparator1.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator1.UseCompatibleTextRendering = false; + this.commandBarSeparator1.VisibleInOverflowMenu = false; + // + // rlePLCText + // + this.rlePLCText.Name = "rlePLCText"; + this.radStatusStrip1.SetSpring(this.rlePLCText, false); + this.rlePLCText.Text = "PLC连接状态:"; + this.rlePLCText.TextWrap = true; + this.rlePLCText.UseCompatibleTextRendering = false; + // + // rlePLCStatus + // + this.rlePLCStatus.Font = new System.Drawing.Font("宋体", 11F); + this.rlePLCStatus.Name = "rlePLCStatus"; + this.radStatusStrip1.SetSpring(this.rlePLCStatus, false); + this.rlePLCStatus.Text = "●"; + this.rlePLCStatus.TextWrap = true; + this.rlePLCStatus.UseCompatibleTextRendering = false; + // + // commandBarSeparator2 + // + this.commandBarSeparator2.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator2.Name = "commandBarSeparator2"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator2, false); + this.commandBarSeparator2.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator2.UseCompatibleTextRendering = false; + this.commandBarSeparator2.VisibleInOverflowMenu = false; + // + // radLabelElement1 + // + this.radLabelElement1.Name = "radLabelElement1"; + this.radStatusStrip1.SetSpring(this.radLabelElement1, false); + this.radLabelElement1.Text = "PLC心跳:"; + this.radLabelElement1.TextWrap = true; + this.radLabelElement1.UseCompatibleTextRendering = false; + // + // rlePLCHeart + // + this.rlePLCHeart.Font = new System.Drawing.Font("宋体", 11F); + this.rlePLCHeart.Name = "rlePLCHeart"; + this.radStatusStrip1.SetSpring(this.rlePLCHeart, false); + this.rlePLCHeart.Text = "●"; + this.rlePLCHeart.TextWrap = true; + this.rlePLCHeart.UseCompatibleTextRendering = false; + // + // commandBarSeparator3 + // + this.commandBarSeparator3.DisabledTextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator3.Name = "commandBarSeparator3"; + this.radStatusStrip1.SetSpring(this.commandBarSeparator3, false); + this.commandBarSeparator3.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SystemDefault; + this.commandBarSeparator3.UseCompatibleTextRendering = false; + this.commandBarSeparator3.VisibleInOverflowMenu = false; + // + // rleMessageText + // + this.rleMessageText.Name = "rleMessageText"; + this.radStatusStrip1.SetSpring(this.rleMessageText, false); + this.rleMessageText.Text = "消息 :"; + this.rleMessageText.TextWrap = true; + this.rleMessageText.UseCompatibleTextRendering = false; + // + // rleMessage + // + this.rleMessage.Name = "rleMessage"; + this.radStatusStrip1.SetSpring(this.rleMessage, false); + this.rleMessage.Text = "软件正常启动"; + this.rleMessage.TextWrap = true; + this.rleMessage.UseCompatibleTextRendering = false; + // + // TestPageView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(1024, 768); + this.Controls.Add(this.radStatusStrip1); + this.Controls.Add(this.radPageView1); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "TestPageView"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "DEMO12"; + this.Load += new System.EventHandler(this.TestPageView_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radPageView1)).EndInit(); + this.radPageView1.ResumeLayout(false); + this.radPageViewPage1.ResumeLayout(false); + this.radPageViewPage1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radButton3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlWarehouse)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox1)).EndInit(); + this.radGroupBox1.ResumeLayout(false); + this.radGroupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPartID1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlMeasureSeq2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLocation1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRFID1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rgpDebugKeyence)).EndInit(); + this.rgpDebugKeyence.ResumeLayout(false); + this.rgpDebugKeyence.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbPartID)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnEdit)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlMeasureSeq)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLocation)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRFID)).EndInit(); + this.radPageViewPage2.ResumeLayout(false); + this.radPageViewPage2.PerformLayout(); + this.radPageViewPage3.ResumeLayout(false); + this.radPageViewPage3.PerformLayout(); + this.radPageViewPage4.ResumeLayout(false); + this.radPageViewPage4.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radStatusStrip1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + public Telerik.WinControls.UI.RadPageView radPageView1; + public Telerik.WinControls.UI.RadPageViewPage radPageViewPage1; + public Telerik.WinControls.UI.RadPageViewPage radPageViewPage2; + public Telerik.WinControls.UI.RadPageViewPage radPageViewPage3; + private Telerik.WinControls.UI.RadPageViewPage radPageViewPage4; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private Telerik.WinControls.UI.RadStatusStrip radStatusStrip1; + private Telerik.WinControls.UI.RadLabelElement rleTimeText; + private Telerik.WinControls.UI.RadLabelElement rleTime; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator1; + private Telerik.WinControls.UI.RadLabelElement rlePLCText; + private Telerik.WinControls.UI.RadLabelElement rlePLCStatus; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator2; + private Telerik.WinControls.UI.RadLabelElement radLabelElement1; + private Telerik.WinControls.UI.RadLabelElement rlePLCHeart; + private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator3; + private Telerik.WinControls.UI.RadLabelElement rleMessageText; + public Telerik.WinControls.UI.RadLabelElement rleMessage; + private Telerik.WinControls.UI.RadButton radButton3; + private System.Windows.Forms.Label label10; + private Telerik.WinControls.UI.RadDropDownList rddlWarehouse; + private Telerik.WinControls.UI.RadGroupBox radGroupBox1; + private Telerik.WinControls.UI.RadTextBox rtbPartID1; + private Telerik.WinControls.UI.RadButton radButton1; + private System.Windows.Forms.Label label5; + private Telerik.WinControls.UI.RadButton radButton2; + private Telerik.WinControls.UI.RadDropDownList rddlMeasureSeq2; + private Telerik.WinControls.UI.RadTextBox rtbLocation1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private Telerik.WinControls.UI.RadTextBox rtbRFID1; + private Telerik.WinControls.UI.RadGroupBox rgpDebugKeyence; + private Telerik.WinControls.UI.RadTextBox rtbPartID; + private Telerik.WinControls.UI.RadButton rbtnCancel; + private System.Windows.Forms.Label label7; + private Telerik.WinControls.UI.RadButton rbtnEdit; + private Telerik.WinControls.UI.RadDropDownList rddlMeasureSeq; + private Telerik.WinControls.UI.RadTextBox rtbLocation; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label13; + private Telerik.WinControls.UI.RadTextBox rtbRFID; + } +} diff --git a/Analysis/TestPageView.resx b/Analysis/TestPageView.resx new file mode 100644 index 0000000..85338ec --- /dev/null +++ b/Analysis/TestPageView.resx @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + AAAAAAAA0sJ4AdTEfEjVxHyS1MN51dPCd/LRv2/8x61C/7yaE+26lgieupYIFAAAAAAAAAAAAAAAANPC + dSrRv3BzybFO/7ybFf+6lgj/u5cJ/7uXCf+6lgj/o61I/4vFif952Ln/edi5/3rYuv952Lnledi5rAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAANXGhgjVxoYj18iGldTEe+bOuV/8xak67bqWCJ66lggUAAAAAAAA + AAAAAAAAz7xpKs23XnO+nyD/u5gN/7qWCP+7lwn/u5cJ/7qWCP+ynh7/oLBQ/3zUsf9617n/eti6/3nY + ueV52LmsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1caGAtXGhgjXyIYh2MmHTNTDeozNt167vp4gnr2b + GBQAAAAAAAAAAAAAAADIrU4gx6xIXLyaGOm7lwz7upYJ/7qWCP+7lwn/u5cJ/7iYDv+rpDD/i8aL/3rW + tv952Ln/edi55XnYuawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADazI0S1seCPc23 + YGPEqD9ixKhCDAAAAAAAAAAAAAAAAMKiNxHBojY5v54nuryaFea7lw33upYJ/bqWCP+6lgj/upYI/7Oc + G/+fsVT/fNSw/3rXuP952Lnledi5rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAy7JfBMuyXxPLsl8CAAAAAAAAAAAAAAAAAAAAAAAAAADUvIcDy69bVMOkN6a9mhnpupYI/7qW + CP+7lwn/upcK/7mYDv+Hypf/fdSw/3nYueV52LmsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANS8hwHNsmcV0rtxMNO9 + dVjAnyalvJkT77qXDP26lgj/uZYJ/6CwUv+HyZT/edi55XnYuawAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADh0qwF18KFGMGhMFDBoTKYv54kxbyaFui6lgr/sKAn/5K+dv9+0qvleNe4rAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMmuXR7HqkxtwqMyuryZE/O6lgv7n7FV/ojIk+V517isAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODRyAHbyawRy7BYQL+eI8G2niTroLBS5XvT + sawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANfDmAXLsFgS4M6pOsqy + X26zqkqTn7+BpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AADu4+QD1L1/JrmpS0istm5lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//4P///8D////AH///gA///4AB//+EAf/+BAB8AAAAHAAAABwAAAAcAA + AAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAYAHAAHgBwAB+AcAAfgHAAH/BwAB/8fAA + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/Tolerance/FAddTolerance.cs b/Analysis/Tolerance/FAddTolerance.cs new file mode 100644 index 0000000..359cee2 --- /dev/null +++ b/Analysis/Tolerance/FAddTolerance.cs @@ -0,0 +1,159 @@ +using BaseFunction; +using DAL; +using System; +using System.Drawing; +using System.Windows.Forms; +using Telerik.WinControls.UI; + +namespace NSAnalysis +{ + public partial class FAddTolerance : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + + //private TMeasureSQLiteDAL tmdal = new TMeasureSQLiteDAL(); + + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private FToleranceSetup gFTS; + + #endregion 全局变量 + + #region 鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion 鼠标事件 + + private void InitLanguage() + { + if (!ConfigDfn.bLanguage) + { + this.Text = "Add Tolerance"; + labTitle.Text = "Add Tolerance"; + radLabel5.Text = "CNC ID : "; + radLabel2.Text = "CNC Name : "; + radLabel4.Text = "CNC Location : "; + radLabel3.Text = "CNC Type : "; + radLabel7.Text = "CNC IP : "; + radLabel1.Text = "Remark : "; + rbtnOK.Text = "Add"; + rbtnCancel.Text = "Cancel"; + } + } + + public FAddTolerance(FToleranceSetup fts) + { + InitializeComponent(); + InitLanguage(); + gFTS = fts; + } + + private void SFAddCNC_Load(object sender, EventArgs e) + { + rddlDimensionName.SelectedIndex = 0; + } + + private void rbtnOK_Click(object sender, EventArgs e) + { + #region 防愚操作 + + string strCarType = rtbCarType.Text.Trim(); + string strMesPointName = rtbMesPointName.Text.Trim(); + + string strDimensionName = rddlDimensionName.Text.Trim(); + if (string.IsNullOrEmpty(rtbCarType.Text.Trim())) + { + MessageBox.Show("车身类型不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (string.IsNullOrEmpty(rtbMesPointName.Text.Trim())) + { + MessageBox.Show("测量点位名称不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (string.IsNullOrEmpty(rtbLower.Text.Trim())) + { + MessageBox.Show("下限值不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (string.IsNullOrEmpty(rtbUpper.Text.Trim())) + { + MessageBox.Show("上限值不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (!string.IsNullOrEmpty(rtbLower.Text.Trim())) + { + try + { + double dtemp = double.Parse(rtbLower.Text.Trim()); + } + catch (Exception) + { + MessageBox.Show("下限值必须是数字,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + if (!string.IsNullOrEmpty(rtbUpper.Text.Trim())) + { + try + { + double dtemp = double.Parse(rtbUpper.Text.Trim()); + } + catch (Exception) + { + MessageBox.Show("上限值必须是数字,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + if (tmdal.CheckMeaPointNameExit(strCarType, strMesPointName, strDimensionName)) + { + MessageBox.Show("该车身类型下,已经存在该测量点位名称和尺寸名称,请修改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + return; + } + + #endregion 防愚操作 + + TToleranceModel ttm = new TToleranceModel(); + ttm.CarType = strCarType; + ttm.MeasurePointName = strMesPointName; + ttm.DimensionName = strDimensionName; + ttm.TolLower = double.Parse(rtbLower.Text.Trim()); + ttm.TolUpper = double.Parse(rtbUpper.Text.Trim()); + ttm.Remark = rtbRemark.Text.Trim(); + ttm.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + try + { + tmdal.InsertTTolerance(ttm); + } + catch (Exception ex) + { + MessageBox.Show("添加公差带信息失败,原因:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + MyBase.TraceWriteLine("添加公差带信息失败,原因:" + ex.ToString()); + return; + } + + MessageBox.Show("添加公差带信息成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + gFTS.rtbnSearch_Click(null, null); + } + + private void rbtnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} \ No newline at end of file diff --git a/Analysis/Tolerance/FAddTolerance.designer.cs b/Analysis/Tolerance/FAddTolerance.designer.cs new file mode 100644 index 0000000..62d665b --- /dev/null +++ b/Analysis/Tolerance/FAddTolerance.designer.cs @@ -0,0 +1,462 @@ +namespace NSAnalysis +{ + partial class FAddTolerance + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FAddTolerance)); + Telerik.WinControls.UI.RadListDataItem radListDataItem1 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem2 = new Telerik.WinControls.UI.RadListDataItem(); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.radLabel7 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel3 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel4 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel2 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel5 = new Telerik.WinControls.UI.RadLabel(); + this.rtbCarType = new Telerik.WinControls.UI.RadTextBox(); + this.rtbMesPointName = new Telerik.WinControls.UI.RadTextBox(); + this.rtbUpper = new Telerik.WinControls.UI.RadTextBox(); + this.rbtnCancel = new Telerik.WinControls.UI.RadButton(); + this.rbtnOK = new Telerik.WinControls.UI.RadButton(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.rtbLower = new Telerik.WinControls.UI.RadTextBox(); + this.rtbRemark = new Telerik.WinControls.UI.RadTextBox(); + this.radLabel1 = new Telerik.WinControls.UI.RadLabel(); + this.rddlDimensionName = new Telerik.WinControls.UI.RadDropDownList(); + this.label5 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarType)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbUpper)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnOK)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLower)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRemark)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlDimensionName)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(373, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "添加公差带"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "添加公差带"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(117, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(159, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(107, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "添加公差带"; + // + // radLabel7 + // + this.radLabel7.AutoSize = false; + this.radLabel7.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel7.ForeColor = System.Drawing.Color.White; + this.radLabel7.Location = new System.Drawing.Point(4, 219); + this.radLabel7.Name = "radLabel7"; + this.radLabel7.Size = new System.Drawing.Size(148, 23); + this.radLabel7.TabIndex = 29; + this.radLabel7.Text = "上限值:"; + this.radLabel7.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel3 + // + this.radLabel3.AutoSize = false; + this.radLabel3.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel3.ForeColor = System.Drawing.Color.White; + this.radLabel3.Location = new System.Drawing.Point(4, 181); + this.radLabel3.Name = "radLabel3"; + this.radLabel3.Size = new System.Drawing.Size(148, 23); + this.radLabel3.TabIndex = 28; + this.radLabel3.Text = "下限值:"; + this.radLabel3.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel4 + // + this.radLabel4.AutoSize = false; + this.radLabel4.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel4.ForeColor = System.Drawing.Color.White; + this.radLabel4.Location = new System.Drawing.Point(4, 141); + this.radLabel4.Name = "radLabel4"; + this.radLabel4.Size = new System.Drawing.Size(148, 23); + this.radLabel4.TabIndex = 27; + this.radLabel4.Text = "尺寸名称:"; + this.radLabel4.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel2 + // + this.radLabel2.AutoSize = false; + this.radLabel2.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel2.ForeColor = System.Drawing.Color.White; + this.radLabel2.Location = new System.Drawing.Point(4, 101); + this.radLabel2.Name = "radLabel2"; + this.radLabel2.Size = new System.Drawing.Size(148, 23); + this.radLabel2.TabIndex = 26; + this.radLabel2.Text = "测量点位名称:"; + this.radLabel2.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel5 + // + this.radLabel5.AutoSize = false; + this.radLabel5.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel5.ForeColor = System.Drawing.Color.White; + this.radLabel5.Location = new System.Drawing.Point(4, 60); + this.radLabel5.Name = "radLabel5"; + this.radLabel5.Size = new System.Drawing.Size(148, 23); + this.radLabel5.TabIndex = 25; + this.radLabel5.Text = "车身类型:"; + this.radLabel5.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // rtbCarType + // + this.rtbCarType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbCarType.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbCarType.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbCarType.ForeColor = System.Drawing.Color.White; + this.rtbCarType.Location = new System.Drawing.Point(158, 60); + this.rtbCarType.Name = "rtbCarType"; + this.rtbCarType.Size = new System.Drawing.Size(173, 23); + this.rtbCarType.TabIndex = 1; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCarType.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCarType.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbMesPointName + // + this.rtbMesPointName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbMesPointName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbMesPointName.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbMesPointName.ForeColor = System.Drawing.Color.White; + this.rtbMesPointName.Location = new System.Drawing.Point(158, 101); + this.rtbMesPointName.Name = "rtbMesPointName"; + this.rtbMesPointName.Size = new System.Drawing.Size(173, 23); + this.rtbMesPointName.TabIndex = 2; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbMesPointName.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbMesPointName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbUpper + // + this.rtbUpper.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbUpper.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbUpper.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbUpper.ForeColor = System.Drawing.Color.White; + this.rtbUpper.Location = new System.Drawing.Point(158, 218); + this.rtbUpper.MaxLength = 15; + this.rtbUpper.Name = "rtbUpper"; + this.rtbUpper.Size = new System.Drawing.Size(173, 23); + this.rtbUpper.TabIndex = 5; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbUpper.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbUpper.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rbtnCancel + // + this.rbtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnCancel.Font = new System.Drawing.Font("微软雅黑", 11F); + this.rbtnCancel.ForeColor = System.Drawing.Color.White; + this.rbtnCancel.Location = new System.Drawing.Point(246, 312); + this.rbtnCancel.Name = "rbtnCancel"; + this.rbtnCancel.Size = new System.Drawing.Size(85, 30); + this.rbtnCancel.TabIndex = 10; + this.rbtnCancel.Text = "取消"; + this.rbtnCancel.Click += new System.EventHandler(this.rbtnCancel_Click); + this.rbtnCancel.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnCancel.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).Text = "取消"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rbtnOK + // + this.rbtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnOK.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnOK.Font = new System.Drawing.Font("微软雅黑", 11F); + this.rbtnOK.ForeColor = System.Drawing.Color.White; + this.rbtnOK.Location = new System.Drawing.Point(118, 312); + this.rbtnOK.Name = "rbtnOK"; + this.rbtnOK.Size = new System.Drawing.Size(85, 30); + this.rbtnOK.TabIndex = 9; + this.rbtnOK.Text = "添加"; + this.rbtnOK.Click += new System.EventHandler(this.rbtnOK_Click); + this.rbtnOK.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnOK.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnOK.GetChildAt(0))).Text = "添加"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("宋体", 12F); + this.label1.ForeColor = System.Drawing.Color.Red; + this.label1.Location = new System.Drawing.Point(336, 221); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(15, 16); + this.label1.TabIndex = 34; + this.label1.Text = "*"; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("宋体", 12F); + this.label3.ForeColor = System.Drawing.Color.Red; + this.label3.Location = new System.Drawing.Point(336, 184); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(15, 16); + this.label3.TabIndex = 35; + this.label3.Text = "*"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("宋体", 12F); + this.label4.ForeColor = System.Drawing.Color.Red; + this.label4.Location = new System.Drawing.Point(336, 66); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(15, 16); + this.label4.TabIndex = 36; + this.label4.Text = "*"; + // + // rtbLower + // + this.rtbLower.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbLower.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbLower.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbLower.ForeColor = System.Drawing.Color.White; + this.rtbLower.Location = new System.Drawing.Point(158, 181); + this.rtbLower.Name = "rtbLower"; + this.rtbLower.Size = new System.Drawing.Size(173, 23); + this.rtbLower.TabIndex = 4; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbLower.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbLower.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbRemark + // + this.rtbRemark.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbRemark.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbRemark.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbRemark.ForeColor = System.Drawing.Color.White; + this.rtbRemark.Location = new System.Drawing.Point(158, 258); + this.rtbRemark.Name = "rtbRemark"; + this.rtbRemark.Size = new System.Drawing.Size(173, 23); + this.rtbRemark.TabIndex = 37; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbRemark.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbRemark.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radLabel1 + // + this.radLabel1.AutoSize = false; + this.radLabel1.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel1.ForeColor = System.Drawing.Color.White; + this.radLabel1.Location = new System.Drawing.Point(4, 258); + this.radLabel1.Name = "radLabel1"; + this.radLabel1.Size = new System.Drawing.Size(148, 23); + this.radLabel1.TabIndex = 38; + this.radLabel1.Text = "备注:"; + this.radLabel1.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // rddlDimensionName + // + this.rddlDimensionName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rddlDimensionName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlDimensionName.DropDownHeight = 50; + this.rddlDimensionName.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.rddlDimensionName.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rddlDimensionName.ForeColor = System.Drawing.Color.White; + radListDataItem1.Text = "F"; + radListDataItem2.Text = "G"; + this.rddlDimensionName.Items.Add(radListDataItem1); + this.rddlDimensionName.Items.Add(radListDataItem2); + this.rddlDimensionName.Location = new System.Drawing.Point(158, 143); + this.rddlDimensionName.Name = "rddlDimensionName"; + this.rddlDimensionName.Size = new System.Drawing.Size(173, 23); + this.rddlDimensionName.TabIndex = 39; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlDimensionName.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlDimensionName.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlDimensionName.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlDimensionName.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlDimensionName.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("宋体", 12F); + this.label5.ForeColor = System.Drawing.Color.Red; + this.label5.Location = new System.Drawing.Point(337, 108); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(15, 16); + this.label5.TabIndex = 40; + this.label5.Text = "*"; + // + // FAddTolerance + // + this.AcceptButton = this.rbtnOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(375, 366); + this.Controls.Add(this.label5); + this.Controls.Add(this.rddlDimensionName); + this.Controls.Add(this.rtbRemark); + this.Controls.Add(this.radLabel1); + this.Controls.Add(this.rtbLower); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label1); + this.Controls.Add(this.rbtnCancel); + this.Controls.Add(this.rbtnOK); + this.Controls.Add(this.rtbUpper); + this.Controls.Add(this.rtbMesPointName); + this.Controls.Add(this.rtbCarType); + this.Controls.Add(this.radLabel7); + this.Controls.Add(this.radLabel3); + this.Controls.Add(this.radLabel4); + this.Controls.Add(this.radLabel2); + this.Controls.Add(this.radLabel5); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FAddTolerance"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "添加公差带"; + this.Load += new System.EventHandler(this.SFAddCNC_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarType)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbUpper)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnOK)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLower)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbRemark)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlDimensionName)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private Telerik.WinControls.UI.RadLabel radLabel7; + private Telerik.WinControls.UI.RadLabel radLabel3; + private Telerik.WinControls.UI.RadLabel radLabel4; + private Telerik.WinControls.UI.RadLabel radLabel2; + private Telerik.WinControls.UI.RadLabel radLabel5; + private Telerik.WinControls.UI.RadTextBox rtbCarType; + private Telerik.WinControls.UI.RadTextBox rtbMesPointName; + private Telerik.WinControls.UI.RadTextBox rtbUpper; + private Telerik.WinControls.UI.RadButton rbtnCancel; + private Telerik.WinControls.UI.RadButton rbtnOK; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private Telerik.WinControls.UI.RadTextBox rtbLower; + private Telerik.WinControls.UI.RadTextBox rtbRemark; + private Telerik.WinControls.UI.RadLabel radLabel1; + private Telerik.WinControls.UI.RadDropDownList rddlDimensionName; + private System.Windows.Forms.Label label5; + } +} diff --git a/Analysis/Tolerance/FAddTolerance.resx b/Analysis/Tolerance/FAddTolerance.resx new file mode 100644 index 0000000..a346816 --- /dev/null +++ b/Analysis/Tolerance/FAddTolerance.resx @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/Tolerance/FEditTolerance.cs b/Analysis/Tolerance/FEditTolerance.cs new file mode 100644 index 0000000..b6092df --- /dev/null +++ b/Analysis/Tolerance/FEditTolerance.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using BaseFunction; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using DAL; + +namespace NSAnalysis +{ + public partial class FEditTolerance : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + //private TMeasureSQLiteDAL tmdal = new TMeasureSQLiteDAL(); + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + private FToleranceSetup gFTS; + + #endregion 全局变量 + + #region 鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion 鼠标事件 + + private void InitLanguage() + { + if (!ConfigDfn.bLanguage) + { + this.Text = "Edit CNC"; + labTitle.Text = "Edit CNC"; + radLabel5.Text = "CNC ID : "; + radLabel2.Text = "CNC Name : "; + radLabel4.Text = "CNC Location : "; + radLabel3.Text = "CNC Type : "; + radLabel7.Text = "CNC IP : "; + + radLabel1.Text = "Remark : "; + + rbtnOK.Text = "Edit"; + rbtnCancel.Text = "Cancel"; + } + } + + public FEditTolerance(FToleranceSetup fts) + { + InitializeComponent(); + InitLanguage(); + gFTS = fts; + } + + private void SFAddCNC_Load(object sender, EventArgs e) + { + rtbCarType.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["CarType"].Value.ToString(); + rtbMesPointName.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["MeasurePointName"].Value.ToString(); + rddlDimensionName.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["DimensionName"].Value.ToString(); + rtbLower.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["TolLower"].Value.ToString(); + rtbUpper.Text = gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["TolUpper"].Value.ToString(); + + } + + private void rbtnOK_Click(object sender, EventArgs e) + { + #region 防愚操作 + + string strCarType = rtbCarType.Text.Trim(); + string strMesPointName = rtbMesPointName.Text.Trim(); + + string strDimensionName = rddlDimensionName.Text.Trim(); + if (string.IsNullOrEmpty(rtbCarType.Text.Trim())) + { + MessageBox.Show("车身类型不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + + if (string.IsNullOrEmpty(rtbMesPointName.Text.Trim())) + { + MessageBox.Show("测量点位名称不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (string.IsNullOrEmpty(rtbLower.Text.Trim())) + { + MessageBox.Show("下限值不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (string.IsNullOrEmpty(rtbUpper.Text.Trim())) + { + MessageBox.Show("上限值不能为空,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + if (!string.IsNullOrEmpty(rtbLower.Text.Trim())) + { + try + { + double dtemp = double.Parse(rtbLower.Text.Trim()); + } + catch (Exception) + { + MessageBox.Show("下限值必须是数字,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + if (!string.IsNullOrEmpty(rtbUpper.Text.Trim())) + { + try + { + double dtemp = double.Parse(rtbUpper.Text.Trim()); + } + catch (Exception) + { + MessageBox.Show("上限值必须是数字,请重新输入! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + } + if (rtbCarType.Text != gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["CarType"].Value.ToString() || rtbMesPointName.Text != gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["MeasurePointName"].Value.ToString() || rddlDimensionName.Text != gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["DimensionName"].Value.ToString()) + { + if (tmdal.CheckMeaPointNameExit(strCarType, strMesPointName, strDimensionName)) + { + MessageBox.Show("该车身类型下,已经存在该测量点位名称和尺寸名称,请修改!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + return; + } + } + + #endregion 防愚操作 + + try + { + TToleranceModel ttm = new TToleranceModel(); + ttm.Id = int.Parse(gFTS.dgvTolList.Rows[gFTS.idgvSelectRowNumber].Cells["Id"].Value.ToString()); + ttm.CarType = strCarType; + ttm.MeasurePointName = strMesPointName; + ttm.DimensionName = strDimensionName; + ttm.TolLower = double.Parse(rtbLower.Text.Trim()); + ttm.TolUpper = double.Parse(rtbUpper.Text.Trim()); + //ttm.Remark = rtbRemark.Text.Trim(); + ttm.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + tmdal.UpdateTTolerance(ttm); + } + catch (Exception ex) + { + MessageBox.Show("修改公差带信息失败,原因:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + return; + } + + MessageBox.Show("修改公差带信息成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + + gFTS.rtbnSearch_Click(null, null); + + this.Close(); + } + + private void rbtnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} \ No newline at end of file diff --git a/Analysis/Tolerance/FEditTolerance.designer.cs b/Analysis/Tolerance/FEditTolerance.designer.cs new file mode 100644 index 0000000..73cb85d --- /dev/null +++ b/Analysis/Tolerance/FEditTolerance.designer.cs @@ -0,0 +1,557 @@ +namespace NSAnalysis +{ + partial class FEditTolerance + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FEditTolerance)); + Telerik.WinControls.UI.RadListDataItem radListDataItem1 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem2 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem3 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem4 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem5 = new Telerik.WinControls.UI.RadListDataItem(); + Telerik.WinControls.UI.RadListDataItem radListDataItem6 = new Telerik.WinControls.UI.RadListDataItem(); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.radLabel7 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel3 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel4 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel2 = new Telerik.WinControls.UI.RadLabel(); + this.radLabel5 = new Telerik.WinControls.UI.RadLabel(); + this.rtbCarType = new Telerik.WinControls.UI.RadTextBox(); + this.rtbMesPointName = new Telerik.WinControls.UI.RadTextBox(); + this.rtbUpper = new Telerik.WinControls.UI.RadTextBox(); + this.rbtnCancel = new Telerik.WinControls.UI.RadButton(); + this.rbtnOK = new Telerik.WinControls.UI.RadButton(); + this.rtbLower = new Telerik.WinControls.UI.RadTextBox(); + this.rddlDimensionName = new Telerik.WinControls.UI.RadDropDownList(); + this.radDropDownList1 = new Telerik.WinControls.UI.RadDropDownList(); + this.radLabel1 = new Telerik.WinControls.UI.RadLabel(); + this.radDropDownList2 = new Telerik.WinControls.UI.RadDropDownList(); + this.radLabel6 = new Telerik.WinControls.UI.RadLabel(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.radButton1 = new Telerik.WinControls.UI.RadButton(); + this.radButton2 = new Telerik.WinControls.UI.RadButton(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarType)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbUpper)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnOK)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLower)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlDimensionName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radDropDownList1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radDropDownList2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton2)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(552, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "修改公差带"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "修改公差带"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(205, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(247, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(88, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "修改配置"; + // + // radLabel7 + // + this.radLabel7.AutoSize = false; + this.radLabel7.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel7.ForeColor = System.Drawing.Color.White; + this.radLabel7.Location = new System.Drawing.Point(4, 178); + this.radLabel7.Name = "radLabel7"; + this.radLabel7.Size = new System.Drawing.Size(152, 23); + this.radLabel7.TabIndex = 29; + this.radLabel7.Text = "目标文件路径:"; + this.radLabel7.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel3 + // + this.radLabel3.AutoSize = false; + this.radLabel3.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel3.ForeColor = System.Drawing.Color.White; + this.radLabel3.Location = new System.Drawing.Point(9, 139); + this.radLabel3.Name = "radLabel3"; + this.radLabel3.Size = new System.Drawing.Size(147, 23); + this.radLabel3.TabIndex = 28; + this.radLabel3.Text = "源文件路径:"; + this.radLabel3.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel4 + // + this.radLabel4.AutoSize = false; + this.radLabel4.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel4.ForeColor = System.Drawing.Color.White; + this.radLabel4.Location = new System.Drawing.Point(9, 217); + this.radLabel4.Name = "radLabel4"; + this.radLabel4.Size = new System.Drawing.Size(147, 23); + this.radLabel4.TabIndex = 27; + this.radLabel4.Text = "读取方式:"; + this.radLabel4.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel2 + // + this.radLabel2.AutoSize = false; + this.radLabel2.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel2.ForeColor = System.Drawing.Color.White; + this.radLabel2.Location = new System.Drawing.Point(9, 100); + this.radLabel2.Name = "radLabel2"; + this.radLabel2.Size = new System.Drawing.Size(147, 23); + this.radLabel2.TabIndex = 26; + this.radLabel2.Text = "车型代码:"; + this.radLabel2.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radLabel5 + // + this.radLabel5.AutoSize = false; + this.radLabel5.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel5.ForeColor = System.Drawing.Color.White; + this.radLabel5.Location = new System.Drawing.Point(9, 61); + this.radLabel5.Name = "radLabel5"; + this.radLabel5.Size = new System.Drawing.Size(147, 23); + this.radLabel5.TabIndex = 25; + this.radLabel5.Text = "车型名称:"; + this.radLabel5.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // rtbCarType + // + this.rtbCarType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbCarType.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbCarType.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbCarType.ForeColor = System.Drawing.Color.White; + this.rtbCarType.Location = new System.Drawing.Point(162, 55); + this.rtbCarType.Name = "rtbCarType"; + this.rtbCarType.Size = new System.Drawing.Size(173, 23); + this.rtbCarType.TabIndex = 1; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCarType.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCarType.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbMesPointName + // + this.rtbMesPointName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbMesPointName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbMesPointName.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbMesPointName.ForeColor = System.Drawing.Color.White; + this.rtbMesPointName.Location = new System.Drawing.Point(162, 96); + this.rtbMesPointName.Name = "rtbMesPointName"; + this.rtbMesPointName.Size = new System.Drawing.Size(173, 23); + this.rtbMesPointName.TabIndex = 2; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbMesPointName.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbMesPointName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rtbUpper + // + this.rtbUpper.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbUpper.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbUpper.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbUpper.ForeColor = System.Drawing.Color.White; + this.rtbUpper.Location = new System.Drawing.Point(162, 172); + this.rtbUpper.MaxLength = 15; + this.rtbUpper.Name = "rtbUpper"; + this.rtbUpper.Size = new System.Drawing.Size(173, 23); + this.rtbUpper.TabIndex = 5; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbUpper.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbUpper.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rbtnCancel + // + this.rbtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnCancel.Font = new System.Drawing.Font("微软雅黑", 11F); + this.rbtnCancel.ForeColor = System.Drawing.Color.White; + this.rbtnCancel.Location = new System.Drawing.Point(422, 373); + this.rbtnCancel.Name = "rbtnCancel"; + this.rbtnCancel.Size = new System.Drawing.Size(85, 30); + this.rbtnCancel.TabIndex = 10; + this.rbtnCancel.Text = "取消"; + this.rbtnCancel.Click += new System.EventHandler(this.rbtnCancel_Click); + this.rbtnCancel.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnCancel.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnCancel.GetChildAt(0))).Text = "取消"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnCancel.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rbtnOK + // + this.rbtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rbtnOK.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rbtnOK.Font = new System.Drawing.Font("微软雅黑", 11F); + this.rbtnOK.ForeColor = System.Drawing.Color.White; + this.rbtnOK.Location = new System.Drawing.Point(294, 373); + this.rbtnOK.Name = "rbtnOK"; + this.rbtnOK.Size = new System.Drawing.Size(85, 30); + this.rbtnOK.TabIndex = 9; + this.rbtnOK.Text = "修改"; + this.rbtnOK.Click += new System.EventHandler(this.rbtnOK_Click); + this.rbtnOK.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rbtnOK.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rbtnOK.GetChildAt(0))).Text = "修改"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnOK.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // rtbLower + // + this.rtbLower.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rtbLower.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbLower.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rtbLower.ForeColor = System.Drawing.Color.White; + this.rtbLower.Location = new System.Drawing.Point(162, 135); + this.rtbLower.Name = "rtbLower"; + this.rtbLower.Size = new System.Drawing.Size(173, 23); + this.rtbLower.TabIndex = 4; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbLower.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbLower.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // rddlDimensionName + // + this.rddlDimensionName.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rddlDimensionName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rddlDimensionName.DropDownHeight = 50; + this.rddlDimensionName.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.rddlDimensionName.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.rddlDimensionName.ForeColor = System.Drawing.Color.White; + radListDataItem1.Tag = "1"; + radListDataItem1.Text = "文件名称"; + radListDataItem2.Tag = "2"; + radListDataItem2.Text = "文件内容"; + this.rddlDimensionName.Items.Add(radListDataItem1); + this.rddlDimensionName.Items.Add(radListDataItem2); + this.rddlDimensionName.Location = new System.Drawing.Point(162, 209); + this.rddlDimensionName.Name = "rddlDimensionName"; + this.rddlDimensionName.Size = new System.Drawing.Size(173, 23); + this.rddlDimensionName.TabIndex = 41; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.rddlDimensionName.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlDimensionName.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rddlDimensionName.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlDimensionName.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.rddlDimensionName.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radDropDownList1 + // + this.radDropDownList1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.radDropDownList1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.radDropDownList1.DropDownHeight = 50; + this.radDropDownList1.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.radDropDownList1.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.radDropDownList1.ForeColor = System.Drawing.Color.White; + radListDataItem3.Tag = "L"; + radListDataItem3.Text = "左侧"; + radListDataItem4.Tag = "R"; + radListDataItem4.Text = "右侧"; + this.radDropDownList1.Items.Add(radListDataItem3); + this.radDropDownList1.Items.Add(radListDataItem4); + this.radDropDownList1.Location = new System.Drawing.Point(162, 253); + this.radDropDownList1.Name = "radDropDownList1"; + this.radDropDownList1.Size = new System.Drawing.Size(173, 23); + this.radDropDownList1.TabIndex = 44; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.radDropDownList1.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radDropDownList1.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radDropDownList1.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radDropDownList1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radDropDownList1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radLabel1 + // + this.radLabel1.AutoSize = false; + this.radLabel1.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel1.ForeColor = System.Drawing.Color.White; + this.radLabel1.Location = new System.Drawing.Point(9, 256); + this.radLabel1.Name = "radLabel1"; + this.radLabel1.Size = new System.Drawing.Size(147, 23); + this.radLabel1.TabIndex = 43; + this.radLabel1.Text = "车型位置:"; + this.radLabel1.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // radDropDownList2 + // + this.radDropDownList2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.radDropDownList2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.radDropDownList2.DropDownHeight = 50; + this.radDropDownList2.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + this.radDropDownList2.Font = new System.Drawing.Font("微软雅黑", 9.75F); + this.radDropDownList2.ForeColor = System.Drawing.Color.White; + radListDataItem5.Tag = "start"; + radListDataItem5.Text = "启动"; + radListDataItem6.Tag = "stop"; + radListDataItem6.Text = "暂停"; + this.radDropDownList2.Items.Add(radListDataItem5); + this.radDropDownList2.Items.Add(radListDataItem6); + this.radDropDownList2.Location = new System.Drawing.Point(162, 293); + this.radDropDownList2.Name = "radDropDownList2"; + this.radDropDownList2.Size = new System.Drawing.Size(173, 23); + this.radDropDownList2.TabIndex = 46; + ((Telerik.WinControls.UI.RadDropDownListElement)(this.radDropDownList2.GetChildAt(0))).DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radDropDownList2.GetChildAt(0).GetChildAt(0))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radDropDownList2.GetChildAt(0).GetChildAt(0))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radDropDownList2.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radDropDownList2.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // radLabel6 + // + this.radLabel6.AutoSize = false; + this.radLabel6.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radLabel6.ForeColor = System.Drawing.Color.White; + this.radLabel6.Location = new System.Drawing.Point(9, 295); + this.radLabel6.Name = "radLabel6"; + this.radLabel6.Size = new System.Drawing.Size(147, 23); + this.radLabel6.TabIndex = 45; + this.radLabel6.Text = "运行状态:"; + this.radLabel6.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("微软雅黑", 11F); + this.label6.Location = new System.Drawing.Point(356, 56); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(166, 20); + this.label6.TabIndex = 47; + this.label6.Text = "名称例如:X260R_C11"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("微软雅黑", 11F); + this.label7.Location = new System.Drawing.Point(356, 98); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(76, 20); + this.label7.TabIndex = 48; + this.label7.Text = "如:X260"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Font = new System.Drawing.Font("微软雅黑", 11F); + this.label8.Location = new System.Drawing.Point(356, 137); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(58, 20); + this.label8.TabIndex = 49; + this.label8.Text = "如:P:\\"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("微软雅黑", 11F); + this.label9.Location = new System.Drawing.Point(356, 173); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(106, 20); + this.label9.TabIndex = 50; + this.label9.Text = "如:K:\\X260R"; + // + // radButton1 + // + this.radButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.radButton1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radButton1.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radButton1.ForeColor = System.Drawing.Color.White; + this.radButton1.Location = new System.Drawing.Point(353, 208); + this.radButton1.Name = "radButton1"; + this.radButton1.Size = new System.Drawing.Size(50, 30); + this.radButton1.TabIndex = 51; + this.radButton1.Text = "浏览"; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).Text = "浏览"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // radButton2 + // + this.radButton2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.radButton2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.radButton2.Font = new System.Drawing.Font("微软雅黑", 11F); + this.radButton2.ForeColor = System.Drawing.Color.White; + this.radButton2.Location = new System.Drawing.Point(353, 248); + this.radButton2.Name = "radButton2"; + this.radButton2.Size = new System.Drawing.Size(50, 30); + this.radButton2.TabIndex = 52; + this.radButton2.Text = "浏览"; + ((Telerik.WinControls.UI.RadButtonElement)(this.radButton2.GetChildAt(0))).Text = "浏览"; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton2.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton2.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // FEditTolerance + // + this.AcceptButton = this.rbtnOK; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(554, 426); + this.Controls.Add(this.radButton2); + this.Controls.Add(this.radButton1); + this.Controls.Add(this.label9); + this.Controls.Add(this.label8); + this.Controls.Add(this.label7); + this.Controls.Add(this.label6); + this.Controls.Add(this.radDropDownList2); + this.Controls.Add(this.radLabel6); + this.Controls.Add(this.radDropDownList1); + this.Controls.Add(this.radLabel1); + this.Controls.Add(this.rddlDimensionName); + this.Controls.Add(this.rtbLower); + this.Controls.Add(this.rbtnCancel); + this.Controls.Add(this.rbtnOK); + this.Controls.Add(this.rtbUpper); + this.Controls.Add(this.rtbMesPointName); + this.Controls.Add(this.rtbCarType); + this.Controls.Add(this.radLabel7); + this.Controls.Add(this.radLabel3); + this.Controls.Add(this.radLabel4); + this.Controls.Add(this.radLabel2); + this.Controls.Add(this.radLabel5); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FEditTolerance"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "修改公差带"; + this.Load += new System.EventHandler(this.SFAddCNC_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarType)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbUpper)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rbtnOK)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbLower)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rddlDimensionName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radDropDownList1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radDropDownList2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radLabel6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radButton2)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private Telerik.WinControls.UI.RadLabel radLabel7; + private Telerik.WinControls.UI.RadLabel radLabel3; + private Telerik.WinControls.UI.RadLabel radLabel4; + private Telerik.WinControls.UI.RadLabel radLabel2; + private Telerik.WinControls.UI.RadLabel radLabel5; + private Telerik.WinControls.UI.RadTextBox rtbCarType; + private Telerik.WinControls.UI.RadTextBox rtbMesPointName; + private Telerik.WinControls.UI.RadTextBox rtbUpper; + private Telerik.WinControls.UI.RadButton rbtnCancel; + private Telerik.WinControls.UI.RadButton rbtnOK; + private Telerik.WinControls.UI.RadTextBox rtbLower; + private Telerik.WinControls.UI.RadDropDownList rddlDimensionName; + private Telerik.WinControls.UI.RadDropDownList radDropDownList1; + private Telerik.WinControls.UI.RadLabel radLabel1; + private Telerik.WinControls.UI.RadDropDownList radDropDownList2; + private Telerik.WinControls.UI.RadLabel radLabel6; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private Telerik.WinControls.UI.RadButton radButton1; + private Telerik.WinControls.UI.RadButton radButton2; + } +} diff --git a/Analysis/Tolerance/FEditTolerance.resx b/Analysis/Tolerance/FEditTolerance.resx new file mode 100644 index 0000000..a346816 --- /dev/null +++ b/Analysis/Tolerance/FEditTolerance.resx @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/Tolerance/FToleranceSetup.cs b/Analysis/Tolerance/FToleranceSetup.cs new file mode 100644 index 0000000..c786114 --- /dev/null +++ b/Analysis/Tolerance/FToleranceSetup.cs @@ -0,0 +1,144 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; +using DAL; + +namespace NSAnalysis +{ + public partial class FToleranceSetup : Telerik.WinControls.UI.ShapedForm + { + private TMeasureMSSQLDAL tmdal = new TMeasureMSSQLDAL(); + public int idgvSelectRowNumber = 0; + + #region 鼠标事件 + + private void btn_MouseHover(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(0, 151, 186); + } + + private void btn_MouseLeave(object sender, EventArgs e) + { + RadButton btn = sender as RadButton; + btn.BackColor = Color.FromArgb(19, 46, 53); + } + + #endregion 鼠标事件 + + public FToleranceSetup() + { + InitializeComponent(); + } + + private void FToleranceSetup_Load(object sender, EventArgs e) + { + dgvTolList.ColumnHeadersDefaultCellStyle.Font = new Font("Segoe UI", 10, FontStyle.Regular); + lpcAddTol.labPicture.Click += lpcAddTol_Click; + lpcAddTol.labText.Click += lpcAddTol_Click; + rtbnSearch_Click(null, null); + } + + public void rtbnSearch_Click(object sender, EventArgs e) + { + //DataTable dt = tmdal.SelectAllToleranceByCondition(rtbCarModel.Text.Trim(), rtbMesPointName.Text.Trim(), rtbDimensionName.Text.Trim()); + + //if (dt.Rows.Count > 0) + //{ + // dgvTolList.DataSource = dt; + // SetdgvRowBgColor(dgvTolList); + // labSearchResult.Visible = false; + //} + //else + //{ + // dgvTolList.DataSource = dt; + // labSearchResult.Visible = true; + //} + } + + /// + /// 设置DataGridView各行变色 + /// + /// DataGridView + public void SetdgvRowBgColor(DataGridView dgv) + { + if (dgv.Rows.Count > 0) + { + foreach (DataGridViewRow item in dgv.Rows) + { + if (item.Index % 2 == 0) + { + item.DefaultCellStyle.BackColor = Color.FromArgb(19, 46, 53); + } + else + { + item.DefaultCellStyle.BackColor = Color.FromArgb(27, 60, 68); + } + } + } + } + + private void dgvTolList_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e) + { + e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1); + } + + private void lpcAddTol_Click(object sender, EventArgs e) + { + FAddTolerance fat = new FAddTolerance(this); + fat.ShowDialog(this); + } + + private void dgvTolList_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + string buttonText = ""; + if (e.RowIndex < 0 || e.ColumnIndex < 0) + { + return; + } + try + { + buttonText = dgvTolList.Columns[e.ColumnIndex].HeaderText; + } + catch (Exception) + { + buttonText = " "; + } + if (buttonText == "删除") + { + if (DialogResult.Yes == MessageBox.Show("您确定要删除该条公差带信息吗,注意:删除后不可恢复!", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) + { + string iObjIDPk = dgvTolList.Rows[e.RowIndex].Cells["Id"].Value.ToString(); + try + { + tmdal.DeleteOneTolerance(iObjIDPk); + } + catch (Exception ex) + { + MessageBox.Show("删除公差带信息失败,原因:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + MessageBox.Show("删除公差带信息成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); + rtbnSearch_Click(null, null); + } + } + + if (buttonText == "修改" || buttonText == "Edit") + { + idgvSelectRowNumber = e.RowIndex; + FEditTolerance sfeditcnc = new FEditTolerance(this); + sfeditcnc.ShowDialog(); + } + } + } +} \ No newline at end of file diff --git a/Analysis/Tolerance/FToleranceSetup.designer.cs b/Analysis/Tolerance/FToleranceSetup.designer.cs new file mode 100644 index 0000000..62fc07c --- /dev/null +++ b/Analysis/Tolerance/FToleranceSetup.designer.cs @@ -0,0 +1,523 @@ +using UserControlClass; + +namespace NSAnalysis +{ + partial class FToleranceSetup + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FToleranceSetup)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + this.dgvTolList = new System.Windows.Forms.DataGridView(); + this.radGroupBox7 = new Telerik.WinControls.UI.RadGroupBox(); + this.rtbnSearch = new Telerik.WinControls.UI.RadButton(); + this.label3 = new System.Windows.Forms.Label(); + this.rtbMesPointName = new Telerik.WinControls.UI.RadTextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.rtbCarModel = new Telerik.WinControls.UI.RadTextBox(); + this.label15 = new System.Windows.Forms.Label(); + this.dataGridViewImageColumn1 = new System.Windows.Forms.DataGridViewImageColumn(); + this.dataGridViewImageColumn2 = new System.Windows.Forms.DataGridViewImageColumn(); + this.lpcAddTol = new UserControlClass.LabPictureControl(); + this.labSearchResult = new System.Windows.Forms.Label(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.Id = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CarType = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MeasurePointName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DimensionName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.TolLower = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.TolUpper = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CreateTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CNCEdit = new System.Windows.Forms.DataGridViewImageColumn(); + this.CNCDelete = new System.Windows.Forms.DataGridViewImageColumn(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvTolList)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox7)).BeginInit(); + this.radGroupBox7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbnSearch)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarModel)).BeginInit(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(930, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "公差带设置"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "公差带设置"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(367, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(409, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(88, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "分发设置"; + // + // dgvTolList + // + this.dgvTolList.AllowUserToAddRows = false; + this.dgvTolList.AllowUserToDeleteRows = false; + this.dgvTolList.AllowUserToOrderColumns = true; + this.dgvTolList.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.dgvTolList.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dgvTolList.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.dgvTolList.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dgvTolList.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvTolList.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgvTolList.ColumnHeadersHeight = 40; + this.dgvTolList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Id, + this.CarType, + this.MeasurePointName, + this.DimensionName, + this.TolLower, + this.TolUpper, + this.CreateTime, + this.CNCEdit, + this.CNCDelete}); + this.dgvTolList.EnableHeadersVisualStyles = false; + this.dgvTolList.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(181)))), ((int)(((byte)(200))))); + this.dgvTolList.Location = new System.Drawing.Point(22, 153); + this.dgvTolList.Name = "dgvTolList"; + this.dgvTolList.ReadOnly = true; + this.dgvTolList.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvTolList.RowHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvTolList.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + dataGridViewCellStyle3.Font = new System.Drawing.Font("Segoe UI", 11F); + dataGridViewCellStyle3.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + this.dgvTolList.RowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvTolList.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Segoe UI", 11F); + this.dgvTolList.RowTemplate.Height = 40; + this.dgvTolList.Size = new System.Drawing.Size(887, 775); + this.dgvTolList.TabIndex = 17; + this.dgvTolList.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvTolList_CellContentClick); + this.dgvTolList.RowStateChanged += new System.Windows.Forms.DataGridViewRowStateChangedEventHandler(this.dgvTolList_RowStateChanged); + // + // radGroupBox7 + // + this.radGroupBox7.AccessibleRole = System.Windows.Forms.AccessibleRole.Grouping; + this.radGroupBox7.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radGroupBox7.Controls.Add(this.comboBox1); + this.radGroupBox7.Controls.Add(this.rtbnSearch); + this.radGroupBox7.Controls.Add(this.label3); + this.radGroupBox7.Controls.Add(this.rtbMesPointName); + this.radGroupBox7.Controls.Add(this.label1); + this.radGroupBox7.Controls.Add(this.rtbCarModel); + this.radGroupBox7.Controls.Add(this.label15); + this.radGroupBox7.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.radGroupBox7.HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + this.radGroupBox7.HeaderText = "查询条件"; + this.radGroupBox7.Location = new System.Drawing.Point(160, 51); + this.radGroupBox7.Name = "radGroupBox7"; + // + // + // + this.radGroupBox7.RootElement.ShadowDepth = 2; + this.radGroupBox7.Size = new System.Drawing.Size(749, 94); + this.radGroupBox7.TabIndex = 456; + this.radGroupBox7.Text = "查询条件"; + ((Telerik.WinControls.UI.RadGroupBoxElement)(this.radGroupBox7.GetChildAt(0))).HeaderAlignment = Telerik.WinControls.UI.HeaderAlignment.Center; + ((Telerik.WinControls.UI.GroupBoxContent)(this.radGroupBox7.GetChildAt(0).GetChildAt(0))).Opacity = 1D; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.Transparent; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).Width = 1F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(0).GetChildAt(1))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.UI.GroupBoxHeader)(this.radGroupBox7.GetChildAt(0).GetChildAt(1))).GroupBoxStyle = Telerik.WinControls.UI.RadGroupBoxStyle.Standard; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Text = "查询条件"; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).LineLimit = false; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).ForeColor = System.Drawing.Color.White; + ((Telerik.WinControls.Primitives.TextPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(1).GetChildAt(2).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.MiddleLeft; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radGroupBox7.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + // + // rtbnSearch + // + this.rtbnSearch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.rtbnSearch.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbnSearch.ForeColor = System.Drawing.Color.White; + this.rtbnSearch.Location = new System.Drawing.Point(626, 28); + this.rtbnSearch.Name = "rtbnSearch"; + this.rtbnSearch.Size = new System.Drawing.Size(88, 51); + this.rtbnSearch.TabIndex = 461; + this.rtbnSearch.Text = "查询"; + this.rtbnSearch.Click += new System.EventHandler(this.rtbnSearch_Click); + this.rtbnSearch.MouseLeave += new System.EventHandler(this.btn_MouseLeave); + this.rtbnSearch.MouseHover += new System.EventHandler(this.btn_MouseHover); + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).Text = "查询"; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).FocusBorderWidth = 5; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).EnableHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).EnableBorderHighlight = true; + ((Telerik.WinControls.UI.RadButtonElement)(this.rtbnSearch.GetChildAt(0))).BorderHighlightThickness = 3; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).Width = 2F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).TopWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).RightWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbnSearch.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186))))); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label3.ForeColor = System.Drawing.Color.White; + this.label3.Location = new System.Drawing.Point(443, 27); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(95, 21); + this.label3.TabIndex = 459; + this.label3.Text = "运行状态:"; + // + // rtbMesPointName + // + this.rtbMesPointName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbMesPointName.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbMesPointName.ForeColor = System.Drawing.Color.White; + this.rtbMesPointName.Location = new System.Drawing.Point(237, 52); + this.rtbMesPointName.Name = "rtbMesPointName"; + this.rtbMesPointName.Size = new System.Drawing.Size(140, 27); + this.rtbMesPointName.TabIndex = 458; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbMesPointName.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbMesPointName.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(233, 28); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(95, 21); + this.label1.TabIndex = 457; + this.label1.Text = "车型代码:"; + // + // rtbCarModel + // + this.rtbCarModel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.rtbCarModel.Font = new System.Drawing.Font("Segoe UI", 12F); + this.rtbCarModel.ForeColor = System.Drawing.Color.White; + this.rtbCarModel.Location = new System.Drawing.Point(42, 52); + this.rtbCarModel.Name = "rtbCarModel"; + this.rtbCarModel.Size = new System.Drawing.Size(140, 27); + this.rtbCarModel.TabIndex = 456; + ((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCarModel.GetChildAt(0))).Text = ""; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCarModel.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Font = new System.Drawing.Font("Segoe UI", 12F); + this.label15.ForeColor = System.Drawing.Color.White; + this.label15.Location = new System.Drawing.Point(42, 28); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(95, 21); + this.label15.TabIndex = 455; + this.label15.Text = "车身名称:"; + // + // dataGridViewImageColumn1 + // + this.dataGridViewImageColumn1.HeaderText = "修改"; + this.dataGridViewImageColumn1.Image = ((System.Drawing.Image)(resources.GetObject("dataGridViewImageColumn1.Image"))); + this.dataGridViewImageColumn1.Name = "dataGridViewImageColumn1"; + this.dataGridViewImageColumn1.ReadOnly = true; + this.dataGridViewImageColumn1.ToolTipText = "点击修改机床信息"; + this.dataGridViewImageColumn1.Width = 45; + // + // dataGridViewImageColumn2 + // + this.dataGridViewImageColumn2.HeaderText = "删除"; + this.dataGridViewImageColumn2.Image = ((System.Drawing.Image)(resources.GetObject("dataGridViewImageColumn2.Image"))); + this.dataGridViewImageColumn2.Name = "dataGridViewImageColumn2"; + this.dataGridViewImageColumn2.ReadOnly = true; + this.dataGridViewImageColumn2.ToolTipText = "点击删除机床信息"; + this.dataGridViewImageColumn2.Width = 45; + // + // lpcAddTol + // + this.lpcAddTol.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.lpcAddTol.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.lpcAddTol.ForeColor = System.Drawing.Color.White; + this.lpcAddTol.LabelPoint = new System.Drawing.Point(2, 59); + this.lpcAddTol.LabelText = "新增配置"; + this.lpcAddTol.LabelTopImage = global::NSAnalysis.Properties.Resources.add_32; + this.lpcAddTol.Location = new System.Drawing.Point(22, 60); + this.lpcAddTol.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.lpcAddTol.Name = "lpcAddTol"; + this.lpcAddTol.Size = new System.Drawing.Size(115, 85); + this.lpcAddTol.TabIndex = 18; + this.lpcAddTol.Click += new System.EventHandler(this.lpcAddTol_Click); + // + // labSearchResult + // + this.labSearchResult.Anchor = System.Windows.Forms.AnchorStyles.None; + this.labSearchResult.AutoSize = true; + this.labSearchResult.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.labSearchResult.Font = new System.Drawing.Font("Segoe UI", 12F); + this.labSearchResult.ForeColor = System.Drawing.Color.Red; + this.labSearchResult.Location = new System.Drawing.Point(240, 465); + this.labSearchResult.Name = "labSearchResult"; + this.labSearchResult.Size = new System.Drawing.Size(452, 21); + this.labSearchResult.TabIndex = 457; + this.labSearchResult.Text = "查询完毕,未查询到任何结果,请检查查询条件是否正确!"; + this.labSearchResult.Visible = false; + // + // comboBox1 + // + this.comboBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68))))); + this.comboBox1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.comboBox1.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.comboBox1.FormattingEnabled = true; + this.comboBox1.ItemHeight = 19; + this.comboBox1.Items.AddRange(new object[] { + "全部", + "启动", + "暂停"}); + this.comboBox1.Location = new System.Drawing.Point(447, 52); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(140, 27); + this.comboBox1.TabIndex = 459; + // + // Id + // + this.Id.DataPropertyName = "Id"; + this.Id.HeaderText = "Id"; + this.Id.Name = "Id"; + this.Id.ReadOnly = true; + this.Id.Visible = false; + this.Id.Width = 45; + // + // CarType + // + this.CarType.DataPropertyName = "CarType"; + this.CarType.HeaderText = "车型名称"; + this.CarType.Name = "CarType"; + this.CarType.ReadOnly = true; + this.CarType.Width = 65; + // + // MeasurePointName + // + this.MeasurePointName.DataPropertyName = "MeasurePointName"; + this.MeasurePointName.HeaderText = "车型代码"; + this.MeasurePointName.Name = "MeasurePointName"; + this.MeasurePointName.ReadOnly = true; + this.MeasurePointName.Width = 65; + // + // DimensionName + // + this.DimensionName.DataPropertyName = "DimensionName"; + this.DimensionName.HeaderText = "车型位置"; + this.DimensionName.Name = "DimensionName"; + this.DimensionName.ReadOnly = true; + this.DimensionName.Width = 65; + // + // TolLower + // + this.TolLower.DataPropertyName = "TolLower"; + this.TolLower.HeaderText = "运行状态"; + this.TolLower.Name = "TolLower"; + this.TolLower.ReadOnly = true; + this.TolLower.Width = 65; + // + // TolUpper + // + this.TolUpper.DataPropertyName = "TolUpper"; + this.TolUpper.HeaderText = "读取方式"; + this.TolUpper.Name = "TolUpper"; + this.TolUpper.ReadOnly = true; + this.TolUpper.Width = 65; + // + // CreateTime + // + this.CreateTime.DataPropertyName = "CreateTime"; + this.CreateTime.HeaderText = "创建时间"; + this.CreateTime.Name = "CreateTime"; + this.CreateTime.ReadOnly = true; + this.CreateTime.Visible = false; + this.CreateTime.Width = 65; + // + // CNCEdit + // + this.CNCEdit.HeaderText = "修改"; + this.CNCEdit.Image = ((System.Drawing.Image)(resources.GetObject("CNCEdit.Image"))); + this.CNCEdit.Name = "CNCEdit"; + this.CNCEdit.ReadOnly = true; + this.CNCEdit.ToolTipText = "点击修改公差信息"; + this.CNCEdit.Width = 34; + // + // CNCDelete + // + this.CNCDelete.HeaderText = "删除"; + this.CNCDelete.Image = ((System.Drawing.Image)(resources.GetObject("CNCDelete.Image"))); + this.CNCDelete.Name = "CNCDelete"; + this.CNCDelete.ReadOnly = true; + this.CNCDelete.ToolTipText = "点击删除公差信息"; + this.CNCDelete.Width = 34; + // + // FToleranceSetup + // + this.AcceptButton = this.rtbnSearch; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(932, 950); + this.Controls.Add(this.labSearchResult); + this.Controls.Add(this.radGroupBox7); + this.Controls.Add(this.lpcAddTol); + this.Controls.Add(this.dgvTolList); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "FToleranceSetup"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "公差带设置"; + this.Load += new System.EventHandler(this.FToleranceSetup_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvTolList)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.radGroupBox7)).EndInit(); + this.radGroupBox7.ResumeLayout(false); + this.radGroupBox7.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.rtbnSearch)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbMesPointName)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rtbCarModel)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + private LabPictureControl lpcAddTol; + public System.Windows.Forms.DataGridView dgvTolList; + private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn1; + private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn2; + private Telerik.WinControls.UI.RadGroupBox radGroupBox7; + private System.Windows.Forms.Label label3; + private Telerik.WinControls.UI.RadTextBox rtbMesPointName; + private System.Windows.Forms.Label label1; + private Telerik.WinControls.UI.RadTextBox rtbCarModel; + private System.Windows.Forms.Label label15; + private Telerik.WinControls.UI.RadButton rtbnSearch; + private System.Windows.Forms.Label labSearchResult; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.DataGridViewTextBoxColumn Id; + private System.Windows.Forms.DataGridViewTextBoxColumn CarType; + private System.Windows.Forms.DataGridViewTextBoxColumn MeasurePointName; + private System.Windows.Forms.DataGridViewTextBoxColumn DimensionName; + private System.Windows.Forms.DataGridViewTextBoxColumn TolLower; + private System.Windows.Forms.DataGridViewTextBoxColumn TolUpper; + private System.Windows.Forms.DataGridViewTextBoxColumn CreateTime; + private System.Windows.Forms.DataGridViewImageColumn CNCEdit; + private System.Windows.Forms.DataGridViewImageColumn CNCDelete; + } +} diff --git a/Analysis/Tolerance/FToleranceSetup.resx b/Analysis/Tolerance/FToleranceSetup.resx new file mode 100644 index 0000000..835152e --- /dev/null +++ b/Analysis/Tolerance/FToleranceSetup.resx @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAACcQAAAnEAGUaVEZAAAAB3RJ + TUUH4wEJBBo3E/VSvgAAAfdJREFUOE+VkF1IU2EYx593uoKkAq+ii6C7qBmkQh8SWAR9XIgO1Loob4I2 + CCIkbyILAi+jIAgqw7IgaqJURsWCTffh5tuO66xpgTQ7LG+sseOZuEr/PQcOS7Pa+sEP3ov/7714qBQM + wyDtZhd5icoS1fb6ZI3dwdI4W5SFl000n7xHAIRs3nlKVpXN8Ccqx3ui28qt1V+Aco0Wg+cIFSTmsmm3 + JsN6yFkL6RBQd9hV6Sh3WNOVmDGU64TPEIhedOcj7bqWUpCOS8iW3Xi9Wcw82WCrt+bLKcSJYcFvN0ZP + 6wgeRD7UBuPLByR9Xv1hzRZXO9/ESn7xxzjSBIT3A8/Wwni6Tw8GBt0b+SY9bSesyuKf8eB6oJd0dJML + lSTCPcfpvsdjlUzxWHAsXOi0iW+3KyjXXWmVTMlx1yqBWzYyLZBJx2l+oo/QWyUQu/p/sUkmPUYqHyQ/ + 8di1KM9w3Fh6bJJJv2UT27OfItN59TLHBzheV1ps8vXjCGU1eVafCmNu8gV+hFqBB6s55msXi02m3/vW + zKYCz3OTXuTG+xf06A3te1/dyTsAjYYGaCimsLEVFmhobKj13L2ipWT/7LvAo1eRoYEO/xvlCIeHeLjU + w+xWdvkHu+r2bjp/6cJR/8jwMV9szOlX4k4eNLMtv9nKVrNLPiD6CcD+vhesM7RbAAAAAElFTkSuQmCC + + + + True + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AECByowmpX4DgAAA4VJREFU + OE9tkntMU1ccx799XKCtK1LSFuhgUB8B10sJUG5ZC0u4itt8DdFJm4CwBIZEcYaXW9xwiWFbtriHbsn+ + cQ+nyDLBPSymCMmcJGUkU7olIg+dlIGUIgyxXMrI2bnVGP/YST73/vJ9JL+cHIhHaNoOoWErltytED46 + iAdRQHBvRtgTjzgTQiB8Wgeh9WMI1TYINXkPzdnqfCw0bINw1Bm5fHx/ZejIbuviJ3WY4YCA04QZipfm + Fj/cj9BRZ/pyc0n1UiWnWqh5HrOVuTR0YBOmyjKZ4BvFh0OHNgtLbzv+mG8q4uY/qMWdTOB9Wp5/bx/m + 33KwQrPTE6rduBxs3P5uoDRDEaiiW4xV2Ji5+h1ND8rMwUW7jCwWp5D7b77i9b++lQscew3TzRWYbtzF + 3j9S4glSL0gzC6Xm0OyhLS3jpVkqTDZXxd0rt/bN5TFkzoow/+xMITONxd6xfYU5vtptpnuHd3tETfRm + RewMmSm3/j7RsOcZ+OmKE+X5/N1C/YjfKiF+DmECLyeTu3VFN6bqiwem6TxFtTA0M7lJP/J3WR4/KV7i + X8ca4M+V4bbTzo8VaEfGcyRkPAdk3AIy8WI8mXjJQHx09lHNR707NHPLYeOnxM479cDtgw7cbKyBzyrD + 4E4LP5yvGRq1SMhoNsho1iPEmWrUuzlYZOF9VikG66tx60CJuAPgLX0B/ZV7cO05Hfo3m6r+zFWHbtDi + k1Dt377CDbUDuVr86tgIzy7bw/JXWauRzANuqxEu+1pTr83Qey07ggxkIsz1R4jaVVvC9Yv2FM7NGfEF + p8TXtAtFEfCj+Wm0W5LYHove05fJkH768H77HzzU67bovN9nG7ifaOd4Nn2ynamJOMvq2U5zrOdKBkOu + mvGYX9IVYyJPalfMcuIya7zfslqud50ROG3Uay+kRfdcZuWkJx2P6Xo2ctiVpuNdqTrevSFyuJsF6aa6 + +O9iZaQ9Vd13am1sEtoSE1f9YFx1wpUmXblEzUsmkJ/Xy0c6kqP5blaOyyYZxFnUOqnXSTMXafZCiurE + 2cS4p9AWr8Hp1THq7wwRJzvWS1ba10iHzsUpCrpYCc7oDDijTYCbBc7FRRWcN0qHOtZJVtoSmJPfqKPV + rfH0EgFG/EgqFMqkzzXyUy2ayFehiFUhgpFJVCp6y0oakcsQpVG2xERUfBYj+3KvQpEESCWAEv8B4hme + YYujYuAAAAAASUVORK5CYII= + + + + + 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 + YYujYuAAAAAASUVORK5CYII= + + + + + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z + uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y + u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY + urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/Tolerance/LabPictureControl.cs b/Analysis/Tolerance/LabPictureControl.cs new file mode 100644 index 0000000..861858b --- /dev/null +++ b/Analysis/Tolerance/LabPictureControl.cs @@ -0,0 +1,82 @@ +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; + +namespace UserControlClass +{ + public partial class LabPictureControl : UserControl + { + public LabPictureControl() + { + InitializeComponent(); + } + + /// + /// 添加LabelText属性,可以对labelText进行设置 + /// + public string LabelText + { + get { return labText.Text; } + set { labText.Text = value; } + } + + /// + /// 上面Label的图片图片连接 + /// + public Image LabelTopImage + { + get { return labPicture.Image; } + set { labPicture.Image = value; } + } + + /// + /// 文字位置坐标 + /// + public Point LabelPoint + { + get { return labText.Location; } + set { labText.Location = value; } + } + + private void labPicture_MouseHover(object sender, EventArgs e) + { + LabPictureControl lpc = (LabPictureControl)(sender as Label).Parent; + lpc.BackColor = Color.FromArgb(0, 151, 186); + } + + private void labPicture_MouseLeave(object sender, EventArgs e) + { + LabPictureControl lpc = (LabPictureControl)(sender as Label).Parent; + lpc.BackColor = Color.FromArgb(19, 46, 53); + } + + private void labText_MouseHover(object sender, EventArgs e) + { + LabPictureControl lpc = (LabPictureControl)(sender as Label).Parent; + lpc.BackColor = Color.FromArgb(0, 151, 186); + } + + private void labText_MouseLeave(object sender, EventArgs e) + { + LabPictureControl lpc = (LabPictureControl)(sender as Label).Parent; + lpc.BackColor = Color.FromArgb(19, 46, 53); + } + + private void LabPictureControl_MouseHover(object sender, EventArgs e) + { + LabPictureControl lpc = sender as LabPictureControl; + lpc.BackColor = Color.FromArgb(0, 151, 186); + } + + private void LabPictureControl_MouseLeave(object sender, EventArgs e) + { + LabPictureControl lpc = sender as LabPictureControl; + lpc.BackColor = Color.FromArgb(19, 46, 53); + } + } +} \ No newline at end of file diff --git a/Analysis/Tolerance/LabPictureControl.designer.cs b/Analysis/Tolerance/LabPictureControl.designer.cs new file mode 100644 index 0000000..9899bbd --- /dev/null +++ b/Analysis/Tolerance/LabPictureControl.designer.cs @@ -0,0 +1,84 @@ +namespace UserControlClass +{ + public partial class LabPictureControl + { + /// + /// 必需的设计器变量。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 清理所有正在使用的资源。 + /// + /// 如果应释放托管资源,为 true;否则为 false。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 组件设计器生成的代码 + + /// + /// 设计器支持所需的方法 - 不要 + /// 使用代码编辑器修改此方法的内容。 + /// + private void InitializeComponent() + { + this.labText = new System.Windows.Forms.Label(); + this.labPicture = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // labText + // + this.labText.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.labText.Location = new System.Drawing.Point(2, 59); + this.labText.Name = "labText"; + this.labText.Size = new System.Drawing.Size(83, 25); + this.labText.TabIndex = 1; + this.labText.Text = "添加抽屉"; + this.labText.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.labText.MouseLeave += new System.EventHandler(this.labText_MouseLeave); + this.labText.MouseHover += new System.EventHandler(this.labText_MouseHover); + // + // labPicture + // + this.labPicture.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labPicture.Location = new System.Drawing.Point(0, 3); + this.labPicture.Name = "labPicture"; + this.labPicture.Padding = new System.Windows.Forms.Padding(17, 21, 17, 21); + this.labPicture.Size = new System.Drawing.Size(86, 54); + this.labPicture.TabIndex = 0; + this.labPicture.MouseLeave += new System.EventHandler(this.labPicture_MouseLeave); + this.labPicture.MouseHover += new System.EventHandler(this.labPicture_MouseHover); + // + // LabPictureControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.Controls.Add(this.labText); + this.Controls.Add(this.labPicture); + this.Font = new System.Drawing.Font("Segoe UI", 9.75F); + this.ForeColor = System.Drawing.Color.White; + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "LabPictureControl"; + this.Size = new System.Drawing.Size(86, 85); + this.MouseLeave += new System.EventHandler(this.LabPictureControl_MouseLeave); + this.MouseHover += new System.EventHandler(this.LabPictureControl_MouseHover); + this.ResumeLayout(false); + + } + + #endregion + + public System.Windows.Forms.Label labPicture; + public System.Windows.Forms.Label labText; + } +} diff --git a/Analysis/Tolerance/LabPictureControl.resx b/Analysis/Tolerance/LabPictureControl.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Analysis/Tolerance/LabPictureControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Analysis/ZSFDEMO.cs b/Analysis/ZSFDEMO.cs new file mode 100644 index 0000000..6c2f742 --- /dev/null +++ b/Analysis/ZSFDEMO.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Collections; +using System.IO; +using System.Xml; + +using Telerik.WinControls.UI; + +namespace NSAnalysis +{ + public partial class ZSFDEMO : Telerik.WinControls.UI.ShapedForm + { + #region 全局变量 + #endregion + + public ZSFDEMO() + { + InitializeComponent(); + } + + private void ZSFDEMO_Load(object sender, EventArgs e) + { + + } + } +} diff --git a/Analysis/ZSFDEMO.designer.cs b/Analysis/ZSFDEMO.designer.cs new file mode 100644 index 0000000..e0a1f74 --- /dev/null +++ b/Analysis/ZSFDEMO.designer.cs @@ -0,0 +1,127 @@ +namespace NSAnalysis +{ + partial class ZSFDEMO + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ZSFDEMO)); + this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar(); + this.label2 = new System.Windows.Forms.Label(); + this.labTitle = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit(); + this.radTitleBar1.SuspendLayout(); + this.SuspendLayout(); + // + // radTitleBar1 + // + this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.radTitleBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Controls.Add(this.label2); + this.radTitleBar1.Controls.Add(this.labTitle); + this.radTitleBar1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.radTitleBar1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Location = new System.Drawing.Point(1, 1); + this.radTitleBar1.Name = "radTitleBar1"; + // + // + // + this.radTitleBar1.RootElement.ApplyShapeToControl = true; + this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.radTitleBar1.Size = new System.Drawing.Size(811, 40); + this.radTitleBar1.TabIndex = 0; + this.radTitleBar1.TabStop = false; + this.radTitleBar1.Text = "DEMO12"; + ((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "DEMO12"; + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None; + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.label2.AutoSize = true; + this.label2.Image = ((System.Drawing.Image)(resources.GetObject("label2.Image"))); + this.label2.Location = new System.Drawing.Point(307, -5); + this.label2.Name = "label2"; + this.label2.Padding = new System.Windows.Forms.Padding(23, 15, 23, 15); + this.label2.Size = new System.Drawing.Size(46, 52); + this.label2.TabIndex = 1; + // + // labTitle + // + this.labTitle.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.labTitle.AutoSize = true; + this.labTitle.Font = new System.Drawing.Font("微软雅黑", 14F); + this.labTitle.ForeColor = System.Drawing.Color.White; + this.labTitle.Location = new System.Drawing.Point(349, 8); + this.labTitle.Name = "labTitle"; + this.labTitle.Size = new System.Drawing.Size(88, 25); + this.labTitle.TabIndex = 0; + this.labTitle.Text = "备份窗口"; + // + // ZSFDEMO + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53))))); + this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124))))); + this.BorderWidth = 0; + this.ClientSize = new System.Drawing.Size(813, 508); + this.Controls.Add(this.radTitleBar1); + this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "ZSFDEMO"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "DEMO12"; + this.Load += new System.EventHandler(this.ZSFDEMO_Load); + ((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit(); + this.radTitleBar1.ResumeLayout(false); + this.radTitleBar1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private Telerik.WinControls.UI.RadTitleBar radTitleBar1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label labTitle; + } +} diff --git a/Analysis/ZSFDEMO.resx b/Analysis/ZSFDEMO.resx new file mode 100644 index 0000000..052b48c --- /dev/null +++ b/Analysis/ZSFDEMO.resx @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA + AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ + pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4 + ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/ + dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7 + bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy + Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW + CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC + df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW + CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL + jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp + OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL + jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC + df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC + dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC + dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA + AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om + Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA + AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B + fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW + CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY + uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW + CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY + uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865 + YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb + Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC + df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch + Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE + fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/ + b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA + 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 + f//wAH///AB///+Af///wH///+B////4f/8= + + + \ No newline at end of file diff --git a/Analysis/bin/x64/2024.10.24 奇瑞总装增加极差新功能升级包.zip b/Analysis/bin/x64/2024.10.24 奇瑞总装增加极差新功能升级包.zip new file mode 100644 index 0000000..93736d2 Binary files /dev/null and b/Analysis/bin/x64/2024.10.24 奇瑞总装增加极差新功能升级包.zip differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/advapi32.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/advapi32.dll new file mode 100644 index 0000000..b0573d8 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/advapi32.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll new file mode 100644 index 0000000..2fe309a Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll new file mode 100644 index 0000000..f8c413e Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll new file mode 100644 index 0000000..cd53a03 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll new file mode 100644 index 0000000..2064a85 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll new file mode 100644 index 0000000..6e7b0ff Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll new file mode 100644 index 0000000..7cf2bc6 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll new file mode 100644 index 0000000..76637b3 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll new file mode 100644 index 0000000..03c6d50 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/kernel32.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/kernel32.dll new file mode 100644 index 0000000..f2d0776 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/kernel32.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/mfc140u.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/mfc140u.dll new file mode 100644 index 0000000..93ecfff Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/mfc140u.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/msvcp140.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/msvcp140.dll new file mode 100644 index 0000000..ac8cc56 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/msvcp140.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/netapi32.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/netapi32.dll new file mode 100644 index 0000000..bfbdfbf Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/netapi32.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/shlwapi.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/shlwapi.dll new file mode 100644 index 0000000..1bae023 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/shlwapi.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/ucrtbase.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/ucrtbase.dll new file mode 100644 index 0000000..0006edc Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/ucrtbase.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/ucrtbased.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/ucrtbased.dll new file mode 100644 index 0000000..ad1175f Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/ucrtbased.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/vcruntime140.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/vcruntime140.dll new file mode 100644 index 0000000..5de800b Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/vcruntime140.dll differ diff --git a/Analysis/bin/x64/Debug/CLMSWin环境依赖/vcruntime140_1.dll b/Analysis/bin/x64/Debug/CLMSWin环境依赖/vcruntime140_1.dll new file mode 100644 index 0000000..f27fb49 Binary files /dev/null and b/Analysis/bin/x64/Debug/CLMSWin环境依赖/vcruntime140_1.dll differ diff --git a/Analysis/bin/x64/Debug/Covert.dll b/Analysis/bin/x64/Debug/Covert.dll new file mode 100644 index 0000000..a7cfe3a Binary files /dev/null and b/Analysis/bin/x64/Debug/Covert.dll differ diff --git a/Analysis/bin/x64/Debug/DAL.dll b/Analysis/bin/x64/Debug/DAL.dll new file mode 100644 index 0000000..0fb9296 Binary files /dev/null and b/Analysis/bin/x64/Debug/DAL.dll differ diff --git a/Analysis/bin/x64/Debug/DAL.dll.config b/Analysis/bin/x64/Debug/DAL.dll.config new file mode 100644 index 0000000..ed0ef66 --- /dev/null +++ b/Analysis/bin/x64/Debug/DAL.dll.config @@ -0,0 +1,23 @@ + + + + + +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/DAL.pdb b/Analysis/bin/x64/Debug/DAL.pdb new file mode 100644 index 0000000..96a9585 Binary files /dev/null and b/Analysis/bin/x64/Debug/DAL.pdb differ diff --git a/Analysis/bin/x64/Debug/DataBase/CheryAnalysisDB.db b/Analysis/bin/x64/Debug/DataBase/CheryAnalysisDB.db new file mode 100644 index 0000000..2789702 Binary files /dev/null and b/Analysis/bin/x64/Debug/DataBase/CheryAnalysisDB.db differ diff --git a/Analysis/bin/x64/Debug/Debug.txt b/Analysis/bin/x64/Debug/Debug.txt new file mode 100644 index 0000000..fd49dd1 --- /dev/null +++ b/Analysis/bin/x64/Debug/Debug.txt @@ -0,0 +1,17 @@ +2025-08-04 11:42:26.704----软件Program Main函数开始执行-- +2025-08-04 11:42:26.707--加载配置文件——>开始 +2025-08-04 11:42:26.727--数据库连接 SqlServerName:127.0.0.1 +2025-08-04 11:42:26.728--数据库连接 SqlUserName:sa +2025-08-04 11:42:26.729--数据库连接 SqlPassword:Hexagon123 +2025-08-04 11:42:26.729--数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 11:42:26.729--加载配置文件——>完成 +2025-08-04 11:42:28.483--数据库连接 SqlServerName:127.0.0.1 +2025-08-04 11:42:28.484--数据库连接 SqlUserName:sa +2025-08-04 11:42:28.485--数据库连接 SqlPassword:Hexagon123 +2025-08-04 11:42:28.486--数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 11:42:28.486--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=NextSenseStandardDB;User ID=sa;password=Hexagon123; +2025-08-04 11:42:28.853-- 进入显示车身模式!显示车身界面。 +2025-08-04 11:42:28.854-- 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-08-04 11:42:28.856--软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-08-04 11:42:28.857--软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-08-04 11:42:32.820---------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/EncoderLogs/2024-09-27.csv b/Analysis/bin/x64/Debug/EncoderLogs/2024-09-27.csv new file mode 100644 index 0000000..c8a6990 --- /dev/null +++ b/Analysis/bin/x64/Debug/EncoderLogs/2024-09-27.csv @@ -0,0 +1,939 @@ +2024-09-27 11:38:12.1539,1,2,3,15.237 +2024-09-27 11:38:12.4648,1,2,3,15.237 +2024-09-27 11:38:12.7780,1,2,3,15.237 +2024-09-27 11:38:13.0880,1,2,3,15.237 +2024-09-27 11:38:13.4020,1,2,3,15.237 +2024-09-27 11:38:13.7121,1,2,3,15.237 +2024-09-27 11:38:14.0272,1,2,3,15.237 +2024-09-27 11:38:14.3376,1,2,3,15.237 +2024-09-27 11:38:14.6516,1,2,3,15.237 +2024-09-27 11:38:14.9626,1,2,3,15.237 +2024-09-27 11:38:15.2741,1,2,3,15.237 +2024-09-27 11:38:15.5873,1,2,3,15.237 +2024-09-27 11:38:15.9019,1,2,3,15.237 +2024-09-27 11:38:16.2117,1,2,3,15.237 +2024-09-27 11:38:16.5243,1,2,3,15.237 +2024-09-27 11:38:16.8406,1,2,3,15.237 +2024-09-27 11:38:17.1494,1,2,3,15.237 +2024-09-27 11:38:17.4627,1,2,3,15.237 +2024-09-27 11:38:17.7754,1,2,3,15.237 +2024-09-27 11:38:18.0891,1,2,3,15.237 +2024-09-27 11:38:18.4009,1,2,3,15.237 +2024-09-27 11:38:18.7127,1,2,3,15.237 +2024-09-27 11:38:19.0284,1,2,3,15.237 +2024-09-27 11:38:19.3359,1,2,3,15.237 +2024-09-27 11:38:19.6513,1,2,3,15.237 +2024-09-27 11:38:19.9629,1,2,3,15.237 +2024-09-27 11:38:20.2777,1,2,3,15.237 +2024-09-27 11:38:20.5886,1,2,3,15.237 +2024-09-27 11:38:20.9022,1,2,3,15.237 +2024-09-27 11:38:21.2134,1,2,3,15.237 +2024-09-27 11:38:21.5270,1,2,3,15.237 +2024-09-27 11:38:21.8371,1,2,3,15.237 +2024-09-27 11:38:22.1514,1,2,3,15.237 +2024-09-27 11:38:22.4623,1,2,3,15.237 +2024-09-27 11:38:22.7774,1,2,3,15.237 +2024-09-27 11:38:23.0862,1,2,3,15.237 +2024-09-27 11:38:23.3999,1,2,3,15.237 +2024-09-27 11:38:23.7119,1,2,3,15.237 +2024-09-27 11:38:24.0266,1,2,3,15.237 +2024-09-27 11:38:24.3371,1,2,3,15.237 +2024-09-27 11:38:24.6511,1,2,3,15.237 +2024-09-27 11:38:24.9627,1,2,3,15.237 +2024-09-27 11:38:25.2761,1,2,3,15.237 +2024-09-27 11:38:25.5871,1,2,3,15.237 +2024-09-27 11:38:25.8988,1,2,3,15.237 +2024-09-27 11:38:26.2130,1,2,3,15.237 +2024-09-27 11:38:26.5270,1,2,3,15.237 +2024-09-27 11:38:26.8360,1,2,3,15.237 +2024-09-27 11:38:27.1516,1,2,3,15.237 +2024-09-27 11:38:27.4619,1,2,3,15.237 +2024-09-27 11:38:27.7771,1,2,3,15.237 +2024-09-27 11:38:28.0883,1,2,3,15.237 +2024-09-27 11:38:28.3985,1,2,3,15.237 +2024-09-27 11:38:28.7111,1,2,3,15.237 +2024-09-27 11:38:29.0257,1,2,3,15.237 +2024-09-27 11:38:29.3379,1,2,3,15.237 +2024-09-27 11:38:29.6499,1,2,3,15.237 +2024-09-27 11:38:29.9624,1,2,3,15.237 +2024-09-27 11:38:30.2754,1,2,3,15.237 +2024-09-27 11:38:30.5869,1,2,3,15.237 +2024-09-27 11:38:30.9022,1,2,3,15.237 +2024-09-27 11:38:31.2139,1,2,3,15.237 +2024-09-27 11:38:31.5248,1,2,3,15.237 +2024-09-27 11:38:31.8394,1,2,3,15.237 +2024-09-27 11:38:32.1512,1,2,3,15.237 +2024-09-27 11:38:32.4607,1,2,3,15.237 +2024-09-27 11:38:32.7748,1,2,3,15.237 +2024-09-27 11:38:33.0886,1,2,3,15.237 +2024-09-27 11:38:33.3998,1,2,3,15.237 +2024-09-27 11:38:33.7115,1,2,3,15.237 +2024-09-27 11:38:34.0271,1,2,3,15.237 +2024-09-27 11:38:34.3382,1,2,3,15.237 +2024-09-27 11:38:34.6487,1,2,3,15.237 +2024-09-27 11:38:34.9626,1,2,3,15.237 +2024-09-27 11:38:35.2754,1,2,3,15.237 +2024-09-27 11:38:35.5888,1,2,3,15.237 +2024-09-27 11:38:35.8994,1,2,3,115.237 +2024-09-27 11:38:36.2117,1,2,3,115.237 +2024-09-27 11:38:36.5282,1,2,3,115.237 +2024-09-27 11:38:36.8361,1,2,3,115.237 +2024-09-27 11:38:37.1530,1,2,3,115.237 +2024-09-27 11:38:37.4637,1,2,3,115.237 +2024-09-27 11:38:37.7752,1,2,3,115.237 +2024-09-27 11:38:38.0869,1,2,3,115.237 +2024-09-27 11:38:38.3984,1,2,3,115.237 +2024-09-27 11:38:38.7124,1,2,3,115.237 +2024-09-27 11:38:39.0248,1,2,3,115.237 +2024-09-27 11:38:39.3380,1,2,3,115.237 +2024-09-27 11:38:39.6482,1,2,3,115.237 +2024-09-27 11:38:39.9613,1,2,3,115.237 +2024-09-27 11:38:40.2748,1,2,3,115.237 +2024-09-27 11:38:40.5860,1,2,3,115.237 +2024-09-27 11:38:40.9005,1,2,3,115.237 +2024-09-27 11:38:41.2146,1,2,3,115.237 +2024-09-27 11:38:41.5246,1,2,3,115.237 +2024-09-27 11:38:41.8367,1,2,3,115.237 +2024-09-27 11:38:42.1505,1,2,3,115.237 +2024-09-27 11:38:42.4616,1,2,3,115.237 +2024-09-27 11:38:42.7760,1,2,3,115.237 +2024-09-27 11:38:43.0865,1,2,3,115.237 +2024-09-27 11:38:43.3998,1,2,3,115.237 +2024-09-27 11:38:43.7101,1,2,3,115.237 +2024-09-27 11:38:44.0233,1,2,3,115.237 +2024-09-27 11:38:44.3379,1,2,3,115.237 +2024-09-27 11:38:44.6498,1,2,3,115.237 +2024-09-27 11:38:44.9633,1,2,3,115.237 +2024-09-27 11:38:45.2785,1,2,3,115.237 +2024-09-27 11:38:45.5856,1,2,3,115.237 +2024-09-27 11:38:45.8990,1,2,3,115.237 +2024-09-27 11:38:46.2109,1,2,3,115.237 +2024-09-27 11:38:46.5251,1,2,3,115.237 +2024-09-27 11:38:46.8381,1,2,3,115.237 +2024-09-27 11:38:47.1483,1,2,3,115.237 +2024-09-27 11:38:47.4623,1,2,3,115.237 +2024-09-27 11:38:47.7764,1,2,3,115.237 +2024-09-27 11:38:48.0855,1,2,3,115.237 +2024-09-27 11:38:48.3999,1,2,3,115.237 +2024-09-27 11:38:48.7125,1,2,3,115.237 +2024-09-27 11:38:49.0233,1,2,3,115.237 +2024-09-27 11:38:49.3372,1,2,3,115.237 +2024-09-27 11:38:49.6496,1,2,3,115.237 +2024-09-27 11:38:49.9606,1,2,3,115.237 +2024-09-27 11:38:50.2728,1,2,3,115.237 +2024-09-27 11:38:50.5868,1,2,3,115.237 +2024-09-27 11:38:50.8985,1,2,3,115.237 +2024-09-27 11:38:51.2111,1,2,3,115.237 +2024-09-27 11:38:51.5265,1,2,3,115.237 +2024-09-27 11:38:51.8367,1,2,3,115.237 +2024-09-27 11:38:52.1507,1,2,3,115.237 +2024-09-27 11:38:52.4606,1,2,3,115.237 +2024-09-27 11:38:52.7737,1,2,3,115.237 +2024-09-27 11:38:53.0864,1,2,3,115.237 +2024-09-27 11:38:53.4027,1,2,3,115.237 +2024-09-27 11:38:53.7148,1,2,3,115.237 +2024-09-27 11:38:54.0261,1,2,3,115.237 +2024-09-27 11:38:54.3356,1,2,3,115.237 +2024-09-27 11:38:54.6498,1,2,3,115.237 +2024-09-27 11:38:54.9615,1,2,3,115.237 +2024-09-27 11:38:55.2753,1,2,3,115.237 +2024-09-27 11:38:55.5884,1,2,3,115.237 +2024-09-27 11:38:55.9010,1,2,3,115.237 +2024-09-27 11:38:56.2145,1,2,3,115.237 +2024-09-27 11:38:56.5268,1,2,3,115.237 +2024-09-27 11:38:56.8364,1,2,3,115.237 +2024-09-27 11:38:57.1490,1,2,3,115.237 +2024-09-27 11:38:57.4632,1125.237,2,3,115.237 +2024-09-27 11:38:57.7728,1125.237,2,3,115.237 +2024-09-27 11:38:58.0870,1125.237,2,3,115.237 +2024-09-27 11:38:58.4004,1125.237,2,3,115.237 +2024-09-27 11:38:58.7111,1125.237,2,3,115.237 +2024-09-27 11:38:59.0228,1125.237,2,3,115.237 +2024-09-27 11:38:59.3378,1125.237,2,3,115.237 +2024-09-27 11:38:59.6494,1125.237,2,3,115.237 +2024-09-27 11:38:59.9627,1125.237,2,3,115.237 +2024-09-27 11:39:00.2729,1125.237,2,3,115.237 +2024-09-27 11:39:00.5879,1125.237,2,3,115.237 +2024-09-27 11:39:00.8978,1125.237,2,3,115.237 +2024-09-27 11:39:01.2102,1125.237,2,3,115.237 +2024-09-27 11:39:01.5255,1125.237,2,3,115.237 +2024-09-27 11:39:01.8377,1125.237,2,3,115.237 +2024-09-27 11:39:02.1510,1125.237,2,3,115.237 +2024-09-27 11:39:02.4605,1125.237,2,3,115.237 +2024-09-27 11:39:02.7768,1125.237,2,3,115.237 +2024-09-27 11:39:03.0857,1125.237,2,3,115.237 +2024-09-27 11:39:03.3992,1125.237,2,3,115.237 +2024-09-27 11:39:03.7104,1125.237,2,3,115.237 +2024-09-27 11:39:04.0230,1125.237,2,3,115.237 +2024-09-27 11:39:04.3367,1125.237,2,3,115.237 +2024-09-27 11:39:04.6517,1125.237,2,3,115.237 +2024-09-27 11:39:04.9625,1125.237,2,3,115.237 +2024-09-27 11:39:05.2730,1125.237,2,3,115.237 +2024-09-27 11:39:05.5898,1125.237,2,3,115.237 +2024-09-27 11:39:05.8974,1125.237,2,3,115.237 +2024-09-27 11:39:06.2114,1125.237,2,3,115.237 +2024-09-27 11:39:06.5227,1125.237,2,3,115.237 +2024-09-27 11:39:06.8372,1125.237,2,3,115.237 +2024-09-27 11:39:07.1499,1125.237,2,3,115.237 +2024-09-27 11:39:07.4600,1125.237,2,3,115.237 +2024-09-27 11:39:07.7754,1125.237,2,3,115.237 +2024-09-27 11:39:08.0868,1125.237,2,3,115.237 +2024-09-27 11:39:08.3994,1125.237,2,3,115.237 +2024-09-27 11:39:08.7128,1125.237,2,3,115.237 +2024-09-27 11:39:09.0223,1125.237,2,3,115.237 +2024-09-27 11:39:09.3382,1125.237,2,3,115.237 +2024-09-27 11:39:09.6515,1125.237,2,3,115.237 +2024-09-27 11:39:09.9609,1125.237,2,3,115.237 +2024-09-27 11:39:10.2737,1125.237,2,3,115.237 +2024-09-27 11:39:10.5877,1125.237,2,3,115.237 +2024-09-27 11:39:10.8977,1125.237,2,3,115.237 +2024-09-27 11:39:11.2118,1125.237,2,3,115.237 +2024-09-27 11:39:11.5251,1125.237,2,3,115.237 +2024-09-27 11:39:11.8356,1125.237,2,3,115.237 +2024-09-27 11:39:12.1501,1125.237,2,3,115.237 +2024-09-27 11:39:12.4617,1125.237,2,3,115.237 +2024-09-27 11:39:12.7744,1125.237,2,3,115.237 +2024-09-27 11:39:13.0850,1125.237,2,3,115.237 +2024-09-27 11:39:13.3994,1125.237,2,3,115.237 +2024-09-27 11:39:13.7124,1125.237,2,3,115.237 +2024-09-27 11:39:14.0246,1125.237,2,3,115.237 +2024-09-27 11:39:14.3373,1125.237,2,3,115.237 +2024-09-27 11:39:14.6490,1125.237,2,3,115.237 +2024-09-27 11:39:14.9603,1125.237,2,3,115.237 +2024-09-27 11:39:15.2746,1125.237,2,3,115.237 +2024-09-27 11:39:15.5853,1125.237,2,3,115.237 +2024-09-27 11:39:15.9009,1125.237,2,3,115.237 +2024-09-27 11:39:16.2100,1125.237,2,3,115.237 +2024-09-27 11:39:16.5235,1125.237,2,3,115.237 +2024-09-27 11:39:16.8364,1125.237,2,3,115.237 +2024-09-27 11:39:17.1474,1125.237,2,3,115.237 +2024-09-27 11:39:17.4602,1125.237,2,3,115.237 +2024-09-27 11:39:17.7746,1125.237,2,3,115.237 +2024-09-27 11:39:18.0859,1125.237,2,3,115.237 +2024-09-27 11:39:18.3982,1125.237,2,3,115.237 +2024-09-27 11:39:18.7120,1125.237,2,3,115.237 +2024-09-27 11:39:19.0225,1125.237,2,3,115.237 +2024-09-27 11:39:19.3361,1125.237,2,3,115.237 +2024-09-27 11:39:19.6488,1125.237,2,3,115.237 +2024-09-27 11:39:19.9600,1125.237,2,3,115.237 +2024-09-27 11:39:20.2772,1125.237,2,3,115.237 +2024-09-27 11:39:20.5867,1125.237,2,3,115.237 +2024-09-27 11:39:20.8972,1125.237,2,3,115.237 +2024-09-27 11:39:21.2111,1125.237,2,3,115.237 +2024-09-27 11:39:21.5242,1125.237,2,3,115.237 +2024-09-27 11:39:21.8359,1125.237,2,3,115.237 +2024-09-27 11:39:22.1483,1125.237,2,3,115.237 +2024-09-27 11:39:22.4631,1125.237,2,3,115.237 +2024-09-27 11:39:22.7742,1125.237,2,3,115.237 +2024-09-27 11:39:23.0862,1125.237,2,3,115.237 +2024-09-27 11:39:23.3996,1125.237,2,3,115.237 +2024-09-27 11:39:23.7134,1125.237,2,3,115.237 +2024-09-27 11:39:24.0246,1125.237,2,3,115.237 +2024-09-27 11:39:24.3357,1125.237,2,3,115.237 +2024-09-27 11:39:24.6502,1125.237,2,3,115.237 +2024-09-27 11:39:24.9609,1125.237,2,3,115.237 +2024-09-27 11:39:25.2746,1125.237,2,3,115.237 +2024-09-27 11:39:25.5860,1125.237,2,3,115.237 +2024-09-27 11:39:25.9001,1125.237,2,3,115.237 +2024-09-27 11:39:26.2131,1125.237,2,3,115.237 +2024-09-27 11:39:26.5226,1125.237,2,3,115.237 +2024-09-27 11:39:26.8378,1125.237,2,3,115.237 +2024-09-27 11:39:27.1465,1125.237,2,3,115.237 +2024-09-27 11:39:27.4609,1125.237,2,3,115.237 +2024-09-27 11:39:27.7733,1125.237,2,3,115.237 +2024-09-27 11:39:28.0853,1125.237,2,3,115.237 +2024-09-27 11:39:28.3983,1125.237,2,3,115.237 +2024-09-27 11:39:28.7111,1125.237,2,3,115.237 +2024-09-27 11:39:29.0275,1125.237,2,3,115.237 +2024-09-27 11:39:29.3344,1125.237,2,3,115.237 +2024-09-27 11:39:29.6484,1125.237,2,3,115.237 +2024-09-27 11:39:29.9637,1125.237,2,3,115.237 +2024-09-27 11:39:30.2722,1125.237,2,3,115.237 +2024-09-27 11:39:30.5857,1125.237,2,3,115.237 +2024-09-27 11:39:30.8976,1125.237,2,3,115.237 +2024-09-27 11:39:31.2118,1125.237,2,3,115.237 +2024-09-27 11:39:31.5241,1125.237,2,3,115.237 +2024-09-27 11:39:31.8378,1125.237,2,3,115.237 +2024-09-27 11:39:32.1495,1125.237,2,3,115.237 +2024-09-27 11:39:32.4608,1125.237,2,3,115.237 +2024-09-27 11:39:32.7730,1125.237,2,3,115.237 +2024-09-27 11:39:33.0855,1125.237,2,3,115.237 +2024-09-27 11:39:33.3985,1125.237,2,3,115.237 +2024-09-27 11:39:33.7122,1125.237,2,3,115.237 +2024-09-27 11:39:34.0233,1125.237,2,3,115.237 +2024-09-27 11:39:34.3344,1125.237,2,3,115.237 +2024-09-27 11:39:34.6497,1125.237,2,3,115.237 +2024-09-27 11:39:34.9610,1125.237,2,3,115.237 +2024-09-27 11:39:35.2733,1125.237,2,3,115.237 +2024-09-27 11:39:35.5884,1125.237,2,3,115.237 +2024-09-27 11:39:35.8984,1125.237,2,3,115.237 +2024-09-27 11:39:36.2103,1125.237,2,3,115.237 +2024-09-27 11:39:36.5224,1125.237,2,3,115.237 +2024-09-27 11:39:36.8373,1125.237,2,3,115.237 +2024-09-27 11:39:37.1480,1125.237,2,3,115.237 +2024-09-27 11:39:37.4621,1125.237,2,3,115.237 +2024-09-27 11:39:37.7753,1125.237,2,3,115.237 +2024-09-27 11:39:38.0869,1125.237,2,3,115.237 +2024-09-27 11:39:38.3980,1125.237,2,3,115.237 +2024-09-27 11:39:38.7104,1125.237,2,3,115.237 +2024-09-27 11:39:39.0235,1125.237,2,3,115.237 +2024-09-27 11:39:39.3366,1125.237,2,3,115.237 +2024-09-27 11:39:39.6485,1125.237,2,3,115.237 +2024-09-27 11:39:39.9622,1125.237,2,3,115.237 +2024-09-27 11:39:40.2723,1125.237,2,3,115.237 +2024-09-27 11:39:40.5858,1125.237,2,3,115.237 +2024-09-27 11:39:40.8984,1125.237,2,3,115.237 +2024-09-27 11:39:41.2106,1125.237,2,3,115.237 +2024-09-27 11:39:41.5227,1125.237,2,3,115.237 +2024-09-27 11:39:41.8354,1125.237,2,3,115.237 +2024-09-27 11:39:42.1512,1125.237,2,3,115.237 +2024-09-27 11:39:42.4602,1125.237,2,3,115.237 +2024-09-27 11:39:42.7750,1125.237,2,3,115.237 +2024-09-27 11:39:43.0846,1125.237,2,3,115.237 +2024-09-27 11:39:43.3986,1125.237,2,3,115.237 +2024-09-27 11:39:43.7094,1125.237,2,3,115.237 +2024-09-27 11:39:44.0235,1125.237,2,3,115.237 +2024-09-27 11:39:44.3364,1125.237,2,3,115.237 +2024-09-27 11:39:44.6471,1125.237,2,3,115.237 +2024-09-27 11:39:44.9626,1125.237,2,3,115.237 +2024-09-27 11:39:45.2747,1125.237,2,3,115.237 +2024-09-27 11:39:45.5848,1125.237,2,3,115.237 +2024-09-27 11:39:45.8981,1125.237,2,3,115.237 +2024-09-27 11:39:46.2102,1125.237,2,3,115.237 +2024-09-27 11:39:46.5236,1125.237,2,3,115.237 +2024-09-27 11:39:46.8359,1125.237,2,3,115.237 +2024-09-27 11:39:47.1472,1125.237,2,3,115.237 +2024-09-27 11:39:47.4599,1125.237,2,3,115.237 +2024-09-27 11:39:47.7761,1125.237,2,3,115.237 +2024-09-27 11:39:48.0853,1125.237,2,3,115.237 +2024-09-27 11:39:48.3976,1125.237,2,3,115.237 +2024-09-27 11:39:48.7135,1125.237,2,3,115.237 +2024-09-27 11:39:49.0228,1125.237,2,3,115.237 +2024-09-27 11:39:49.3353,1125.237,2,3,115.237 +2024-09-27 11:39:49.6472,1125.237,2,3,115.237 +2024-09-27 11:39:49.9609,1125.237,2,3,115.237 +2024-09-27 11:39:50.2747,1125.237,2,3,115.237 +2024-09-27 11:39:50.5858,1125.237,2,3,115.237 +2024-09-27 11:39:50.8985,1125.237,2,3,115.237 +2024-09-27 11:39:51.2092,1125.237,2,3,115.237 +2024-09-27 11:39:51.5232,1125.237,2,3,115.237 +2024-09-27 11:39:51.8340,1125.237,2,3,115.237 +2024-09-27 11:39:52.1490,1125.237,2,3,115.237 +2024-09-27 11:39:52.4610,1125.237,2,3,115.237 +2024-09-27 11:39:52.7728,1125.237,2,3,115.237 +2024-09-27 11:39:53.0871,1125.237,2,3,115.237 +2024-09-27 11:39:53.3993,1125.237,2,3,115.237 +2024-09-27 11:39:53.7115,1125.237,2,3,115.237 +2024-09-27 11:39:54.0218,1125.237,2,3,115.237 +2024-09-27 11:39:54.3351,1125.237,2,3,115.237 +2024-09-27 11:39:54.6475,1125.237,2,3,115.237 +2024-09-27 11:39:54.9596,1125.237,2,3,115.237 +2024-09-27 11:39:55.2762,1125.237,2,3,115.237 +2024-09-27 11:39:55.5840,1125.237,2,3,115.237 +2024-09-27 11:39:55.8985,1125.237,2,3,115.237 +2024-09-27 11:39:56.2091,1125.237,2,3,115.237 +2024-09-27 11:39:56.5217,1125.237,2,3,115.237 +2024-09-27 11:39:56.8355,1125.237,2,3,115.237 +2024-09-27 11:39:57.1466,1125.237,2,3,115.237 +2024-09-27 11:39:57.4609,1125.237,2,3,115.237 +2024-09-27 11:39:57.7727,1125.237,2,3,115.237 +2024-09-27 11:39:58.0859,1125.237,2,3,115.237 +2024-09-27 11:39:58.3984,1125.237,2,3,115.237 +2024-09-27 11:39:58.7098,1125.237,2,3,115.237 +2024-09-27 11:39:59.0236,1125.237,2,3,115.237 +2024-09-27 11:39:59.3351,1125.237,2,3,115.237 +2024-09-27 11:39:59.6494,1125.237,2,3,115.237 +2024-09-27 11:39:59.9592,1125.237,2,3,115.237 +2024-09-27 11:40:00.2725,1125.237,2,3,115.237 +2024-09-27 11:40:00.5845,1125.237,2,3,115.237 +2024-09-27 11:40:00.8975,1125.237,2,3,115.237 +2024-09-27 11:40:01.2093,1125.237,2,3,115.237 +2024-09-27 11:40:01.5242,1125.237,2,3,115.237 +2024-09-27 11:40:01.8367,1125.237,2,3,115.237 +2024-09-27 11:40:02.1479,1125.237,2,3,115.237 +2024-09-27 11:40:02.4601,1125.237,2,3,115.237 +2024-09-27 11:40:02.7721,1125.237,2,3,115.237 +2024-09-27 11:40:03.0850,1125.237,2,3,115.237 +2024-09-27 11:40:03.3970,1125.237,2,3,115.237 +2024-09-27 11:40:03.7119,1125.237,2,3,115.237 +2024-09-27 11:40:04.0231,1125.237,2,3,115.237 +2024-09-27 11:40:04.3343,1125.237,2,3,115.237 +2024-09-27 11:40:04.6472,1125.237,2,3,115.237 +2024-09-27 11:40:04.9590,1125.237,2,3,115.237 +2024-09-27 11:40:05.2722,1125.237,2,3,115.237 +2024-09-27 11:40:05.5875,1125.237,2,3,115.237 +2024-09-27 11:40:05.8964,1125.237,2,3,115.237 +2024-09-27 11:40:06.2105,1125.237,2,3,115.237 +2024-09-27 11:40:06.5249,1125.237,2,3,115.237 +2024-09-27 11:40:06.8360,1125.237,2,3,115.237 +2024-09-27 11:40:07.1465,1125.237,2,3,115.237 +2024-09-27 11:40:07.4602,1125.237,2,3,115.237 +2024-09-27 11:40:07.7747,1125.237,2,3,115.237 +2024-09-27 11:40:08.0843,1125.237,2,3,115.237 +2024-09-27 11:40:08.3982,1125.237,2,3,115.237 +2024-09-27 11:40:08.7089,1125.237,2,3,115.237 +2024-09-27 11:40:09.0226,1125.237,2,3,115.237 +2024-09-27 11:40:09.3371,1125.237,2,3,115.237 +2024-09-27 11:40:09.6470,1125.237,2,3,115.237 +2024-09-27 11:40:09.9596,1125.237,2,3,115.237 +2024-09-27 11:40:10.2728,1125.237,2,3,115.237 +2024-09-27 11:40:10.5882,1125.237,2,3,115.237 +2024-09-27 11:40:10.8981,1125.237,2,3,115.237 +2024-09-27 11:40:11.2088,1125.237,2,3,115.237 +2024-09-27 11:40:11.5234,1125.237,2,3,115.237 +2024-09-27 11:40:11.8350,1125.237,2,3,115.237 +2024-09-27 11:40:12.1473,1125.237,2,3,115.237 +2024-09-27 11:40:12.4587,1125.237,2,3,115.237 +2024-09-27 11:40:12.7741,1125.237,2,3,115.237 +2024-09-27 11:40:13.0863,1125.237,2,3,115.237 +2024-09-27 11:40:13.3984,1125.237,2,3,115.237 +2024-09-27 11:40:13.7094,1125.237,2,3,115.237 +2024-09-27 11:40:14.0228,1125.237,2,3,115.237 +2024-09-27 11:40:14.3343,1125.237,2,3,115.237 +2024-09-27 11:40:14.6502,1125.237,2,3,115.237 +2024-09-27 11:40:14.9620,1125.237,2,3,115.237 +2024-09-27 11:40:15.2742,1125.237,2,3,115.237 +2024-09-27 11:40:15.5842,1125.237,2,3,115.237 +2024-09-27 11:40:15.8977,1125.237,2,3,115.237 +2024-09-27 11:40:16.2096,1125.237,2,3,115.237 +2024-09-27 11:40:16.5230,1125.237,2,3,115.237 +2024-09-27 11:40:16.8343,1125.237,2,3,115.237 +2024-09-27 11:40:17.1473,1125.237,2,3,115.237 +2024-09-27 11:40:17.4597,1125.237,2,3,115.237 +2024-09-27 11:40:17.7714,1125.237,2,3,115.237 +2024-09-27 11:40:18.0834,1125.237,2,3,115.237 +2024-09-27 11:40:18.3986,1125.237,2,3,115.237 +2024-09-27 11:40:18.7121,1125.237,2,3,115.237 +2024-09-27 11:40:19.0228,1125.237,2,3,115.237 +2024-09-27 11:40:19.3369,1125.237,2,3,115.237 +2024-09-27 11:40:19.6467,1125.237,2,3,115.237 +2024-09-27 11:40:19.9601,1125.237,2,3,115.237 +2024-09-27 11:40:20.2718,1125.237,2,3,115.237 +2024-09-27 11:40:20.5850,1125.237,2,3,115.237 +2024-09-27 11:40:20.8985,1125.237,2,3,115.237 +2024-09-27 11:40:21.2088,1125.237,2,3,115.237 +2024-09-27 11:40:21.5230,1125.237,2,3,115.237 +2024-09-27 11:40:21.8361,1125.237,2,3,115.237 +2024-09-27 11:40:22.1479,1125.237,2,3,115.237 +2024-09-27 11:40:22.4595,1125.237,2,3,115.237 +2024-09-27 11:40:22.7738,1125.237,2,3,115.237 +2024-09-27 11:40:23.0843,1125.237,2,3,115.237 +2024-09-27 11:40:23.3989,1125.237,2,3,115.237 +2024-09-27 11:40:23.7100,1125.237,2,3,115.237 +2024-09-27 11:40:24.0230,1125.237,2,3,115.237 +2024-09-27 11:40:24.3338,1125.237,2,3,115.237 +2024-09-27 11:40:24.6460,1125.237,2,3,115.237 +2024-09-27 11:40:24.9587,1125.237,2,3,115.237 +2024-09-27 11:40:25.2727,1125.237,2,3,115.237 +2024-09-27 11:40:25.5849,1125.237,2,3,115.237 +2024-09-27 11:40:25.9008,1125.237,2,3,115.237 +2024-09-27 11:40:26.2085,1125.237,2,3,115.237 +2024-09-27 11:40:26.5225,1125.237,2,3,115.237 +2024-09-27 11:40:26.8353,1125.237,2,3,115.237 +2024-09-27 11:40:27.1487,1125.237,2,3,115.237 +2024-09-27 11:40:27.4592,1125.237,2,3,115.237 +2024-09-27 11:40:27.7730,1125.237,2,3,115.237 +2024-09-27 11:40:28.0869,1125.237,2,3,115.237 +2024-09-27 11:40:28.3960,1125.237,2,3,115.237 +2024-09-27 11:40:28.7084,1125.237,2,3,115.237 +2024-09-27 11:40:29.0221,1125.237,2,3,115.237 +2024-09-27 11:40:29.3343,1125.237,2,3,115.237 +2024-09-27 11:40:29.6460,1125.237,2,3,115.237 +2024-09-27 11:40:29.9599,1125.237,2,3,115.237 +2024-09-27 11:40:30.2750,1125.237,2,3,115.237 +2024-09-27 11:40:30.5847,1125.237,2,3,115.237 +2024-09-27 11:40:30.8988,1125.237,2,3,115.237 +2024-09-27 11:40:31.2084,1125.237,2,3,115.237 +2024-09-27 11:40:31.5231,1125.237,2,3,115.237 +2024-09-27 11:40:31.8375,1125.237,2,3,115.237 +2024-09-27 11:40:32.1489,1125.237,2,3,115.237 +2024-09-27 11:40:32.4614,1125.237,2,3,115.237 +2024-09-27 11:40:32.7734,1125.237,2,3,115.237 +2024-09-27 11:40:33.0857,1125.237,2,3,115.237 +2024-09-27 11:40:33.3980,1125.237,2,3,115.237 +2024-09-27 11:40:33.7095,1125.237,2,3,115.237 +2024-09-27 11:40:34.0221,1125.237,2,3,115.237 +2024-09-27 11:40:34.3342,1125.237,2,3,115.237 +2024-09-27 11:40:34.6495,1125.237,2,3,115.237 +2024-09-27 11:40:34.9600,1125.237,2,3,115.237 +2024-09-27 11:40:35.2722,1125.237,2,3,115.237 +2024-09-27 11:40:35.5864,1125.237,2,3,115.237 +2024-09-27 11:40:35.8981,1125.237,2,3,115.237 +2024-09-27 11:40:36.2098,1125.237,2,3,115.237 +2024-09-27 11:40:36.5220,1125.237,2,3,115.237 +2024-09-27 11:40:36.8367,1125.237,2,3,115.237 +2024-09-27 11:40:37.1484,1125.237,2,3,115.237 +2024-09-27 11:40:37.4619,1125.237,2,3,115.237 +2024-09-27 11:40:37.7730,1125.237,2,3,115.237 +2024-09-27 11:40:38.0849,1125.237,2,3,115.237 +2024-09-27 11:40:38.3959,1125.237,2,3,115.237 +2024-09-27 11:40:38.7081,1125.237,2,3,115.237 +2024-09-27 11:40:39.0232,1125.237,2,3,115.237 +2024-09-27 11:40:39.3345,1125.237,2,3,115.237 +2024-09-27 11:40:39.6491,1125.237,2,3,115.237 +2024-09-27 11:40:39.9593,1125.237,2,3,115.237 +2024-09-27 11:40:40.2735,1125.237,2,3,115.237 +2024-09-27 11:40:40.5860,1125.237,2,3,115.237 +2024-09-27 11:40:40.8977,1125.237,2,3,115.237 +2024-09-27 11:40:41.2106,1125.237,2,3,115.237 +2024-09-27 11:40:41.5219,1125.237,2,3,115.237 +2024-09-27 11:40:41.8340,1125.237,2,3,115.237 +2024-09-27 11:40:42.1460,1125.237,2,3,115.237 +2024-09-27 11:40:42.4592,1125.237,2,3,115.237 +2024-09-27 11:40:42.7732,1125.237,2,3,115.237 +2024-09-27 11:40:43.0858,1125.237,2,3,115.237 +2024-09-27 11:40:43.3986,1125.237,2,3,115.237 +2024-09-27 11:40:43.7089,1125.237,2,3,115.237 +2024-09-27 11:40:44.0216,1125.237,2,3,115.237 +2024-09-27 11:40:44.3344,1125.237,2,3,115.237 +2024-09-27 11:40:44.6458,1125.237,2,3,115.237 +2024-09-27 11:40:44.9584,1125.237,2,3,115.237 +2024-09-27 11:40:45.2730,1125.237,2,3,115.237 +2024-09-27 11:40:45.5843,1125.237,2,3,115.237 +2024-09-27 11:40:45.8958,1125.237,2,3,115.237 +2024-09-27 11:40:46.2086,1125.237,2,3,115.237 +2024-09-27 11:40:46.5207,1125.237,2,3,115.237 +2024-09-27 11:40:46.8333,1125.237,2,3,115.237 +2024-09-27 11:40:47.1496,1125.237,2,3,115.237 +2024-09-27 11:40:47.4599,1125.237,2,3,115.237 +2024-09-27 11:40:47.7732,1125.237,2,3,115.237 +2024-09-27 11:40:48.0837,1125.237,2,3,115.237 +2024-09-27 11:40:48.3976,1125.237,2,3,115.237 +2024-09-27 11:40:48.7108,1125.237,2,3,115.237 +2024-09-27 11:40:49.0213,1125.237,2,3,115.237 +2024-09-27 11:40:49.3348,1125.237,2,3,115.237 +2024-09-27 11:40:49.6487,1125.237,2,3,115.237 +2024-09-27 11:40:49.9602,1125.237,2,3,115.237 +2024-09-27 11:40:50.2712,1125.237,2,3,115.237 +2024-09-27 11:40:50.5839,1125.237,2,3,115.237 +2024-09-27 11:40:50.8963,1125.237,2,3,115.237 +2024-09-27 11:40:51.2094,1125.237,2,3,115.237 +2024-09-27 11:40:51.5232,1125.237,2,3,115.237 +2024-09-27 11:40:51.8363,1125.237,2,3,115.237 +2024-09-27 11:40:52.1491,1125.237,2,3,115.237 +2024-09-27 11:40:52.4603,1125.237,2,3,115.237 +2024-09-27 11:40:52.7724,1125.237,2,3,115.237 +2024-09-27 11:40:53.0851,1125.237,2,3,115.237 +2024-09-27 11:40:53.3953,1125.237,2,3,115.237 +2024-09-27 11:40:53.7080,1125.237,2,3,115.237 +2024-09-27 11:40:54.0227,1125.237,2,3,115.237 +2024-09-27 11:40:54.3352,1125.237,2,3,115.237 +2024-09-27 11:40:54.6489,1125.237,2,3,115.237 +2024-09-27 11:40:54.9574,1125.237,2,3,115.237 +2024-09-27 11:40:55.2723,1125.237,2,3,115.237 +2024-09-27 11:40:55.5863,1125.237,2,3,115.237 +2024-09-27 11:40:55.8973,1125.237,2,3,115.237 +2024-09-27 11:40:56.2079,1125.237,2,3,115.237 +2024-09-27 11:40:56.5223,1125.237,2,3,115.237 +2024-09-27 11:40:56.8343,1125.237,2,3,115.237 +2024-09-27 11:40:57.1461,1125.237,2,3,115.237 +2024-09-27 11:40:57.4587,1125.237,2,3,115.237 +2024-09-27 11:40:57.7717,1125.237,2,3,115.237 +2024-09-27 11:40:58.0849,1125.237,2,3,115.237 +2024-09-27 11:40:58.3964,1125.237,2,3,115.237 +2024-09-27 11:40:58.7101,1125.237,2,3,115.237 +2024-09-27 11:40:59.0203,1125.237,2,3,115.237 +2024-09-27 11:40:59.3348,1125.237,2,3,115.237 +2024-09-27 11:40:59.6451,1125.237,2,3,115.237 +2024-09-27 11:40:59.9593,1125.237,2,3,115.237 +2024-09-27 11:41:00.2709,1125.237,2,3,115.237 +2024-09-27 11:41:00.5849,1125.237,2,3,115.237 +2024-09-27 11:41:00.9005,1125.237,2,3,115.237 +2024-09-27 11:41:01.2112,1125.237,2,3,115.237 +2024-09-27 11:41:01.5228,1125.237,2,3,115.237 +2024-09-27 11:41:01.8335,1125.237,2,3,115.237 +2024-09-27 11:41:02.1478,1125.237,2,3,115.237 +2024-09-27 11:41:02.4599,1125.237,2,3,115.237 +2024-09-27 11:41:02.7737,1125.237,2,3,115.237 +2024-09-27 11:41:03.0839,1125.237,2,3,115.237 +2024-09-27 11:41:03.3980,1125.237,2,3,115.237 +2024-09-27 11:41:03.7094,1125.237,2,3,115.237 +2024-09-27 11:41:04.0200,1125.237,2,3,115.237 +2024-09-27 11:41:04.3343,1125.237,2,3,115.237 +2024-09-27 11:41:04.6463,1125.237,2,3,115.237 +2024-09-27 11:41:04.9612,1125.237,2,3,115.237 +2024-09-27 11:41:05.2731,1125.237,2,3,115.237 +2024-09-27 11:41:05.5839,1125.237,2,3,115.237 +2024-09-27 11:41:05.8956,1125.237,2,3,115.237 +2024-09-27 11:41:06.2091,1125.237,2,3,115.237 +2024-09-27 11:41:06.5228,1125.237,2,3,115.237 +2024-09-27 11:41:06.8330,1125.237,2,3,115.237 +2024-09-27 11:41:07.1476,1125.237,2,3,115.237 +2024-09-27 11:41:07.4612,1125.237,2,3,115.237 +2024-09-27 11:41:07.7707,1125.237,2,3,115.237 +2024-09-27 11:41:08.0837,1125.237,2,3,115.237 +2024-09-27 11:41:08.3967,1125.237,2,3,115.237 +2024-09-27 11:41:08.7112,1125.237,2,3,115.237 +2024-09-27 11:41:09.0224,1125.237,2,3,115.237 +2024-09-27 11:41:09.3360,1125.237,2,3,115.237 +2024-09-27 11:41:09.6461,1125.237,2,3,115.237 +2024-09-27 11:41:09.9600,1125.237,2,3,115.237 +2024-09-27 11:41:10.2705,1125.237,2,3,115.237 +2024-09-27 11:41:10.5835,1125.237,2,3,115.237 +2024-09-27 11:41:10.8974,1125.237,2,3,115.237 +2024-09-27 11:41:11.2077,1125.237,2,3,115.237 +2024-09-27 11:41:11.5232,1125.237,2,3,115.237 +2024-09-27 11:41:11.8347,1125.237,2,3,115.237 +2024-09-27 11:41:12.1453,1125.237,2,3,115.237 +2024-09-27 11:41:12.4605,1125.237,2,3,115.237 +2024-09-27 11:41:12.7715,1125.237,2,3,115.237 +2024-09-27 11:41:13.0856,1125.237,2,3,115.237 +2024-09-27 11:41:13.3968,1125.237,2,3,115.237 +2024-09-27 11:41:13.7079,1125.237,2,3,115.237 +2024-09-27 11:41:14.0214,1125.237,2,3,115.237 +2024-09-27 11:41:14.3335,1125.237,2,3,115.237 +2024-09-27 11:41:14.6466,1125.237,2,3,115.237 +2024-09-27 11:41:14.9580,1125.237,2,3,115.237 +2024-09-27 11:41:15.2700,1125.237,2,3,115.237 +2024-09-27 11:41:15.5836,1125.237,2,3,115.237 +2024-09-27 11:41:15.8960,1125.237,2,3,115.237 +2024-09-27 11:41:16.2106,1125.237,2,3,115.237 +2024-09-27 11:41:16.5198,1125.237,2,3,115.237 +2024-09-27 11:41:16.8326,1125.237,2,3,115.237 +2024-09-27 11:41:17.1457,1125.237,2,3,115.237 +2024-09-27 11:41:17.4580,1125.237,2,3,115.237 +2024-09-27 11:41:17.7703,1125.237,2,3,115.237 +2024-09-27 11:41:18.0841,1125.237,2,3,115.237 +2024-09-27 11:41:18.3965,1125.237,2,3,115.237 +2024-09-27 11:41:18.7110,1125.237,2,3,115.237 +2024-09-27 11:41:19.0214,1125.237,2,3,115.237 +2024-09-27 11:41:19.3322,1125.237,2,3,115.237 +2024-09-27 11:41:19.6460,1125.237,2,3,115.237 +2024-09-27 11:41:19.9566,1125.237,2,3,115.237 +2024-09-27 11:41:20.2716,1125.237,2,3,115.237 +2024-09-27 11:41:20.5862,1125.237,2,3,115.237 +2024-09-27 11:41:20.8977,1125.237,2,3,115.237 +2024-09-27 11:41:21.2093,1125.237,2,3,115.237 +2024-09-27 11:41:21.5202,1125.237,2,3,115.237 +2024-09-27 11:41:21.8338,1125.237,2,3,115.237 +2024-09-27 11:41:22.1474,1125.237,2,3,115.237 +2024-09-27 11:41:22.4574,1125.237,2,3,115.237 +2024-09-27 11:41:22.7717,1125.237,2,3,115.237 +2024-09-27 11:41:23.0842,1125.237,2,3,115.237 +2024-09-27 11:41:23.3949,1125.237,2,3,115.237 +2024-09-27 11:41:23.7090,1125.237,2,3,115.237 +2024-09-27 11:41:24.0202,1125.237,2,3,115.237 +2024-09-27 11:41:24.3326,1125.237,2,3,115.237 +2024-09-27 11:41:24.6451,1125.237,2,3,115.237 +2024-09-27 11:41:24.9596,1125.237,2,3,115.237 +2024-09-27 11:41:25.2700,1125.237,2,3,115.237 +2024-09-27 11:41:25.5837,1125.237,2,3,115.237 +2024-09-27 11:41:25.8965,1125.237,2,3,115.237 +2024-09-27 11:41:26.2082,1125.237,2,3,115.237 +2024-09-27 11:41:26.5224,1125.237,2,3,115.237 +2024-09-27 11:41:26.8334,1125.237,2,3,115.237 +2024-09-27 11:41:27.1502,1125.237,2,3,115.237 +2024-09-27 11:41:27.4584,1125.237,2,3,115.237 +2024-09-27 11:41:27.7727,1125.237,2,3,115.237 +2024-09-27 11:41:28.0836,1125.237,2,3,115.237 +2024-09-27 11:41:28.3968,1125.237,2,3,115.237 +2024-09-27 11:41:28.7091,1125.237,2,3,115.237 +2024-09-27 11:41:29.0234,1125.237,2,3,115.237 +2024-09-27 11:41:29.3345,1125.237,2,3,115.237 +2024-09-27 11:41:29.6472,1125.237,2,3,115.237 +2024-09-27 11:41:29.9605,1125.237,2,3,115.237 +2024-09-27 11:41:30.2708,1125.237,2,3,115.237 +2024-09-27 11:41:30.5840,1125.237,2,3,115.237 +2024-09-27 11:41:30.8947,1125.237,2,3,115.237 +2024-09-27 11:41:31.2100,1125.237,2,3,115.237 +2024-09-27 11:41:31.5234,1125.237,2,3,115.237 +2024-09-27 11:41:31.8344,1125.237,2,3,115.237 +2024-09-27 11:41:32.1447,1125.237,2,3,115.237 +2024-09-27 11:41:32.4581,1125.237,2,3,115.237 +2024-09-27 11:41:32.7718,1125.237,2,3,115.237 +2024-09-27 11:41:33.0854,1125.237,2,3,115.237 +2024-09-27 11:41:33.3955,1125.237,2,3,115.237 +2024-09-27 11:41:33.7098,1125.237,2,3,115.237 +2024-09-27 11:41:34.0221,1125.237,2,3,115.237 +2024-09-27 11:41:34.3336,1125.237,2,3,115.237 +2024-09-27 11:41:34.6446,1125.237,2,3,115.237 +2024-09-27 11:41:34.9586,1125.237,2,3,115.237 +2024-09-27 11:41:35.2716,1125.237,2,3,115.237 +2024-09-27 11:41:35.5836,1125.237,2,3,115.237 +2024-09-27 11:41:35.8984,1125.237,2,3,115.237 +2024-09-27 11:41:36.2086,1125.237,2,3,115.237 +2024-09-27 11:41:36.5199,1125.237,2,3,115.237 +2024-09-27 11:41:36.8348,1125.237,2,3,115.237 +2024-09-27 11:41:37.1474,1125.237,2,3,115.237 +2024-09-27 11:41:37.4589,1125.237,2,3,115.237 +2024-09-27 11:41:37.7716,1125.237,2,3,115.237 +2024-09-27 11:41:38.0838,1125.237,2,3,115.237 +2024-09-27 11:41:38.3961,1125.237,2,3,115.237 +2024-09-27 11:41:38.7091,1125.237,2,3,115.237 +2024-09-27 11:41:39.0212,1125.237,2,3,115.237 +2024-09-27 11:41:39.3343,1125.237,2,3,115.237 +2024-09-27 11:41:39.6468,1125.237,2,3,115.237 +2024-09-27 11:41:39.9581,1125.237,2,3,115.237 +2024-09-27 11:41:40.2705,1125.237,2,3,115.237 +2024-09-27 11:41:40.5825,1125.237,2,3,115.237 +2024-09-27 11:41:40.8953,1125.237,2,3,115.237 +2024-09-27 11:41:41.2086,1125.237,2,3,115.237 +2024-09-27 11:41:41.5205,1125.237,2,3,115.237 +2024-09-27 11:41:41.8327,1125.237,2,3,115.237 +2024-09-27 11:41:42.1473,1125.237,2,3,115.237 +2024-09-27 11:41:42.4600,1125.237,2,3,115.237 +2024-09-27 11:41:42.7720,1125.237,2,3,115.237 +2024-09-27 11:41:43.0821,1125.237,2,3,115.237 +2024-09-27 11:41:43.3947,1125.237,2,3,115.237 +2024-09-27 11:41:43.7091,1125.237,2,3,115.237 +2024-09-27 11:41:44.0245,1125.237,2,3,115.237 +2024-09-27 11:41:44.3321,1125.237,2,3,115.237 +2024-09-27 11:41:44.6480,1125.237,2,3,115.237 +2024-09-27 11:41:44.9603,1125.237,2,3,115.237 +2024-09-27 11:41:45.2738,1125.237,2,3,115.237 +2024-09-27 11:41:45.5826,1125.237,2,3,115.237 +2024-09-27 11:41:45.8959,1125.237,2,3,115.237 +2024-09-27 11:41:46.2085,1125.237,2,3,115.237 +2024-09-27 11:41:46.5215,1125.237,2,3,115.237 +2024-09-27 11:41:46.8359,1125.237,2,3,115.237 +2024-09-27 11:41:47.1448,1125.237,2,3,115.237 +2024-09-27 11:41:47.4586,1125.237,2,3,115.237 +2024-09-27 11:41:47.7700,1125.237,2,3,115.237 +2024-09-27 11:41:48.0851,1125.237,2,3,115.237 +2024-09-27 11:41:48.3962,1125.237,2,3,115.237 +2024-09-27 11:41:48.7105,1125.237,2,3,115.237 +2024-09-27 11:41:49.0218,1125.237,2,3,115.237 +2024-09-27 11:41:49.3335,1125.237,2,3,115.237 +2024-09-27 11:41:49.6455,1125.237,2,3,115.237 +2024-09-27 11:41:49.9582,1125.237,2,3,115.237 +2024-09-27 11:41:50.2713,1125.237,2,3,115.237 +2024-09-27 11:41:50.5833,1125.237,2,3,115.237 +2024-09-27 11:41:50.8956,1125.237,2,3,115.237 +2024-09-27 11:41:51.2091,1125.237,2,3,115.237 +2024-09-27 11:41:51.5213,1125.237,2,3,115.237 +2024-09-27 11:41:51.8336,1125.237,2,3,115.237 +2024-09-27 11:41:52.1469,1125.237,2,3,115.237 +2024-09-27 11:41:52.4607,1125.237,2,3,115.237 +2024-09-27 11:41:52.7707,1125.237,2,3,115.237 +2024-09-27 11:41:53.0820,1125.237,2,3,115.237 +2024-09-27 11:41:53.4003,1125.237,2,3,115.237 +2024-09-27 11:41:53.7085,1125.237,2,3,115.237 +2024-09-27 11:41:54.0203,1125.237,2,3,115.237 +2024-09-27 11:41:54.3350,1125.237,2,3,115.237 +2024-09-27 11:41:54.6467,1125.237,2,3,115.237 +2024-09-27 11:41:54.9589,1125.237,2,3,115.237 +2024-09-27 11:41:55.2734,1125.237,2,3,115.237 +2024-09-27 11:41:55.5867,1125.237,2,3,115.237 +2024-09-27 11:41:55.8966,1125.237,2,3,115.237 +2024-09-27 11:41:56.2084,1125.237,2,3,115.237 +2024-09-27 11:41:56.5193,1125.237,2,3,115.237 +2024-09-27 11:41:56.8320,1125.237,2,3,115.237 +2024-09-27 11:41:57.1481,1125.237,2,3,115.237 +2024-09-27 11:41:57.4575,1125.237,2,3,115.237 +2024-09-27 11:41:57.7729,1125.237,2,3,115.237 +2024-09-27 11:41:58.0834,1125.237,2,3,115.237 +2024-09-27 11:41:58.3950,1125.237,2,3,115.237 +2024-09-27 11:41:58.7104,1125.237,2,3,115.237 +2024-09-27 11:41:59.0201,1125.237,2,3,115.237 +2024-09-27 11:41:59.3357,1125.237,2,3,115.237 +2024-09-27 11:41:59.6464,1125.237,2,3,115.237 +2024-09-27 11:41:59.9618,1125.237,2,3,115.237 +2024-09-27 11:42:00.2725,1125.237,2,3,115.237 +2024-09-27 11:42:00.5842,1125.237,2,3,115.237 +2024-09-27 11:42:00.8974,1125.237,2,3,115.237 +2024-09-27 11:42:01.2106,1125.237,2,3,115.237 +2024-09-27 11:42:01.5211,1125.237,2,3,115.237 +2024-09-27 11:42:01.8341,1125.237,2,3,115.237 +2024-09-27 11:42:02.1491,1125.237,2,3,115.237 +2024-09-27 11:42:02.4572,1125.237,2,3,115.237 +2024-09-27 11:42:02.7708,1125.237,2,3,115.237 +2024-09-27 11:42:03.0832,1125.237,2,3,115.237 +2024-09-27 11:42:03.3942,1125.237,2,3,115.237 +2024-09-27 11:42:03.7097,1125.237,2,3,115.237 +2024-09-27 11:42:04.0205,1125.237,2,3,115.237 +2024-09-27 11:42:04.3366,1125.237,2,3,115.237 +2024-09-27 11:42:04.6447,1125.237,2,3,115.237 +2024-09-27 11:42:04.9591,1125.237,2,3,115.237 +2024-09-27 11:42:05.2731,1125.237,2,3,115.237 +2024-09-27 11:42:05.5857,1125.237,2,3,115.237 +2024-09-27 11:42:05.8949,1125.237,2,3,115.237 +2024-09-27 11:42:06.2079,1125.237,2,3,115.237 +2024-09-27 11:42:06.5225,1125.237,2,3,115.237 +2024-09-27 11:42:06.8349,1125.237,2,3,115.237 +2024-09-27 11:42:07.1469,1125.237,2,3,115.237 +2024-09-27 11:42:07.4571,1125.237,2,3,115.237 +2024-09-27 11:42:07.7706,1125.237,2,3,115.237 +2024-09-27 11:42:08.0836,1125.237,2,3,115.237 +2024-09-27 11:42:08.3991,1125.237,2,3,115.237 +2024-09-27 11:42:08.7078,1125.237,2,3,115.237 +2024-09-27 11:42:09.0200,1125.237,2,3,115.237 +2024-09-27 11:42:09.3332,1125.237,2,3,115.237 +2024-09-27 11:42:09.6477,1125.237,2,3,115.237 +2024-09-27 11:42:09.9585,1125.237,2,3,115.237 +2024-09-27 11:42:10.2717,1125.237,2,3,115.237 +2024-09-27 11:42:10.5818,1125.237,2,3,115.237 +2024-09-27 11:42:10.8979,1125.237,2,3,115.237 +2024-09-27 11:42:11.2081,1125.237,2,3,115.237 +2024-09-27 11:42:11.5202,1125.237,2,3,115.237 +2024-09-27 11:42:11.8327,1125.237,2,3,115.237 +2024-09-27 11:42:12.1447,1125.237,2,3,115.237 +2024-09-27 11:42:12.4595,1125.237,2,3,115.237 +2024-09-27 11:42:12.7693,1125.237,2,3,115.237 +2024-09-27 11:42:13.0849,1125.237,2,3,115.237 +2024-09-27 11:42:13.3960,1125.237,2,3,115.237 +2024-09-27 11:42:13.7080,1125.237,2,3,115.237 +2024-09-27 11:42:14.0192,1125.237,2,3,115.237 +2024-09-27 11:42:14.3350,1125.237,2,3,115.237 +2024-09-27 11:42:14.6448,1125.237,2,3,115.237 +2024-09-27 11:42:14.9599,1125.237,2,3,115.237 +2024-09-27 11:42:15.2728,1125.237,2,3,115.237 +2024-09-27 11:42:15.5828,1125.237,2,3,115.237 +2024-09-27 11:42:15.8975,1125.237,2,3,115.237 +2024-09-27 11:42:16.2073,1125.237,2,3,115.237 +2024-09-27 11:42:16.5220,1125.237,2,3,115.237 +2024-09-27 11:42:16.8353,1125.237,2,3,115.237 +2024-09-27 11:42:17.1444,1125.237,2,3,115.237 +2024-09-27 11:42:17.4591,1125.237,2,3,115.237 +2024-09-27 11:42:17.7730,1125.237,2,3,115.237 +2024-09-27 11:42:18.0824,1125.237,2,3,115.237 +2024-09-27 11:42:18.3962,1125.237,2,3,115.237 +2024-09-27 11:42:18.7085,1125.237,2,3,115.237 +2024-09-27 11:42:19.0192,1125.237,2,3,115.237 +2024-09-27 11:42:19.3327,1125.237,2,3,115.237 +2024-09-27 11:42:19.6492,1125.237,2,3,115.237 +2024-09-27 11:42:19.9584,1125.237,2,3,115.237 +2024-09-27 11:42:20.2704,1125.237,2,3,115.237 +2024-09-27 11:42:20.5862,1125.237,2,3,115.237 +2024-09-27 11:42:20.8968,1125.237,2,3,115.237 +2024-09-27 11:42:21.2066,1125.237,2,3,115.237 +2024-09-27 11:42:21.5220,1125.237,2,3,115.237 +2024-09-27 11:42:21.8355,1125.237,2,3,115.237 +2024-09-27 11:42:22.1457,1125.237,2,3,115.237 +2024-09-27 11:42:22.4596,1125.237,2,3,115.237 +2024-09-27 11:42:22.7710,1125.237,2,3,115.237 +2024-09-27 11:42:23.0833,1125.237,2,3,115.237 +2024-09-27 11:42:23.3978,1125.237,2,3,115.237 +2024-09-27 11:42:23.7093,1125.237,2,3,115.237 +2024-09-27 11:42:24.0210,1125.237,2,3,115.237 +2024-09-27 11:42:24.3317,1125.237,2,3,115.237 +2024-09-27 11:42:24.6481,1125.237,2,3,115.237 +2024-09-27 11:42:24.9580,1125.237,2,3,115.237 +2024-09-27 11:42:25.2720,1125.237,2,3,115.237 +2024-09-27 11:42:25.5821,1125.237,2,3,115.237 +2024-09-27 11:42:25.8961,1125.237,2,3,115.237 +2024-09-27 11:42:26.2080,1125.237,2,3,115.237 +2024-09-27 11:42:26.5214,1125.237,2,3,115.237 +2024-09-27 11:42:26.8331,1125.237,2,3,115.237 +2024-09-27 11:42:27.1444,1125.237,2,3,115.237 +2024-09-27 11:42:27.4565,1125.237,2,3,115.237 +2024-09-27 11:42:27.7713,1125.237,2,3,115.237 +2024-09-27 11:42:28.0826,1125.237,2,3,115.237 +2024-09-27 11:42:28.3962,1125.237,2,3,115.237 +2024-09-27 11:42:28.7074,1125.237,2,3,115.237 +2024-09-27 11:42:29.0205,1125.237,2,3,115.237 +2024-09-27 11:42:29.3322,1125.237,2,3,115.237 +2024-09-27 11:42:29.6476,1125.237,2,3,115.237 +2024-09-27 11:42:29.9602,1125.237,2,3,115.237 +2024-09-27 11:42:30.2720,1125.237,2,3,115.237 +2024-09-27 11:42:30.5853,1125.237,2,3,115.237 +2024-09-27 11:42:30.8972,1125.237,2,3,115.237 +2024-09-27 11:42:31.2081,1125.237,2,3,115.237 +2024-09-27 11:42:31.5195,1125.237,2,3,115.237 +2024-09-27 11:42:31.8324,1125.237,2,3,115.237 +2024-09-27 11:42:32.1477,1125.237,2,3,115.237 +2024-09-27 11:42:32.4580,1125.237,2,3,115.237 +2024-09-27 11:42:32.7706,1125.237,2,3,115.237 +2024-09-27 11:42:33.0831,1125.237,2,3,115.237 +2024-09-27 11:42:33.3962,1125.237,2,3,115.237 +2024-09-27 11:42:33.7079,1125.237,2,3,115.237 +2024-09-27 11:42:34.0222,1125.237,2,3,115.237 +2024-09-27 11:42:34.3335,1125.237,2,3,115.237 +2024-09-27 11:42:34.6444,1125.237,2,3,115.237 +2024-09-27 11:42:34.9619,1125.237,2,3,115.237 +2024-09-27 11:42:35.2718,1125.237,2,3,115.237 +2024-09-27 11:42:35.5828,1125.237,2,3,115.237 +2024-09-27 11:42:35.8952,1125.237,2,3,115.237 +2024-09-27 11:42:36.2082,1125.237,2,3,115.237 +2024-09-27 11:42:36.5230,1125.237,2,3,115.237 +2024-09-27 11:42:36.8348,1125.237,2,3,115.237 +2024-09-27 11:42:37.1468,1125.237,2,3,115.237 +2024-09-27 11:42:37.4565,1125.237,2,3,115.237 +2024-09-27 11:42:37.7705,1125.237,2,3,115.237 +2024-09-27 11:42:38.0835,1125.237,2,3,115.237 +2024-09-27 11:42:38.3973,1125.237,2,3,115.237 +2024-09-27 11:42:38.7064,1125.237,2,3,115.237 +2024-09-27 11:42:39.0196,1125.237,2,3,115.237 +2024-09-27 11:42:39.3370,1125.237,2,3,115.237 +2024-09-27 11:42:39.6454,1125.237,2,3,115.237 +2024-09-27 11:42:39.9572,1125.237,2,3,115.237 +2024-09-27 11:42:40.2721,1125.237,2,3,115.237 +2024-09-27 11:42:40.5835,1125.237,2,3,115.237 +2024-09-27 11:42:40.8966,1125.237,2,3,115.237 +2024-09-27 11:42:41.2098,1125.237,2,3,115.237 +2024-09-27 11:42:41.5237,1125.237,2,3,115.237 +2024-09-27 11:42:41.8324,1125.237,2,3,115.237 +2024-09-27 11:42:42.1462,1125.237,2,3,115.237 +2024-09-27 11:42:42.4589,1125.237,2,3,115.237 +2024-09-27 11:42:42.7700,1125.237,2,3,115.237 +2024-09-27 11:42:43.0821,1125.237,2,3,115.237 +2024-09-27 11:42:43.3944,1125.237,2,3,115.237 +2024-09-27 11:42:43.7083,1125.237,2,3,115.237 +2024-09-27 11:42:44.0215,1125.237,2,3,115.237 +2024-09-27 11:42:44.3315,1125.237,2,3,115.237 +2024-09-27 11:42:44.6458,1125.237,2,3,115.237 +2024-09-27 11:42:44.9612,1125.237,2,3,115.237 +2024-09-27 11:42:45.2721,1125.237,2,3,115.237 +2024-09-27 11:42:45.5825,1125.237,2,3,115.237 +2024-09-27 11:42:45.8958,1125.237,2,3,115.237 +2024-09-27 11:42:46.2080,1125.237,2,3,115.237 +2024-09-27 11:42:46.5193,1125.237,2,3,115.237 +2024-09-27 11:42:46.8351,1125.237,2,3,115.237 +2024-09-27 11:42:47.1473,1125.237,2,3,115.237 +2024-09-27 11:42:47.4570,1125.237,2,3,115.237 +2024-09-27 11:42:47.7695,1125.237,2,3,115.237 +2024-09-27 11:42:48.0825,1125.237,2,3,115.237 +2024-09-27 11:42:48.3958,1125.237,2,3,115.237 +2024-09-27 11:42:48.7076,1125.237,2,3,115.237 +2024-09-27 11:42:49.0211,1125.237,2,3,115.237 +2024-09-27 11:42:49.3314,1125.237,2,3,115.237 +2024-09-27 11:42:49.6454,1125.237,2,3,115.237 +2024-09-27 11:42:49.9590,1125.237,2,3,115.237 +2024-09-27 11:42:50.2721,1125.237,2,3,115.237 +2024-09-27 11:42:50.5826,1125.237,2,3,115.237 +2024-09-27 11:42:50.8953,1125.237,2,3,115.237 +2024-09-27 11:42:51.2083,1125.237,2,3,115.237 +2024-09-27 11:42:51.5194,1125.237,2,3,115.237 +2024-09-27 11:42:51.8341,1125.237,2,3,115.237 +2024-09-27 11:42:52.1465,1125.237,2,3,115.237 +2024-09-27 11:42:52.4596,1125.237,2,3,115.237 +2024-09-27 11:42:52.7702,1125.237,2,3,115.237 +2024-09-27 11:42:53.0840,1125.237,2,3,115.237 +2024-09-27 11:42:53.3974,1125.237,2,3,115.237 +2024-09-27 11:42:53.7069,1125.237,2,3,115.237 +2024-09-27 11:42:54.0189,1125.237,2,3,115.237 +2024-09-27 11:42:54.3331,1125.237,2,3,115.237 +2024-09-27 11:42:54.6484,1125.237,2,3,115.237 +2024-09-27 11:42:54.9573,1125.237,2,3,115.237 +2024-09-27 11:42:55.2717,1125.237,2,3,115.237 +2024-09-27 11:42:55.5827,1125.237,2,3,115.237 +2024-09-27 11:42:55.8954,1125.237,2,3,115.237 +2024-09-27 11:42:56.2070,1125.237,2,3,115.237 +2024-09-27 11:42:56.5218,1125.237,2,3,115.237 +2024-09-27 11:42:56.8336,1125.237,2,3,115.237 +2024-09-27 11:42:57.1482,1125.237,2,3,115.237 +2024-09-27 11:42:57.4586,1125.237,2,3,115.237 +2024-09-27 11:42:57.7689,1125.237,2,3,115.237 +2024-09-27 11:42:58.0812,1125.237,2,3,115.237 +2024-09-27 11:42:58.3953,1125.237,2,3,115.237 +2024-09-27 11:42:58.7067,1125.237,2,3,115.237 +2024-09-27 11:42:59.0232,1125.237,2,3,115.237 +2024-09-27 11:42:59.3347,1125.237,2,3,115.237 +2024-09-27 11:42:59.6450,1125.237,2,3,115.237 +2024-09-27 11:42:59.9572,1125.237,2,3,115.237 +2024-09-27 11:43:00.2696,1125.237,2,3,115.237 +2024-09-27 11:43:00.5822,1125.237,2,3,115.237 +2024-09-27 11:43:00.8973,1125.237,2,3,115.237 +2024-09-27 11:43:01.2111,1125.237,2,3,115.237 +2024-09-27 11:43:01.5199,1125.237,2,3,115.237 +2024-09-27 11:43:01.8345,1125.237,2,3,115.237 +2024-09-27 11:43:02.1472,1125.237,2,3,115.237 +2024-09-27 11:43:02.4579,1125.237,2,3,115.237 +2024-09-27 11:43:02.7696,1125.237,2,3,115.237 +2024-09-27 11:43:03.2643,1125.237,2,3,115.237 +2024-09-27 11:43:03.5693,1125.237,2,3,115.237 +2024-09-27 11:43:03.8782,1125.237,2,3,115.237 +2024-09-27 11:43:04.1920,1125.237,2,3,115.237 +2024-09-27 11:43:04.5077,1125.237,2,3,115.237 +2024-09-27 11:43:04.8184,1125.237,2,3,115.237 +2024-09-27 11:43:05.1303,1125.237,2,3,115.237 +2024-09-27 11:43:05.4422,1125.237,2,3,115.237 diff --git a/Analysis/bin/x64/Debug/EntityFramework.SqlServer.dll b/Analysis/bin/x64/Debug/EntityFramework.SqlServer.dll new file mode 100644 index 0000000..e11b437 Binary files /dev/null and b/Analysis/bin/x64/Debug/EntityFramework.SqlServer.dll differ diff --git a/Analysis/bin/x64/Debug/EntityFramework.dll b/Analysis/bin/x64/Debug/EntityFramework.dll new file mode 100644 index 0000000..8400163 Binary files /dev/null and b/Analysis/bin/x64/Debug/EntityFramework.dll differ diff --git a/Analysis/bin/x64/Debug/File/AnalysisConfig.ini b/Analysis/bin/x64/Debug/File/AnalysisConfig.ini new file mode 100644 index 0000000..7a676df --- /dev/null +++ b/Analysis/bin/x64/Debug/File/AnalysisConfig.ini @@ -0,0 +1,91 @@ +[Chery] +DeleteDebugFileIntervalTime=-5 +ConfigSkinName=FluentHexagon.tssp +SoftwareHelpDocument=HELP.pdf +Language =1 +;1 = 中文简 +;0 = 英语 +RememberMe=1 +NextsenseCSVEH3Path=D:\cherytestEH3 +NextsenseCSVEHYPath=D:\cherytestEHY +NextseneSelfMeasurePath=D:\test +FPY=0.8 +FPY2=0.6 +ReportCSVPath=D:\QMLTest + + +CLMSModeID=10 +;1:CLMS授权 +AuthorizationMode=1 +;CarModel 初始化车型 +CarModel=EHY +EquipmentNo=NS002 +EquipmentName=Hexagon + +;1:上传IOT;0:不上传IOT +StartIOTFlag=0 +IOTAddress=http://10.188.2.56:9337/web/httpServlet/api/saveGfResult +IOTCarTypeAddr=http://10.188.2.56:9337/web/httpServlet/api/queryGFModelAndMaterial +;显示车身数据:1:显示;0:不显示 +ShowDataFlag=1 +;L显示左侧车身界面;R-显示右侧车身界面 +ShowData=R + +TolerancePercentage=1.5 +ExceptionPercentage=6 +;权限密码 +Password=1 + +;是否生成报告1:生成 其他不生成 +CreateReportFlag=1 +;1:解析csv 0:不解析 +AnalysisCSVFlag=1 +;1-打印编码器log;0-不打印 +RecordEncoderFlag=0 + +;1-计算合格率时包含极差项 ;0-不包含 +IncludeRangeFlag=1 + +;车型检查项总数量 +MeasureCarItemsCount=50 +;连续多少辆车不满足总数量 连续几辆车小于该检测项总数量 则报警 +ContinuousCarCount=6 + +;====安徽大众所用变量=============== +;扫抢串口号 +COMPort=COM1 + +StationName=ZP5_FG1 +tavascanUploadPath=VW316_8CM_ZP6_FG +blacklabelUploadPath=VW316_8CM_BLZP6_FG +Level2Times=1.5 +Level3Times=2 +ReportCSVPath2=D:\QMLTest + +[Timer] +;单位s +TimerFixedStorage=1 +TimerRefreshMIDMode=2 +TimerRefreshCMMStatus=3 + +[MSDB] +SqlServerName=127.0.0.1 +SqlDbName=NextSenseStandardDB +SqlUserName=sa +SqlPassword=Hexagon123 + + +[TCP] +ModbusTcp_IP=127.0.0.1 +ModbusTcp_Port=502 +ModbusTcp_Addr=1 +ModbusTcp_Reconnected=1 +PLC_StartAddr=100 +PLC_Length=100 +PlcType=3 +ModbusTcp_ReverseSequence=0 +PLC_S7StartAddr=100 +PLC_S7ByteLength=200 +PLC_S7DataBlock=DB4100 +PLC_S7ReadByteCount=200 + diff --git a/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.05.19 13-52-24 To 2025.05.19 13-52-34).txt b/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.05.19 13-52-24 To 2025.05.19 13-52-34).txt new file mode 100644 index 0000000..d69081c --- /dev/null +++ b/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.05.19 13-52-24 To 2025.05.19 13-52-34).txt @@ -0,0 +1,15 @@ +2025-05-19 13:52:25.230----软件Program Main函数开始执行-- +2025-05-19 13:52:25.232--加载配置文件——>开始 +2025-05-19 13:52:25.270--加载配置文件——>完成 +2025-05-19 13:52:27.769-- 进入显示车身模式!显示车身界面。 +2025-05-19 13:52:28.620--启动PLC写线程! +2025-05-19 13:52:28.623-- 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-05-19 13:52:28.657--连接PLC.... +2025-05-19 13:52:28.659--软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-05-19 13:52:28.660--软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-05-19 13:52:29.711--Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 13:52:29.739--Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 13:52:29.934--显示右侧EHY车身数据界面。 +2025-05-19 13:52:30.781--PLC S7连接失败。 +2025-05-19 13:52:30.784--连接PLC失败 +2025-05-19 13:52:34.968---------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.05.19 13-53-16 To 2025.05.19 13-53-43).txt b/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.05.19 13-53-16 To 2025.05.19 13-53-43).txt new file mode 100644 index 0000000..d5ac9bd --- /dev/null +++ b/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.05.19 13-53-16 To 2025.05.19 13-53-43).txt @@ -0,0 +1,15 @@ +2025-05-19 13:53:16.548----软件Program Main函数开始执行-- +2025-05-19 13:53:16.550--加载配置文件——>开始 +2025-05-19 13:53:16.569--加载配置文件——>完成 +2025-05-19 13:53:18.447-- 进入显示车身模式!显示车身界面。 +2025-05-19 13:53:18.887--启动PLC写线程! +2025-05-19 13:53:18.890-- 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-05-19 13:53:18.914--软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-05-19 13:53:18.915--连接PLC.... +2025-05-19 13:53:18.916--软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-05-19 13:53:20.959--PLC S7连接失败。 +2025-05-19 13:53:39.351--连接PLC失败 +2025-05-19 13:53:39.805--Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 13:53:39.836--Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 13:53:40.123--显示右侧EHY车身数据界面。 +2025-05-19 13:53:43.161---------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.08.04 11-42-25 To 2025.08.04 11-42-32).txt b/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.08.04 11-42-25 To 2025.08.04 11-42-32).txt new file mode 100644 index 0000000..fd49dd1 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/DebugFiles/Debug(2025.08.04 11-42-25 To 2025.08.04 11-42-32).txt @@ -0,0 +1,17 @@ +2025-08-04 11:42:26.704----软件Program Main函数开始执行-- +2025-08-04 11:42:26.707--加载配置文件——>开始 +2025-08-04 11:42:26.727--数据库连接 SqlServerName:127.0.0.1 +2025-08-04 11:42:26.728--数据库连接 SqlUserName:sa +2025-08-04 11:42:26.729--数据库连接 SqlPassword:Hexagon123 +2025-08-04 11:42:26.729--数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 11:42:26.729--加载配置文件——>完成 +2025-08-04 11:42:28.483--数据库连接 SqlServerName:127.0.0.1 +2025-08-04 11:42:28.484--数据库连接 SqlUserName:sa +2025-08-04 11:42:28.485--数据库连接 SqlPassword:Hexagon123 +2025-08-04 11:42:28.486--数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 11:42:28.486--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=NextSenseStandardDB;User ID=sa;password=Hexagon123; +2025-08-04 11:42:28.853-- 进入显示车身模式!显示车身界面。 +2025-08-04 11:42:28.854-- 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-08-04 11:42:28.856--软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-08-04 11:42:28.857--软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-08-04 11:42:32.820---------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/5mm_SelfTest_20250226_141125.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/5mm_SelfTest_20250226_141125.csv new file mode 100644 index 0000000..05a668f --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/5mm_SelfTest_20250226_141125.csv @@ -0,0 +1,22 @@ +MeasPlan.Name,5mm_SelfTest +vehiclecode,5 +robot.MessplanID,5 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum, +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +R01,F,0.3,mm,1.0,20250226,141116,best,-0.1,0.1,good,-0.2,0.2,NG,-999.0,999.0 +R01,G,0.1,mm,5.0,20250226,141116,best,-0.1,0.1,good,-0.2,0.2,NG,-999.0,999.0 +L01,F,0.2,mm,1.0,20250226,141122,best,-0.1,0.1,good,-0.2,0.2,NG,-999.0,999.0 +L01,G,0.4,mm,5.0,20250226,141122,best,-0.1,0.1,good,-0.2,0.2,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/5mm_SelfTest_20250304_141005.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/5mm_SelfTest_20250304_141005.csv new file mode 100644 index 0000000..44f6692 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/5mm_SelfTest_20250304_141005.csv @@ -0,0 +1,22 @@ +MeasPlan.Name,5mm_SelfTest +vehiclecode,5 +robot.MessplanID,5 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum, +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +R01,F,1.0,mm,1.0,20250304,141004,best,-0.1,0.1,good,-0.2,0.2,NG,-999.0,999.0 +R01,G,5.1,mm,5.0,20250304,141004,best,-0.1,0.1,good,-0.2,0.2,NG,-999.0,999.0 +L01,F,1.0,mm,1.0,20250304,141002,best,-0.1,0.1,good,-0.2,0.2,NG,-999.0,999.0 +L01,G,5.0,mm,5.0,20250304,141002,best,-0.1,0.1,good,-0.2,0.2,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/BlackLable_HVWJA1ER0R1201164_20240624_134653.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/BlackLable_HVWJA1ER0R1201164_20240624_134653.csv new file mode 100644 index 0000000..a6befba --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/BlackLable_HVWJA1ER0R1201164_20240624_134653.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,BlackLable +prodnum,HVWJA1ER0R1201164 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.81,3,1.80,20240624,134140,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,2.73,3,4.00,20240624,134140,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,2.25,3,3.20,20240624,134201,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,3.81,3,2.00,20240624,134201,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-1.85,3,-1.50,20240624,134251,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.39,3,3.70,20240624,134251,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0044,F,inv.,3,-0.70,20240624,134305,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0044,G,inv.,3,5.00,20240624,134305,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0058,F,0.04,3,0.00,20240624,134318,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.69,3,0.80,20240624,134318,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-1.32,3,-0.70,20240624,134337,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.79,3,5.00,20240624,134337,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.15,3,0.00,20240624,134344,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.19,3,3.50,20240624,134344,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.02,3,-0.50,20240624,134352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.61,3,3.50,20240624,134352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.92,3,-0.50,20240624,134402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.33,3,3.50,20240624,134402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,inv.,3,-2.30,20240624,134411,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,inv.,3,5.80,20240624,134411,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,0.69,3,0.00,20240624,134436,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,3.92,3,5.30,20240624,134436,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-0.88,3,0.00,20240624,134441,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0098,F,-1.63,3,0.00,20240624,134451,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.89,3,4.40,20240624,134451,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-1.88,3,0.00,20240624,134455,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.98,3,4.40,20240624,134455,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-16.06,3,0.10,20240624,134515,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0131,F,-1.36,3,0.00,20240624,134520,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.16,3,3.20,20240624,134520,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-1.51,3,0.00,20240624,134540,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.57,3,3.20,20240624,134540,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.66,3,-1.50,20240624,134547,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.31,3,5.00,20240624,134547,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.08,3,4.80,20240624,134553,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.09,3,4.00,20240624,134553,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.71,3,1.00,20240624,134603,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,3.97,3,4.00,20240624,134603,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,0.26,3,1.80,20240624,133537,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,4.29,3,4.00,20240624,133537,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.00,3,3.20,20240624,133548,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,4.21,3,2.00,20240624,133548,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.79,3,-1.50,20240624,133559,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.84,3,3.70,20240624,133559,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,0.04,3,0.00,20240624,133615,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.11,3,0.80,20240624,133615,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.44,3,-0.70,20240624,133626,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.58,3,5.00,20240624,133626,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.36,3,0.00,20240624,133637,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,5.06,3,3.50,20240624,133637,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.23,3,-0.50,20240624,133651,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.26,3,3.50,20240624,133651,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-0.86,3,-0.50,20240624,133657,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.59,3,3.50,20240624,133657,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240624,133712,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240624,133712,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,-3.05,3,0.00,20240624,133737,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.52,3,5.30,20240624,133737,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.46,3,0.00,20240624,133750,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0098,F,-3.14,3,0.00,20240624,133801,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.11,3,4.40,20240624,133801,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-3.29,3,0.00,20240624,133806,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.28,3,4.40,20240624,133806,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,1.37,3,0.10,20240624,133815,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0131,F,-2.19,3,0.00,20240624,133822,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.51,3,3.20,20240624,133822,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-2.39,3,0.00,20240624,133837,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.45,3,3.20,20240624,133837,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.79,3,-1.50,20240624,133856,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,3.83,3,5.00,20240624,133856,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,-0.11,3,4.80,20240624,133908,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,2.37,3,4.00,20240624,133908,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,-0.48,3,1.00,20240624,134107,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.60,3,4.00,20240624,134107,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0265,F,-0.58,3,-0.70,20240624,134101,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0265,G,inv.,3,5.00,20240624,134101,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/BlackLable_HVWJA1ER9R1201258_20240626_152146.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/BlackLable_HVWJA1ER9R1201258_20240626_152146.csv new file mode 100644 index 0000000..a9ac727 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/BlackLable_HVWJA1ER9R1201258_20240626_152146.csv @@ -0,0 +1,15 @@ +MeasPlan.Name,BlackLable +prodnum,HVWJA1ER9R1201258 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.67,3,1.80,20240626,152124,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.47,3,4.00,20240626,152124,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,-2.58,3,3.20,20240626,152129,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,3.49,3,2.00,20240626,152129,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,2.47,3,-1.50,20240626,152134,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.70,3,3.70,20240626,152134,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0020,F,0.92,3,1.80,20240626,152044,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,3.46,3,4.00,20240626,152044,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,-2.62,3,3.20,20240626,152047,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,4.45,3,2.00,20240626,152047,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.57,3,-1.50,20240626,152052,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.97,3,3.70,20240626,152052,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEH3_20240824_111909.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEH3_20240824_111909.csv new file mode 100644 index 0000000..4479797 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEH3_20240824_111909.csv @@ -0,0 +1,64 @@ +MeasPlan.Name,CherryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000online +Part_name,123 +prodnum,NNACDEB4RDA17976 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.235,mm,best,-0.500,20240824,111837,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.379,mm,best,3.250,20240824,111837,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-02,F,-1.234,mm,best,-0.700,20240824,111839,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.069,mm,best,3.250,20240824,111839,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-03,F,0.132,mm,NG,-1.500,20240824,111842,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,2.924,mm,best,3.250,20240824,111842,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-07,G,3.170,mm,NG,0.000,20240824,111845,best,1.150,2.850,good,1.000,3.000,NG,-999.000,999.000 +L-04,F,-0.245,mm,best,0.250,20240824,111848,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-04,G,2.647,mm,best,2.950,20240824,111848,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +L-05,F,0.492,mm,best,0.000,20240824,111850,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-05,G,3.204,mm,best,3.300,20240824,111850,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-06,F,-0.051,mm,best,0.000,20240824,111853,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-06,G,3.889,mm,best,3.600,20240824,111853,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-10,F,-0.959,mm,best,-0.750,20240824,111856,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-10,G,3.663,mm,best,3.400,20240824,111856,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-09,F,0.275,mm,best,0.000,20240824,111859,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-09,G,3.868,mm,best,3.800,20240824,111859,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-08,F,0.594,mm,best,0.700,20240824,111901,best,-0.675,0.675,good,-0.900,0.900,NG,-999.000,999.000 +L-08,G,4.054,mm,good,3.550,20240824,111901,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +L-12,F,0.532,mm,best,0.750,20240824,111904,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-12,G,4.074,mm,best,3.700,20240824,111904,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-13,F,-0.194,mm,best,-0.200,20240824,111907,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-13,G,4.073,mm,best,3.750,20240824,111907,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-01,F,-1.105,mm,best,-0.500,20240824,111837,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,2.854,mm,best,3.250,20240824,111837,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-02,F,-0.708,mm,best,-0.700,20240824,111840,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,2.962,mm,best,3.250,20240824,111840,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-03,F,0.971,mm,NG,-1.500,20240824,111842,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,2.540,mm,best,3.250,20240824,111842,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-07,G,2.220,mm,best,0.000,20240824,111845,best,1.150,2.850,good,1.000,3.000,NG,-999.000,999.000 +R-04,F,0.361,mm,best,0.250,20240824,111848,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-04,G,3.226,mm,best,2.950,20240824,111848,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +R-05,F,-0.242,mm,best,0.000,20240824,111851,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-05,G,3.690,mm,best,3.300,20240824,111851,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-06,F,0.444,mm,best,0.000,20240824,111853,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-06,G,3.710,mm,best,3.600,20240824,111853,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-10,F,-1.430,mm,good,-0.750,20240824,111856,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-10,G,3.616,mm,best,3.400,20240824,111856,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-09,F,-0.175,mm,best,0.000,20240824,111859,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-09,G,3.381,mm,best,3.800,20240824,111859,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-08,F,0.823,mm,best,0.700,20240824,111901,best,-0.675,0.675,good,-0.900,0.900,NG,-999.000,999.000 +R-08,G,3.954,mm,best,3.550,20240824,111901,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +R-12,F,1.241,mm,best,0.750,20240824,111904,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-12,G,3.607,mm,best,3.700,20240824,111904,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-13,F,-0.386,mm,best,-0.200,20240824,111908,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-13,G,3.683,mm,best,3.750,20240824,111908,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEH3_20240824_122508.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEH3_20240824_122508.csv new file mode 100644 index 0000000..e8db176 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEH3_20240824_122508.csv @@ -0,0 +1,64 @@ +MeasPlan.Name,CherryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000online +Part_name,123 +prodnum,NNACDEB5RDA17985 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.705,mm,best,-0.500,20240824,122436,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.324,mm,best,3.250,20240824,122436,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-02,F,-1.174,mm,best,-0.700,20240824,122439,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.124,mm,best,3.250,20240824,122439,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-03,F,-0.711,mm,good,-1.500,20240824,122441,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.116,mm,best,3.250,20240824,122441,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-07,G,2.312,mm,best,0.000,20240824,122444,best,1.150,2.850,good,1.000,3.000,NG,-999.000,999.000 +L-04,F,0.109,mm,best,0.250,20240824,122447,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-04,G,2.868,mm,best,2.950,20240824,122447,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +L-05,F,0.364,mm,best,0.000,20240824,122449,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-05,G,3.134,mm,best,3.300,20240824,122449,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-06,F,0.039,mm,best,0.000,20240824,122452,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-06,G,3.965,mm,best,3.600,20240824,122452,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-10,F,-1.213,mm,best,-0.750,20240824,122455,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-10,G,3.635,mm,best,3.400,20240824,122455,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-09,F,-0.126,mm,best,0.000,20240824,122457,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-09,G,3.795,mm,best,3.800,20240824,122457,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-08,F,0.692,mm,best,0.700,20240824,122500,best,-0.675,0.675,good,-0.900,0.900,NG,-999.000,999.000 +L-08,G,4.011,mm,best,3.550,20240824,122500,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +L-12,F,0.286,mm,best,0.750,20240824,122503,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-12,G,4.167,mm,best,3.700,20240824,122503,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-13,F,-0.061,mm,best,-0.200,20240824,122506,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-13,G,4.219,mm,best,3.750,20240824,122506,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-01,F,-0.882,mm,best,-0.500,20240824,122436,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,2.692,mm,best,3.250,20240824,122436,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-02,F,-0.696,mm,best,-0.700,20240824,122439,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,2.928,mm,best,3.250,20240824,122439,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-03,F,1.142,mm,NG,-1.500,20240824,122441,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,2.647,mm,best,3.250,20240824,122441,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-07,G,2.581,mm,best,0.000,20240824,122444,best,1.150,2.850,good,1.000,3.000,NG,-999.000,999.000 +R-04,F,0.532,mm,best,0.250,20240824,122447,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-04,G,3.294,mm,best,2.950,20240824,122447,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +R-05,F,-0.332,mm,best,0.000,20240824,122450,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-05,G,3.673,mm,best,3.300,20240824,122450,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-06,F,0.314,mm,best,0.000,20240824,122452,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-06,G,3.641,mm,best,3.600,20240824,122452,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-10,F,-1.399,mm,good,-0.750,20240824,122455,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-10,G,3.841,mm,best,3.400,20240824,122455,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-09,F,-0.301,mm,best,0.000,20240824,122458,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-09,G,3.278,mm,best,3.800,20240824,122458,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-08,F,0.634,mm,best,0.700,20240824,122500,best,-0.675,0.675,good,-0.900,0.900,NG,-999.000,999.000 +R-08,G,3.291,mm,best,3.550,20240824,122500,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +R-12,F,0.895,mm,best,0.750,20240824,122504,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-12,G,3.311,mm,best,3.700,20240824,122504,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-13,F,-0.516,mm,best,-0.200,20240824,122507,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-13,G,3.816,mm,best,3.750,20240824,122507,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_212406.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_212406.csv new file mode 100644 index 0000000..6645165 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_212406.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBBDEC4RDA18027 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.691,mm,best,-0.700,20240827,212332,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.725,mm,best,3.300,20240827,212332,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-0.779,mm,best,-0.700,20240827,212334,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.685,mm,best,3.300,20240827,212334,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,-0.640,mm,best,0.000,20240827,212337,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.639,mm,best,3.500,20240827,212337,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,inv.,mm,UNCLASSIFIED,2.000,20240827,212339,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.007,mm,best,2.000,20240827,212342,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,-0.080,mm,best,0.200,20240827,212345,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.732,mm,best,3.300,20240827,212345,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,-0.013,mm,best,0.200,20240827,212348,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.342,mm,best,3.500,20240827,212348,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,-0.070,mm,best,0.200,20240827,212350,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.828,mm,best,3.900,20240827,212350,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,-0.242,mm,best,-0.500,20240827,212353,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,4.078,mm,best,3.800,20240827,212353,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.276,mm,best,0.200,20240827,212355,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,3.953,mm,best,3.800,20240827,212355,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,1.183,mm,good,0.600,20240827,212358,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,3.779,mm,best,4.200,20240827,212358,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,1.605,mm,NG,0.600,20240827,212400,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.575,mm,best,3.700,20240827,212400,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.527,mm,NG,0.200,20240827,212403,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,4.143,mm,best,3.700,20240827,212403,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,-0.540,mm,best,-0.700,20240827,212332,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.402,mm,best,3.300,20240827,212332,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.289,mm,best,-0.700,20240827,212334,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.319,mm,best,3.300,20240827,212334,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,0.019,mm,best,0.000,20240827,212337,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,3.252,mm,best,3.500,20240827,212337,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,2.453,mm,best,2.000,20240827,212339,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,3.213,mm,NG,2.000,20240827,212342,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,-0.283,mm,good,0.200,20240827,212345,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.337,mm,best,3.300,20240827,212345,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,0.248,mm,best,0.200,20240827,212347,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.892,mm,best,3.500,20240827,212347,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.300,mm,best,0.200,20240827,212349,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,3.905,mm,best,3.900,20240827,212349,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,0.322,mm,NG,-0.500,20240827,212352,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.046,mm,NG,3.800,20240827,212352,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.467,mm,best,0.200,20240827,212355,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.585,mm,best,3.800,20240827,212355,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,0.885,mm,best,0.600,20240827,212358,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,3.960,mm,best,4.200,20240827,212358,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.112,mm,good,0.600,20240827,212401,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.595,mm,best,3.700,20240827,212401,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.126,mm,best,0.200,20240827,212404,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.519,mm,best,3.700,20240827,212404,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_221953.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_221953.csv new file mode 100644 index 0000000..c89ccfb --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_221953.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBBDEC4RDA18030 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-1.392,mm,best,-0.700,20240827,221920,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.456,mm,best,3.300,20240827,221920,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-1.067,mm,best,-0.700,20240827,221923,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.504,mm,best,3.300,20240827,221923,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,0.017,mm,best,0.000,20240827,221925,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.325,mm,best,3.500,20240827,221925,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,2.571,mm,best,2.000,20240827,221928,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.985,mm,good,2.000,20240827,221930,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,-0.014,mm,best,0.200,20240827,221933,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.562,mm,best,3.300,20240827,221933,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,-0.106,mm,best,0.200,20240827,221935,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.258,mm,best,3.500,20240827,221935,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,-0.567,mm,NG,0.200,20240827,221938,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.763,mm,best,3.900,20240827,221938,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,0.036,mm,good,-0.500,20240827,221941,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,3.951,mm,best,3.800,20240827,221941,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.884,mm,NG,0.200,20240827,221943,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,3.913,mm,best,3.800,20240827,221943,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,0.777,mm,best,0.600,20240827,221946,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,3.903,mm,best,4.200,20240827,221946,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,1.472,mm,NG,0.600,20240827,221948,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.430,mm,best,3.700,20240827,221948,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.209,mm,best,0.200,20240827,221951,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,3.956,mm,best,3.700,20240827,221951,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,-0.979,mm,best,-0.700,20240827,221920,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.115,mm,best,3.300,20240827,221920,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.842,mm,best,-0.700,20240827,221922,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.208,mm,best,3.300,20240827,221922,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,-0.243,mm,best,0.000,20240827,221925,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,3.035,mm,best,3.500,20240827,221925,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,2.566,mm,best,2.000,20240827,221928,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,3.103,mm,NG,2.000,20240827,221930,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,0.207,mm,best,0.200,20240827,221932,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.169,mm,best,3.300,20240827,221932,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,-0.110,mm,best,0.200,20240827,221935,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.858,mm,best,3.500,20240827,221935,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.696,mm,good,0.200,20240827,221937,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,3.879,mm,best,3.900,20240827,221937,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,0.028,mm,good,-0.500,20240827,221940,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.094,mm,NG,3.800,20240827,221940,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.481,mm,best,0.200,20240827,221943,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.524,mm,best,3.800,20240827,221943,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,1.228,mm,NG,0.600,20240827,221946,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,3.708,mm,good,4.200,20240827,221946,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.359,mm,NG,0.600,20240827,221949,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.641,mm,best,3.700,20240827,221949,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.110,mm,best,0.200,20240827,221952,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.523,mm,best,3.700,20240827,221952,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_224321.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_224321.csv new file mode 100644 index 0000000..68bd928 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240827_224321.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBBDEC1RDA18034 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,0.218,mm,good,-0.700,20240827,224247,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.586,mm,best,3.300,20240827,224247,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-0.279,mm,best,-0.700,20240827,224249,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.710,mm,best,3.300,20240827,224249,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,-0.624,mm,best,0.000,20240827,224252,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.372,mm,best,3.500,20240827,224252,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,3.008,mm,NG,2.000,20240827,224254,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.771,mm,good,2.000,20240827,224257,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,-0.009,mm,best,0.200,20240827,224300,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.606,mm,best,3.300,20240827,224300,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,-0.210,mm,best,0.200,20240827,224302,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.487,mm,best,3.500,20240827,224302,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,-0.249,mm,best,0.200,20240827,224305,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.760,mm,best,3.900,20240827,224305,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,0.113,mm,NG,-0.500,20240827,224308,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,3.798,mm,best,3.800,20240827,224308,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.142,mm,best,0.200,20240827,224310,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,3.828,mm,best,3.800,20240827,224310,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,1.092,mm,good,0.600,20240827,224313,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,3.749,mm,good,4.200,20240827,224313,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,1.445,mm,NG,0.600,20240827,224315,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.505,mm,best,3.700,20240827,224315,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.374,mm,good,0.200,20240827,224318,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,4.189,mm,good,3.700,20240827,224318,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,-0.674,mm,best,-0.700,20240827,224247,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.303,mm,best,3.300,20240827,224247,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.505,mm,best,-0.700,20240827,224249,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.443,mm,best,3.300,20240827,224249,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,0.251,mm,best,0.000,20240827,224252,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,3.091,mm,best,3.500,20240827,224252,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,2.880,mm,good,2.000,20240827,224254,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,inv.,mm,UNCLASSIFIED,2.000,20240827,224257,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,-0.244,mm,best,0.200,20240827,224259,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.225,mm,best,3.300,20240827,224259,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,-0.091,mm,best,0.200,20240827,224302,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.898,mm,best,3.500,20240827,224302,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.929,mm,NG,0.200,20240827,224304,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,3.953,mm,best,3.900,20240827,224304,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,-0.045,mm,good,-0.500,20240827,224307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.539,mm,best,3.800,20240827,224307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.074,mm,best,0.200,20240827,224310,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.598,mm,best,3.800,20240827,224310,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,0.928,mm,best,0.600,20240827,224313,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,3.493,mm,NG,4.200,20240827,224313,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.282,mm,NG,0.600,20240827,224316,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.510,mm,best,3.700,20240827,224316,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.017,mm,best,0.200,20240827,224319,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.565,mm,best,3.700,20240827,224319,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240828_090327.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240828_090327.csv new file mode 100644 index 0000000..61ec1ff --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240828_090327.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBDDEF9RDA18013 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.044,mm,best,-0.700,20240828,090253,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.767,mm,best,3.300,20240828,090253,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-0.351,mm,best,-0.700,20240828,090256,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.569,mm,best,3.300,20240828,090256,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,-0.586,mm,best,0.000,20240828,090259,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.388,mm,best,3.500,20240828,090259,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,2.290,mm,best,2.000,20240828,090301,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.323,mm,best,2.000,20240828,090304,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,0.276,mm,best,0.200,20240828,090307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.572,mm,best,3.300,20240828,090307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,0.149,mm,best,0.200,20240828,090309,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.246,mm,best,3.500,20240828,090309,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,-0.059,mm,best,0.200,20240828,090312,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.900,mm,best,3.900,20240828,090312,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,-0.552,mm,best,-0.500,20240828,090314,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,3.899,mm,best,3.800,20240828,090314,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.021,mm,best,0.200,20240828,090317,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,4.128,mm,best,3.800,20240828,090317,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,1.387,mm,NG,0.600,20240828,090320,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,4.286,mm,best,4.200,20240828,090320,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,0.830,mm,best,0.600,20240828,090322,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.592,mm,best,3.700,20240828,090322,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.483,mm,NG,0.200,20240828,090325,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,4.149,mm,best,3.700,20240828,090325,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,0.002,mm,best,-0.700,20240828,090254,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.378,mm,best,3.300,20240828,090254,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.709,mm,best,-0.700,20240828,090256,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.325,mm,best,3.300,20240828,090256,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,0.527,mm,best,0.000,20240828,090259,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,2.829,mm,good,3.500,20240828,090259,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,2.653,mm,best,2.000,20240828,090302,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,2.932,mm,good,2.000,20240828,090304,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,0.138,mm,best,0.200,20240828,090307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.408,mm,best,3.300,20240828,090307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,0.001,mm,best,0.200,20240828,090309,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.864,mm,best,3.500,20240828,090309,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.711,mm,good,0.200,20240828,090312,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,3.907,mm,best,3.900,20240828,090312,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,0.216,mm,NG,-0.500,20240828,090314,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.579,mm,best,3.800,20240828,090314,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.506,mm,best,0.200,20240828,090317,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.851,mm,best,3.800,20240828,090317,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,1.042,mm,best,0.600,20240828,090320,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,4.022,mm,best,4.200,20240828,090320,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.551,mm,NG,0.600,20240828,090323,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.677,mm,best,3.700,20240828,090323,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.284,mm,best,0.200,20240828,090326,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.802,mm,best,3.700,20240828,090326,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240828_091213.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240828_091213.csv new file mode 100644 index 0000000..c2881a5 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CherryEHY_20240828_091213.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBBDEC8RDA18015 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-1.448,mm,best,-0.700,20240828,091140,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.569,mm,best,3.300,20240828,091140,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-1.770,mm,NG,-0.700,20240828,091142,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.445,mm,best,3.300,20240828,091142,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,0.352,mm,best,0.000,20240828,091145,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.224,mm,best,3.500,20240828,091145,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,2.680,mm,best,2.000,20240828,091148,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.521,mm,best,2.000,20240828,091152,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,0.080,mm,best,0.200,20240828,091154,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.796,mm,good,3.300,20240828,091154,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,-0.057,mm,best,0.200,20240828,091157,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.504,mm,best,3.500,20240828,091157,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,0.016,mm,best,0.200,20240828,091159,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.913,mm,best,3.900,20240828,091159,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,-0.570,mm,best,-0.500,20240828,091202,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,3.787,mm,best,3.800,20240828,091202,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.389,mm,best,0.200,20240828,091204,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,3.871,mm,best,3.800,20240828,091204,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,0.764,mm,best,0.600,20240828,091207,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,3.819,mm,best,4.200,20240828,091207,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,1.321,mm,NG,0.600,20240828,091210,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.646,mm,best,3.700,20240828,091210,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.794,mm,NG,0.200,20240828,091212,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,4.250,mm,good,3.700,20240828,091212,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,-0.648,mm,best,-0.700,20240828,091140,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.368,mm,best,3.300,20240828,091140,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.400,mm,best,-0.700,20240828,091142,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.537,mm,best,3.300,20240828,091142,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,-0.386,mm,best,0.000,20240828,091145,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,2.269,mm,NG,3.500,20240828,091145,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,3.084,mm,NG,2.000,20240828,091148,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,2.910,mm,good,2.000,20240828,091150,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,-0.391,mm,good,0.200,20240828,091153,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.106,mm,best,3.300,20240828,091153,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,0.098,mm,best,0.200,20240828,091155,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.868,mm,best,3.500,20240828,091155,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.486,mm,best,0.200,20240828,091158,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,4.330,mm,best,3.900,20240828,091158,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,-0.089,mm,best,-0.500,20240828,091200,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.070,mm,NG,3.800,20240828,091200,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.381,mm,best,0.200,20240828,091202,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.491,mm,best,3.800,20240828,091202,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,1.094,mm,good,0.600,20240828,091205,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,3.594,mm,NG,4.200,20240828,091205,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.170,mm,good,0.600,20240828,091209,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.773,mm,best,3.700,20240828,091209,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.269,mm,best,0.200,20240828,091212,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.743,mm,best,3.700,20240828,091212,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241125_163248.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241125_163248.csv new file mode 100644 index 0000000..c0cc85a --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241125_163248.csv @@ -0,0 +1,74 @@ +MeasPlan.Name,CheryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000FAonline +Part_name,123 +prodnum,NNACDEC6RDA37462 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-1.2,mm,0.0,20241125,163130,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.7,mm,0.0,20241125,163130,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-1.8,mm,0.0,20241125,163133,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,3.2,mm,0.0,20241125,163133,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-03,F,-1.2,mm,0.0,20241125,163135,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,3.2,mm,0.0,20241125,163135,best,2.4,3.8,good,-3.0,5.0,NG,-999.0,999.0 +L-04,F,-0.0,mm,0.0,20241125,163140,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,2.7,mm,0.0,20241125,163140,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-06,F,0.5,mm,0.0,20241125,163143,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-06,G,2.9,mm,0.0,20241125,163143,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-10,F,0.0,mm,0.0,20241125,163157,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-10,G,3.6,mm,0.0,20241125,163157,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-08,F,0.5,mm,0.0,20241125,163200,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-08,G,3.3,mm,0.0,20241125,163200,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-12,F,-0.2,mm,0.0,20241125,163221,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-12,G,3.6,mm,0.0,20241125,163221,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-13,F,0.1,mm,0.0,20241125,163224,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-13,G,3.5,mm,0.0,20241125,163224,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-21,F,-0.6,mm,0.0,20241125,163230,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,3.0,mm,0.0,20241125,163230,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-22,F,0.3,mm,0.0,20241125,163233,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,1.4,mm,0.0,20241125,163233,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-14,F,-1.3,mm,0.0,20241125,163237,best,-2.4,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-14,G,2.3,mm,0.0,20241125,163237,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-0.8,mm,0.0,20241125,163241,best,-2.0,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-15,G,3.9,mm,0.0,20241125,163241,best,2.7,2.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-1.6,mm,0.0,20241125,163244,best,-2.0,0.0,good,-4.0,2.0,NG,-999.0,999.0 +L-16,G,2.9,mm,0.0,20241125,163244,best,2.7,4.7,good,0.0,6.0,NG,-999.0,999.0 +L-18,F,-2.3,mm,0.0,20241125,163247,best,-2.7,0.7,good,-5.0,2.0,NG,-999.0,999.0 +L-18,G,inv.,mm,0.0,20241125,163247,best,2.6,5.0,good,0.0,6.0,NG,-999.0,999.0 +R-01,F,-1.0,mm,0.0,20241125,163131,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +R-01,G,3.8,mm,0.0,20241125,163131,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +R-02,F,-1.4,mm,0.0,20241125,163134,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +R-02,G,3.5,mm,0.0,20241125,163134,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +R-03,F,-1.5,mm,0.0,20241125,163138,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +R-03,G,3.0,mm,0.0,20241125,163138,best,2.4,3.8,good,-3.0,5.0,NG,-999.0,999.0 +R-04,F,0.6,mm,0.0,20241125,163143,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-04,G,2.6,mm,0.0,20241125,163143,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +R-06,F,1.1,mm,0.0,20241125,163146,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-06,G,3.2,mm,0.0,20241125,163146,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +R-10,F,0.4,mm,0.0,20241125,163157,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-10,G,3.5,mm,0.0,20241125,163157,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +R-08,F,0.2,mm,0.0,20241125,163201,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-08,G,3.5,mm,0.0,20241125,163201,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +R-12,F,-0.0,mm,0.0,20241125,163222,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-12,G,3.2,mm,0.0,20241125,163222,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +R-13,F,0.2,mm,0.0,20241125,163226,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-13,G,3.4,mm,0.0,20241125,163226,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +R-14,F,-1.8,mm,0.0,20241125,163234,best,-2.4,0.7,good,-4.0,2.0,NG,-999.0,999.0 +R-14,G,3.7,mm,0.0,20241125,163234,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-15,F,0.0,mm,0.0,20241125,163237,best,-2.0,0.7,good,-4.0,2.0,NG,-999.0,999.0 +R-15,G,4.0,mm,0.0,20241125,163237,best,2.7,2.7,good,1.0,6.0,NG,-999.0,999.0 +R-16,F,-1.1,mm,0.0,20241125,163241,best,-2.0,0.0,good,-4.0,2.0,NG,-999.0,999.0 +R-16,G,3.8,mm,0.0,20241125,163241,best,2.7,4.7,good,0.0,6.0,NG,-999.0,999.0 +R-18,F,2.0,mm,0.0,20241125,163245,best,-2.7,0.7,good,-5.0,2.0,NG,-999.0,999.0 +R-18,G,3.4,mm,0.0,20241125,163245,best,2.6,5.0,good,0.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_010605.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_010605.csv new file mode 100644 index 0000000..3a56404 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_010605.csv @@ -0,0 +1,48 @@ +MeasPlan.Name,CheryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000FAonline +Part_name,123 +prodnum,NNACDEC7RDA51631 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.7,mm,0.0,20241222,010507,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.2,mm,0.0,20241222,010507,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-1.4,mm,0.0,20241222,010510,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,2.8,mm,0.0,20241222,010510,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-03,F,-1.4,mm,0.0,20241222,010513,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,3.1,mm,0.0,20241222,010513,best,2.4,3.8,good,-3.0,5.0,NG,-999.0,999.0 +L-04,F,-0.1,mm,0.0,20241222,010517,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,3.1,mm,0.0,20241222,010517,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-06,F,1.2,mm,0.0,20241222,010520,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-06,G,3.3,mm,0.0,20241222,010520,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-10,F,-0.8,mm,0.0,20241222,010525,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-10,G,3.3,mm,0.0,20241222,010525,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-08,F,0.3,mm,0.0,20241222,010528,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-08,G,3.0,mm,0.0,20241222,010528,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-12,F,-0.3,mm,0.0,20241222,010542,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-12,G,3.9,mm,0.0,20241222,010542,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-13,F,-0.2,mm,0.0,20241222,010545,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-13,G,4.0,mm,0.0,20241222,010545,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-21,F,-0.1,mm,0.0,20241222,010548,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.6,mm,0.0,20241222,010548,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-22,F,-0.9,mm,0.0,20241222,010551,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,2.0,mm,0.0,20241222,010551,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-14,F,-0.1,mm,0.0,20241222,010555,best,-2.4,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-14,G,4.7,mm,0.0,20241222,010555,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-0.2,mm,0.0,20241222,010558,best,-2.0,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-15,G,4.9,mm,0.0,20241222,010558,best,2.7,2.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-0.3,mm,0.0,20241222,010601,best,-2.0,0.0,good,-4.0,2.0,NG,-999.0,999.0 +L-16,G,3.7,mm,0.0,20241222,010601,best,2.7,4.7,good,0.0,6.0,NG,-999.0,999.0 +L-18,F,-1.6,mm,0.0,20241222,010604,best,-2.7,0.7,good,-5.0,2.0,NG,-999.0,999.0 +L-18,G,4.6,mm,0.0,20241222,010604,best,2.6,5.0,good,0.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_010750.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_010750.csv new file mode 100644 index 0000000..839886a --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_010750.csv @@ -0,0 +1,48 @@ +MeasPlan.Name,CheryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000FAonline +Part_name,123 +prodnum,NNACDEC0RDA51647 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.6,mm,0.0,20241222,010652,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.0,mm,0.0,20241222,010652,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-1.6,mm,0.0,20241222,010655,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,2.6,mm,0.0,20241222,010655,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-03,F,-1.4,mm,0.0,20241222,010658,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,2.8,mm,0.0,20241222,010658,best,2.4,3.8,good,-3.0,5.0,NG,-999.0,999.0 +L-04,F,0.2,mm,0.0,20241222,010702,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,3.0,mm,0.0,20241222,010702,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-06,F,1.6,mm,0.0,20241222,010705,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-06,G,3.3,mm,0.0,20241222,010705,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-10,F,-1.1,mm,0.0,20241222,010709,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-10,G,3.4,mm,0.0,20241222,010709,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-08,F,1.0,mm,0.0,20241222,010713,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-08,G,3.5,mm,0.0,20241222,010713,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-12,F,-0.2,mm,0.0,20241222,010726,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-12,G,3.8,mm,0.0,20241222,010726,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-13,F,0.5,mm,0.0,20241222,010729,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-13,G,3.7,mm,0.0,20241222,010729,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-21,F,-0.2,mm,0.0,20241222,010733,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.6,mm,0.0,20241222,010733,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-22,F,-0.1,mm,0.0,20241222,010736,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,1.8,mm,0.0,20241222,010736,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-14,F,-0.8,mm,0.0,20241222,010740,best,-2.4,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-14,G,4.4,mm,0.0,20241222,010740,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-1.5,mm,0.0,20241222,010743,best,-2.0,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-15,G,4.5,mm,0.0,20241222,010743,best,2.7,2.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-0.7,mm,0.0,20241222,010746,best,-2.0,0.0,good,-4.0,2.0,NG,-999.0,999.0 +L-16,G,3.6,mm,0.0,20241222,010746,best,2.7,4.7,good,0.0,6.0,NG,-999.0,999.0 +L-18,F,-1.6,mm,0.0,20241222,010749,best,-2.7,0.7,good,-5.0,2.0,NG,-999.0,999.0 +L-18,G,4.1,mm,0.0,20241222,010749,best,2.6,5.0,good,0.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_023436.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_023436.csv new file mode 100644 index 0000000..edc5e10 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_023436.csv @@ -0,0 +1,48 @@ +MeasPlan.Name,CheryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000FAonline +Part_name,123 +prodnum,NNACDEB0RDA50893 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.4,mm,0.0,20241222,023337,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.8,mm,0.0,20241222,023337,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-1.2,mm,0.0,20241222,023341,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,3.4,mm,0.0,20241222,023341,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-03,F,-1.2,mm,0.0,20241222,023343,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,3.4,mm,0.0,20241222,023343,best,2.4,3.8,good,-3.0,5.0,NG,-999.0,999.0 +L-04,F,-0.1,mm,0.0,20241222,023347,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,4.0,mm,0.0,20241222,023347,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-06,F,0.8,mm,0.0,20241222,023350,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-06,G,3.5,mm,0.0,20241222,023350,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-10,F,-1.0,mm,0.0,20241222,023356,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-10,G,3.3,mm,0.0,20241222,023356,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-08,F,0.5,mm,0.0,20241222,023359,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-08,G,2.7,mm,0.0,20241222,023359,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-12,F,0.1,mm,0.0,20241222,023413,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-12,G,3.6,mm,0.0,20241222,023413,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-13,F,0.8,mm,0.0,20241222,023416,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-13,G,3.7,mm,0.0,20241222,023416,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-21,F,-0.4,mm,0.0,20241222,023420,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.4,mm,0.0,20241222,023420,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-22,F,-0.6,mm,0.0,20241222,023423,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,1.9,mm,0.0,20241222,023423,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-14,F,-1.2,mm,0.0,20241222,023426,best,-2.4,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-14,G,4.9,mm,0.0,20241222,023426,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-0.6,mm,0.0,20241222,023429,best,-2.0,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-15,G,4.9,mm,0.0,20241222,023429,best,2.7,2.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-1.4,mm,0.0,20241222,023432,best,-2.0,0.0,good,-4.0,2.0,NG,-999.0,999.0 +L-16,G,3.9,mm,0.0,20241222,023432,best,2.7,4.7,good,0.0,6.0,NG,-999.0,999.0 +L-18,F,inv.,mm,0.0,20241222,023435,best,-2.7,0.7,good,-5.0,2.0,NG,-999.0,999.0 +L-18,G,inv.,mm,0.0,20241222,023435,best,2.6,5.0,good,0.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_124000.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_124000.csv new file mode 100644 index 0000000..467157a --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEH3_20241222_124000.csv @@ -0,0 +1,48 @@ +MeasPlan.Name,CheryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000FAonline +Part_name,123 +prodnum,NNACDEC4RDA51862 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.6,mm,0.0,20241222,123903,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.7,mm,0.0,20241222,123903,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-1.3,mm,0.0,20241222,123906,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,3.6,mm,0.0,20241222,123906,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-03,F,-0.8,mm,0.0,20241222,123909,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,4.0,mm,0.0,20241222,123909,best,2.4,3.8,good,-3.0,5.0,NG,-999.0,999.0 +L-04,F,-0.3,mm,0.0,20241222,123913,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,2.7,mm,0.0,20241222,123913,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-06,F,1.3,mm,0.0,20241222,123916,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-06,G,3.1,mm,0.0,20241222,123916,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-10,F,-0.7,mm,0.0,20241222,123920,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-10,G,3.4,mm,0.0,20241222,123920,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-08,F,0.5,mm,0.0,20241222,123923,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-08,G,3.1,mm,0.0,20241222,123923,best,3.0,4.2,good,1.0,5.0,NG,-999.0,999.0 +L-12,F,-0.1,mm,0.0,20241222,123937,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-12,G,3.6,mm,0.0,20241222,123937,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-13,F,-0.0,mm,0.0,20241222,123940,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-13,G,3.3,mm,0.0,20241222,123940,best,2.7,3.9,good,1.0,5.0,NG,-999.0,999.0 +L-21,F,-0.6,mm,0.0,20241222,123944,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.6,mm,0.0,20241222,123944,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-22,F,-0.3,mm,0.0,20241222,123946,best,-1.0,0.0,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,1.9,mm,0.0,20241222,123946,best,1.8,2.8,good,1.0,5.0,NG,-999.0,999.0 +L-14,F,-1.7,mm,0.0,20241222,123950,best,-2.4,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-14,G,3.4,mm,0.0,20241222,123950,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-0.1,mm,0.0,20241222,123953,best,-2.0,0.7,good,-4.0,2.0,NG,-999.0,999.0 +L-15,G,4.0,mm,0.0,20241222,123953,best,2.7,2.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-0.3,mm,0.0,20241222,123956,best,-2.0,0.0,good,-4.0,2.0,NG,-999.0,999.0 +L-16,G,3.1,mm,0.0,20241222,123956,best,2.7,4.7,good,0.0,6.0,NG,-999.0,999.0 +L-18,F,-1.3,mm,0.0,20241222,123959,best,-2.7,0.7,good,-5.0,2.0,NG,-999.0,999.0 +L-18,G,3.7,mm,0.0,20241222,123959,best,2.6,5.0,good,0.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20240907_205526.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20240907_205526.csv new file mode 100644 index 0000000..a56392b --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20240907_205526.csv @@ -0,0 +1,70 @@ +MeasPlan.Name,CheryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,LNNBBDEC5RDA18120 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-19,F,0.3,mm,0.0,20240907,153951,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-19,G,3.8,mm,0.0,20240907,153951,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-01,F,0.3,mm,0.0,20240907,154057,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.7,mm,0.0,20240907,154057,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-0.4,mm,0.0,20240907,154448,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,2.9,mm,0.0,20240907,154448,best,2.4,3.8,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-0.6,mm,0.0,20240907,155051,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,3.4,mm,0.0,20240907,155051,best,2.6,4.0,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,0.3,mm,0.0,20240907,160804,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,2.7,mm,0.0,20240907,160804,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,0.3,mm,0.0,20240907,161124,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.5,mm,0.0,20240907,161124,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,1.0,mm,0.0,20240907,161451,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,3.1,mm,0.0,20240907,161451,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.1,mm,0.0,20240907,161901,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.7,mm,0.0,20240907,161901,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,0.1,mm,0.0,20240907,202933,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,2.4,mm,0.0,20240907,202933,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,0.3,mm,0.0,20240907,203417,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,3.8,mm,0.0,20240907,203417,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-0.8,mm,0.0,20240907,203730,best,-0.9,0.1,good,-4.0,1.0,NG,-999.0,999.0 +L-21,G,2.4,mm,0.0,20240907,203730,best,1.8,2.8,good,1.0,9.0,NG,-999.0,999.0 +L-22,F,0.1,mm,0.0,20240907,204024,best,-0.9,0.1,good,-4.0,1.0,NG,-999.0,999.0 +L-22,G,2.0,mm,0.0,20240907,204024,best,1.8,2.8,good,1.0,9.0,NG,-999.0,999.0 +L-14,F,-2.1,mm,0.0,20240907,204453,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +L-14,G,3.5,mm,0.0,20240907,204453,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-1.3,mm,0.0,20240907,204809,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +L-15,G,3.4,mm,0.0,20240907,204809,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-1.5,mm,0.0,20240907,205219,best,-3.0,0.2,good,-4.0,1.0,NG,-999.0,999.0 +L-16,G,3.8,mm,0.0,20240907,205219,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,-1.6,mm,0.0,20240907,205501,best,0.5,2.5,good,0.0,4.0,NG,-999.0,999.0 +L-18,G,4.0,mm,0.0,20240907,205501,best,2.6,5.0,good,1.0,6.0,NG,-999.0,999.0 +R-04,F,-0.0,mm,0.0,20240907,163310,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-04,G,3.7,mm,0.0,20240907,163310,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-06,F,-0.2,mm,0.0,20240907,163904,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-06,G,3.6,mm,0.0,20240907,163904,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-10,F,0.1,mm,0.0,20240907,164243,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-10,G,3.4,mm,0.0,20240907,164243,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-08,F,-0.0,mm,0.0,20240907,164901,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-08,G,3.6,mm,0.0,20240907,164901,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-12,F,0.4,mm,0.0,20240907,192336,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-12,G,3.7,mm,0.0,20240907,192336,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-13,F,0.3,mm,0.0,20240907,192930,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-13,G,3.3,mm,0.0,20240907,192930,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-14,F,-1.3,mm,0.0,20240907,194327,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +R-14,G,3.5,mm,0.0,20240907,194327,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-15,F,-1.8,mm,0.0,20240907,194314,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +R-15,G,3.2,mm,0.0,20240907,194314,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-16,F,-1.6,mm,0.0,20240907,194227,best,-3.0,0.2,good,-4.0,1.0,NG,-999.0,999.0 +R-16,G,3.1,mm,0.0,20240907,194227,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-18,F,-2.7,mm,0.0,20240907,194936,best,0.5,2.5,good,0.0,4.0,NG,-999.0,999.0 +R-18,G,3.5,mm,0.0,20240907,194936,best,2.6,5.0,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20241222_210242.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20241222_210242.csv new file mode 100644 index 0000000..cb0c4bf --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20241222_210242.csv @@ -0,0 +1,48 @@ +MeasPlan.Name,CheryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,NNBBDECXRDA52019 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,0.2,mm,0.0,20241222,210142,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-01,G,3.4,mm,0.0,20241222,210142,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-02,F,0.0,mm,0.0,20241222,210145,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-02,G,3.4,mm,0.0,20241222,210145,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-0.6,mm,0.0,20241222,210148,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-03,G,3.0,mm,0.0,20241222,210148,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,0.9,mm,0.0,20241222,210153,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-04,G,3.9,mm,0.0,20241222,210153,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,0.7,mm,0.0,20241222,210156,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.7,mm,0.0,20241222,210156,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,1.2,mm,0.0,20241222,210201,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,3.8,mm,0.0,20241222,210201,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.4,mm,0.0,20241222,210204,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.1,mm,0.0,20241222,210204,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,0.2,mm,0.0,20241222,210218,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,2.6,mm,0.0,20241222,210218,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,0.4,mm,0.0,20241222,210221,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,3.4,mm,0.0,20241222,210221,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-1.0,mm,0.0,20241222,210224,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.5,mm,0.0,20241222,210224,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-22,F,0.0,mm,0.0,20241222,210227,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,2.1,mm,0.0,20241222,210227,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-14,F,-2.0,mm,0.0,20241222,210231,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-14,G,3.9,mm,0.0,20241222,210231,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-2.4,mm,0.0,20241222,210234,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-15,G,3.4,mm,0.0,20241222,210234,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-3.1,mm,0.0,20241222,210237,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-16,G,4.2,mm,0.0,20241222,210237,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,1.3,mm,0.0,20241222,210240,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-18,G,4.5,mm,0.0,20241222,210240,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20241223_100433.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20241223_100433.csv new file mode 100644 index 0000000..1239885 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20241223_100433.csv @@ -0,0 +1,48 @@ +MeasPlan.Name,CheryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,NNBBDEC8RDA52682 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.1,mm,0.0,20241223,100335,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-01,G,3.2,mm,0.0,20241223,100335,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-02,F,-0.8,mm,0.0,20241223,100338,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-02,G,3.1,mm,0.0,20241223,100338,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-1.4,mm,0.0,20241223,100341,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-03,G,2.7,mm,0.0,20241223,100341,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,-0.0,mm,0.0,20241223,100346,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-04,G,3.6,mm,0.0,20241223,100346,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,-0.1,mm,0.0,20241223,100349,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.4,mm,0.0,20241223,100349,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,0.8,mm,0.0,20241223,100353,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,3.4,mm,0.0,20241223,100353,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.5,mm,0.0,20241223,100357,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.4,mm,0.0,20241223,100357,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,-0.2,mm,0.0,20241223,100410,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,3.0,mm,0.0,20241223,100410,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,0.1,mm,0.0,20241223,100413,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,3.7,mm,0.0,20241223,100413,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-1.1,mm,0.0,20241223,100416,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.5,mm,0.0,20241223,100416,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-22,F,-0.3,mm,0.0,20241223,100419,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,2.2,mm,0.0,20241223,100419,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-14,F,-2.0,mm,0.0,20241223,100423,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-14,G,4.7,mm,0.0,20241223,100423,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-2.2,mm,0.0,20241223,100426,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-15,G,3.0,mm,0.0,20241223,100426,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-2.3,mm,0.0,20241223,100429,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-16,G,3.0,mm,0.0,20241223,100429,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,1.6,mm,0.0,20241223,100432,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-18,G,3.2,mm,0.0,20241223,100432,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20250519_102428.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20250519_102428.csv new file mode 100644 index 0000000..794068e --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/CheryEHY_20250519_102428.csv @@ -0,0 +1,74 @@ +MeasPlan.Name,CheryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,NNBBDFC0SDF39699 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.3,mm,0.0,20250519,102328,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-01,G,3.1,mm,0.0,20250519,102328,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-02,F,-0.6,mm,0.0,20250519,102330,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-02,G,3.1,mm,0.0,20250519,102330,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-1.4,mm,0.0,20250519,102333,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-03,G,2.9,mm,0.0,20250519,102333,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,0.2,mm,0.0,20250519,102338,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-04,G,3.6,mm,0.0,20250519,102338,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,1.1,mm,0.0,20250519,102341,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.7,mm,0.0,20250519,102341,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,-0.5,mm,0.0,20250519,102347,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,3.4,mm,0.0,20250519,102347,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.5,mm,0.0,20250519,102351,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.9,mm,0.0,20250519,102351,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,-0.5,mm,0.0,20250519,102405,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,2.9,mm,0.0,20250519,102405,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,-0.1,mm,0.0,20250519,102408,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,2.8,mm,0.0,20250519,102408,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-0.7,mm,0.0,20250519,102411,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.2,mm,0.0,20250519,102411,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-22,F,0.4,mm,0.0,20250519,102414,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,2.2,mm,0.0,20250519,102414,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-14,F,-0.6,mm,0.0,20250519,102417,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-14,G,3.4,mm,0.0,20250519,102417,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,0.5,mm,0.0,20250519,102420,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-15,G,2.6,mm,0.0,20250519,102420,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-0.7,mm,0.0,20250519,102423,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-16,G,2.9,mm,0.0,20250519,102423,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,1.9,mm,0.0,20250519,102427,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-18,G,3.3,mm,0.0,20250519,102427,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-01,F,-0.7,mm,0.0,20250519,102328,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-01,G,2.9,mm,0.0,20250519,102328,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-02,F,-0.4,mm,0.0,20250519,102331,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-02,G,2.6,mm,0.0,20250519,102331,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-03,F,-1.0,mm,0.0,20250519,102335,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-03,G,2.5,mm,0.0,20250519,102335,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-04,F,0.5,mm,0.0,20250519,102340,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-04,G,3.8,mm,0.0,20250519,102340,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-06,F,0.2,mm,0.0,20250519,102344,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-06,G,3.2,mm,0.0,20250519,102344,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-10,F,-0.0,mm,0.0,20250519,102348,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-10,G,3.9,mm,0.0,20250519,102348,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-08,F,0.9,mm,0.0,20250519,102352,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-08,G,3.6,mm,0.0,20250519,102352,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-12,F,-0.0,mm,0.0,20250519,102405,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-12,G,3.2,mm,0.0,20250519,102405,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-13,F,0.7,mm,0.0,20250519,102409,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-13,G,3.5,mm,0.0,20250519,102409,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-14,F,-0.5,mm,0.0,20250519,102414,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-14,G,3.5,mm,0.0,20250519,102414,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-15,F,-1.2,mm,0.0,20250519,102417,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-15,G,3.1,mm,0.0,20250519,102417,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-16,F,-1.8,mm,0.0,20250519,102421,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-16,G,3.0,mm,0.0,20250519,102421,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-18,F,2.1,mm,0.0,20250519,102424,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-18,G,3.0,mm,0.0,20250519,102424,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/DEMO2VW.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/DEMO2VW.csv new file mode 100644 index 0000000..28c86bb --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/DEMO2VW.csv @@ -0,0 +1,99 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR5RA007777 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.87,3,1.80,20240620,162658,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,5.54,3,4.00,20240620,162658,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,0.90,3,3.20,20240620,162702,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.37,3,2.00,20240620,162702,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-0.86,3,-1.50,20240620,162705,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.25,3,3.70,20240620,162705,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0044,F,0.1,3,-0.70,20240620,162709,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0044,G,5.0,3,5.00,20240620,162709,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0058,F,0.04,3,0.00,20240620,162714,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.67,3,0.80,20240620,162714,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-1.51,3,-0.70,20240620,162721,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.85,3,5.00,20240620,162721,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,0.60,3,0.00,20240620,162728,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.00,3,3.50,20240620,162728,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.16,3,-0.50,20240620,162731,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.16,3,3.50,20240620,162731,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.36,3,-0.50,20240620,162736,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.38,3,3.50,20240620,162736,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,-1.96,3,-2.30,20240620,162745,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,5.41,3,5.80,20240620,162745,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,inv.,3,0.00,20240620,162757,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,inv.,3,5.30,20240620,162757,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,0.27,3,0.00,20240620,162801,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.75,3,3.50,20240620,162801,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-3.41,3,0.00,20240620,162808,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,4.15,3,4.40,20240620,162808,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-4.24,3,0.00,20240620,162814,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.98,3,4.40,20240620,162814,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-0.12,3,0.10,20240620,162842,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,4.04,3,3.50,20240620,162842,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-2.01,3,0.00,20240620,163049,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.57,3,3.20,20240620,163049,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-1.35,3,0.00,20240620,163053,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.43,3,3.20,20240620,163053,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.24,3,-1.50,20240620,163057,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.73,3,5.00,20240620,163057,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,3.68,3,4.80,20240620,163100,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.32,3,4.00,20240620,163100,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,-0.13,3,1.00,20240620,163104,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,5.02,3,4.00,20240620,163104,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0265,F,inv.,3,-0.70,20240620,163107,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0265,G,inv.,3,5.00,20240620,163107,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0268,F,inv.,3,-0.85,20240620,163111,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0268,G,inv.,3,1.50,20240620,163111,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0522,F,0.34,3,-0.70,20240620,163115,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0522,G,inv.,3,5.00,20240620,163115,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0523,F,0.31,3,-2.10,20240620,163117,level1,-1.10,1.10,level2,-1.65,1.65,levele3,-2.20,2.20 +ELKAY0523,G,5.45,3,5.50,20240620,163117,level1,-1.00,1.00,level2,-1.50,1.50,levele3,-2.00,2.00 +ERKAY0020,F,0.22,3,1.80,20240620,163158,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.79,3,4.00,20240620,163158,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,0.67,3,3.20,20240620,163201,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,4.79,3,2.00,20240620,163201,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,1.38,3,-1.50,20240620,163205,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,4.83,3,3.70,20240620,163205,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0044,F,inv.,3,-0.70,20240620,163209,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0044,G,inv.,3,5.00,20240620,163209,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0058,F,0.10,3,0.00,20240620,163215,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.12,3,0.80,20240620,163215,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.56,3,-0.70,20240620,163222,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,6.21,3,5.00,20240620,163222,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,1.17,3,0.00,20240620,163231,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.08,3,3.50,20240620,163231,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.19,3,-0.50,20240620,163238,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,2.99,3,3.50,20240620,163238,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-0.67,3,-0.50,20240620,163242,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.54,3,3.50,20240620,163242,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240620,163256,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240620,163256,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,-1.56,3,0.00,20240620,163316,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.22,3,5.30,20240620,163316,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.02,3,0.00,20240620,163320,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,4.50,3,3.50,20240620,163320,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-1.97,3,0.00,20240620,163326,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.33,3,4.40,20240620,163326,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-1.75,3,0.00,20240620,163330,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.12,3,4.40,20240620,163330,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,-0.24,3,0.10,20240620,163334,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.06,3,3.50,20240620,163334,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.32,3,0.00,20240620,163337,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.56,3,3.20,20240620,163337,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-1.26,3,0.00,20240620,163339,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.21,3,3.20,20240620,163339,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.56,3,-1.50,20240620,163343,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.10,3,5.00,20240620,163343,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,4.80,3,4.80,20240620,163348,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,3.97,3,4.00,20240620,163348,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,0.76,3,1.00,20240620,163352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,3.95,3,4.00,20240620,163352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0265,F,inv.,3,-0.70,20240620,163356,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0265,G,inv.,3,5.00,20240620,163356,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0268,F,0.86,3,-0.85,20240620,163402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0268,G,inv.,3,1.50,20240620,163402,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0522,F,0.86,3,-0.70,20240620,163406,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0522,G,inv.,3,5.00,20240620,163406,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0523,F,0.76,3,-2.10,20240620,163410,level1,-1.10,1.10,level2,-1.65,1.65,levele3,-2.20,2.20 +ERKAY0523,G,inv.,3,5.50,20240620,163410,level1,-1.00,1.00,level2,-1.50,1.50,levele3,-2.00,2.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR2RA006241_20240625_153425.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR2RA006241_20240625_153425.csv new file mode 100644 index 0000000..d3ca1b0 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR2RA006241_20240625_153425.csv @@ -0,0 +1,17 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR2RA006241 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.48,3,1.80,20240625,153312,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.39,3,4.00,20240625,153312,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,1.09,3,3.20,20240625,153317,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,2.82,3,2.00,20240625,153317,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,1.64,3,-1.50,20240625,153320,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.15,3,3.70,20240625,153320,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,0.03,3,0.00,20240625,153340,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.72,3,0.80,20240625,153340,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.06,3,-0.70,20240625,153348,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,5.18,3,5.00,20240625,153348,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,-0.06,3,0.00,20240625,153352,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.31,3,3.50,20240625,153352,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,inv.,3,-0.50,20240625,153406,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,inv.,3,3.50,20240625,153406,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR3RA006006_20240624_135931.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR3RA006006_20240624_135931.csv new file mode 100644 index 0000000..3cb5d56 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR3RA006006_20240624_135931.csv @@ -0,0 +1,73 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR3RA006006 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.95,3,1.80,20240624,135505,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.07,3,4.00,20240624,135505,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.41,3,3.20,20240624,135510,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.21,3,2.00,20240624,135510,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-2.36,3,-1.50,20240624,135516,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.76,3,3.70,20240624,135516,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.14,3,0.00,20240624,135524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.66,3,0.80,20240624,135524,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-1.15,3,-0.70,20240624,135537,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.80,3,5.00,20240624,135537,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.26,3,0.00,20240624,135544,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.14,3,3.50,20240624,135544,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.25,3,-0.50,20240624,135550,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.02,3,3.50,20240624,135550,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.30,3,-0.50,20240624,135555,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.34,3,3.50,20240624,135555,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,1.10,3,0.00,20240624,135608,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,4.02,3,5.30,20240624,135608,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-0.45,3,0.00,20240624,135614,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.05,3,3.50,20240624,135614,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-1.91,3,0.00,20240624,135618,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,4.20,3,4.40,20240624,135618,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-1.97,3,0.00,20240624,135623,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.89,3,4.40,20240624,135623,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-0.01,3,0.10,20240624,135629,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,3.48,3,3.50,20240624,135629,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-0.88,3,0.00,20240624,135633,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.31,3,3.20,20240624,135633,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-0.77,3,0.00,20240624,135644,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.66,3,3.20,20240624,135644,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.23,3,-1.50,20240624,135651,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.17,3,5.00,20240624,135651,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.05,3,4.80,20240624,135656,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.12,3,4.00,20240624,135656,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.36,3,1.00,20240624,135702,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.47,3,4.00,20240624,135702,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,1.47,3,1.80,20240624,135732,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.59,3,4.00,20240624,135732,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.51,3,3.20,20240624,135736,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,1.11,3,2.00,20240624,135736,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.47,3,-1.50,20240624,135742,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.30,3,3.70,20240624,135742,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.04,3,0.00,20240624,135751,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.06,3,0.80,20240624,135751,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,0.92,3,-0.70,20240624,135801,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.90,3,5.00,20240624,135801,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.16,3,0.00,20240624,135805,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.95,3,3.50,20240624,135805,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,0.02,3,-0.50,20240624,135816,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.54,3,3.50,20240624,135816,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-1.13,3,-0.50,20240624,135820,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.80,3,3.50,20240624,135820,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.5_R,F,0.75,3,0.00,20240624,135827,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,4.71,3,3.50,20240624,135827,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-2.30,3,0.00,20240624,135835,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.15,3,4.40,20240624,135835,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-3.39,3,0.00,20240624,135840,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.13,3,4.40,20240624,135840,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,1.11,3,0.10,20240624,135848,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.21,3,3.50,20240624,135848,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.85,3,0.00,20240624,135852,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.82,3,3.20,20240624,135852,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-1.74,3,0.00,20240624,135857,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.26,3,3.20,20240624,135857,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.79,3,-1.50,20240624,135901,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.19,3,5.00,20240624,135901,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,-7.03,3,4.80,20240624,135904,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,3.74,3,4.00,20240624,135904,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,-0.18,3,1.00,20240624,135908,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.14,3,4.00,20240624,135908,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006015_20240624_142024.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006015_20240624_142024.csv new file mode 100644 index 0000000..87e885c --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006015_20240624_142024.csv @@ -0,0 +1,73 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR4RA006015 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.86,3,1.80,20240624,141734,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,2.63,3,4.00,20240624,141734,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.15,3,3.20,20240624,141739,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,5.13,3,2.00,20240624,141739,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-2.74,3,-1.50,20240624,141744,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.80,3,3.70,20240624,141744,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,0.08,3,0.00,20240624,141751,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.74,3,0.80,20240624,141751,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-1.36,3,-0.70,20240624,141800,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.99,3,5.00,20240624,141800,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.11,3,0.00,20240624,141805,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.85,3,3.50,20240624,141805,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,0.06,3,-0.50,20240624,141811,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,2.95,3,3.50,20240624,141811,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.74,3,-0.50,20240624,141817,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,2.88,3,3.50,20240624,141817,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.5_L,F,-0.63,3,0.00,20240624,141823,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.97,3,3.50,20240624,141823,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-1.80,3,0.00,20240624,141829,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.83,3,4.40,20240624,141829,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-1.79,3,0.00,20240624,141833,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.80,3,4.40,20240624,141833,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-0.32,3,0.10,20240624,141839,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,3.74,3,3.50,20240624,141839,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-1.08,3,0.00,20240624,141844,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.64,3,3.20,20240624,141844,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-2.68,3,0.00,20240624,141939,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.69,3,3.20,20240624,141939,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.52,3,-1.50,20240624,141950,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.53,3,5.00,20240624,141950,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,3.94,3,4.80,20240624,141956,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.34,3,4.00,20240624,141956,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,1.15,3,1.00,20240624,142001,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.39,3,4.00,20240624,142001,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,0.85,3,1.80,20240624,141411,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.07,3,4.00,20240624,141411,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.31,3,3.20,20240624,141417,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,4.02,3,2.00,20240624,141417,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.38,3,-1.50,20240624,141422,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,4.05,3,3.70,20240624,141422,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.04,3,0.00,20240624,141430,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.12,3,0.80,20240624,141430,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.03,3,-0.70,20240624,141439,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.84,3,5.00,20240624,141439,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.81,3,0.00,20240624,141444,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.56,3,3.50,20240624,141444,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.12,3,-0.50,20240624,141449,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.07,3,3.50,20240624,141449,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-1.37,3,-0.50,20240624,141454,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.81,3,3.50,20240624,141454,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0180,F,inv.,3,0.00,20240624,141510,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,inv.,3,5.30,20240624,141510,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.19,3,0.00,20240624,141520,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,3.67,3,3.50,20240624,141520,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-2.16,3,0.00,20240624,141527,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.20,3,4.40,20240624,141527,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-2.81,3,0.00,20240624,141535,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.23,3,4.40,20240624,141535,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,0.92,3,0.10,20240624,141547,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.73,3,3.50,20240624,141547,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.91,3,0.00,20240624,141554,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.67,3,3.20,20240624,141554,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-2.01,3,0.00,20240624,141601,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.20,3,3.20,20240624,141601,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.94,3,-1.50,20240624,141617,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.66,3,5.00,20240624,141617,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,4.53,3,4.80,20240624,141646,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,4.09,3,4.00,20240624,141646,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,1.01,3,1.00,20240624,141658,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.16,3,4.00,20240624,141658,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006239_20240625_153234.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006239_20240625_153234.csv new file mode 100644 index 0000000..526fbd6 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006239_20240625_153234.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR4RA006239 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.99,3,1.80,20240625,152907,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.31,3,4.00,20240625,152907,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,2.36,3,3.20,20240625,152911,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,3.80,3,2.00,20240625,152911,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,2.54,3,-1.50,20240625,152915,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.68,3,3.70,20240625,152915,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.11,3,0.00,20240625,152921,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.72,3,0.80,20240625,152921,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.53,3,-0.70,20240625,152930,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,5.47,3,5.00,20240625,152930,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,0.50,3,0.00,20240625,152933,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.90,3,3.50,20240625,152933,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.11,3,-0.50,20240625,152951,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.23,3,3.50,20240625,152951,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-1.92,3,-0.50,20240625,152958,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.67,3,3.50,20240625,152958,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,2.55,3,-2.30,20240625,153013,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,0.00,3,5.80,20240625,153013,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,inv.,3,0.00,20240625,153052,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,inv.,3,5.30,20240625,153052,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,0.07,3,0.00,20240625,153058,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.21,3,3.50,20240625,153058,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-1.36,3,0.00,20240625,153109,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,2.25,3,4.40,20240625,153109,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-1.62,3,0.00,20240625,153115,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.87,3,4.40,20240625,153115,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-0.72,3,0.10,20240625,153119,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,4.17,3,3.50,20240625,153119,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-1.17,3,0.00,20240625,153129,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.58,3,3.20,20240625,153129,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-1.33,3,0.00,20240625,153136,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,2.93,3,3.20,20240625,153136,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-1.46,3,-1.50,20240625,153144,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.64,3,5.00,20240625,153144,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.51,3,4.80,20240625,153149,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,3.77,3,4.00,20240625,153149,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,1.52,3,1.00,20240625,153216,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.54,3,4.00,20240625,153216,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,2.35,3,1.80,20240625,152532,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.92,3,4.00,20240625,152532,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,3.39,3,3.20,20240625,152539,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.83,3,2.00,20240625,152539,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.94,3,-1.50,20240625,152546,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.88,3,3.70,20240625,152546,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,0.09,3,0.00,20240625,152557,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,0.93,3,0.80,20240625,152557,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.33,3,-0.70,20240625,152605,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,4.05,3,5.00,20240625,152605,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,-0.39,3,0.00,20240625,152609,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,3.84,3,3.50,20240625,152609,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.19,3,-0.50,20240625,152619,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.02,3,3.50,20240625,152619,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-1.06,3,-0.50,20240625,152625,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.80,3,3.50,20240625,152625,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,-3.46,3,-0.70,20240625,152643,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240625,152643,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,-0.29,3,0.00,20240625,152711,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.31,3,5.30,20240625,152711,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,1.59,3,0.00,20240625,152717,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,4.71,3,3.50,20240625,152717,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-0.96,3,0.00,20240625,152720,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.83,3,4.40,20240625,152720,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-1.84,3,0.00,20240625,152725,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.08,3,4.40,20240625,152725,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,-0.82,3,0.10,20240625,152733,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.27,3,3.50,20240625,152733,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.64,3,0.00,20240625,152737,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.22,3,3.20,20240625,152737,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-1.70,3,0.00,20240625,152749,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.01,3,3.20,20240625,152749,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-2.38,3,-1.50,20240625,152833,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.92,3,5.00,20240625,152833,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,3.99,3,4.80,20240625,152811,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,3.68,3,4.00,20240625,152811,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,0.57,3,1.00,20240625,152826,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.36,3,4.00,20240625,152826,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006242_20240625_154245.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006242_20240625_154245.csv new file mode 100644 index 0000000..9507777 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006242_20240625_154245.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR4RA006242 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.50,3,1.80,20240625,153457,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.47,3,4.00,20240625,153457,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.09,3,3.20,20240625,153502,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,2.96,3,2.00,20240625,153502,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,2.73,3,-1.50,20240625,153517,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.24,3,3.70,20240625,153517,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,0.19,3,0.00,20240625,153524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.70,3,0.80,20240625,153524,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.42,3,-0.70,20240625,153552,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,3.99,3,5.00,20240625,153552,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.05,3,0.00,20240625,153556,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.93,3,3.50,20240625,153556,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,0.28,3,-0.50,20240625,153603,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,2.99,3,3.50,20240625,153603,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,0.31,3,-0.50,20240625,153609,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.36,3,3.50,20240625,153609,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,-2.74,3,-2.30,20240625,153624,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,3.35,3,5.80,20240625,153624,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,inv.,3,0.00,20240625,153709,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,inv.,3,5.30,20240625,153709,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-1.54,3,0.00,20240625,153718,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.69,3,3.50,20240625,153718,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,1.64,3,0.00,20240625,153726,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.99,3,4.40,20240625,153726,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,2.06,3,0.00,20240625,153732,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.80,3,4.40,20240625,153732,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,0.48,3,0.10,20240625,153739,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,2.78,3,3.50,20240625,153739,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,2.10,3,0.00,20240625,153748,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.29,3,3.20,20240625,153748,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,2.09,3,0.00,20240625,153756,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.77,3,3.20,20240625,153756,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,0.50,3,-1.50,20240625,153802,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.25,3,5.00,20240625,153802,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,5.19,3,4.80,20240625,153809,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.16,3,4.00,20240625,153809,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.38,3,1.00,20240625,153817,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.26,3,4.00,20240625,153817,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,0.66,3,1.80,20240625,153844,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.25,3,4.00,20240625,153844,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.82,3,3.20,20240625,153849,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.51,3,2.00,20240625,153849,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.43,3,-1.50,20240625,153853,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.20,3,3.70,20240625,153853,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.03,3,0.00,20240625,153900,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.05,3,0.80,20240625,153900,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.36,3,-0.70,20240625,153908,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,4.69,3,5.00,20240625,153908,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.93,3,0.00,20240625,153912,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.88,3,3.50,20240625,153912,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,0.23,3,-0.50,20240625,153918,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,2.96,3,3.50,20240625,153918,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,1.52,3,-0.50,20240625,153923,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.89,3,3.50,20240625,153923,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240625,153952,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240625,153952,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,1.69,3,0.00,20240625,154014,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.23,3,5.30,20240625,154014,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,-0.79,3,0.00,20240625,154031,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,5.18,3,3.50,20240625,154031,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,1.91,3,0.00,20240625,154038,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.08,3,4.40,20240625,154038,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,1.76,3,0.00,20240625,154044,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.18,3,4.40,20240625,154044,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,0.81,3,0.10,20240625,154050,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,4.26,3,3.50,20240625,154050,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,0.52,3,0.00,20240625,154057,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.33,3,3.20,20240625,154057,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,1.02,3,0.00,20240625,154135,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.28,3,3.20,20240625,154135,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,0.43,3,-1.50,20240625,154111,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.70,3,5.00,20240625,154111,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,4.59,3,4.80,20240625,154149,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,4.00,3,4.00,20240625,154149,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,1.73,3,1.00,20240625,154155,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.60,3,4.00,20240625,154155,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR6RA006002_20240624_135456.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR6RA006002_20240624_135456.csv new file mode 100644 index 0000000..5142dc7 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR6RA006002_20240624_135456.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR6RA006002 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.83,3,1.80,20240624,135152,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.70,3,4.00,20240624,135152,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,2.62,3,3.20,20240624,135158,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.16,3,2.00,20240624,135158,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-1.77,3,-1.50,20240624,135212,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.13,3,3.70,20240624,135212,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.09,3,0.00,20240624,135227,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.75,3,0.80,20240624,135227,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-0.81,3,-0.70,20240624,135233,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,5.02,3,5.00,20240624,135233,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.09,3,0.00,20240624,135302,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.73,3,3.50,20240624,135302,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.37,3,-0.50,20240624,135307,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.07,3,3.50,20240624,135307,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.15,3,-0.50,20240624,135312,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.47,3,3.50,20240624,135312,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,inv.,3,-2.30,20240624,135319,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,inv.,3,5.80,20240624,135319,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,1.87,3,0.00,20240624,135328,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,3.65,3,5.30,20240624,135328,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-0.35,3,0.00,20240624,135334,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.04,3,3.50,20240624,135334,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-2.30,3,0.00,20240624,135340,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.62,3,4.40,20240624,135340,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-2.77,3,0.00,20240624,135345,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,4.27,3,4.40,20240624,135345,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-1.21,3,0.10,20240624,135358,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,3.23,3,3.50,20240624,135358,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-2.79,3,0.00,20240624,135402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.62,3,3.20,20240624,135402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-2.71,3,0.00,20240624,135412,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.19,3,3.20,20240624,135412,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.25,3,-1.50,20240624,135417,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.70,3,5.00,20240624,135417,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,5.13,3,4.80,20240624,135423,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.23,3,4.00,20240624,135423,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.44,3,1.00,20240624,135430,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.58,3,4.00,20240624,135430,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,1.29,3,1.80,20240624,134827,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.96,3,4.00,20240624,134827,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,3.00,3,3.20,20240624,134834,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,0.11,3,2.00,20240624,134834,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.53,3,-1.50,20240624,134850,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.94,3,3.70,20240624,134850,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.21,3,0.00,20240624,134900,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.08,3,0.80,20240624,134900,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.10,3,-0.70,20240624,134911,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,4.36,3,5.00,20240624,134911,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.88,3,0.00,20240624,134916,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,5.29,3,3.50,20240624,134916,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.24,3,-0.50,20240624,134925,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.51,3,3.50,20240624,134925,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-1.27,3,-0.50,20240624,134931,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.96,3,3.50,20240624,134931,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240624,134949,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240624,134949,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,-1.57,3,0.00,20240624,135004,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,5.21,3,5.30,20240624,135004,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.12,3,0.00,20240624,135015,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,3.51,3,3.50,20240624,135015,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-2.31,3,0.00,20240624,135023,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.10,3,4.40,20240624,135023,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-3.01,3,0.00,20240624,135029,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,3.96,3,4.40,20240624,135029,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,1.46,3,0.10,20240624,135038,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.59,3,3.50,20240624,135038,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.67,3,0.00,20240624,135041,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.68,3,3.20,20240624,135041,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-1.45,3,0.00,20240624,135058,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.30,3,3.20,20240624,135058,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.58,3,-1.50,20240624,135103,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.51,3,5.00,20240624,135103,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,-6.71,3,4.80,20240624,135113,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,2.25,3,4.00,20240624,135113,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,-0.68,3,1.00,20240624,135119,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.22,3,4.00,20240624,135119,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR7RA006235_20240625_151550.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR7RA006235_20240625_151550.csv new file mode 100644 index 0000000..9feade3 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR7RA006235_20240625_151550.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR7RA006235 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.61,3,1.80,20240625,150857,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.06,3,4.00,20240625,150857,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.32,3,3.20,20240625,150900,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,5.39,3,2.00,20240625,150900,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,3.13,3,-1.50,20240625,150913,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.90,3,3.70,20240625,150913,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.04,3,0.00,20240625,150921,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.65,3,0.80,20240625,150921,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,2.11,3,-0.70,20240625,150927,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,11.49,3,5.00,20240625,150927,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.07,3,0.00,20240625,150932,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.13,3,3.50,20240625,150932,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,0.13,3,-0.50,20240625,150938,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,2.90,3,3.50,20240625,150938,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,0.49,3,-0.50,20240625,150943,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.58,3,3.50,20240625,150943,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,inv.,3,-2.30,20240625,150950,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,inv.,3,5.80,20240625,150950,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,0.19,3,0.00,20240625,151007,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,3.84,3,5.30,20240625,151007,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-0.74,3,0.00,20240625,151017,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.96,3,3.50,20240625,151017,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,1.18,3,0.00,20240625,151022,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.84,3,4.40,20240625,151022,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,0.82,3,0.00,20240625,151028,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,7.42,3,4.40,20240625,151028,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,0.73,3,0.10,20240625,151033,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,2.96,3,3.50,20240625,151033,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,1.53,3,0.00,20240625,151038,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.23,3,3.20,20240625,151038,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,1.12,3,0.00,20240625,151046,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,4.05,3,3.20,20240625,151046,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,0.66,3,-1.50,20240625,151054,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.26,3,5.00,20240625,151054,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,5.21,3,4.80,20240625,151102,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,3.82,3,4.00,20240625,151102,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,1.13,3,1.00,20240625,151109,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.04,3,4.00,20240625,151109,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,1.18,3,1.80,20240625,151132,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.35,3,4.00,20240625,151132,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.79,3,3.20,20240625,151138,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.04,3,2.00,20240625,151138,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.96,3,-1.50,20240625,151143,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.52,3,3.70,20240625,151143,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,0.09,3,0.00,20240625,151154,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.10,3,0.80,20240625,151154,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.32,3,-0.70,20240625,151201,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.38,3,5.00,20240625,151201,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.44,3,0.00,20240625,151207,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.09,3,3.50,20240625,151207,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.09,3,-0.50,20240625,151214,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.30,3,3.50,20240625,151214,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,1.67,3,-0.50,20240625,151219,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.93,3,3.50,20240625,151219,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240625,151228,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240625,151228,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,inv.,3,0.00,20240625,151238,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,inv.,3,5.30,20240625,151238,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.48,3,0.00,20240625,151244,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,4.14,3,3.50,20240625,151244,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,2.43,3,0.00,20240625,151251,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.12,3,4.40,20240625,151251,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,2.45,3,0.00,20240625,151256,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.33,3,4.40,20240625,151256,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,0.63,3,0.10,20240625,151300,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.76,3,3.50,20240625,151300,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,1.37,3,0.00,20240625,151307,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.69,3,3.20,20240625,151307,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,1.59,3,0.00,20240625,151321,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.66,3,3.20,20240625,151321,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.01,3,-1.50,20240625,151325,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.38,3,5.00,20240625,151325,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,4.73,3,4.80,20240625,151328,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,4.06,3,4.00,20240625,151328,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,1.32,3,1.00,20240625,151334,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.43,3,4.00,20240625,151334,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006230_20240625_145624.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006230_20240625_145624.csv new file mode 100644 index 0000000..f32cd04 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006230_20240625_145624.csv @@ -0,0 +1,41 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR8RA006230 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.11,3,1.80,20240625,145240,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,1.65,3,4.00,20240625,145240,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.73,3,3.20,20240625,145245,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.92,3,2.00,20240625,145245,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,2.89,3,-1.50,20240625,145251,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.52,3,3.70,20240625,145251,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.01,3,0.00,20240625,145259,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.72,3,0.80,20240625,145259,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.30,3,-0.70,20240625,145305,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,6.06,3,5.00,20240625,145305,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,0.25,3,0.00,20240625,145308,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.31,3,3.50,20240625,145308,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.17,3,-0.50,20240625,145317,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.15,3,3.50,20240625,145317,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-2.10,3,-0.50,20240625,145322,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.99,3,3.50,20240625,145322,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,inv.,3,-2.30,20240625,145342,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,inv.,3,5.80,20240625,145342,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,inv.,3,0.00,20240625,145447,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,inv.,3,5.30,20240625,145447,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,0.47,3,0.00,20240625,145455,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.65,3,3.50,20240625,145455,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-1.43,3,0.00,20240625,145505,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.48,3,4.40,20240625,145505,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-2.08,3,0.00,20240625,145510,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.84,3,4.40,20240625,145510,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,0.09,3,0.10,20240625,145516,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,4.34,3,3.50,20240625,145516,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-1.12,3,0.00,20240625,145524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.60,3,3.20,20240625,145524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-1.48,3,0.00,20240625,145542,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.02,3,3.20,20240625,145542,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-1.69,3,-1.50,20240625,145546,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,5.28,3,5.00,20240625,145546,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.34,3,4.80,20240625,145551,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,3.45,3,4.00,20240625,145551,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.73,3,1.00,20240625,145557,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.90,3,4.00,20240625,145557,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006437_20240626_152032.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006437_20240626_152032.csv new file mode 100644 index 0000000..5c48cea --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006437_20240626_152032.csv @@ -0,0 +1,25 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR8RA006437 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.55,3,1.80,20240626,151655,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,2.00,3,4.00,20240626,151655,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,-3.59,3,3.20,20240626,151702,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.55,3,2.00,20240626,151702,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,3.55,3,-1.50,20240626,151708,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.40,3,3.70,20240626,151708,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0020,F,-0.35,3,1.80,20240626,151732,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,1.96,3,4.00,20240626,151732,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,-3.29,3,3.20,20240626,151737,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.98,3,2.00,20240626,151737,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,3.09,3,-1.50,20240626,151741,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.52,3,3.70,20240626,151741,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.12,3,0.00,20240626,151833,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.09,3,0.80,20240626,151833,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.20,3,-0.70,20240626,151839,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.75,3,5.00,20240626,151839,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,-0.58,3,0.00,20240626,151848,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.78,3,3.50,20240626,151848,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,0.02,3,-0.50,20240626,151854,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.35,3,3.50,20240626,151854,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,1.37,3,-0.50,20240626,151858,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,4.03,3,3.50,20240626,151858,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006228_20240625_145028.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006228_20240625_145028.csv new file mode 100644 index 0000000..6b356c1 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006228_20240625_145028.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKRXRA006228 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,2.32,3,1.80,20240625,144256,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.30,3,4.00,20240625,144256,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,4.07,3,3.20,20240625,144301,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,5.10,3,2.00,20240625,144301,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,3.72,3,-1.50,20240625,144309,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.26,3,3.70,20240625,144309,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.06,3,0.00,20240625,144317,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.67,3,0.80,20240625,144317,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-0.00,3,-0.70,20240625,144327,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,0.61,3,5.00,20240625,144327,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.36,3,0.00,20240625,144332,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.29,3,3.50,20240625,144332,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,0.12,3,-0.50,20240625,144346,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,2.80,3,3.50,20240625,144346,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,0.51,3,-0.50,20240625,144352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.56,3,3.50,20240625,144352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,-3.41,3,-2.30,20240625,144402,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,5.12,3,5.80,20240625,144402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,1.33,3,0.00,20240625,144421,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,4.82,3,5.30,20240625,144421,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-1.33,3,0.00,20240625,144431,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.84,3,3.50,20240625,144431,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,1.88,3,0.00,20240625,144438,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,4.68,3,4.40,20240625,144438,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,1.84,3,0.00,20240625,144459,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.88,3,4.40,20240625,144459,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,0.73,3,0.10,20240625,144506,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,3.71,3,3.50,20240625,144506,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,2.02,3,0.00,20240625,144524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.44,3,3.20,20240625,144524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,2.23,3,0.00,20240625,144532,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,4.20,3,3.20,20240625,144532,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,0.71,3,-1.50,20240625,144543,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,5.23,3,5.00,20240625,144543,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.25,3,4.80,20240625,144549,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.01,3,4.00,20240625,144549,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,1.02,3,1.00,20240625,144554,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.42,3,4.00,20240625,144554,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,-0.03,3,1.80,20240625,144628,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.23,3,4.00,20240625,144628,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.16,3,3.20,20240625,144633,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.93,3,2.00,20240625,144633,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.45,3,-1.50,20240625,144637,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.47,3,3.70,20240625,144637,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.02,3,0.00,20240625,144646,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.12,3,0.80,20240625,144646,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.16,3,-0.70,20240625,144655,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.31,3,5.00,20240625,144655,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.76,3,0.00,20240625,144700,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.81,3,3.50,20240625,144700,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,0.20,3,-0.50,20240625,144708,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.26,3,3.50,20240625,144708,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,1.65,3,-0.50,20240625,144713,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,4.08,3,3.50,20240625,144713,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240625,144743,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240625,144743,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,1.59,3,0.00,20240625,144754,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.24,3,5.30,20240625,144754,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,-0.75,3,0.00,20240625,144759,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,3.46,3,3.50,20240625,144759,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,2.16,3,0.00,20240625,144807,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.28,3,4.40,20240625,144807,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,2.26,3,0.00,20240625,144814,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.26,3,4.40,20240625,144814,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,0.55,3,0.10,20240625,144820,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,4.04,3,3.50,20240625,144820,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,1.37,3,0.00,20240625,144826,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.55,3,3.20,20240625,144826,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,1.42,3,0.00,20240625,144905,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.17,3,3.20,20240625,144905,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.06,3,-1.50,20240625,144918,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.82,3,5.00,20240625,144918,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,3.86,3,4.80,20240625,144925,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,3.84,3,4.00,20240625,144925,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,1.37,3,1.00,20240625,144940,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.44,3,4.00,20240625,144940,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006231_20240625_150851.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006231_20240625_150851.csv new file mode 100644 index 0000000..032a5d5 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006231_20240625_150851.csv @@ -0,0 +1,23 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKRXRA006231 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,2.20,3,1.80,20240625,145700,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.47,3,4.00,20240625,145700,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.55,3,3.20,20240625,145717,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.25,3,2.00,20240625,145717,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,3.35,3,-1.50,20240625,145726,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.36,3,3.70,20240625,145726,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,0.10,3,0.00,20240625,145734,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.64,3,0.80,20240625,145734,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.92,3,-0.70,20240625,145754,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.41,3,5.00,20240625,145754,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,0.92,3,0.00,20240625,145806,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.16,3,3.50,20240625,145806,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.01,3,-0.50,20240625,145822,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.34,3,3.50,20240625,145822,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,0.18,3,-0.50,20240625,145828,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.65,3,3.50,20240625,145828,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.5_L,F,-1.05,3,0.00,20240625,145840,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.94,3,3.50,20240625,145840,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,1.77,3,0.00,20240625,145854,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.95,3,4.40,20240625,145854,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/奇瑞总装C0heryEHY_20241011_131932.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/奇瑞总装C0heryEHY_20241011_131932.csv new file mode 100644 index 0000000..2581464 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/奇瑞总装C0heryEHY_20241011_131932.csv @@ -0,0 +1,74 @@ +MeasPlan.Name,CheryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,NNBBDEC8RDA23979 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-1.3,mm,0.0,20241011,131826,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-01,G,2.6,mm,0.0,20241011,131826,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-02,F,-1.0,mm,0.0,20241011,131830,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-02,G,2.5,mm,0.0,20241011,131830,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-0.7,mm,0.0,20241011,131833,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-03,G,3.8,mm,0.0,20241011,131833,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,-0.1,mm,0.0,20241011,131838,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-04,G,3.1,mm,0.0,20241011,131838,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,0.5,mm,0.0,20241011,131842,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.3,mm,0.0,20241011,131842,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,0.9,mm,0.0,20241011,131846,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,2.9,mm,0.0,20241011,131846,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.2,mm,0.0,20241011,131850,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.3,mm,0.0,20241011,131850,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,-0.1,mm,0.0,20241011,131904,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,3.4,mm,0.0,20241011,131904,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,0.5,mm,0.0,20241011,131907,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,3.9,mm,0.0,20241011,131907,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-1.0,mm,0.0,20241011,131911,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.1,mm,0.0,20241011,131911,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-22,F,0.5,mm,0.0,20241011,131915,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,2.1,mm,0.0,20241011,131915,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-14,F,-2.1,mm,0.0,20241011,131920,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-14,G,4.7,mm,0.0,20241011,131920,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-1.5,mm,0.0,20241011,131923,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-15,G,3.2,mm,0.0,20241011,131923,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-1.8,mm,0.0,20241011,131927,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-16,G,2.9,mm,0.0,20241011,131927,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,1.5,mm,0.0,20241011,131930,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-18,G,3.1,mm,0.0,20241011,131930,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-01,F,-1.4,mm,0.0,20241011,131827,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-01,G,3.5,mm,0.0,20241011,131827,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-02,F,-1.5,mm,0.0,20241011,131831,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-02,G,3.0,mm,0.0,20241011,131831,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-03,F,-1.9,mm,0.0,20241011,131834,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-03,G,2.9,mm,0.0,20241011,131834,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-04,F,-0.9,mm,0.0,20241011,131839,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-04,G,3.1,mm,0.0,20241011,131839,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-06,F,0.5,mm,0.0,20241011,131843,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-06,G,2.9,mm,0.0,20241011,131843,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-10,F,0.0,mm,0.0,20241011,131848,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-10,G,3.8,mm,0.0,20241011,131848,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-08,F,-0.2,mm,0.0,20241011,131852,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-08,G,3.7,mm,0.0,20241011,131852,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-12,F,0.0,mm,0.0,20241011,131904,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-12,G,3.2,mm,0.0,20241011,131904,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-13,F,0.5,mm,0.0,20241011,131907,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-13,G,3.3,mm,0.0,20241011,131907,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-14,F,-0.6,mm,0.0,20241011,131913,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-14,G,3.9,mm,0.0,20241011,131913,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-15,F,-1.3,mm,0.0,20241011,131917,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-15,G,4.4,mm,0.0,20241011,131917,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-16,F,-0.7,mm,0.0,20241011,131921,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-16,G,4.4,mm,0.0,20241011,131921,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-18,F,0.0,mm,0.0,20241011,131925,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-18,G,3.0,mm,0.0,20241011,131925,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/奇瑞总装eh3.csv b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/奇瑞总装eh3.csv new file mode 100644 index 0000000..7c548e4 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/NextSenseCSVBackup/奇瑞总装eh3.csv @@ -0,0 +1,70 @@ +MeasPlan.Name,CheryEH3 +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,LNNBBDEC5RDA18303 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-19,F,0.3,mm,0.0,20240907,153951,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-19,G,3.8,mm,0.0,20240907,153951,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-01,F,0.3,mm,0.0,20240907,154057,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.7,mm,0.0,20240907,154057,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-0.4,mm,0.0,20240907,154448,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,2.9,mm,0.0,20240907,154448,best,2.4,3.8,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-0.6,mm,0.0,20240907,155051,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,3.4,mm,0.0,20240907,155051,best,2.6,4.0,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,0.3,mm,0.0,20240907,160804,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,2.7,mm,0.0,20240907,160804,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,0.3,mm,0.0,20240907,161124,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.5,mm,0.0,20240907,161124,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,1.0,mm,0.0,20240907,161451,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,3.1,mm,0.0,20240907,161451,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.1,mm,0.0,20240907,161901,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.7,mm,0.0,20240907,161901,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,0.1,mm,0.0,20240907,202933,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,2.4,mm,0.0,20240907,202933,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,0.3,mm,0.0,20240907,203417,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,3.8,mm,0.0,20240907,203417,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-0.8,mm,0.0,20240907,203730,best,-0.9,0.1,good,-4.0,1.0,NG,-999.0,999.0 +L-21,G,2.4,mm,0.0,20240907,203730,best,1.8,2.8,good,1.0,9.0,NG,-999.0,999.0 +L-22,F,0.1,mm,0.0,20240907,204024,best,-0.9,0.1,good,-4.0,1.0,NG,-999.0,999.0 +L-22,G,2.0,mm,0.0,20240907,204024,best,1.8,2.8,good,1.0,9.0,NG,-999.0,999.0 +L-14,F,-2.1,mm,0.0,20240907,204453,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +L-14,G,3.5,mm,0.0,20240907,204453,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-1.3,mm,0.0,20240907,204809,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +L-15,G,3.4,mm,0.0,20240907,204809,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-1.5,mm,0.0,20240907,205219,best,-3.0,0.2,good,-4.0,1.0,NG,-999.0,999.0 +L-16,G,3.8,mm,0.0,20240907,205219,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,-1.6,mm,0.0,20240907,205501,best,0.5,2.5,good,0.0,4.0,NG,-999.0,999.0 +L-18,G,4.0,mm,0.0,20240907,205501,best,2.6,5.0,good,1.0,6.0,NG,-999.0,999.0 +R-04,F,-0.0,mm,0.0,20240907,163310,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-04,G,3.7,mm,0.0,20240907,163310,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-06,F,-0.2,mm,0.0,20240907,163904,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-06,G,3.6,mm,0.0,20240907,163904,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-10,F,0.1,mm,0.0,20240907,164243,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-10,G,3.4,mm,0.0,20240907,164243,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-08,F,-0.0,mm,0.0,20240907,164901,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-08,G,3.6,mm,0.0,20240907,164901,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-12,F,0.4,mm,0.0,20240907,192336,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-12,G,3.7,mm,0.0,20240907,192336,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-13,F,0.3,mm,0.0,20240907,192930,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-13,G,3.3,mm,0.0,20240907,192930,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-14,F,-1.3,mm,0.0,20240907,194327,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +R-14,G,3.5,mm,0.0,20240907,194327,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-15,F,-1.8,mm,0.0,20240907,194314,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +R-15,G,3.2,mm,0.0,20240907,194314,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-16,F,-1.6,mm,0.0,20240907,194227,best,-3.0,0.2,good,-4.0,1.0,NG,-999.0,999.0 +R-16,G,3.1,mm,0.0,20240907,194227,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-18,F,-2.7,mm,0.0,20240907,194936,best,0.5,2.5,good,0.0,4.0,NG,-999.0,999.0 +R-18,G,3.5,mm,0.0,20240907,194936,best,2.6,5.0,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/PlcAddrDfn.xml b/Analysis/bin/x64/Debug/File/PlcAddrDfn.xml new file mode 100644 index 0000000..539e3af --- /dev/null +++ b/Analysis/bin/x64/Debug/File/PlcAddrDfn.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/File/PlcAddrDfn_S7.xml b/Analysis/bin/x64/Debug/File/PlcAddrDfn_S7.xml new file mode 100644 index 0000000..3dd0985 --- /dev/null +++ b/Analysis/bin/x64/Debug/File/PlcAddrDfn_S7.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/HslCommunication.dll b/Analysis/bin/x64/Debug/HslCommunication.dll new file mode 100644 index 0000000..2220e75 Binary files /dev/null and b/Analysis/bin/x64/Debug/HslCommunication.dll differ diff --git a/Analysis/bin/x64/Debug/Key/reg.key b/Analysis/bin/x64/Debug/Key/reg.key new file mode 100644 index 0000000..0b1662f --- /dev/null +++ b/Analysis/bin/x64/Debug/Key/reg.key @@ -0,0 +1 @@ +E0257D210D71798C7D342413B6AE6E827FF7CDF4D9B987590FAE35D6DCCAFB886AA76997CF2A0EB6CE1262B84EAA89847CE6CDC5A6F8D2EED117805EA3C58FC41BAE98458ABC8F6E2F7D3BC1F235ECAA82954257F761B6EDE6B01E9FFEE276B41AAB0B16C34FF9D2865DF53073BE883F9187EB6EB61E90DDAAA99D8CEBD45D79C7B258FDE9888FDC6ACCD540C3DB33F837A1CD9E7A11BB9D832E332CAE39B9F387EB6710AB221145D9A6E1F2A1FA298D40262129F295BA060BED16C420C03178782B354A00BAD77335C105D312852C3ACEA15E3CA3F54D6B16970431D3E78069F9EAD8D82F39E953F2D6B51CAEE05D904F400BAFC3F41FF2152E610D26B4CDCF27B257D642BF1F30BD8A177925C11CCA10126D0A2870F62CEE7FBD251DCC6A5C68D62B656F9ADA143E07B02516F84636148A81409E1D928DFB346CD8050354C82CA074EDB89ADCBE6E31AD2D142B58B04F2577A03F4CE43586150CE1C69370F28D58DAEABCB2C5920A9759C3D210DF7422DFAA2D1CB0D95564D2A07A82B2F4B4A497C47C57CE23CB1294C515FACF9EEF0C4A6CB8300317D90ECBC6B30D2ABA0EBE5698648EB59A1B33F770C4EB0F928970D13FD27DA4B9521F223210E3B43345B22C2583B76CFAF265F453C3835D7ADAF002206BD6F4C338D19D0DCCFC21F76526CAFDDEC710742816AFD59794DA9653452A9EF92504C1D44B9ED41133C75E185B80E331B531F0535705493788E09E4B04CF0AF947157D7C9E1D6F7F55ADFF4CA2786E83F4315A170E4C7F461B43515DA399766454E68E89428308D085AF0CC75182F5F21077D3A1A42E53784A13DA35D174311F41CB0C111672D7AF1E3EA0E62530BFD5AED3055D783C8020517B9BDB734E885A536BE72FC79A53B301F6994EE89E1EC3D195C4A95C8E880A1F058A9C745242797396C1505ADE70F66B51C0028466F38DDBFBDB66351B696404DC767D0886B7E903EA892C6D667723939B66376CBABF1035635CB9 diff --git a/Analysis/bin/x64/Debug/MORCODE.dll b/Analysis/bin/x64/Debug/MORCODE.dll new file mode 100644 index 0000000..5507d40 Binary files /dev/null and b/Analysis/bin/x64/Debug/MORCODE.dll differ diff --git a/Analysis/bin/x64/Debug/NLog.config b/Analysis/bin/x64/Debug/NLog.config new file mode 100644 index 0000000..3cfa512 --- /dev/null +++ b/Analysis/bin/x64/Debug/NLog.config @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO TLogInfo(LogTime,LogLevel,LogMessage,LogStackTrack) VALUES (@LogTime, @LogLevel, @LogMessage, @LogStackTrack); + + + + + + + + + + + + + + insert into TLogInfo(LogTime,LogLevel,LogMessage,LogAction,LogAmount,LogStackTrack) values (@LogTime, @LogLevel, @LogMessage,@LogAction,@LogAmount, @LogStackTrack); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/NLog.dll b/Analysis/bin/x64/Debug/NLog.dll new file mode 100644 index 0000000..f7eb53e Binary files /dev/null and b/Analysis/bin/x64/Debug/NLog.dll differ diff --git a/Analysis/bin/x64/Debug/NLog.xml b/Analysis/bin/x64/Debug/NLog.xml new file mode 100644 index 0000000..a7eb3a3 --- /dev/null +++ b/Analysis/bin/x64/Debug/NLog.xml @@ -0,0 +1,29148 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Obsolete and replaced by with NLog v5.3. + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Obsolete on the ILogger-interface, instead use with NLog v5.3. + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Obsolete on the ILogger-interface, instead use with NLog v5.3. + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by with NLog v5.3. + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + Handle Internal LogEvent written to the InternalLogger + + + Never use/call NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Internal LogEvent details from + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Obsolete and replaced by with NLog v5.3. + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Obsolete and replaced by with NLog 5.3. + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Internal LogEvent written to the InternalLogger + + + EventHandler will only be triggered for events, where severity matches the configured . + + Never use/call NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Gets the method parameters + + + + + + + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + + + + Provides logging interface and utility functions. + + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Event notification about trying to load assembly with NLog extensions. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Represents NLog ConfigSection for loading from app.config / web.config + + + <configSections> + <section name="NLog" type="NLog.Config.ConfigSectionHandler, NLog" /> + </configSections> + + + + + Overriding base implementation to just store + of the relevant app.config section. + + The XmlReader that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + + + + Override base implementation to return a object + for + instead of the instance. + + + A instance, that has been deserialized from app.config. + + + + + Obsolete since dynamic tyope loading is not compatible with publish as trimmed application. + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) + + Supports creating item-instance from their type-alias, when parsing NLog configuration + + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Called before the assembly with NLog extensions is being loaded. + + + + + Initializes a new instance of the class. + + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets the ambient property factory. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Obsolete and replaced by with NLog v5.2. + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Obsolete and replaced by with NLog v5.2. + Gets the factory. + + The target factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the factory. + + The layout factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the factory. + + The layout renderer factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the ambient property factory. + + The ambient property factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the factory. + + The filter factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the time source factory. + + The time source factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the condition method factory. + + The condition method factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets or sets the JSON serializer to use with + + + + + Obsolete and replaced by with NLog v5.2. + Gets or sets the string serializer to use with + + + + + Obsolete and replaced by with NLog v5.2. + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Registers named items from the assembly. + + The assembly. + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Obsolete since dynamic type loading is not compatible with publish as trimmed application. + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + + + + + + + + + + Factory specialized for s. + + + + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + + + + Factory of named items (such as , , , etc.). + + + + + Factory of named items (such as , , , etc.). + + + + + Registers type-creation with type-alias + + + + + Tries to create an item instance with type-alias + + True if instance was created successfully, false otherwise. + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Obsolete since dynamic type loading is not compatible with publish as trimmed application. Replaced by . + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + Must assign the returned object to LogManager.Configuration to activate it + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Change this method with NLog v6 to disconnect LogFactory from Targets/Layouts + - Remove LoggingRule-List-parameter + - Return ITargetWithFilterChain[] + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + + New value can be null when unloading configuration during shutdown. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Obsolete and replaced by and with NLog v5.2. + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Obsolete since too exotic feature with NLog v5.3. + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Obsolete and replaced by with NLog v5. + + Default action when filters not matching + + + NLog v4.6 introduced the setting with default value . + NLog v5 marked it as obsolete and change default value to + + + + + Default action if none of the filters match + + + NLog v5 changed default value to + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Obsolete and replaced by with NLog v5.3. + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service/interface to register + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Obsolete and replaced by with NLog v5.2. + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Obsolete and replaced by and with NLog v5.2. + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Obsolete and replaced by and with NLog v5.2. + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Obsolete and replaced by with NLog v5.2. + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Obsolete and replaced by with NLog v5.2. + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Obsolete and replaced by and with NLog v5.2. + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Obsolete and replaced by and with NLog v5.2. + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Layout or layout-renderer depends on or , + and requires that LogEvent-state is recognized as immutable. + + + Must be used in combination with , else it will have no effect + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Obsolete and replaced by with NLog v4.7. + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Obsolete and replaced by with NLog v4.7. + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Obsolete and replaced by with NLog v4.7. + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Obsolete and replaced by with NLog v4.7. + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The newly loaded instance. + Must assign the returned object to LogManager.Configuration to activate it + + + + Obsolete and replaced by and with NLog v5.2. + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + Item value. + + + + Sets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + Item value. + + + + Gets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + The item value, if defined; otherwise null. + + + + Gets all key-names from Global Diagnostics Context (GDC) dictionary + + A collection of the names of all items in the Global Diagnostics Context. + + + + Determines whether the Global Diagnostics Context (GDC) dictionary contains the specified key. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the value with the specified key from the Global Diagnostics Context (GDC) dictionary + + Item name. + + + + Clears the content of the Global Diagnostics Context (GDC) dictionary. + + + + + Obsolete and replaced by with NLog v5. + + Mapped Diagnostics Context (MDC) is a dictionary of keys and values. + Stores the dictionary in the thread-local static variable, and provides methods to output dictionary values in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Obsolete and replaced by with NLog v5. + + Mapped Diagnostics Logical Context (MDLC) is a dictionary of keys and values. + Stores the dictionary in the logical thread callcontext, and provides methods to output dictionary values in layouts. + Allows for maintaining state across asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Obsolete and replaced by with NLog v5. + + Nested Diagnostics Context (NDC) is a stack of nested values. + Stores the stack in the thread-local static variable, and provides methods to output the values in layouts. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Obsolete and replaced by with NLog v5. + + Nested Diagnostics Logical Context (NDLC) is a stack of nested values. + Stores the stack in the logical thread callcontexte, and provides methods to output the values in layouts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Special bookmark that can restore original parent, after scopes has been collapsed + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + See NLog Wiki + + Documentation on NLog Wiki + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Obsolete and replaced by or ${callsite} with NLog v5.3. + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Skip StackFrame when from hidden Assembly / ClassType + + + + + Skip StackFrame when type of the logger + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Provides a multi process-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Configuration Reflection Helper + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Binder for retrieving value of + + + + + + + + Reflection helpers for accessing properties. + + + + + Get property info + + Configuration Reflection Helper + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state for ScopeContext Mapped Context (MDLC) + + + + + Immutable state for ScopeContext Nested State (NDLC) + + + + + Immutable state for ScopeContext Single Property (MDLC) + + + + + Immutable state for ScopeContext Multiple Properties (MDLC) + + + + + Immutable state for ScopeContext handling legacy MDLC + NDLC operations + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Render value for Application setting retrieved from App.config or Web.config file. + + + + ${appsetting:item=mysetting:default=mydefault} - produces "mydefault" if no appsetting + + See NLog Wiki + + Documentation on NLog Wiki + + + + The AppSetting item-name + + + + + + Obsolete and replaced by with NLog v4.6. + + The AppSetting item-name + + + + + The default value to render if the AppSetting value is null. + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + See NLog Wiki + + Documentation on NLog Wiki + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + Thread identity information (username). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether username should be included. + + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets the default value to be used when the User is not set. + + + + + + Gets or sets the default value to be used when the Domain is not set. + + + + + + + + + The information about the garbage collector. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Lookup parameter value from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the parameter. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Mapped Diagnostics Logical (MDC) from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Mapped Diagnostics Logical Context (MDLC) from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Nested Diagnostic Context (NDC) from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Nested Diagnostic Context (NDLC) from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Nested Diagnostic Context (NDLC) timings from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + A counter value (increases on each layout rendering). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + Current date and time. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + The current application domain's base directory. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • CommonApplicationData - application data for all users.
  • +
  • ApplicationData - roaming application data for current user.
  • +
  • LocalApplicationData - non roaming application data for current user
  • +
  • UserProfile - Profile folder for current user
  • +
  • DesktopDirectory - Desktop-directory for current user
  • +
  • MyDocuments - My Documents-directory for current user
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + A temporary directory. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Renders contents of the specified file. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Thread identity information (name and authentication information). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the log4j:event logger-xml-attribute. Default: ${logger} + + + + + + Gets or sets the log4j:event message-xml-element. Default: ${message} + + + + + + Gets or sets the log4j:event log4japp-xml-element. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + See NLog Wiki + + Documentation on NLog Wiki/// + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Gets or sets a value indicating whether to render prefix of logger name (the part before the trailing dot character). + + + + + + + + The environment variable. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The IP address from the network interface card (NIC) on the local machine + + + Skips loopback-adapters and tunnel-interfaces. Skips devices without any MAC-address + + See NLog Wiki + + Documentation on NLog Wiki + + + + Get or set whether to prioritize IPv6 or IPv4 (default) + + + + + + + + + + + + + + + The machine name that the process is running on. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + + + + The formatted log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + The name of the current thread. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + See NLog Wiki + + Documentation on NLog Wiki + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Lookup property-value from source object based on + + Could resolve property-value? + + + + Only outputs the inner layout when exception has been defined for log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + See NLog Wiki + + Documentation on NLog Wiki + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the . + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when is set to ). + + + + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote Always (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Auto indent and create new lines + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the option to include all properties from the log events + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute. Default: ${logger} + + + + + + Gets or sets the log4j:event message-xml-element. Default: ${message} + + + + + + Gets or sets the log4j:event log4japp-xml-element. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Name of the element + + + Default value "item" + + + + + + Value inside the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the root XML element + + + Default value "logevent" + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Pre-formatted log message for ${message}. + Log message-template including parameter placeholders for ${message:raw=true}. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Obsolete and replaced by or ${callsite} with NLog v5.3. + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. Both when assigned to new config or config unloaded. + + + Note can be null when unloading configuration at shutdown. + + + + + Obsolete and replaced by with NLog v5.2. + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Obsolete instead use default-constructor, and assign with NLog 5.0. + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Obsolete and replaced by with NLog v5.2. + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Obsolete and replaced by with NLog v5.2. + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Obsolete and replaced by with NLog 5.2. + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Change this method with NLog v6 to completely disconnect LogFactory from Targets/Layouts + - Remove LoggingRule-List-parameter + - Return ITargetWithFilterChain[] + + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Obsolete and replaced by and with NLog v5.2. + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Clear the candidate file paths and return to the defaults. + + + + + Obsolete and replaced by and with NLog v5.2. + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Obsolete and replaced by that prevents unexpected side-effects in Logger-state. + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. Both when assigned to new config or config unloaded. + + + Note can be null when unloading configuration at shutdown. + + + + + Obsolete and replaced by with NLog v5.2. + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Obsolete and replaced by and with NLog v5.2. + Loads logging configuration from file (Only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Obsolete and replaced by with NLog v5.2. + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Obsolete and replaced by with NLog v5.2. + Gets the specified named custom using the parameter for creating instance. + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Obsolete and replaced by by with NLog v5. + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Obsolete and replaced by disposing the scope returned from with NLog v5. + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Obsolete and replaced by using normal string-interpolation with in NLog v5. + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Obsolete and replaced by using normal string-interpolation with in NLog v5. + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Obsolete and replaced by using normal string-interpolation with in NLog v5. + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + Default Logger-Name is of the + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message payload to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message payload to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Configuration Type. + + Type of the NLog configuration item + Fluent interface parameter. + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The factory method for creating instance of NLog Target + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The factory method for creating instance of NLog Layout + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The factory method for creating instance of NLog LayoutRenderer + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function + + Fluent interface parameter. + LayoutRenderer instance with type-alias and callback-method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Restrict minimum LogLevel for names that matches this rule + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to and color log-messages based on + + Fluent interface parameter. + Override the default Layout for output + Highlight only the Level-part + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enables output using ANSI Color Codes (Windows console does not support this by default) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Mark Type as hidden, so Type methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables the NLog Message Template Parsing: + - True = Always use NLog mesage-template-parser and formatting. + - False = Never use NLog-parser and only use string.Format (Disable support for message-template-syntax). + - Null = Auto detection of message-template-syntax, with fallback to string.Format (Default Behavior). + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Writes log message to the Event Log. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Max size in characters (limitation of the EventLog API). + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entry type. When not set, or when not convertible to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. + If null, the value will not be specified while creating the Event log. + + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + + + + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + (re-)create an event source, if it isn't there. Works only with fixed source names. + + The source name. If source is not fixed (see , then pass null or . + always throw an Exception when there is an error + + + + A wrapper for Windows event log. + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + Indicates whether an event log instance is associated. + + + + + A wrapper for the method . + + + + + Creates a new association with an instance of the event log. + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + The implementation of , that uses Windows . + + + + + Creates a new association with an instance of Windows . + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Obsolete and replaced by = false with NLog v5.3. + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets whether to write the Header on initial creation of file appender, even if the file is not empty. + Default value is , which means only write header when initial file is empty (Ex. ensures valid CSV files) + + + Alternative use to ensure each application session gets individual log-file. + + + + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Obsolete and replaced by with NLog v5. + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Obsolete and replaced by with NLog v5. + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Obsolete and replaced by with NLog v5. + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Sends log messages by email using SMTP protocol. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinite waiting + + + + + Gets the array of email headers that are transmitted with this email message + + + + + + + + + + + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mail message + + event for rendering layouts + string to group on + + + + Create the mail message with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + Be careful when enumerating, as NLog target is blocked from writing during enumeration (blocks application logging) + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Obsolete and replaced by with NLog v4.6. + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Arguments for events. + + + + + + + + + + + + + + + + + Creates new instance of NetworkTargetLogEventDroppedEventArgs + + + + + The reason why log was dropped + + + + + The reason why log event was dropped by + + + + + Discarded LogEvent because message is bigger than + + + + + Discarded LogEvent because message queue was bigger than + + + + + Discarded LogEvent because attempted to open more than connections + + + + + Discarded LogEvent because of network communication error + + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Occurs when LogEvent has been dropped. + + + - When internal queue is full and set to
+ - When connection-list is full and set to
+ - When message is too big and set to
+
+
+ + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Obsolete and replaced by with NLog v5. + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Obsolete and replaced by with NLog v5. + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the log4j:event logger-xml-attribute. Default: ${logger} + + + + + + Gets or sets the log4j:event message-xml-element. Default: ${message} + + + + + + Gets or sets the log4j:event log4japp-xml-element. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets the option to include all properties from the log events + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets whether to include the contents of the -dictionary. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets whether to include the contents of the -stack. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets whether to include the contents of the -properties. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets whether to include the contents of the -stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Obsolete and replaced by with NLog v5. + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Obsolete and replaced by with NLog v5. + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Obsolete and replaced by with NLog v5. + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Obsolete and replaced by with NLog v5. + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Obsolete and replaced by with NLog v5. + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Obsolete and replaced by with NLog v5. + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Obsolete and replaced by with NLog v5. + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Obsolete and replaced by with NLog v5. + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Obsolete and replaced by with NLog v5. + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Obsolete and replaced by with NLog v5. + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Obsolete and replaced by with NLog v5. + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Obsolete and replaced by with NLog v5. + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Occurs when LogEvent has been dropped, because internal queue is full and set to + + + + + Occurs when internal queue size is growing, because internal queue is full and set to + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Occurs when LogEvent has been dropped, because internal queue is full and set to + + + + + Occurs when internal queue size is growing, because internal queue is full and set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + +
+
diff --git a/Analysis/bin/x64/Debug/NSAnalysis.exe b/Analysis/bin/x64/Debug/NSAnalysis.exe new file mode 100644 index 0000000..cdbd947 Binary files /dev/null and b/Analysis/bin/x64/Debug/NSAnalysis.exe differ diff --git a/Analysis/bin/x64/Debug/NSAnalysis.exe.config b/Analysis/bin/x64/Debug/NSAnalysis.exe.config new file mode 100644 index 0000000..21e6c61 --- /dev/null +++ b/Analysis/bin/x64/Debug/NSAnalysis.exe.config @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/NSAnalysis.pdb b/Analysis/bin/x64/Debug/NSAnalysis.pdb new file mode 100644 index 0000000..468a045 Binary files /dev/null and b/Analysis/bin/x64/Debug/NSAnalysis.pdb differ diff --git a/Analysis/bin/x64/Debug/Newtonsoft.Json.dll b/Analysis/bin/x64/Debug/Newtonsoft.Json.dll new file mode 100644 index 0000000..341d08f Binary files /dev/null and b/Analysis/bin/x64/Debug/Newtonsoft.Json.dll differ diff --git a/Analysis/bin/x64/Debug/Newtonsoft.Json.xml b/Analysis/bin/x64/Debug/Newtonsoft.Json.xml new file mode 100644 index 0000000..2c981ab --- /dev/null +++ b/Analysis/bin/x64/Debug/Newtonsoft.Json.xml @@ -0,0 +1,11363 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/Analysis/bin/x64/Debug/PLCModule.dll b/Analysis/bin/x64/Debug/PLCModule.dll new file mode 100644 index 0000000..1a50002 Binary files /dev/null and b/Analysis/bin/x64/Debug/PLCModule.dll differ diff --git a/Analysis/bin/x64/Debug/PLCModule.dll.config b/Analysis/bin/x64/Debug/PLCModule.dll.config new file mode 100644 index 0000000..2c3f83c --- /dev/null +++ b/Analysis/bin/x64/Debug/PLCModule.dll.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Analysis/bin/x64/Debug/PLCModule.pdb b/Analysis/bin/x64/Debug/PLCModule.pdb new file mode 100644 index 0000000..1fce5fb Binary files /dev/null and b/Analysis/bin/x64/Debug/PLCModule.pdb differ diff --git a/Analysis/bin/x64/Debug/SQLite.Interop.dll b/Analysis/bin/x64/Debug/SQLite.Interop.dll new file mode 100644 index 0000000..12de96a Binary files /dev/null and b/Analysis/bin/x64/Debug/SQLite.Interop.dll differ diff --git a/Analysis/bin/x64/Debug/System.Data.SQLite.EF6.dll b/Analysis/bin/x64/Debug/System.Data.SQLite.EF6.dll new file mode 100644 index 0000000..154f51f Binary files /dev/null and b/Analysis/bin/x64/Debug/System.Data.SQLite.EF6.dll differ diff --git a/Analysis/bin/x64/Debug/System.Data.SQLite.Linq.dll b/Analysis/bin/x64/Debug/System.Data.SQLite.Linq.dll new file mode 100644 index 0000000..027171d Binary files /dev/null and b/Analysis/bin/x64/Debug/System.Data.SQLite.Linq.dll differ diff --git a/Analysis/bin/x64/Debug/Telerik.WinControls.GridView.dll b/Analysis/bin/x64/Debug/Telerik.WinControls.GridView.dll new file mode 100644 index 0000000..10fb444 Binary files /dev/null and b/Analysis/bin/x64/Debug/Telerik.WinControls.GridView.dll differ diff --git a/Analysis/bin/x64/Debug/Telerik.WinControls.GridView.xml b/Analysis/bin/x64/Debug/Telerik.WinControls.GridView.xml new file mode 100644 index 0000000..f432863 --- /dev/null +++ b/Analysis/bin/x64/Debug/Telerik.WinControls.GridView.xml @@ -0,0 +1,29351 @@ + + + + Telerik.WinControls.GridView + + + + + The accessible object corresponding to Cell + + + + + Retrieves the number of children belonging to an accessible object + + + + + + Retrieves the object that has the keyboard focus + + + + + + Retrieves the currently selected child + + + + + + Navigates to another accessible object + + The navigation direction + Sibling or parent or child accessble object based on the direction of navigation + + + + Gets a string that describes the visual appearance of the specified object. + + + + + Gets the role of this accessible object + + + + + Gets the location and size of the accessible object + + + + + Gets the parent of an accessible object + + + + + Gets the state of this accessible object + + + + + Internal method to retrieve child index. Returns the index of the child + + + + + Accessibility implementation for GridView object + + + + + Retrieves the number of children belonging to an accessible object + + Count of number of rows plus one for the header row + + + + Retrieves the accessible child corresponding to the specified index + + Index of the row/header + The accessible Row/header object + + + + Internal method used to navigate to another accessible object + + The child + The navigation direction + Sibling or parent or child accessble object based on the direction of navigation + + + + Internal method used to retrieve bounding rectangle of a cell + + The row object + Bounding rectangle of row + + + + Gets the role of this accessible object + + + + + The Accessible object corresponding to row + + + + + Initializes a new instance of the class. + + The owner. + The row. + The parent. + + + + Performs the default action associated with this accessible object + + + + + Retrieves the object that has the keyboard focus + + + + + + Retrieves the currently selected child + + + + + + Modifies the selection or moves the keyboard focus of the accessible object + + + + + + Retrieves the number of children belonging to an accessible object + + + + + + Retrieves the accessible child corresponding to the specified index. + + Index of the child. Index varies from 0 to the ChildCount-1 + The accessible child object + + + + Determines whether the specified is equal + to the current . + + The to compare with the current + . + + true if the specified is equal to the + current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + A hash code for the current . + + + + Navigates to another accessible object + + The navigation direction + Sibling or parent or child accessble object based on the direction of navigation + + + + Internal method used to retrieved the accessible objects based on navigation + + Current accessible object + Direction of navigation + + + + + Intenral method used to retrieve bounding rectangle of a cell + + The row object that contains the cell + The column object corresponding to hte cell index + The Bounding Rectangle + + + + Gets the control. + + The control. + + + + Gets the role of this accessible object + + + + + Gets the location and size of the row accessible object. + + + + + Gets the parent of the row accessible object + + + + + Internal method to retrieve child index. Returns the index of the child + + + + + Use this flag to prevent throwing error message for every row if there is an invalid column's expression + + + + + Ensures that the cell is visible. + + + + + Brings the cell in edit mode + + + + + Commits the edited cell + + + + + Gets the view template. + + The view template. + + + + Gets the view info where the cell appears + + The view info. + + + + Gets the row associated with this cell + + The row info. + + + + Gets the column info associated with this cell + + The column info. + + + + Gets or sets a value indicating whether this instance is selected. + + + true if this instance is selected; otherwise, false. + + + + + Gets a value indicating whether this instance is current. + + + true if this instance is current; otherwise, false. + + + + + Gets or sets the value. + + The value. + + + + Gets or sets the error text which should appear when the data is not correct + + The error text. + + + + Gets the style of the cell + + The style. + + + + Gets a value indicating whether this instance has style. + + true if this instance has style; otherwise, false. + + + + Gets or sets a value indicating whether [read only]. + + true if [read only]; otherwise, false. + + + + Tag object that can be used to store user data, corresponding to the cell. + + + + + A collection of GridViewCellInfo objects + + + + + Initializes a new instance of the GridViewCellInfoCollection class. + + The associated GridViewRowInfo, owner of this collection + + + + Copies all the elements of the current collection to the specified collection. + + The collection that is the destination of the elements copied from the current collection. + An integer that represents the index in collection at which copying begins. + + + + Returns an enumerator that iterates through the collection + + + + + + Gets the column with the specified index. + + Index of the column to get + Instance of GridViewCellInfo if found or null + + + + Gets the first cell with UniqueName found. + + Unique name of the column to get + Instance of GridViewCellInfo if found or null + + + + Gets the number of elements actually contained in the collection + + + + + Gets a value indicating whether access to the collection is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the ArrayList. + + + + + Represents enumerator class for GridViewCellInfoCollection + + + + + Initializes a new instance of the GridViewCellInfoCollectionEnumerator class. + + The associated GridViewCellInfoCollection, owner of this enumerator + + + + Advances the enumerator to the next element of the collection. + + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Reset cell's style to its initial state. + + + + + Represent a hyperlink cell info class. + + + + + Initializes a new instance of the class. + + The row. + The column. + The owner. + + + + Gets or sets a value indicating whether this link is visited. + + + true if this instance is visited; otherwise, false. + + + + + A collection containing objects that represent the selected cells in RadGridView. + + + + + Initializes a new instance of the . + + An instance of . + + + + Initializes a new instance of the . + + + + + Defines values for specifying how the width of a column is adjusted. + + + + + The column width does not automatically adjust. + + + + + The column width adjusts to fit the contents of the displayed data cells. + + + + + The column width adjusts to fit the contents of the header cell. + + + + + The column width adjusts to fit the contents of the filter cell. + + + + + The column width adjusts to fit the contents of the summary row cell. + + + + + The column width adjusts to fit the contents of the system cells. + + + + + The column width adjusts to fit the contents of the displayed cells. + + + + + The column width adjusts to fit the contents of all cells (displayed and non-displayed) + + + + + Defines columns auto size mode. + + + + + The column widths do not automatically adjust. + + + + + The column widths adjust so that the widths of all columns exactly fill the display area of the control + + + + + Column which uses browse editor. + + + + + GridViewDataColumn inherits and is base for all data-bound columns. + + + + + Abstract class, representing the base for all types of columns in + A special inheritor is the which is base for all data-bound columns. + + Implements and interfaces + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + Initializes the column. + + + This method is called when the column is associated with GridViewTemplate. + + + + + Adjusts the column width to fit the contents of all cells in the column, including the header cell. + + + + + Sorts the specified sort order. + + The sort order. + if set to true [multi sort mode]. + + + + Retrieves the default group-by expression string for the column. + + The string value representing a group-by expression with default settings. + + + + Determines whether this column may be dragged onto the GroupBy panel. + + + + + + + Determines whether this column may be dragged onto the GroupBy panel. + + + + + + Returns a string representation of the column. + + The string representation for the column. + + + + Returns the type of cell element to be created for the specified row. + + The specified row. + The type of the cell to be created. + + + + Gets a value indicating default minimum width for the inherited column type. If not overridden in inheritor class it defaults to 5. + + + + + + Returns an editor instance of the default type for the editor provider. + + An object that implements interface. + + + + Gets the default editor type for the editor provider. + + The default type. + + + + Initializes a specified editor. + + An object that implements interface. + + + + Gets or set the ColumnInfo Header image. + + + + + Gets or sets the image layout of the image inside the cells. + + + + + Gets or sets a value indicating the TextImageRelation: ImageAboveText, + ImageBeforeText, Overlay, TextAboveImage, and TextBeforeImage. + + + + + Gets a value indicating whether the column can be resized. + + + + + Gets or sets the width of the column. + + + + + Gets or sets the minimum width, in pixels, of the column. + + + + + Gets or sets the maximal width, in pixels, of the column. + + + + + Gets or sets the vertical span of the cells in that column (the height) in pixels. + Relevant only in . + + + + + Gets or sets a value indicating whether to stretch the column height vertically. Used with . + + + + + Gets or sets the mode by which the column automatically adjusts its width after BestFit is executed. + + + + + Gets or sets the object that contains data about the column. + + + + + Gets or sets the name data source property or database column to which the is bound. + + + + + Gets or sets a string value representing the column's unique name in the Columns collection of the . + + + + + Gets or sets a value indicating the sort order of data in the column. + + + + + Gets or sets the expression used to calculate the values of this column. + + + + + Gets or sets the value indicating if expression editor menu item will be available to the user. + + + + + Gets list of instances that define the currently applied conditional formatting of the data in the column. + + + + + Gets a value indicating the position of the column in the Columns collection of the . + + + + + Gets the instance of which the column belongs to. + + + + + Gets a value indicating whether the column is bound to the data field referred by . + + + + + Gets value indicating whether the current column is automatically created when the RadGridView is being bound to a data source. + + + + + Gets a boolean value indicating whether a sort order of data in the column is currently applied. + + When multi-column sorting is applied, the column might be partially sorted. + + + + Gets a value indicating whether the data in the is grouped based on the content of this column. + + + + + + Gets or sets a value indicating whether the column will be visible in . + + + Use this property if you want to hide columns from the user. + + + + + Gets or sets a value indicating whether the column is visible. + + + + + Gets value indicating whether the column contains the currently selected cell in the . + + + + + Gets or sets value indicating whether the current column is pinned and cannot be moved from its location when a user scrolls horizontally. + + + + + Gets or sets the pin position for the row. When the column is pinned, it cannot be moved from its location when a user scrolls horizontally. + + + + + Gets or sets a value indicating whether the user can reorder this column using the mouse. + + + + + Gets or sets a value indicating whether the user can sort the data in the based on the contents of this column. + + + + + Gets or sets a value indicating whether the user can group data based on the content of this column. + + + + + + + Gets or sets a value indicating whether the user can edit the data in the column's cells. + + + + + Gets or sets value indicating whether the user can resize the column. + + + + + Gets or sets value indicating whether the user can hide the column. + + + + + Gets or sets the caption text on the column's header cell. + + + + + Disable or Enable HTML-like text rendering in the column. + + + + + Gets or sets value indicating whether the text in each cell in the column should be wrapped. + + + + + Gets or sets a value indicating the position of the within the header cell. + + + + + Gets or sets a value indicating the position of the cell content within a column's cells. + + + + + Gets value indicating whether a column can be current. + + + By default it is true, i.e. each inheriting column can be current by default. + To change the default value, override it in your inherited class. + + + + + Allows previewing of an event that is about to be dispatched. + + + + + + + Core entry point for receiving and processing an event. + + + + + + + Allows additional processing of an event that has been just dispatched. + + + + + + + Allows a listener to examine events queue and optionally to remove/add events. + + + True if the listener has actually modified the queue, false otherwise. + + + + Gets the event type(s) this listener needs to process. + + + + + Gets the priority of the current instance. + + + + + Gets the event process mode for this instance. + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + Returns a string representation of the column. + + The string representation for the column. + + + + Gets or sets a value indicating whether the user can filter by this column. + + + + + Gets or sets a value indicating whether the user can search by this column. + + + + + Gets or sets a value indicating whether clicking on the header cell of this column would allow the user to set natural (no) sort. + + + + + Gets or sets a value indicating whether the data type converter of this column should be used when sorting. + + + + + Gets or sets the filter descriptor. + + The filter descriptor. + + + + Gets or sets the data type of the column. + + + + + Gets or sets the type of the excel export. + + The type of the excel export. + + + + Gets or sets the excel export format string. Note that this format is considered only if property is set to . + + The excel export format string. + + + + Gets or sets the culture info used when formatting cell values. + + + + + Gets or sets the format string applied to the textual content of each cell in the column. + + + + + Gets or sets the cell display value corresponding to a cell value of System.DBNull or null + + + + + Gets or sets a value to the data source when the user enters a null value into a cell + + + + + Gets whether the distinct values collection contains null or DbNull.Value. It should be used only after calling the + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Column which uses browse editor. + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Gets or sets the type of the excel export. + + The type of the excel export. + + + + Inherits and presents Boolean values + + + + + + Initializes a new instance of the . + + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + Gets the default MinWidth of GridViewCheckBoxColumn (defaults to 20) + + + + + + + + + + + + + + Gets or sets a value indicating the alignment of the check box. + + + + Gets or sets a value indicating the position of the CheckBoxElement along with the text. + + + + + Gets or sets a value indicating whether to use a three state checkbox. + + + + + Gets or sets a value indicating whether to show embedded CheckBox in header cell. + + + + + Gets a value indicating whether the CheckBox in header cell checked. + + + + + This property determines whether the CheckBox in the header cell will be synced with the data cells. + + + + + This property determines whether changing a value of a check box will immediately be send to the cell (OnValueChange) or when the current cell is changed or the grid is being validated (OnCellChangeOrValidating) + + + + + Column for displaying and editing colors. + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + A collection of GridViewColumn objects + + + + + Adds the column with specified name. + + The name. + + + + Adds the column with specified name and header text. + + The name. + The header text. + + + + + Adds the column with specified name, header text and field name. + + The name. + The header text. + Name of the field. + + + + + Removes the specified column name. + + Name of the column. + + + + Determines whether a with the specified name exists in the collection. + + The object to locate. + true if item is found otherwise, false. + + + + Indexes the of. + + Name of the column. + + + + + Gets the name of the column by field. + + Name of the field. + + + + + Gets the column by header text. + + The header text. + + + + + Adds the range. + + The grid view columns. + + + + Gets the owner. + + The owner. + + + + Gets the with the specified column name. + + + + + + Represents column whose cells contains comboboxes bound to data source + + + + + Specifies methods used in bindable columns. + + + + + Gets or sets the DataSource for the column. + + + + + Gets or sets the value member. + + + + + Gets or sets the display member. + + + + + Initializes a new instance of the . + + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Returns the lookup value for the specified cell value + + The cell value + The lookup value corresponding to the specified cell value + + + + Gets a value that indicates the SelectedIndex will be synchronized with text in Editable area + + + + + Gets or sets a value indicating whether [display member sort]. + + true if [display member sort]; otherwise, false. + + + + Gets or sets the data source that populates the items for the . + + + + + Gets or sets a string that specifies the property or database column from which to get values that correspond to the items in the . + + + + + Gets or sets a string that specifies the property or database column from which to retrieve strings for display in the items. + + + + + Specifies the mode for the automatic completion feature used in the . + + + + + Gets or sets a value specifying the style of the . + + + + + Gets or sets a value specifying the style of the . + + + + + Gets a value indicating whether this column has lookup value. + + + + + Inherits and contains buttons, one per row. + + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + Grouping by this type of column cannot be performed. That method returns string.empty + + string.Empty + + + + + This property is overriden to always return false since grouping by this column is not allowed. + + + + + + Gets or sets a value indicating whether the user can filter by this column. + + + + + Gets or sets a value indicating whether the user can search by this column. + + + + + This property is overriden to always return true since Command column cannot be edited. + + + + + + Gets or sets the default text displayed on the button cell. + + + + + + Gets or sets a value indicating whether the default text or the value as text will appear on the button displayed by the cell. + + + + + + Gets or sets the default text displayed on the button cell. + + + + + + Gets or sets the image layout of the image inside the cells. + + + + + Inherits and presents DateTime objects and defines the corresponding editor (Calendar) + + + + + Initializes a new instance of the . + + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Gets or sets the format of the date and time displayed in the control. + + + + + Gets or sets the custom date/time format string. + + + + + Gets or sets the type of the excel export. + + The type of the excel export. + + + + Determines the type of editor to be used for editing cell in a of a + + + + + A with a drop down calendar. + + + + + A with a drop down clock. + + + + + A with an up and down arrows. + + + + + Inherits and presents decimal values + + + + + + Initializes a new instance of the . + + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + Initializes a new instance of the . + + The numeric type of the column. + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Gets or sets a value indicating the position of the cell content within a column's cells. + + + + + Gets or sets the number of decimal places to display in the . + + + + + Gets or sets the amount to increment or decrement from the current value of the . + + + + + Gets or sets a value indicating the maximum value for the . + + + + + Gets or sets a value indicating the minimum value for the . + + + + + Gets or sets a value indicating whether the thousands separator will be displayed in the . + + + + + Gets or sets the whether GridSpinEditor will be used as a numeric textbox. + + + + + Gets or sets the type of the excel export. + + The type of the excel export. + + + + Inherits and presents group of columns + + + + + Initializes the class. + + + + + Initializes a new instance of the . + + The , owner of this column + + + + Gets the corresponding + + + + + Gets the corresponding + + + + + Column which cells contain hyperlinks. + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Defines the action for opening of a link. + + + + + Defines the active link area. + + + + + Actions for opening of a link. + + + + + Active link area. + + + + + The column presents Image objects + + + + + Initializes a new instance of the . + + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + Grouping by this type of column cannot be performed. That method returns string.empty + + string.Empty + + + + + This property is overriden to always return false since grouping by this column is not allowed. + + + + + + This property is overriden to always return true since this column cannot be edited. + + + + + + Gets or sets a value that specifies the position of the image in the cell. + + + + + Inherits and presents indentation between levels in grouping + + + + + Initializes the + + the GridViewTemplate containing this column. + the level that this column is used to indent. + + + + Gets the indent level for this column. + + + + + Represents column whose cells contain masked text boxes + + + + + Initializes a new instance of the . + + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Gets or sets the mask type for the . + + + + + Gets or sets the mask type for the . + + + + Gets or sets a value that determines whether literals and prompt characters + are included in the formatted string. + One of the values. The + default is . + Property + set with a value that is not + valid. + + + + Gets or sets the mask for the . + + + + + Gets or sets the type of the excel export. + + The type of the excel export. + + + + Gets or set a value indicating whether end users can set the value to NULL. + This can be achieved by pressing Ctrl + Del or Ctrl + 0 key combinations. + + + + + Represents column whose cells contain multi column combo boxes. + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + A string value referring to the unique name of the column. + + + + Initializes a new instance of the class. + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + Gets the type of the cell. + + The row. + + + + + Gets the default editor type for the editor provider. + + The default type. + + + + Gets or sets a value indicating the maximum value for the Rating. + + + The maximum. + + + + + Gets or sets a value indicating the minimum value for the Rating. + + + The minimum. + + + + + Gets or sets a value indicating whether [should paint hover]. + + + true if [should paint hover]; otherwise, false. + + + + + Gets or sets the selection mode of the rating control (full item, half item, precise selection). + + + The selection mode. + + + + + Gets or sets a value indicating whether the user can edit the data in the column's cells. + + + + + Gets or sets the direction of rating element paint (Standard, Reversed). + + + The direction. + + + + + Gets or sets the tool tip precision. This property is used to determine when the tooltip should reflect the value change. The default value is 0.1, so changes with lesser value will not be affected. + + + The tool tip precision. + + + + + Gets or sets the percentage rounding. In precise mode, the rounding determines when the value will round to the minimum/maximum. + + + The percentage rounding. + + + + + Gets or sets the tool tip format string. + + + The tool tip format string. + + + + + This is the left-most column in the grid. Used to mark whether a row is current/in edit mode/etc. + + + + + Initializes the + + the GridViewTemplate containing this column. + + + + Inherits and presents String values + + + + + + Initializes a new instance of the . + + + + + + Initializes a new instance of the . + + A string value referring to the field name of the column. + + + + + Initializes a new instance of the . + + A string value referring to the unique name of the column. + A string value referring to the field name to which the column is bound. + + + + + + + + + + + + + Gets or sets the maximum length of the text that can be entered. + + + + + Gets or sets a value indicating whether the text in the column cells can span more than one line. + + + + + Gets or sets a value indicating the character casing of the editor. + + + + + Gets or sets whether the editor accepts the tab key in multiline mode + + + + + Gets or sets whether the editor accepts the ENTER key in multiline mode + + + + + Gets or sets the type of the excel export. + + The type of the excel export. + + + + Defines the position of pinned columns + + + + + This class is responsible for conversion of data between and its data source + + + + + Initializes the class. + + + + + Initializes a new instance of the GridViewDataConverter class. + + + + + Gets the value of the cell as formatted for display. + + The value to be formatted. + An instance of . + The that value should be converted for. + Returns the formatted value + + + + Gets the value of the cell as formatted for display. + + The value to be formatted. + The that value should be converted for. + If the value is null, the should be considered as result. + An instance of . + Returns the formatted value + + + + Formats a value for display to an actual cell value. + + The value to be formatted. + The that value should be converted for. + An instance of . + The object instance that will hold the result.. + The generated exception if Parse has failed for some reason, null otherwise. + + + + Converts a value formatted for display to an actual cell value. + + The value to be converted. + An instance of . + Returns the converted value + + + + Converts a value formatted for display to an actual cell value. + + The value to be converted. + An instance of . + The object instance that will hold the result.. + The generated exception if Parse has failed for some reason, null otherwise. + + + + Represents a DateTime converter. + + + + + Initializes a new instance of the class. + + The owner column. + + + + Gets a value indicating whether this converter can convert an object + in the given source type to a using the specified + context. + + An + that provides a format context. + A that represents the type + you wish to convert from. + + true if this object can perform the conversion; otherwise, false. + + + + + Converts the given object to the type of this converter, using the specified + context and culture information. + + An + that provides a format context. + The to + use as the current culture. + The to convert. + The conversion cannot be performed. + + + An that represents the converted value. + + + + + Gets a value indicating whether this converter can convert an object + to the given destination type using the context. + + An + that provides a format context. + A that represents the + type you wish to convert to. + + true if this converter can perform the conversion; otherwise, false. + + + + + Converts the given value object to a + using the arguments. + + An + that provides a format context. + An optional . + If not supplied, the current culture is assumed. + The to convert. + The to convert the + value to. + The conversion cannot be performed. + + + An that represents the converted . + + + + + Cutting and copying to the Clipboard is disabled. + + + + + The text values of selected cells can be cut and copied to the Clipboard. Header text is not included. + + + + + The text values of selected cells can be cut and copied to the Clipboard. Header text is included for rows and columns that contain selected cells. + + + + + Copying to the Clipboard is disabled. + + + + + The text values of selected cells can be copied to the Clipboard. Header text is not included. + + + + + The text values of selected cells can be copied to the Clipboard. Header text is included for rows and columns that contain selected cells. + + + + + Pasting to the RadGridView is disabled. + + + + + Pasting to the RadGridView is enabled. + + + + + Pasting to the RadGridView is enabled. The RadGridView Cell events will be raised during pasting operation. + + + + + Represents the method that will handle the ChildViewExpanded event of a RadGridView. + + + + + Provides data for the ChildViewExpanded event + + + + + Initializes a new instance of the ChildViewExpandedEventArgs class. + + The that was expanded/collapsed. + + + + Gets the GridViewRowInfo that was expanded. + + + + + Gets the GridViewDetailsRowInfo associated with the currently expanded/collapsed row. + + + + + Gets the child GridViewInfo for the currenlty expanded/collapsed row. + + + + + Gets the expanded state for the row. + + + + + Represents the method that will handle the ChildViewExpanding event of a RadGridView. + + + + + Provides data for the ChildViewExpanding event + + + + + Initializes a new instance of the ChildViewExpandingEventArgs class. + + + + + Gets the GridViewRowInfo" that is expanding/collapsing. + + + + + Gets the expanded/collapsed state for the row. + + + + + Represents the method that will handle the ColumnIndexChanged events of a RadGridView. + + + + + Provides data for the ColumnIndexChanged event + + + + + Initializes a new instance of the ColumnIndexChangedEventArgs class. + + The old column index. + The new column index. + + + + Gets the old column index. + + + + + Gets the new column index. + + + + + Represents the method that will handle ColumnIndexChanging events of RadGridView. + + + + + Provides data for the ColumnIndexChanging event + + + + + Initializes a new instance of the ColumnIndexChangingEventArgs class. + + + + + Initializes a new instance of the ColumnIndexChangingEventArgs class. + + + + + Gets the old column index. + + + + + Gets the new column index. + + + + + Represents the method that will handle the CurrentColumnChanged events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of CurrentColumnChangedEventArgs containing the data related with this event + + + + Provides data for the CurrentColumnChanged event + + + + + Gets the current column. + + + + + Gets the new column. + + + + + Initializes a new instance of the CurrentColumnChangedEventArgs class. + + The current column. + The new column. + + + + Represents the method that will handle the CurrentColumnChanging events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of CurrentColumnChangingEventArgs containing the data related with this event + + + + Provides data for the CurrentColumnChanging event + + + + + Gets the current column. + + + + + Gets the new column. + + + + + Initializes a new instance of the CurrentColumnChangingEventArgs class. + + The current column. + The new column. + + + + Represents the method that will handle the CurrentRowChanged events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of CurrentRowChangedEventArgs containing the data related with this event + + + + Provides data for the CurrentRowChanged event + + + + + Gets the old row. + + + + + Gets the new row. + + + + + Initializes a new instance of the CurrentRowChangedEventArgs class. + + The old row. + The new row. + + + + Represents the method that will handle the CurrentRowChanging events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of CurrentRowChangingEventArgs containing the data related with this event + + + + Provides data for the CurrentRowChanging event + + + + + Gets the current row. + + + + + Gets the new row. + + + + + Initializes a new instance of the CurrentRowChanging class. + + The current row. + The new row. + + + + Represents the method that will handle the CustomFiltering event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewCustomFilteringEventArgs containing the row related with this event + + + + Provides data for the CustomFiltering event + + + + + Initializes a new instance of the GridViewCustomFilteringEventArgs class. + + The that is being filtered. + The that is filtered. + + + + Initializes a new instance of the GridViewCustomFilteringEventArgs class. + + The that is being filtered. + The that is filtered. + + + + + Gets the row info that is being filtered. + + The row info that is being filtered. + + + + Gets the that is being filtered. + + + + + Gets or sets the visible state for the specified row. + + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Represents the method that will handle the CustomGrouping event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewCustomGroupingEventArgs containing the row related with this event + + + + Initializes a new instance of the class. + + The template. + The row. + The level. + + + + Initializes a new instance of the class. + + The template. + The row. + The level. + The group key. + + + + Gets the template. + + The template. + + + + Gets the row. + + The row. + + + + Gets the level. + + The level. + + + + Gets or sets the group key used for custom groupin operation. + + The group key. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Represents the method that will handle the CustomSorting event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewCustomSortingEventArgs containing the row related with this event + + + + Initializes a new instance of the class. + + The grid view template. + The row info1. + The row info2. + + + + Initializes a new instance of the class. + + The template. + The row1. + The row2. + The sort result. + + + + Gets the first row to compare + + + + + Gets the second row to compare + + + + + Gets the template. + + The template. + + + + Gets or sets the sorting result. + + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a Reset change. + + The action that caused the event. This must be set to Reset. + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item change or a reset change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Replace change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + + + Provides data for the ViewChanged event. + + + + + Gets the list of new items involved in the change. + + + + + Gets the index at which the change occurred. + + + + + Gets the list of items affected by a Replace, Remove, or Move action. + + + + + Gets the index at which a Move, Remove, ore Replace action occurred. + + + + + Gets the name of the property that chanhged. + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a Reset change. + + The action that caused the event. This must be set to Reset. + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item change or a reset change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Replace change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + + Provides data for the ViewChanged event. + + + + + Gets the list of new items involved in the change. + + + + + Gets the index at which the change occurred. + + + + + Gets the list of items affected by a Replace, Remove, or Move action. + + + + + Gets the index at which a Move, Remove, ore Replace action occurred. + + + + + Provides data for row-related RadGridView events. + + + + + Initializes a new instance of the GridViewRowEventArgs class. + + The GridViewRowInfo that the event occurred for. + + + + Initializes a new instance of the GridViewRowEventArgs class. + + The GridViewRowInfo that the event occurred for. + + + + Gets the GridViewRowInfo associated with the event. + + + + + Represent empty event dispatcher + + + + + Suspends the notifications. + + + + + Resumes the notifications. + + + + + Suspends the event. + + The key. + + + + Resumes the event. + + The key. + + + + Raises the event. + + + The event key. + The sender. + The args. + + + + Adds the listener. + + + The event key. + The event raising method. + + + + Removes the listener. + + + The event key. + The event raising method. + + + + Removes all listeners for specified key + + + + + + Clears all listeners + + + + Represents the method that will handle the event of a . + 2 + + + Provides data for the event. + 2 + + + Initializes a new instance of the class. + One of the values. + + + Gets a value specifying how the list changed. + One of the values. + 1 + + + + Represents the method that will handle unbound related events of a RadGridView. + + The event sender, typically this is RadGridView + Instance of GridViewEventArgs containing the row related with this event + + + Provides data for events related to cell and row operations. + 2 + + + Initializes a new instance of the class. + The index of the column containing the cell that the event occurs for. + The index of the row containing the cell that the event occurs for. + columnIndex is less than -1.-or-rowIndex is less than -1. + + + Gets a value indicating the column index of the cell that the event occurs for. + The index of the column containing the cell that the event occurs for. + 1 + + + Gets a value indicating the row index of the cell that the event occurs for. + The index of the row containing the cell that the event occurs for. + 1 + + + + Gets the cell value. + + + + + Gets the cell row. + + + + + Gets the cell column. + + + + + Represents the method that will handle the GridViewCollectionChanging events of a RadGridView. + + The event sender + Instance of GridViewCollectionChangedEventArgs containing the data related with this event + + + + Provides data for the GridViewCollectionChanged event + + + + + Initializes a new instance of the GridViewCollectionChangedEventArgs class. + + + + + Initializes a new instance of the GridViewCollectionChangedEventArgs class. + + + + + Initializes a new instance of the GridViewCollectionChangedEventArgs class. + + + + + Gets the GridViewTemplate where the event was fired. + + + + + Provides data for the GridViewCollectionChanging event + + + + + Initializes a new instance of the GridViewCollectionChangingEventArgs class. + + The + The + The changed item + The index + The old index + + + + Initializes a new instance of the GridViewCollectionChangingEventArgs class. + + The + The + The new item + The old item + The new index + The property changing arguments + + + + Initializes a new instance of the GridViewCollectionChangingEventArgs class. + + The + The + The new items list + The old items list + The new items starting index + The old items starting index + The property changing arguments + + + + Gets the + + + + + Fires when an instance of inheritor is needed. + + An instance of . + An instance of + + + /// + Provide data information about CreateDataItem event + + + + + Initializes a new instance of the class. + + The instance of . + The instance of . + + + + Gets or sets the row info. + + The row info. + + + + Gets the view info. + + The view info. + + + Represents the state of a data-bound control when a data error occurred. + + + A data error occurred when copying content to the Clipboard. This value indicates that the cell value could not be converted to a string. + + + A data error occurred when committing changes to the data store. This value indicates that data entered in a cell could not be committed to the underlying data store. + + + A data error occurred when the selection cursor moved to another cell. This value indicates that a user selected a cell when the previously selected cell had an error condition. + + + A data error occurred when displaying a cell that was populated by a data source. This value indicates that the value from the data source cannot be displayed by the cell, or a mapping that translates the value from the data source to the cell is missing. + + + A data error occurred when trying to format data that is either being sent to a data store, or being loaded from a data store. This value indicates that a change to a cell failed to format correctly. Either the new cell value needs to be corrected or the cell's formatting needs to change. + + + A data error occurred when restoring a cell to its previous value. This value indicates that a cell tried to cancel an edit and the rollback to the initial value failed. This can occur if the cell formatting changed so that it is incompatible with the initial value. + + + A data error occurred when the lost focus. This value indicates that the could not commit user changes after losing focus. + + + A data error occurred when parsing new data. This value indicates that the could not parse new data that was entered by the user or loaded from the underlying data store. + + + A data error occurred when calculating the preferred size of a cell. This value indicates that the failed to calculate the preferred width or height of a cell when programmatically resizing a column or row. This can occur if the cell failed to format its value. + + + A data error occurred when deleting a row. This value indicates that the underlying data store threw an exception when a data-bound deleted a row. + + + A data error occurred when scrolling a new region into view. This value indicates that a cell with data errors scrolled into view programmatically or with the scroll bar. + + + + Represents the method that will handle the DataError event of a RadGridView. + + + + + Provides data for the DataError event. + + + + + Initializes a new instance of the RadGridViewDataErrorEventArgs. + + + + Gets the column index of the cell that the event occurs for. + The column index of the that the event occurs for. + 1 + + + Gets the row index of the cell that the event occurs for. + The row index of the that the event occurs for. + 1 + + + + Gets details about the state of the RadGridView when the error occurred. + + + + + Gets the exception that represents the error. + + + + + Gets or sets a value indicating whether to throw the exception after the RadGridViewDataErrorEventHandler delegate is finished with it. + + + + + Represents the method that will handle DataGroup related events of a RadGridView. + + + + + Provides data for DataGroup events related to grouping operations. + + + + + Gets the gorup count. + + + + + Gets the expression. + + + + + Gets the header text. + + + + + Initializes a new instance of the class. + + The related with the cell. + The related with the cell. + + + + Compares the current instance of to the one passed as parameter + + The object to compare to the current instance. + + + + + Gets the related with the cell. + + + + + Gets the related with the cell. + + + + Gets a value indicating the column index of the cell that the event occurs for. + The index of the column containing the cell that the event occurs for. + 1 + + + Gets a value indicating the row index of the cell that the event occurs for. + The index of the row containing the cell that the event occurs for. + 1 + + + + Represents the method that will handle row-related events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewEventArgs containing the row related with this event + + + + Provides data for row-related RadGridView events. + + + + + Initializes a new instance of the GridViewRowEventArgs class. + + The GridViewRowInfo that the event occurred for. + + + + Gets the GridViewRowInfo associated with the event. + + + + + Represents the method that will handle row-related events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewEventArgs containing the row related with this event + + + + Represents the method that will handle the GroupSummaryEvaluate events of a RadGridView. + + + + + Provides data for the GroupSummaryEvaluate event + + + + + Initializes a new instance of the GridViewRowEventArgs class. + + + + + Gets or sets the format string + + + + + Gets the DataGroup. + + + + + Gets or sets the group summary value + + + + + Gets the GridViewSummaryItem. + + + + + Gets the parent row. + + + + + Gets the event sender. + + + + + Represents the method that will handle the PositionChanged event. + + + + + + + Provides data for the PositionChanged event. + + + + + Initializes a new instance of the PositionChangingEventArgs class. + + The new row. + The new column. + + + + Gets the row that should be the new current row. + + + + + Gets the columnm that should be the new current column. + + + + + Represents the method that will handle the PositionChanging event. + + + + + + + Provides data for the PositionChanging event. + + + + + Initializes a new instance of the PositionChangingEventArgs class. + + The new row. + The new column. + + + + Gets the row that should be the new current row. + + + + + Gets the columnm that should be the new current column. + + + + + Represents the method that will handle events in GridViewRowInfoEnumerator. + + + + + + + Provides data for all events used uin GridViewRowInfoEnumerator. + + + + + Initializes a new instance of the RowEnumeratorEventArgs class. + + The row that is currently processed. + + + + Gets the row that is currently processed + + + + + Gets or sets a value indicating whether to process the row or not + + + + + Represents the method that will handle the RowSourceNeededEventArgs events of a RadGridView. + + + + + Provides data for the parent row in RadGridView Hierarchy Mode + + + + + Represents the method that will handle RowValidated event of RadGridView. + + + + + Event arguments for RowValidated event. + + + + + Initializes a new instance of the RowValidatedEventArgs class. + + The that is validated. + + + + Gets the that is validated. + + + + + The rowindex for the row. + + + + + Represents the method that will handle the RowValidating event of a RadGridView. + + + + + Provides data for the RowValidating event + + + + + Initializes a new instance of the RowValidatingEventArgs class. + + The that is validating. + + + + Gets the that is validating. + + + + + The rowindex for the row. + + + + + Initializes a new instance of the class. + + The criteria. + The cell. + The cells. + The search finished. + + + + Gets the search criteria that is currently being used for the search operation. + + + + + Gets a cell info representing a new search result. + + + + + Gets a list of cell infos representing a new search result. + + + + + Gets a value indicating that the search operation is completed. + + + + + One or more items were added to the view. + + + + + One or more items were removed from the view. + + + + + One or more items were replaced in the view. + + + + + One or more items were moved within the view. + + + + + The content of the view changed dramatically. + + + + + An item in the view has changed. + + + + + filer in the view has changed. + + + + + sorting in the view has changed. + + + + + groping in the view has changed. + + + + + paging in the view has changed. + + + + + meta data like data item fields in the view has changed. + + + + + meta data like data item fields in the view has changed. + + + + + meta data like data item fields in the view has changed. + + + + + column property has changed. + + + + + row property has changed. + + + + + template property has changed. + + + + + Current view has changed. + + + + + Cell data is changed. + + + + + EnsureRowVisible called + + + + + EnsureCellVisible called + + + + + BestFitColumn called + + + + + Row is invalidated + + + + + Conditional formatting has changed + + + + + BeginEdit called + + + + + CurrentColumn changed + + + + + ExpandedChanged + + + + + ColumnGroupPropertyChanged + + + + + CurrentCellChanged + + + + + EndEdit called + + + + + ItemChanging called + + + + + FilterExpressionChanged called + + + + + Represents a filter expression. + + + + + Creates an instance of the FilterExpression class. + + + + + Creates an instance of the FilterExpression class. + + The field name in the context of which the filter string is generated. + + + + Creates an instance of the FilterExpression class with a new FilterPredicate. + + The binary operation that is used by the new FilterExpression. + The GridKnownFunction that is used to create the FilterPredicate object. + The values that are used to create the FilterPredicate object. + + + + Creates an instance of the FilterExpression class with a new FilterPredicate. + + The field name in the context of which the filter string is generated. + The binary operation that is used by the new FilterExpression. + The GridKnownFunction that is used to create the FilterPredicate object. + The values that are used to create the FilterPredicate object. + + + + Gets the valid predicate count. + + + + + + Combines this FilterExpression object with another. + + The second FilterExpression object. + The new FilterExpression object. + + + + Converts the FilterExpression object to a filter string. + + + + + + Gets the parameters of the filter expression. + + The parameters. + + + + Gets or sets a value that indicates the name of the associated field. + + + + + Gets a collection containing the filter predicates. + + + + + Gets or sets a value that indicates which binary operator will be used when concatenating multiple filter expressions. + + + + + Gets a value indicating whether the filter expression is valid. + + + + + Gets a value indicating whether this instance is default filter descriptor of the column + + + true if this instance is default; otherwise, false. + + + + + Logical operation between two consequetive s + + + + + Gets the filter expressions. + + The filter expressions. + + + + Represents a collection of FilterExpression objects. + + + + + Gets the owner of + + The owner of the instance of + + + + Initializes a new instance of the class. + + The owner. + + + + Initializes a new instance of the class. + + The expressions. + + + + Performs application-defined tasks associated with freeing, releasing, + or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + The collection was modified + after the enumerator was created. + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first + element in the collection. + + The collection was modified + after the enumerator was created. + + + + Gets the element in the collection at the current position of the enumerator. + + The element in the collection at the current position of the enumerator. + + + + + + + + + + + + + + + + + + + + Represents a filter predicate + + + + + Creates new object + + + + + Creates a new object using the parameters. + + The binary operator used in the filter predicate. + The used in the filter predicate. + + + + Creates a new object using the parameters. + + The binary operator used in the filter predicate. + The used in the filter predicate. + The values used in the filter predicate. + + + + // Raises the PropertyChanging event + // + + The object to compare with the current object. + // + // + + true if the specified is equal to the + current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + A hash code for the current . + + + + This method is called right before the event is fired. + + + + + + Gets or sets the function that is applied on the and the rows in the grid to filter them. + + + + + Gets or sets a value that indicates which binary operator will be used when concatenating multiple filter expressions. + + + + + A collection of values and parameters that are used in the predicate. + Each entry should be a value or reference to a parameter in the . + + + + + + Gets a value indicating whether the filter predicate is valid. + + + + + Represents a collection of FilterPredicate objects. + + + + + Creates a new FilterPredicate object using the parameters and adds it to the collection. + + The binary operator used in the filter predicate. + The used in the filter predicate. + The values used in the filter predicate. + + + + Adds a collection of FilterPredicate objects. + + The collection of FilterPredicate objects. + + + + Adds a collection of FilterPredicate objects. + + The collection of FilterPredicate objects. + + + + Removes a collection of FilterPredicate objects. + + The collection of FilterPredicate objects. + + + + Removes a collection of FilterPredicate objects. + + The collection of FilterPredicate objects. + + + + Finds a FilterPredicate objects by value. + + The value to look for. + The first matching FilterPredicate object. Null if there are none. + + + + Predefined filter expression enumeration. Used by class. + + + + + No filter would be applied, filter controls would be cleared + + + + + Same as: FieldName LIKE '%value%' + + + + + Same as: FieldName NOT LIKE '%value%' + + + + + Same as: FieldName LIKE 'value%' + + + + + Same as: FieldName LIKE '%value' + + + + + Same as: FieldName = value + + + + Same as: FieldName != value + + + Same as: FieldName > value + + + + Same as: FieldName < value + + + + Same as: FieldName >= value + + + + Same as: FieldName <= value + + + + + Same as: value1 <= FieldName <= value2.
+ Note that value1 and value2 should be separated by [space] when entered as + filter. +
+
+ + + Same as: FieldName <= value1 && FieldName >= value2.
+ Note that value1 and value2 should be separated by [space] when entered as + filter. +
+
+ + + Same as: FieldName = '' + + + + Same as: FieldName != '' + + + + Only null values + + + + + Only those records that does not contain null values within the corresponding column + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name. + The value. + + + + Gets or sets the name. + + The name. + + + + Gets or sets the value. + + The value. + + + + Provides helper methods for RadGridView. This class is used internally. + + + + + Gets the valid sub types. + + Type of the base. + The type resolution service. + + + + + Gets the all sub types. + + Type of the base. + + + + + Shows the error dialog. + + The UI service. + The ex. + + + + Gets the binding source name prefix. + + The data source. + The data member. + + + + + Builds the name from text. + + The text. + Type of the component. + The service provider. + + + + + Gets a unique name for an item of the collection. + + The + A base name to use. + the unique name for the collection. + + + + Gets a unique name for an item of the unique. + + The collection. + A base name to use. + A unique name for the collection. + + + + Checks whether the specified unique name exists in the specified collection. + + The to look. + A valid unique name. + true if the name exists. + + + + Checks whether the a column can be bounded to data of this + + The type to check + True if the type is bindable, false otherwise. + + + + This class contains logical information about visual presentation of flat tabular data in . + + + + + Initializes a new instance of the . + + The which this view corresponds to. + + + + Finds the parent of instance. + + The row info. + The parent of instance. + + + + Refreshes the ChildRows of GridViewInfo. + + + + + Gets a value that indicates whether the ChildRows collection of GridViewInfo needs to be refreshed. + + true if [needs refresh]; otherwise, false. + + + + Gets the instance of which the current view corresponds to. + + + + + Gets the parent which the current view is linked to. + + + + + Gets the index of the in the currently selected group. + + + + + Gets the instance of representing the header row for the current view. + + + + + Gets the instance of representing the header row for the current view. + + + + + Gets the instance of for the current view. + This row represents the row which is used by users to add new data. + + + + + Gets the instance of for the current view. + This row represents the row which is used by users to search through the data inside . + + + + + Gets a readonly list of containing the system rows in this view. + + + + + Gets a readonly list of containing the pinned rows in this view. + + + + + Gets a readonly list of containing the summary rows in this view. + + + + + Gets or sets the current row of the current view. + + + + + Gets the rows in this view. + + The rows. + + + + Gets the rows in this view. + + The rows. + + + + Determines whether [contains] [the specified template]. + + The template. + + true if [contains] [the specified template]; otherwise, false. + + + + + Indexes the of. + + The template. + + + + + Gets the with the specified template. + + + + + + Loads the specified rows. + + The rows. + + + + Loads the specified rows. + + The rows. + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Indexes the of. + + The item. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the at the specified index. + + + + + + Adds the range. + + The rows. + + + + Adds a row to the collection + + A variable number of objects that populate the cells of the new GridViewRowInfo. + The sorted index of the new row. + + + + Adds a new row to the rows collection. + + An instance + + + + Create new row. The new row is not added to collection. + + + + + + Moves a specified row in unbound mode + + The old index of the row. + The new index of the row. + + + + Adds an item to the . + + The object to add to the . + + The is read-only. + + + + + Removes all items from the . + + + The is read-only. + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is multidimensional. + -or- + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + -or- + Type T cannot be cast automatically to the type of the destination . + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + The is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + The is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + The is read-only. + + + + + Gets the owner. + + The owner. + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether the is read-only. + + + true if the is read-only; otherwise, false. + + + + + Gets or sets the at the specified index. + + + + + + Represents a collection containing that represent the selected rows in RadGridView. + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + An instance of the . + + + + Defines how bottom pinned rows will be layed out. + + + + + The bottom pinned rows will stay below the scrollable rows. If there are not enough rows to fill the viewport there will be no gap between the scrollable and pinned rows. + + + + + The bottom pinned rows will remain at the bottom of the viewport no matter how many scrollable rows there are in the viewport. + + + + + Gets the sort descriptors context. + + The sort descriptors context. + + + + This class contains logical information about a row of tabular data which is presented in the . + + + + + Initializes a new instance of the . + + An instance of which the current row belongs to. + + + + Calculates the actual height of the row. + + + + + Invalidates the row visual state. + + + + + Ensures that the row is visible. + + + + + Ensures that the row is visible. + + if set to true, it expands all parent rows. + + + + Deletes the row from the GridViewRowCollection. + + + + + Gets the error text associated with specified cell in this row. + + The field name that specifies the cell. + The error text if successfull. + + + + Determines whether the row has child rows. + + + true if the row has child rows; otherwise, false. + + + + + Allows PropertyChanging and PropertyChanged notifications to be temporary suspended. + + + + + Resumes property notifications after a previous SuspendPropertyNotifications call. + + + + + Searches up the chain of parents and returns the first one of the specified type. + + + + + + + Gets a value indicating whether the row is valid in its context. + + + + + Gets or sets a valie indicating whether the row is initialized. + + + + + Gets a value indicating whether the row is attached with a template. + + + + + Gets the value asscociated with the specified column. + + An isntance of + The value for the column. + + + + Gets the local cache for this row. + + + + + If a cell from this row is a search row hit, it's column info will be stored in this cache. + + + + + Determines whether the row is internally created by RadGridView and is used for displaying some dynamic information. + + + + + Gets a value indicating whether the row has been modified and changes are not saved in the data layer. + + + + + Gets or sets the error message text for row-level errors. + + + + + Gets the DataGroup that owns this row + + + + + Gets the index of row in GridViewRowCollection. + + The index. + + + + Gets the instance of which the row belongs to. + + + + + Gets the instance of which the corresponds to. + + + + + Gets the containing all objects for the current row. + + + + + Tag object that can be used to store user data, corresponding to the row. + + + + + Gets the data-bound object that populated the row. + + + + + Gets or sets the minimum height of the row. + + + + + Gets or sets the maximum height of the row. + + + + + Gets or sets the current height of the row. + + + + + Gets value indicating whether the column contains the currently selected cell in the RadGridView. + + + + + Gets or sets a value indicating whether the row is selected. + + + + + Gets or sets a value indicating whether the row is expanded for as a grouping header row or when showing hierarchical structure. + + + + + Gets or sets a value indicating whether the row is visible. + + + + + Gets or sets value indicating whether the current row is pinned and cannot be moved from its location when a user scrolls vertically. + + + + + Gets or sets the pin position for the row. When the row is pinned, it cannot be moved from its location when a user scrolls vertically. + + + + + Gets a value indicating if the values in the row can be edited. + + + + + Gets a value indicating whether the row index is odd. + + + + + Gets or sets value indicating whether the user can resize the row. + + + + + Gets the type of the for current GridViewRowInfo. + + + + + Gets the level of this hierarchical row. + + + + + Gets the parent row for this row. + + + + + Gets the visual child rows. + + The visual child rows. + + + + Suspends the search functionality. While suspended no searches will be started. + + + + + Resumes the search functionality after it has been suspended through the method. + + + + + Resumes the search functionality after it has been suspended through the method. + + Controls whether a search should be started after search is resumed. + + + + Gets or sets the that will be used for case insensitive searches. + + + + + Gets or sets the culture that will be used for case insensitive seraches. + + + + + Gets the index of the currently selected search result. + + + + + Gets the current count of search results. This number changes as new results are found. + + + + + Gets a value indicating whether the search functionality is suspended. + + + + + Gets a value indicating if there is an ongoing search operation at the moment. + + + + + Gets or sets a value indicating the number of results that will be returned one at a time by the search mechanism. + + + + + Gets or sets a value indicating the number of search results that will be returned as a group after the has been reached. + + + + + Gets or sets a value indicating whether serach will be case sensitive or case insensitive. + + + + + Gets or sets a value indicating whether serach will start from current position. + + + + + Gets or sets a value indicating whether to close the search row when escape key is pressed. + + The close on escape. + + + + Gets or sets a value indicating whether to show the close button. + + The show close button. + + + + Gets or sets a value indicating whether to show the clear button. + + The show clear button. + + + + Gets or sets whether search results should be highlighted. + + + + + Determines if the first found cell will be selected and brough into view. + + + + + Gets the current/last search criteria. + + + + + Gets or sets a value indicating wheather the search will be performed on a background thread [true] or on the main thread [false]. + + + + + Gets or sets a value indicating how long the grid will wait after a key is pressed until it starts a search. + + + + + Represents a summary item. + + + + + This is the default constructor of GridViewSummaryItem + + + + + Initializes a GridViewSummaryItem. + + The name of the column that will be used by the aggregate function. + Formatting to be applyed + the aggregate that will be used by the SumaryInfo + + + + Gets or sets the aggregate expression. This property essentially replaces the Aggregate property by providing advanced + expressions compared to single function. This propery has higher precedence compared to the Aggregate property which is obsolete. + + + + + Gets or sets the aggregate function that will be used with this summary info. + + + + + Gets or sets the name of the column that will be used by the aggregate function. + + + + + Gets or sets the formatting string that is applied to the value. + + + + + Gets or sets the owner template. + + + + + Represents a summary row item containing summary items. + + + + + Initializes a new instance of the . + + + + + Initializes a new instance of the . + + + + + + Gets the item related with the specified field name. + + the field name + an instance of if found, null otherwise. + + + + Gets or sets the array of GridViewSummaryItem fields that describe this summary row. + + + + + Gets or sets the owner template. + + + + + Represents a collection containing objects. + + + + + Represents the method that will handle the GridViewPdfExportCellFormatting events of GridViewPdfExport. + + The event sender. + Instance of containing the cell related with this event + + + + Provides data for the GridViewPdfExportCellFormatting event + + + + + Initializes a new instance of the class. + + The cell element which is drawn. + The related with the cell. + The related with the cell. + + + + Gets the Cell Element which is drawn. + + + + + A class that represents a cell element in the exported pdf. + + + + + Gets or sets the type of the row. + + The type of the row. + + + + Gets or sets the index of the row. + + The index of the row. + + + + Gets or sets the type of the column. + + The type of the column. + + + + Gets or sets the index of the column. + + The index of the column. + + + + Gets or sets the image. + + The image. + + + + Gets or sets the image layout. + + The image layout. + + + + Gets or sets the image alignment. + + The image alignment. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the fore color. + + The color of the fore. + + + + Gets or sets the text. + + The text. + + + + Gets or sets the text wrap. + + The text wrap. + + + + Gets or sets the text alignment. + + The text alignment. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the color of the left border. + + The color of the border left. + + + + Gets or sets the color of the border left shadow. + + The color of the border left shadow. + + + + Gets or sets the color of the top border. + + The color of the border top. + + + + Gets or sets the color of the border top shadow. + + The color of the border top shadow. + + + + Gets or sets the color of the right border. + + The color of the border right. + + + + Gets or sets the color of the border right shadow. + + The color of the border right shadow. + + + + Gets or sets the color of the bottom border. + + The color of the border bottom. + + + + Gets or sets the color of the border bottom shadow. + + The color of the border bottom shadow. + + + + Gets or sets the width of the left border. + + The width of the border left. + + + + Gets or sets the width of the top border. + + The width of the border top. + + + + Gets or sets the width of the right border. + + The width of the border right. + + + + Gets or sets the width of the bottom border. + + The width of the border bottom. + + + + Gets or sets the border box style. + + The border box style. + + + + Gets or sets the back color. + + The color of the back. + + + + Gets or sets the back color2. + + The back color2. + + + + Gets or sets the back color3. + + The back color3. + + + + Gets or sets the back color4. + + The back color4. + + + + Gets or sets the number of colors. + + The number of colors. + + + + Gets or sets the gradient style. + + The gradient style. + + + + Specifies the way how a logo image is drawn. + + + + + Represents the pdf export settings. + + + + + Gets or sets the author. + + The author. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Represents the method that will handle the CellFormatting event. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the CellFormatting event + + + + + Initializes a new instance of the class. + + Index of the grid row. + Index of the grid column. + Type of the grid RowInfo. + The grid view CellInfo. + The cell in the workbook. + The cell style, allowing to introduce appearance modification to the exported cells. + + + + Get source grid's column index + + + + + Get source grid's row index + + + + + Get source grid's row type + + + + + Get a reference to the source grid's cell. + + + + + Get excel cell element for further formatting + + + + + Get style element for further formatting + + + + + GridViewSpreadExport is a powerful exporting API, allowing to export RadGridView to XLSX, PDF, CSV, and TXT format, utilizing the Document Processing Libraries. + + + + + Initializes a new instance of the class. + + The grid to export. + + + + Initializes a new instance of the class. + + The grid to export. + The spread export format. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Starts an export operation. + + The file name where data will be exported. + + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + + Name of the sheet. + + + + Starts an export operation. + + The stream where data will be exported. + + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + + Name of the sheet. + + + + Cancels an asynchronous export operation. + + + + + Gets or set if child rows should be exported. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + Note that if using RunExportAsync method to export, the visual settings will not be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets the name of the sheet. + + + The name of the sheet. + + + + + Gets or sets the maximum number of rows per sheet. + + + The sheet max rows. + + + + + Gets or sets a value indicating how summary rows are exported. + + + The summaries export option. + + + + + Gets or sets a value indicating how hidden columns are exported. + + + The hidden column option. + + + + + Gets or sets a value indicating how hidden rows are exported. + + + The hidden row option. + + + + + Gets or sets a value indicating how the export behaves when paging is enabled. + + + The paging export option. + + + + + Gets or sets the child view export mode. + + + The child view export mode. + + + + + Gets or sets the RadGridView to export. + + + The RadGridView to export. + + + + + Gets or sets the format of the exported file - PDF, XLSX, CSV or TXT. + + + The file extension. + + + + + Specifies whether a file will be exported as a new file, or if a file with the same name already exists at the specified path, a new sheet will be added to it. + + + ExportAsNewSheetInExistingFile - will add a new sheet to the specified file, if it exists + ExportInNewFile - will create/override the specified file + + + + + Gets or sets a value indicating whether to export grouped columns. + + + + + Gets or sets a value indicating whether to freeze the header row in the exported file. + + + + + Gets or sets a value indicating whether to freeze pinned rows. + + + + + Gets or sets a value indicating whether to freeze pinned columns. + + + + + Gets or sets a value indicating whether to export hierarchy and group child rows grouped. + + + + + Gets or sets a value indicating whether to export view definition. + Note that if using RunExportAsync method to export, the view definition will not be exported. + + + + + Occurs when a child view will be exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when the export process completes. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents the method that will handle the CellFormatting event. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the SpreadCellFormatting event + + + + + Initializes a new instance of the class. + + Index of the excel row. + Index of the excel column. + The export cell. + The cell in the worksheet. + + + + Gets the index of the excel column. + + + + + Gets the index of the excel row. + + + + + Gets the row type of source grid. + + + + + Gets the export cell element. + + + + + Gets the style element for further formatting. + + + + + Gets the ICellExporter element. + + + + + Represents the method that will handle the SpreadStreamRowCreated and SpreadStreamRowCreated events. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the SpreadRowCreated and SpreadRowExporting events. + + + + + Initializes a new instance of the class. + + Index of the grid row. + Type of the grid row info. + The grid view row info. + The row. + + + + Gets the row index of source grid. + + + + + Gets the row type. + + + + + Gets a reference to the row of source grid. + + + + + Gets the IRowExporter element. + + + + + Represents a grid export that utilizes the RadSpreadStreamProcessing library. + + + + + Initializes a new instance of the class. + + The grid to export. + + + + Initializes a new instance of the class. + + The grid to export. + The spread export format. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Starts an export operation. + + The file name where data will be exported. + Instance of ISpreadStreamExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + Instance of ISpreadStreamExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + + The file name where data will be exported. + Instance of ISpreadStreamExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + Instance of ISpreadStreamExportRenderer class. + Name of the sheet. + + + + Starts an export operation. + + The stream where data will be exported. + Instance of ISpreadStreamExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + Instance of ISpreadStreamExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + + The stream where data will be exported. + Instance of ISpreadStreamExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + Instance of ISpreadStreamExportRenderer class. + Name of the sheet. + + + + Cancels an asynchronous export operation. + + + + + Creates the snapshot rows. + + The traverser. + The export row infos. + The visible columns. + The current indent. + + + + + Check if date is supported from MS Excel + + + True if value is supported + + + + Gets or set if child rows should be exported. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets the name of the sheet. + + + The name of the sheet. + + + + + Specifies whether a file will be exported as a new file, or if a file with the same name already exists at the specified path, a new sheet will be added to it. + + + ExportAsNewSheetInExistingFile - will add a new sheet to the specified file, if it exists + ExportInNewFile - will create/override the specified file + + + + + Gets or sets the maximum number of rows per sheet. + + + The sheet max rows. + + + + + Gets or sets a value indicating how summary rows are exported. + + + The summaries export option. + + + + + Gets or sets a value indicating how hidden columns are exported. + + + The hidden column option. + + + + + Gets or sets a value indicating how hidden rows are exported. + + + The hidden row option. + + + + + Gets or sets a value indicating how the export behaves when paging is enabled. + + + The paging export option. + + + + + Gets or sets the child view export mode. + + + The child view export mode. + + + + + Gets or sets the RadGridView to export. + + + The RadGridView to export. + + + + + Gets or sets the format of the exported file - XLSX or CSV. + + + The file extension. + + + + + Gets or sets a value indicating whether to export grouped columns. + + + + + Gets or sets a value indicating whether to freeze the header row in the exported file. + + + + + Gets or sets a value indicating whether to freeze pinned rows. + + + + + Gets or sets a value indicating whether to freeze pinned columns. + + + + + Gets or sets a value indicating whether to export hierarchy and group child rows grouped. + + + + + Gets or sets a value indicating whether to export view definition. + Note that if using RunExportAsync method to export, the view definition will not be exported. + + + + + Occurs when a child view will be exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when a new row is created in current worksheet. + This is suitable place to set any row properties(like height) and/or add any indent cells. + + + + + Occurs when a spread row is about to be exported. + This is suitable place to add any additional cells at the end of the row. + + + + + Occurs when the export process completes. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents a cell info of the GridViewSpreadStreamExport. + + + + + Initializes a new instance of the class. + + Type of the row. + Index of the row. + Type of the column. + Index of the column. + The value. + The export format. + Type of the export format. + The cell style info. + + + + Gets or sets the type of the grid row. + + The type of the row. + + + + Gets or sets the index of the grid row. + + The index of the row. + + + + Gets or sets the type of the grid column. + + The type of the column. + + + + Gets or sets the index of the grid column. + + The index of the column. + + + + Gets or sets the value. + + The value. + + + + Gets or sets the export format. + + The export format. + + + + Gets or sets the type of the export format. + + The type of the export format. + + + + Gets or sets the cell style info. + + The cell style info. + + + + Represents a row info in the GridViewSpreadStreamExport. + + + + + Initializes a new instance of the class. + + The cell infos. + The indent. + The export as hidden. + The hierarchy level. + The height. + + + + Gets or sets the cell infos. + + The cell infos. + + + + Gets or sets the indent cells. + + The indent cells. + + + + Gets or sets the export as hidden. + + The export as hidden. + + + + Gets or sets the hierarchy level. + + The hierarchy level. + + + + Gets or sets the height. + + The height. + + + + Represents a group row info in the GridViewSpreadStreamExport. + + + + + Initializes a new instance of the class. + + The cell infos. + The indent. + The export as hidden. + The hierarchy level. + The height. + The column span. + + + + Gets or sets the column span. + + The column span. + + + + Determines how the export handles child views when exporting hierarchy. + + + + + Always exports the first view. + + + + + Exports the view that is active in the grid. + + + + + In this mode the ChildViewExporing event is fired. The event allows to choose the view to export in row by row basis. + + + + + In this mode all child views are exported. Available in GridViewSpreadExport and GridViewPdfExport. + + + + + Determines how the exporter exports data when paging is enabled. + + + + + The exporter will export only the data on the current page. + + + + + The exporter will export the data from all pages. + + + + + Search for real visible fill and mix its colors + + + Mixed color, ready for export + + + + Converts padding in millimeters to Dip. + + Value. + + + + Converts padding in Dip to millimeters. + + Value. + + + + Converts millimeters to Dip. + + Value in millimeters. + Value converted to Dip + + + + Converts Dip to millimeters. + + Value in Dip. + Value converted to millimeters. + + + + Converts ContentAlignment to a value which is used in RightToLeft mode. + + Initial value. + Converted value. + + + + Runs the export. + + Name of the file. + + + + Sets the summaries export option. + + The summaries export option. + + + + Sets the hidden column option. + + The hidden column option. + + + + Sets the hidden row option. + + The hidden row option. + + + + Sets the RadGridView to export. + + The RAD grid view to export. + + + + Sets the file extension. + + The file extension. + + + + Represents the method that will handle the CellPaint events of ExportToPDF. + + The event sender. + Instance of containing the cell related with this event + + + + Provides data for the CellPaint event + + + + + Provides event arguments for the PageCreated event + + + + + Initializes a new instance of the class. + + The editor object used to draw. + The rectangle in which the editor draws. + + + + Gets the editor object used to draw. + + + + + Gets the rectangle in which the editor draws. + + + + + Initializes a new instance of the class. + + The cell element which is drawn. + The object used to draw the cell. + The rectangle in which the cell is drawn. + + + + Gets the Cell Element which is drawn. + + + + + Represents the method that will handle the Export event. + + The event sender. + The instance containing the event data. + + + + GridViewPdfExport is an exporting API, allowing to export RadGridView to PDF format, utilizing the Document Processing Libraries. + + + + + Allows to add logo to the header or footer. + + + + + Number of the current page + + + + + Total number of pages + + + + + Obsolete. Use DateExportedString instead. + + + + + Date when the exporting was started. + + + + + Obsolete. Use DateExportedString instead. + + + + + Time when the printing was started. + + + + + Obsolete. Use UserNameExportedString instead. + + + + + Username associated with the current thread (the current Windows login)) + + + + + Initializes a new instance of the GridViewPdfExport class. + + The grid to export. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets the row size using the provided row layout. + + The row to measure. + The row layout to be used for the measure. + The size of the row. + + + + Exports the header part of the page. + + + + + Exports the footer part of the page. + + + + + Parses a given string for special words. + + The string. + The parsed string. + + + + Starts an export operation. + + The Stream where the RadGridView will be exported. + Instance of IPdfExportRenderer class. + + + + + Starts an export operation that runs in a background thread. + + The stream where data will be exported. + Instance of IPdfExportRenderer class. + + + + Starts an export operation. + + The file name where data will be exported. + . + + + + Starts an export operation that runs in a background thread. + + The file name where data will be exported. + Instance of IPdfExportRenderer class. + + + + Cancels an asynchronous export operation. + + + + + Cancels current export operation. + + + + + Gets or sets if child rows should be exported. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets a value indicating how summary rows are exported. + + + The summaries export option. + + + + + Gets or sets a value indicating how hidden columns are exported. + + + The hidden column option. + + + + + Gets or sets a value indicating how hidden rows are exported. + + + The hidden row option. + + + + + Gets or sets a value indicating how the export behaves when paging is enabled. + + + The paging export option. + + + + + Gets or sets the child view export mode. + + + The child view export mode. + + + + + Gets or sets the RadGridView to export. + + + The RadGridView to export. + + + + + Gets or sets the file extension of the exported file. + + + The file extension. + + + + + Gets or sets the page size in millimeters for the exported file. + Default size is 210x297mm(A4 portrait). + + + + + Gets or Sets the margins of pages that will be exported in millimeters. + + + + + Gets or sets a value indicating whether the content of page should fit into the page width. + Default value is true. + + + + + Gets or sets the document scaling. Default value is 1. For example, scale of 1.2f means 20% size increase. + + + + + Gets or sets a value indicating whether grouped columns should be exported. + Default value is true. + + + + + Gets or sets a value indicating whether the header row should be exported on each page. + Default value is true. + + + + + Gets or sets the indent of group and hierarchy rows. + + + + + Gets or sets a value indicating whether header and footer should be exported. + + + + + Gets or sets the header height. + + + + + Gets or sets the footer height. + + + + + Gets or sets the font of the page header. + + + + + Gets or sets the font of the page footer. + + + + + Gets or sets the text that will be exported near the upper left corner of the page. + + + + + Gets or sets the text that will be exported at the top center of the page. + + + + + Gets or sets the text that will be exported near the upper right corner of the page. + + + + + Gets or sets the text that will be exported near the bottom left corner of the page. + + + + + Gets or sets the text that will be exported at the bottom center of the page. + + + + + Gets or sets the text that will be exported near the bottom right corner of the page. + + + + + [true] if the LeftHeader and RightHeader should be reversed on even pages, [false] otherwise. + + + + + [true] if the LeftFooter and RightFooter should be reversed on even pages, [false] otherwise. + + + + + Gets or sets the header/footer logo. + + + + + Gets or sets the alignment of logo image in header/footer. + + + + + Gets or sets the way the logo is drawn. + + + + + Gets or sets export settings. + + + + + Gets or sets a value indicating whether to export view definition. + + + + + Occurs when a child view will be exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when a cell is drawn. + + + + + Occurs when the export process completes. + + + + + Occurs when the header is exported. + + + + + Occurs when the footer is exported. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents a page's header/footer in the export. + + + + + Initializes a new instance of the class. + + The height. + The font. + The left text. + The center text. + The right text. + The reverse on even pages. + + + + Gets or sets the height. + + The height. + + + + Gets or sets the font. + + The font. + + + + Gets or sets the left text. + + The left text. + + + + Gets or sets the center text. + + The center text. + + + + Gets or sets the right text. + + The right text. + + + + Gets or sets the reverse on even pages. + + The reverse on even pages. + + + + Localizes the strings in the control by using the current . + + + + + Loads the from the printed into the dialog + + The to be edited in the dialog. + + + + Loads the into the dialog. + + The to be loaded in the dialog. + + + + Saves all settings form the dialog. + + + + + Enables or disables the custom font properties depending on the KeepVisualStyles property setting. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the settings edited in the dialog. + + + + + Gets the row that is currently printed. + + + + + Gets the column that is currently printed. + + + + + Gets the print cell element which will be printed. + + + + + Gets the used for the painting. + + + + + Gets the row that is currently printed. + + + + + Gets the column that is currently printed. + + + + + Gets the rectangle in which the cell will be printed. + + + + + Determines how the column widths will be set when printing. + + + + + The total column width will be resized to mach the page width while preserving the individual column width ratios. + + + + + The column widths will not be changed but the grid will be centered on the page. + + + + + The column widths will not be changed. + + + + + Gets or sets a value indicating whether hidden rows will be traversed + + + + + Renders a whole page using the settings provided. + + The traverser to iterate the grid with. + The size of the drawable area. + The graphics used for the drawing. + The print settings used for the drawring. + The number of the current page. + + + + Resets the print style for subsequent use. + + + + + Gets the view definition type this print style is for. + + The type of the view definition. + + + + Creates a header print cell element. + + The column which header is the cell. + The to be printed. + + + + Creates a group print cell element. + + The group row that this print cell represents. + The to be printed. + + + + Creates a data print cell element. + + The actual grid view cell that will be printed. + The to be printed. + + + + Creates a summary print cell element. + + The actual grid view summary cell that will be printed. + The to be printed. + + + + Creates an image print cell element. + + The actual grid cell that holds the image info. + The to be printed. + + + + Gets the height of a given data row taking into account if the grid AutoSizeRows property is true. + + The row to be measured. + The row layout. + + + + + Gets the cell's desired width + + An instance of + Returns the desired cell's with + + + + Detaches the specified cell from the cell element provider. + + The cell element provider. + The cell. + + + + Detaches the specified row from the row element provider. + + The row element provider. + The row. + + + + Renders a whole page using the settings provided. + + The traverser to iterate the grid with. + The size of the drawable area. + The graphics used for the drawing. + The print settings used for the drawing. + The number of the current page. + + + + Resets the print style for subsequent use. + + + + + Occurs after a cell is being formatted and painted. + + The + + + + Occurs for each cell that is being printed. + + The + + + + Occurs for hierarchy rows with more than one child views. + + The + + + + Gets the associated . + + + + + Gets the view definition type this print style is for. + + The type of the view definition. + + + + Fires after a cell is being formatted and painted. + + + + + Fires for each cell that is being printed. + + + + + Fires for hierarchy rows with more than one child views. + + + + + Determines how child views are printed when printing hierarchy. + + + + + Always prints the first view. + + + + + Prints the view that is active in the grid. + + + + + In this mode the ChildViewPrinting event is fired. The event allows to choose the view to export on a row by row basis. + + + + + Gets the row size using the provided row layout. + + The row to measure. + The row layout to be used for the measure. + The size of the row. + + + + Prints a single cell that is wide as the whole . + + The actual row that is being printed. + The used for layouting the cells. + The print settings to print the row with. + The X coordinate that the row should start to paint. + The Y coordinate that the row should start to paint. + The used for the drawing. + + + + Prints a single row of the . + + The actual row that is being printed. + The used for layouting the cells. + The print settings to print the row with. + The X coordinate that the row should start to paint. + The Y coordinate that the row should start to paint. + The used for the drawing. + + + + Renders a whole page using the settings provided. + + The traverser to iterate the grid with. + The size of the drawable area. + The graphics used for the drawing. + The print settings used for the drawing. + The number of the current page. + + + + Resets the print style for subsequent use. + + + + + Gets the view definition type this print style is for. + + The type of the view definition. + + + + Represents a collection of column collections. + + + + + Initializes a new instance of the class. + Each represents a separate page. + + + + + Adds the specified columns as a new . The represents a separate page. + + The columns. + + + + + Clears all instances in this collection. + + + + + Inserts the specified to the specified index. Each represents a separate page. + + The index. + The columns. + + + + Removes the at the specified index. + + The index. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets or sets the at the specified index. + + + The index. + + The index. + + + + + Gets the count of the instances in this collection. + + + The count. + + + + + Gets the row size using the provided row layout. + + The row to measure. + The row layout to be used for the measure. + The size of the row. + + + + Prints a single cell that is wide as the whole . + + The actual row that is being printed. + The used for lay outing the cells. + The print settings to print the row with. + The X coordinate that the row should start to paint. + The Y coordinate that the row should start to paint. + The used for the drawing. + + + + Prints a single row of the . + + The actual row that is being printed. + The used for layouting the cells. + The print settings to print the row with. + The X coordinate that the row should start to paint. + The Y coordinate that the row should start to paint. + The used for the drawing. + + + + Renders a whole page using the settings provided. + + The traverser to iterate the grid with. + The size of the drawable area. + The graphics used for the drawing. + The print settings used for the drawing. + The number of the current page. + + + + Resets the print style for subsequent use. + + + + + Gets the view definition type this print style is for. + + The type of the view definition. + + + + Gets or sets the font used for data cells. + + + + + Gets or sets the font used for group cells. + + + + + Gets or sets the font used for header cells. + + + + + Gets or sets the font used for summary cells. + + + + + Gets or sets a indent in pixels when printing a hierarchical grid. + + + + + Gets or sets a value indicating whther grouping is printed. + + + + + Gets or sets a value indicating whether summaries are printed. + + + + + Gets or sets a value indicating whether hierarchy is printed. + + + + + Gets or sets a value indicating whether hidden rows are printed. + + + + + Gets or sets a value indicating whethwe hidden columns are printed. + + + + + Gets or sets a value indicating whether alternating row color is printed. + + + + + Gets or sets a value indicating whether header cells are printed on each page or only on the first. + + + + + Gets or sets a value indicating whether all pages will be printed when paging is enabled. + + true if all pages will be printed; otherwise, false. + + + + Gets or sets the default back color for data cells. + + + + + Gets or sets the default back color of header cells. + + + + + Gets or sets the default back color of group rows. + + + + + Gets or sets the default back color of summary cells. + + + + + Gets or sets the default color of all borders. + + + + + Gets or sets the default padding for all cells. + + + + + Gets or sets a value indidcating the alternating row color for odd rows. + + + + + Gets or sets a value indicating how the grid is positioned on the printed page. + + + + + Gets or sets a value indicating how child views are printed when printing a hierarchical grid. + + + + + Initializes the default values for the style. + + + + + Initializes the correct print renderer for the current grid view definition + + The grid that is being printed. + An instance of the correct print renderer for the given grid view. + + + + Draws a whole document page. + + The available drawing area. + The used for the drawing. + The number of the page that is being drawn. + + + + Gets the number of pages needed for drawing the associated . + + The available drawing area. + The number of needed pages. + + + + Resets the print style for subsequent use. + + + + + Fires when the content of a print cell is painted, allows custom painting. + + The initiator of the event. + The event arguments. + + + + Fires when the content of a print cell needs to be formatted for print. + + The initiator of the event. + The event arguments. + + + + Occurs for hierarchy rows with more than one child views. + + The initiator of the event. + The + + + + Gets or sets the font that will be used for the data cells. + + + + + Gets or sets the font that will be used for the group cells. + + + + + Gets or sets the font that will be used for the header cells. + + + + + Gets or sets the font that will be used for the summary cells. + + + + + Gets or sets a indent in pixels when printing a hierarchicle grid. + + + + + Gets or sets a value indicating whether grouing will be printed. + + + + + Gets or sets a value indicating whether summary rows will be printed. + + + + + Gets or sets a value indicating whether hidden rows will be printed. + + + + + Gets or sets a value indicating whether hierarchy will be printed. + + + + + Gets or sets a value indicating whether hidden columns will be printed. + + + + + Gets or sets a value indicating whether alternating row color is printed. + + + + + Gets or sets a value indicating whether header cells will be printed on each page. This setting does not work when printing a hierarchical grid. + + + + + Gets or sets a value indicating whether all pages will be printed when paging is enabled. + + true if all pages will be printed; otherwise, false. + + + + Gets or sets the default back color for data cells. + + + + + Gets or sets the default back color of header cells. + + + + + Gets or sets the default back color of group rows. + + + + + Gets or sets the default back color of summary cells. + + + + + Gets or sets a value indidcating the alternating row color for odd rows. + + + + + Gets or sets the default color of all borders. + + + + + Gets or sets the default padding for all cells. + + + + + Gets or sets a value indicating how the columns will be printed. + + + + + Gets or sets a value indicating how child views are printed when printing a hierarchical grid. + + + + + Gets the that this print styles is assigned to. + + + + + Gets the traverser that is used to traverse the RadGridView + + + + + Gets or sets the print renderer that is used for print rendering. + + + + + Fires when the content of a print cell is painted, allows custom painting. + + + + + Fires when the content of a print cell needs to be formatted for print. + + + + + Fires for hierarchy rows with more than one child views. + + + + + Represents a collection of columns. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The number of elements that the new list can initially store. + + + + Initializes a new instance of the class. + + A collection of columns that will be added initially to the collecton. + + + + Gets the row size using the provided row layout. + + The row to measure. + The row layout to be used for the measure. + The size of the row. + + + + Prints a single cell that is wide as the whole . + + The actual row that is being printed. + The used for layouting the cells. + The print settings to print the row with. + The X coordinate that the row should start to paint. + The Y coordinate that the row should start to paint. + The used for the drawing. + + + + Prints a single row of the . + + The actual row that is being printed. + The used for layouting the cells. + The print settings to print the row with. + The X coordinate that the row should start to paint. + The Y coordinate that the row should start to paint. + The used for the drawing. + + + + Prints a single row of the . + + The actual row that is being printed. + The used for layouting the cells. + The print settings to print the row with. + The X coordinate that the row should start to paint. + The Y coordinate that the row should start to paint. + The used for the drawing. + The available draw area to print the row in. + + + + Renders a whole page using the settings provided. + + The traverser to iterate the grid with. + The size of the drawable area. + The graphics used for the drawing. + The print settings used for the drawing. + The number of the current page. + + + + Resets the print style for subsequent use. + + + + + Gets or sets the print pages. Collection of , where each collection represents a separate page. + + + The print pages. + + + + + Gets or sets the current print page. Used for Multi-page printing. + + + The current print page. + + + + + Gets the view definition type this print style is for. + + The type of the view definition. + + + + Defines the priority of an event listener. + + + + + Lowest priority listener, will receive events after all other listeners. + + + + + Low priority listener, will receive events after other listeners. + + + + + Normal priority. + + + + + High priority listener, will receive events before listeners with normal priority. + + + + + Highest priority listener, will receive events before all other listeners. + + + + + Event is dispatched synchronously. + + + + + Event is dispatched asynchronously. + + + + + Defines how a IGridViewEventListener instance wants to process an internal GridView event. + + + + + The core ProcessEvent callback is executed. + + + + + The PreProcessEvent callback is executed. + + + + + The PostProcessEvent callback is executed. + + + + + The listener wants to analyze the queue of events that are to be dispatched. + + + + + All callbacks participate in event dispatching. + + + + + All process callbacks plus queue analysis + + + + + Defines the semantic of an event that occurs within a RadGridView instance. + + + + + Gets the instance that raised the CLR event initially. + + + + + Gets the arguments associated with the event. + + + + + Gets the event information. + + + + + Gets the instance that sends this event. + + + + + Gets the GridViewSynchronizationService instance that dispatches this event. + + + + + Pre-Processes the specified event. + + + True if the event may be further dispatched, false otherwise. + + + + Processes the specified event. + + + True if the event may be further dispatched, false otherwise. + + + + Post-Processes the specified event. + + + True if the event may be further dispatched, false otherwise. + + + + Processes the specified event by following the PreProcess-Process-PostProcess semantic. + + + True if the event may be further dispatched, false otherwise. + + + + Dispatches an event to all listeners, considering the process mode. + Returns true if the event has been processed and dispatch may continue. + + + + + + + + + Encapsulates a result, returned by a IGridViewEventListener + + + + + Determines whether the event is handled (processed). This means that the default processing is not needed. + + + + + Determines whether event dispatching should be canceled. + + + + + Defines the possible types of events within RadGridView. + + + + + Data related notification. + + + + + UI related notification. + + + + + Both event types. + + + + + Core entry point for all internal events in RadGridView. Provides synchronization semantic for all received notifications and dispatches them to all listeners. + + + + + Begins a Dispatch process. + + + + + Ends Dispatch transaction without flushing pending events. + + + + + Ends Dispatch transaction and flushes all pending events. + + + + + + Suspends event dispatching. + + + + + Resumes event dispatching, previously suspended by a SuspendDispatch call. + + + + + Forces any events present on the events queue to be immediately dispatched. + + + + + Suspends dispatching of events with the specified ID. + + + + + + Resumes dispatching of events with the specified ID. + + + + + + Dispatches + + The template. + The instance of which will be dispatched. + if set to true, the UI will be asynchronously processed when GridEventType.Both is dispatched. + + + + Gets the event that is currently being dispatched. + + + + + Determines whether the service is currently in a process of dispatching all queued events. + + + + + Determines whether the service is queuing any incomming events without dispatching them. + + + + + Determines whether event dispatching is suspended. If true any incomming events will not be queued. + + + + + Gets a value indicating whether the dispatching of UI events is suspended. + + + true if the UI event dispatching is suspended; otherwise, false. + + + + + Gets a value indicating whether the dispatching of Data events is suspended. + + + true if the Data Event dispatching is suspended; otherwise, false. + + + + + This component represents a customizable view template for displaying flat tabular data. + + + + + Create new row item. + + + + + + Initializes IDataItemSource. + + + + + Raises the PropertyChanging event. + Note: This method is called even when the notifications are suspended. + + A instance containing event data. + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the NotifyPropertyChanged event + + + + + + General method for setting the value of the field related to the property that is modified. + This method confirms that the old and new values are different, then fires the + event, then sets the given value to the supplied field, + and fires the event. + Note: If the event is canceled, the last two actions are + not performed. + + + + public class MyNotificationsTest : NotifyPropertyBase + { + private int myInt = 0; + private int myInt2 = 0; // + + public int AsInt + { + get + { + return this.myField; + } + set + { + if (SetProperty("AsInt", ref this.myInt, value)) + { + // perform additional actions when new value is set to myInt. + } + } + } + + public int AsInt2 + { + get + { + return (float)this.myInt2; + } + set + { + // The following property setter is the same as the previous one. + if (this.myInt2 != value) + { + PropertyChangingEventArgs2 ea = new PropertyChangingEventArgs2("AsInt2", value); + OnPropertyChanging(ea); + + if (!ea.Cancel) + { + this.myInt2 = (int)ea.Value; + OnPropertyChanged("AsInt2"); + + // perform additional actions when new value is set to myInt2. + } + } + } + } + } + + + The two setter implementations are identical. If you require to perform some actions before + the event is fired, you can use the second implementation, or, + a better solution is to override the ProcessPropertyChanged method and place + the code there. + The type of the field that is to be modified. + The name of the property, that will appear as propertyName in the and event args. + The field, that is related to the property. + The value that is to be set to the field in case the event is not being Canceled. + true if new value is being set + + + + Begins initialization of the view template. + + + + + Ends view template initialization. + + + + + Sets the parent for this template. Never use this method directly. Instead, add the template to its parent's collection. + + The parent template. + + + + Resets the hierarchy data provider. + + + + + Defers the refresh. + + + + + + Refreshes this instance. + + + + + Refreshes the specified affected columns. + + The affected columns. + + + + Begins the update. + + + + + Ends the update. + + + + + Ends the update. + + + + + Ends the update. + + + + + Ends the update. + + + + + This method is used to notify the template, that a row is expanded, while event dispatch is suspended. + + + + + Unbound load the IDatareader data and reset current DataSource + + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + The mode. + + + + Expands all group rows when data is grouped. + + + + + Collapses all group rows when data is grouped. + + + + + Expands all expandable rows. + + + + + Collapses all expandable rows. + + + + + Keep the order of the columns in the Excel Like filtering + + + + + Occurs when the instance of is created. + + + + + Gets or sets the binding context. + + The binding context. + + + + Occurs when [binding context changed]. + + + + + Gets the child rows. + + The child rows. + + + + Occurs when initialization of the component is completed. + + + + + Gets a value indicating whether the component is initialized. + + + + + Determines whether the template is in a Begin/End update block. + + + + + Gets or sets a value indicating whether the last added row in the RadGridView DataSource will be selected by the control. + + true if [select last added row]; otherwise, false. + + + + Gets or sets the text displayed in the new row. If this values is null or empty the text from the localization provider will be used. + + The new row text. + + + + Gets or sets the tag. + + The tag. + + + + Gets or sets a value indicating whether the filter operator text should be shown in the filter cell + + + true if [show filter cell operator text]; otherwise, false. + + + + + Gets or sets the display state of grid horizontal scrollbars. + + + + + Gets or sets the display state of grid vertical scrollbars. + + + + + Gets or sets a value indicating whether user can drag a column header to grouping panel. + + + + + Gets or sets a value indicating whether user can reorder + Columns. + + + + + Gets or sets a value indicating whether user can resize a row. + + + This property does not prevent developer from setting + + + + + + Gets or sets a value indicating whether the underlying source in Object-relational binding + should be automatically updated on create,update or delete operations (enables CRUD in Object-relational mode). + + + + + Gets or sets the caption text. + + + + + Gets or sets a value indicating whether alternating row color is enabled. + + + + + Gets or sets the hierarchy data provider. + + The hierarchy data provider. + + + + Gets the collection containing the summary items placed in the group header. + + + + + Gets the collection containing summary rows placed at the bottom of each DataGroup. + + + + + Gets the collection containing summary rows placed on top of each DataGroup. + + + + + Indicates whether string comparisons of data are case-sensitive. + + + + + Gets a readonly collection of containing the pinned rows in this template. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets the child templates. + + The child templates. + + + + Gets the master view info. + + The master view info. + + + + Gets the groups. + + The groups. + + + + Gets the columns. + + The columns. + + + + Gets or sets the column containing the current cell in the grid. + + + + + + Gets the rows. + + The rows. + + + + Gets or sets the parent. + + The parent. + + + + Gets the level of nesting for this template. + + + + + Gets the root template. + + + + + Gets the event dispatcher + + + + + Gets or sets the number of columns displayed in the current . + + + + + Gets or sets the number of rows contained in the current . + + + + + Gets or sets a value indicating whether user can edit rows. + + + + + + + + Gets or sets a value indicating whether the ColumnInfo Chooser form is available to the user for this instance of . + + + + + + Gets or sets a value indicating whether the user is able to reorder rows in the grid + + + + + + Gets or sets a value indicating whether context menu is displayed when user rightclicks on a column header. + + + + + Gets or sets a value indicating whether context menu is displayed when user right clicks on a row header. + + + + + Gets or sets a value indicating whether user can resize columns. + + + This property does not prevent developer from setting + + + + + + Gets or sets a value indicating whether context menu is displayed when user right clicks on a data cell. + + + + + Gets or sets a value indicating whether user can automatically resize a column to fit its content by doubleclicking the right border of header cell. + + + + + + + Gets or sets a value indicating whether user can delete rows. + + + + + + + + Gets or sets a value indicating whether the user can add new rows through the grid. + + + When set to true an empty row is added in which the user can enter data for the new record. + Set to false to hide the row. + The row position is controlled through + + + + + + + + Gets or sets a value indicating whether the user can search in the data contained in the grid. + + + When set to true a search row is added where the user can enter search criteria. + Set to false to hide the row. + The row position is controlled through + + + + + + Gets or sets a value indicating whether the data can be sorted by the end-users. + + + + + Gets or sets a value indicating whether the data can be sorted programatically. + + + + + Gets or sets a value indicating whether the data in the current can be grouped by users. + + + + + + Gets or sets a value indicating whether the data can be grouped programatically. + + + + + Gets or sets a value indicating whether the data in the current DataView can be filtered. + + + + + Gets or sets a value indicating whether the data can be filtered programatically. + + + + + Gets or sets a value indicating whether the data can be filtered using parent/child relationship. + + + + + Gets or sets a value indicating how column widths are determined. + + + + + + Gets or sets a value indicating how bottom pinned rows are layed out. + + + + + + Gets or sets a value indicating whether the columns by which the data is grouped are visible. + + + Set to false, and each column contained in the , will get hidden. + Set to true to see all columns. If some column is still not visible, check . + + + + + + Gets or sets a value indicating whether the end-user can sort by more than one column. + + + + + Gets or sets a value indicating whether the data in this template can be modified + + + + + Gets or sets a value indicating whether columns are created automatically when the or properties are set. + + + Returns true if the columns should be created automatically; otherwise, false. The default is true. + + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets or sets the associated with this template. + + + + + Sets or gets a value indicating the initial state of group rows when data is grouped. + + + + + + Gets or sets a vlue indicating the location of the new row in the view template. + + + + + + Gets or sets a vlue indicating the location of the search row in the view template. + + + + + + Gets or sets a value indicating whether the row header column is visible. + + + + + Gets or sets a value indicating whether the column headers are visible. + + + + + Gets or sets a value indicating wheter the filtering row should be visible. + + + + + Gets or sets a value indicating whether the header cell buttons are visible. + + + + + Gets or sets the position to place tabs for child views related with this template. + + + + + Gets a value indicating whether this is self reference relation. + + + true if this relation is self reference; otherwise, false. + + + + + Gets a value indicating whether the ChildRows in hierarchy mode is virtual and hosted outside Rows collection. + + + true if this instance is virtual rows; otherwise, false. + + + + + Gets or sets a value indicating whether total summary rows are visible in grouping. + + + + + Gets or sets a value indicating whether parent group summary rows are visible in grouping. + + + + + Gets or sets a value indicating whether to show child view captions. + + + + + Gets a value indicating if the template contains a column with defined expression. + + + + + Gets or sets the filter predicate used fpr filtering operation. + + The filter. + + + + Gets or sets the group predicate. + + The group predicate. + + + + Gets or sets the sort comparer. + + The sort comparer. + + + + Gets or sets the group comparer. + + The group comparer. + + + + Gets the list source. + + The list source. + + + + Gets the data view. + + The data view. + + + + Current version of the summary rows of the Template. Increments when the summary rows collection is changed. + + + + + Adds the contained in the specified list to the collection. + + The templates to add. + + + + Gets the template by caption. + + The caption. + + + + + Gets the owner. + + The owner. + + + + Expands this instance. + + + + + Expands this instance and its child instances recursive. + + + + + Collapses this instance. + + + + + Collapses this instance and its child instances recursive. + + + + + Determines whether the group is in valid state (present in its owning data view). + + + + + Gets the groups. + + The groups. + + + + Gets the group row. + + The group row. + + + + Gets the expanded state of the group. + + + + + Gets the associated with this group. + + + + + Expression similar to SQL's "Select Group By" clause that is used by + GridTableView to group items + . Expressions can be defined by + assigning Expression property and/or managing the + items in or + collections. + + + If you use property to assign + group by expression as string then the expression is parsed and + and + are created. If the + expression syntax is incorrect a would be + thrown. You can use 's properties to set + expression's fields appearance format strings, etc. See + property for details about the expression syntax. + + + + Constructs a new GroupByExpression from a grid GridColumn. + + The of the column should be true. + The following properties will be copied from the corresponding column's properties: + + + Column's data-format-string depending on the type of the column. For example + + will be copied to + . + + Column's will be copied to + + + + + the column (and its FieldName respectively) that will be used + for grouping RadGridView + + + + Calls GridGroupByExpression(expression) + + + The same as the property + the string representation of the expression. + + + + Compares the current expression against the expression set as parameter and check + if both expressions contain field with the same name. + + + true if both expressions contain field with the same name, + otherwise false. + + expression to check against this expression + + + Checks if the given expression contains same Group-By field as this one. + + true if the expression already contains this GroupByField, otherwise + false. + + + Use this function to determine if two expressions seem to produce the same set of results + + Expression to check + + + + Gets or Sets the format string that is applied to group expressions that have no explicitly specified format string. + + + + + Gets a collection of SelectField objects (field names, aggregates etc.) that form + the "Select" clause. Standing on the left side of the "Group By" clause. + + + + + Gets a collection of objects that form the grouping + clause. Standing on the right side of the "Group By" clause + + + + String representation of the GroupBy expression. See Remarks for details. + + Create group-by expressions, using the following expression syntax:
+ fieldname[ as alias] [format "..."]|aggregate(fieldname|alias)[as alias][, ...] + Group By fieldname|alias [ASC|DESC]
Where:
+ fieldname
: name of any field from the DataSource
+ alias
: alias string. This cannot contain blanks or other reserved symbols like + ',', '.' etc.
+ aggregate
: any of - min, max, sum, count, last, first etc (the same as + in GridAggregateFunction enumeration)
+ format
string identical to the one used with string.Format, where the + first argument is the field name or the alias and the second one is the actual + value. The default value is "{0}: {1}" +
+ Example: Country, City, count(Country) Items, ContactName Group By + Country, City desc
+
+ + + Country, City, count(Country) Items, ContactName Group By Country, City desc + + + Country, City, count(Country) Items, ContactName Group By Country, City desc + + +
+ + + Gets the index of the expression if added in a + + + + integer, representing the index of the collection ni + . + + + + + Collection that stores group by expressions + + + + + Adds the specified expression. + + The expression. + + + + Adds the specified expression. + + The expression. + The format string. + + + + Indexes the of. + + The expression. + + + + + Gets or sets the expression. + + The expression. + + + + Field which is part of each + and collection + + + + Dim groupExpression As GridGroupByExpression = New GridGroupByExpression() + + Dim groupByField As GridGroupByField = New GridGroupByField() + + groupByField = New GridGroupByField() + groupByField.FieldName = "Received" + groupExpression.SelectFields.Add(groupByField) + + groupByField = New GridGroupByField() + groupByField.FieldName = "Received" + groupExpression.GroupByFields.Add(groupByField) + + RadGrid1.MasterTableView.GroupByExpressions.Add(groupExpression) + + + GridGroupByExpression groupExpression = new GridGroupByExpression(); + + GridGroupByField groupByField = new GridGroupByField(); + groupByField = new GridGroupByField(); + groupByField.FieldName = "Received"; + groupExpression.SelectFields.Add(groupByField); + + groupByField = new GridGroupByField(); + groupByField.FieldName = "Received"; + groupExpression.GroupByFields.Add(groupByField); + + RadGrid1.MasterTableView.GroupByExpressions.Add(groupExpression); + + + + Some of the GridGroupByField properties are meaningful only when present under + specific collection - or + + + Declarative GridGroupByField syntax + Programmatic GridGroupByField syntax + + + + The default format string for the field. + + + + + The default format string for the field. + + + + + Initializes a new instance of the GridGroupByField class. + + + + + Initializes a new instance of the GridGroupByField class with a name of a field. + + The name of a field from the data source. + + + + Initializes a new instance of the GridGroupByField class with a name of a field and its data type. + + + + + + + Generates a string value representing the alias of the field based on the . + + A string value representing the alias of the field. + + + + Method setting the aggregate function applied for a + GridGroupByField which is part of the + collection. + + N/A + + + Dim groupExpression As GridGroupByExpression = New GridGroupByExpression() + + Dim groupByField As GridGroupByField = New GridGroupByField() + groupByField.FieldName = "Size" + groupByField.SetAggregate(GridAggregateFunction.Sum) + groupExpression.SelectFields.Add(groupByField) + + groupByField = New GridGroupByField() + groupByField.FieldName = "Received" + groupExpression.SelectFields.Add(groupByField) + + groupByField = New GridGroupByField() + groupByField.FieldName = "Received" + groupExpression.GroupByFields.Add(groupByField) + + RadGrid1.MasterTableView.GroupByExpressions.Add(groupExpression) + + + GridGroupByExpression groupExpression = new GridGroupByExpression(); + + GridGroupByField groupByField = new GridGroupByField(); + groupByField.FieldName = "Size"; + groupByField.SetAggregate(GridAggregateFunction.Sum); + groupExpression.SelectFields.Add(groupByField); + + groupByField = new GridGroupByField(); + groupByField.FieldName = "Received"; + groupExpression.SelectFields.Add(groupByField); + + groupByField = new GridGroupByField(); + groupByField.FieldName = "Received"; + groupExpression.GroupByFields.Add(groupByField); + + RadGrid1.MasterTableView.GroupByExpressions.Add(groupExpression); + + + + Meaningful only for GridGroupByFields from the + collection + + + + + Method setting the sort order applied for a GridGroupByField which + is part of the collection. + + N/A + + Meaningful only for GridGroupByFields from the + collection + + + + GridGroupByExpression groupExpression = new GridGroupByExpression(); + + groupByField = new GridGroupByField(); + groupByField.FieldName = "Received"; + groupExpression.SelectFields.Add(groupByField); + + groupByField = new GridGroupByField(); + groupByField.FieldName = "Received"; + groupByField.SetSortOrder(GridSortOrder.Ascending); + groupExpression.GroupByFields.Add(groupByField); + + RadGrid1.MasterTableView.GroupByExpressions.Add(groupExpression); + + + Dim groupExpression As GridGroupByExpression = New GridGroupByExpression() + + Dim groupByField As GridGroupByField = New GridGroupByField() + + groupByField = New GridGroupByField() + groupByField.FieldName = "Received" + groupExpression.SelectFields.Add(groupByField) + + groupByField = New GridGroupByField() + groupByField.FieldName = "Received" + groupByField.SetSortOrder(GridSortOrder.Descending) + groupExpression.GroupByFields.Add(groupByField) + + RadGrid1.MasterTableView.GroupByExpressions.Add(groupExpression) + + + + + Inherited but not used + + + + Method which gets the HeaderText value from GridGroupByField part + of the collection + + String containing the HeaderText value + + Meaningful only for GridGroupByFields from the + collection + + + + Dim groupExpression As GridGroupByExpression = RadGrid1.MasterTableView.GroupByExpressions(0) + Dim headerText as String = groupExpression.SelectFields(0).GetHeaderText() + + + GridGroupByExpression groupExpression = RadGrid1.MasterTableView.GroupByExpressions[0] as GridGroupByExpression; + String headerText = groupExpression.SelectFields[0].GetHeaderText() + + + + + + Each can be referenced using and + This method checks whether the current 's or + match the given + + The name that is to be checked against. + true if the current field can be referred as , else otherwise + + + + + + + + + + + + + + + + + + + + + Method that retrieves a System.String that indicates the current + object + + The string format of the object. + + + Inherited but not used + + + + + + + + + + + + + + + + + Meaningful only for fields in the + collection. + + + Gets or sets aggregate function (from + enumeration values) that will be applied on the grouped data. + + + Returns the result from currently used aggregate function. This property defaults + to GridAggregateFunction.None + + + + GridGroupByField gridGroupByField; + + gridGroupByField = new GridGroupByField(); + gridGroupByField.FieldName = "Freight"; + gridGroupByField.HeaderText = "Total shipping cost is "; + gridGroupByField.Aggregate = GridAggregateFunction.Sum; + expression.SelectFields.Add( gridGroupByField ); + + + Dim gridGroupByField As GridGroupByField + + gridGroupByField = New GridGroupByField + gridGroupByField.FieldName = "Freight" + gridGroupByField.HeaderText = "Total shipping cost is " + gridGroupByField.Aggregate = GridAggregateFunction.Sum + expression.SelectFields.Add(gridGroupByField) + + + + + + Meaningful only for fields in the + collection. When rendering + RadGrid will override the FieldAlias value with the + HeaderText specified. + + + string, copied from the column's HeaderText if this group + expression is based on a column. It defaults to the FieldAlias value + (if specified). + + + Gets or sets the expression that will be displayed in the + . + + + + GridGroupByField gridGroupByField; + + gridGroupByField = new GridGroupByField(); + gridGroupByField.FieldName = "EmployeeID"; + gridGroupByField.HeaderText = "EmployeeNo"; + expression.SelectFields.Add( gridGroupByField ); + + + Dim gridGroupByField As GridGroupByField + + gridGroupByField = New GridGroupByField + gridGroupByField.FieldName = "EmployeeID" + gridGroupByField.HeaderText = "EmployeeNo" + expression.SelectFields.Add(gridGroupByField) + + + Programmatic GridGroupByField syntax + + + + + + + Gets or sets the name data source property or database column from a data source. + + + + + Gets or sets the data type of the field. + + + + + Gets or sets a value representing a friendly name for the field used for forming + the group by expression. This name will be displayed in each group header when grouping + by the respective field. + + + + Use this property for setting the field text that will be displayed in the + GridGroupHeaderItem. If this property is not set, the value of + property will be used. Note that this property has + a meaning only for GridGroupByField part of the SelectFields of + GridGroupByExpression. + + This property is useful in cases when: + + you want to change the value displayed in group header (different than + the default FieldName column value)
+ or
+ group by a template column and RadGridView cannot get the + header text for that column. +
+
+ + + GridGroupByField gridGroupByField; + + //Add select fields (before the "Group By" clause) + gridGroupByField = new GridGroupByField(); + gridGroupByField.FieldName = "EmployeeID"; + gridGroupByField.FieldAlias = "EmployeeIdentificator"; + expression.SelectFields.Add( gridGroupByField ); + + + Dim gridGroupByField As GridGroupByField + + 'Add select fields (before the "Group By" clause) + gridGroupByField = New GridGroupByField + gridGroupByField.FieldName = "EmployeeID" + gridGroupByField.FieldAlias = "EmployeeIdentificator" + expression.SelectFields.Add(gridGroupByField) + + + String representing the friendly name shown + Declarative GridGroupByField syntax + Programmatic GridGroupByField syntax +
+ + + Gets a value indicating whether the FormatString is set. + + + + + Meaningful only for fields in the + collection. + + + Gets or sets the value indicating how the data will be sorted. Acceptable values + are the values of enumeration (Ascending, + Descending and None). + + + Returns the sorting mode applied to the grouped data. By default it is + Ascending. + + + + GridGroupByField gridGroupByField; + + gridGroupByField = new GridGroupByField(); + gridGroupByField.FieldName = "EmployeeID"; + gridGroupByField.SortOrder = GridSortOrder.Descending; + expression.GroupByFields.Add( gridGroupByField ); + + + Dim gridGroupByField As GridGroupByField + + gridGroupByField = New GridGroupByField + gridGroupByField.FieldName = "EmployeeID" + gridGroupByField.SortOrder = GridSortOrder.Descending + expression.GroupByFields.Add(gridGroupByField) + + + + + + Gets or sets the instance of for this field. + + + + + Gets or sets an expression for this field. + + + + + Gets or sets a value to be stored in the data source if the control value is null or empty. + + + + + Gets or sets an object to be set as the control property when the data source contains a DBNull value. + + + + + Gets boolean value indicating whether FieldAlias is set. + When false, will return 'Aggregate of FieldName' if the + current group-by field is an aggregate, 'FieldName' otherwise. + + + + + Gets boolean value indicating whether HeaderText is set. + When false, will return + + + + + Gets boolean value indicating whether the current GridGroupByField is an aggregate. + + + + + Locates string with corresponding field name or alias + + + + The found, null otherwise. + + + + Indexes the of. + + Name of the field. + + + + + Determines whether [contains] [the specified field name]. + + Name of the field. + + true if [contains] [the specified field name]; otherwise, false. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + + + + + + Base hierarchy data provider + + + + + Creates the specified hierarchy data provider based on relation description. + + The relation. + + + + + Gets the child rows. + + The parent row. + The view. + + + + + Gets the parent. + + The grid view row info. + + + + + Refreshes this instance. + + + + + Gets the template. + + The template. + + + + Gets the relation. + + The relation. + + + + Gets a value indicating whether this instance is virtual and create ChildRows outside GridViewTemplate.Rows collection. + + + true if this instance is virtual; otherwise, false. + + + + + Gets the child rows. + + The parent row. + The view. + + + + + Refreshes this instance. + + + + + Gets the parent. + + The grid view row info. + + + + + Gets the relation. + + The relation. + + + + Gets a value indicating whether this instance is virtual and create ChildRows outside GridViewTemplate.Rows collection. + + + true if this instance is virtual; otherwise, false. + + + + + Represents a master-detail relation between two GridViewTemplates based on their column or field names. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + An instance of which is parent in the relation. + + + + Initializes a new instance of the class. + + The parent template. + The child template. + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + Gets or sets the parent in the master-detail relation. + + + + + Gets or sets the child in the master-detail relation. + + + + + Gets or sets the name of the relation. + + + + + Gets or sets a containing the names of the columns in the master data source that takes part in the relation. + + + + + Gets or sets a containing the names of the columns in the datails data source that takes part in the relation. + + + + + Gets a value indicating whether this is self reference relation. + + + true if this relation is self reference; otherwise, false. + + + + + Gets a value indicating whether this instance is object relational. + + + true if this instance is object relational; otherwise, false. + + + + + Gets a value indicating whether this instance is valid. + + true if this instance is valid; otherwise, false. + + + + Adds the self reference. + + The template. + Name of the parent column. + Name of the child column. + + + + Adds the self reference to GridViewTemplate. + + The template. + The parent column names. + The child column names. + + + + Finds the specified relation. + + The parent. + The child. + + + + + Determines whether [contains] [the specified relation name]. + + Name of the relation. + + true if [contains] [the specified relation name]; otherwise, false. + + + + + Indexes the of. + + Name of the relation. + + + + + Gets the relation. + + The relation. + + + + + + + + + Resets this instance. + + + + + Gets a value indicating whether this instance is valid. + + true if this instance is valid; otherwise, false. + + + + Resets this instance. + + + + + Gets a value indicating whether this instance is valid. + + true if this instance is valid; otherwise, false. + + + + Gets the relation. + + The relation. + + + + This class represents a row that contains data in + + + + + Initializes a new instance of the . + + An instance of which the current row belongs to. + + + + Extends to listen to Items' PropertyChanged and CollectionChanged events. + + + + + + This component represents a customizable view template for displaying flat tabular data. + + + + + Sets the first page as the current page. + + + true if the operation was successful; otherwise, false. + + + + + Sets the last page as the current page. + + + true if the operation was successful; otherwise, false. + + + + + Moves to the page after the current page. + + + true if the operation was successful; otherwise, false. + + + + + Requests a page move to the page at the specified zero-based index. + + The zero-based index of the page to move to. + + true if the operation was successful; otherwise, false. + + + + + Moves to the page before the current page. + + + true if the operation was successful; otherwise, false. + + + + + Clears the Child templates, Relations, Columns, reset DataSource to null and AutoGenerateHierarchy property to its default value. + + + + + Copies the selected cells to the clipboard. + + The cells whos content will be copied to the clipboard. + The clipboard format. + Wheather cells values should be cut. + True if performing a cut operation, otherwise false. //This is needed as we copy data in several text formats but delete the actual cell value on the last iteration. + The final content to be put into the clipboard. + + + + Retrieves the formatted values that represent the contents of the selected + cells for copying to the System.Windows.Forms.Clipboard. + + + + + Moves the current selection in the to the Clipboard. + + + + + Copy the formatted values that represent the contents of the selected cells to the System.Windows.Forms.Clipboard. + + + + + Paste the contents of the System.Windows.Forms.Clipboard to the current view. + + + + + Gets the GridViewSynchronizationService instance, used to dispatch internal grid events. + + + + + Gets or sets a value indicating whether the RadGridView will automatically build hierarchy from DataSource. + + + + + Gets or sets the current row for the grid. + + + + + Gets or sets the current view. + + + + + Gets or sets a value indicating whether you have provided your own data-management operations for the RadGridView control. + + + + + Gets collection of GridViewRelation instances that represent the hierarchical structure. + + + + + Gets the collection of rows selected by the user. + + + + + Gets the collection of cells selected by the user. + + + + + Gets or sets a value indicating whether the user is allowed to select more than one cell, row, or column of the RadGridView at a time. + + + + + Gets or sets a value indicating how the cells of the RadGridView can be selected. + + + + + Gets or sets a value indicating whether RadGridView is in read only mode. + + + + + Gets the RadGridView control associated with this template. + + + + + Gets or sets a value indicating whether the data in the current DataView can be paginated. + + + + + Gets or sets the columns the cells of which will contain the self-reference expander items. + + + + + This flag is used internally to mark when the current position is changing. + + + + + Gets or sets a value indicating whether an exception will be thrown of one attemps to sort, filter or group in virtual mode. + + + + + Gets a value that indicates whether the IPagedCollectionView.PageIndex value is allowed to change. + + true if the IPagedCollectionView.PageIndex value is allowed to change; otherwise, false. + + + + Gets a value that indicates whether a page index change is in process. + + true if the page index is changing; otherwise, false. + + + + Gets the zero-based index of the current page. + + The zero-based index of the current page. + + + + Gets or sets the number of items to display on a page. + + The number of items to display on a page. + + + + Gets the total number of pages. + + + + + Gets or sets a value indicating whether paging is performed before grouping or vice versa. + + + true if paging is performed before grouping; otherwise, false. + + + + + Gets or sets a value indicating whether [add new bound row before edit]. + + + true if [add new bound row before edit]; otherwise, false. + + + + + Gets or sets a value that indicates whether users can cut cell text values + to the System.Windows.Forms.Clipboard and whether row and column header text is included. + + + + + Gets or sets a value that indicates whether users can copy cell text values + to the System.Windows.Forms.Clipboard and whether row and column header text is included. + + + + + Gets or sets a value that indicates whether users can paste Clipboard values + to the RadGridView control. + + + + + Represents a row containing child views in RadGridView. + + + + + Initializes a new instance of the . + + The , related with this row. + + + + Gets the current child + + + + + Gets all child objects. + + + + + Gets the hierarchy row that owns this details row. + + + + + Gets the actual height used in RadGridView to present this row. + + + + + Gets a boolean value which indicates whether the row is the last one in its owner collection. + + + + + Represents a filtering row in RadGridView. + + + + + Initializes a new instance of the . + + The , owner of this row. + + + + Gets the type of the for current GridViewFilteringRowInfo. + + + + + + Represents the group header row + + + + + Initializes a new instance of the GridViewGroupHeaderRowInfo class. + + The associated GridViewInfo, owner of this class + + + + + Gets the summary text for the row. + + The summary text. + + + + Gets or sets the group. + + The group. + + + + Gets the parent row for this row. + + + + + + Gets the hierarchy level of the group that owns this row + + + + + Gets the visual child rows. + + The visual child rows. + + + + Gets the top summary rows. + + The top summary rows. + + + + Gets the bottom summary rows. + + The bottom summary rows. + + + + Gets or sets text for the group row. + + + + + PinPosition property is not supported for GridViewGroupRowInfo. + + + + + IsPinned property is not supported for GridViewGroupRowInfo. + + + + + Updates the view. + + + + + Determines whether the row has child rows. + + + true if the row has child rows; otherwise, false. + + + + + Gets the level of the hierarchy + + + + + Gets or sets the active view. + + The active view. + + + + Gets the child row that is related with this row in a hierarchy + + + + + Gets the child rows. + + The child rows. + + + + Gets the parent row for this row. + + + + + + Gets the views. + + The views. + + + + Gets the type of the for current GridViewRowInfo. + + + + + + Represents a row that enables adding of new rows in RadGridView. + + + + + Initializes a new instance of the . + + An instance of which the current row belongs to. + + + + Starts the row adding process. + + + + + Finishes the adding of the new row. + + Returns true if successfull. + + + + Cancels the adding of the new row. + + + + + Represents a row containing summary information in RadGridView. + + + + + Initializes a new instance of the GridViewSummaryRowInfo. + + + + + Gets the summary text for the specified column. + + + + + Gets all summary values for the specified column. + + + + + Gets the GridViewSummaryRowItem related with this row. + + + + + Represents the grid's table header row + + + + + Initializes a new instance of the GridViewTableHeaderRowInfo class. + + The associated GridViewInfo, owner of this class + + + + Defines the position of pinned rows + + + + + Initializes a new instance of the GridSortField class with field name. + + The field name of the new GridSortField object. + + + + Initializes a new instance of the GridSortField class with field name, sort order and the default data type of string. + + The field name of the new GridSortField object. + The sort order of the new GridSortField object + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + The parameter is null. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Clones this instance. + + + + + + Sorts the order as string. + + + + + + Sorts the order from string. + + The sort order. + + + + + Sorts the order as string. + + The sort order. + + + + + Gets or sets the name of the field. + + The name of the field. + + + + Gets or sets the sort order. + + The sort order. + + + + Gets a value indicating whether this instance is empty. + + true if this instance is empty; otherwise, false. + + + + + + + + + Represents a collection of GridSortField objects. + + + + + Initializes a new instance of the class. + + The owner. + + + + Adds the specified sort expression. + + The expression. + + + + Adds the specified field name. + + Name of the field. + The sort order. + + + Enumeration representing the order of sorting data in RadGrid + + + sorts grid data ascendingly + + + sorts grid data descendingly + + + does not sort the grid data + + + + Initializes a new instance of the class. + + Type of the sort changed. + + + + Initializes a new instance of the class. + + Type of the sort changed. + The sort expression. + + + + Initializes a new instance of the class. + + Type of the sort changed. + The sort expression. + The index. + + + + Initializes a new instance of the class. + + Type of the sort changed. + The sort expression. + The old index. + The new index. + + + + Initializes a new instance of the class. + + Type of the sort changed. + The old sort expression. + The new sort expression. + The index. + + + + Initializes a new instance of the class. + + Type of the sort changed. + The old sort expression. + The new sort expression. + The old index. + The new index. + + + + Gets the index. + + The index. + + + + Initializes a new instance of the class. + + Type of the sort change. + + + + Initializes a new instance of the class. + + Type of the sort change. + The sort expression. + + + + Initializes a new instance of the class. + + Type of the sort change. + The sort expression. + The index. + + + + Initializes a new instance of the class. + + Type of the sort change. + The sort expression. + The old index. + The new index. + + + + Initializes a new instance of the class. + + Type of the sort change. + The old sort expression. + The new sort expression. + The index. + + + + Initializes a new instance of the class. + + Type of the sort change. + The old sort expression. + The new sort expression. + The old index. + The new index. + + + + // Occurs before an item is added, removed, changed, moved, or the entire list is refreshed. + // + + The old index. + The new index. + // + + + + Begins the update. + + + + + Begins the item update. + + + + + Ends the item update. + + + + + Resumes event notification. + + + + + Resumes event notification. + + + + + Ends the update. + + + + + Gets the sort expression. + + The sort expression. + + + + Gets the is updated. + + The is updated. + + + + RadGridView is complex control that allows you to display and edit tabular data from many different kinds of data sources. + + + + + Initializes a new instance of the class. + + + + + Notifies that the control is about to be visualized. + + + + + + Disposes the grid. + + The disposing. + + + + Creates the child items. + + The parent. + + + + Creates the grid view element. + + + + + + Subscribe to events handling the basic features in RadGridView. + + + + + Unsubscribe from the handled events. + + + + + Evaluates the specified expression. + + The expression. + The rows. + + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Raises the event. + + The row that needs formatting. + A instance containing event data. + + + + + + Raises the event. + + The row that needs formatting. + A instance containing event data. + + + + + + Raises the event + + The cell that needs formatting. + A instance containing event data. + + + + + + Raises the event + + The grid cell that needs formatting. + A instance containing event data. + + + + + + Fires when an element for editing a cell is showing. + + The sender. + The instance containing the event data. + + + + Called when the cell begins editing. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The cell that is to be edited. + A instance containing event data. + + + + + + Called when the cell ends editing. + + The sender. + The instance containing the event data. + + + + Fires when the value of a cell changes. + + The sender. + The instance containing the event data. + + + + Fires before the value in a cell is changing. + + The sender. + The instance containing the event data. + + + + Raises the event. + + + An instance of containing event data. + + + + Raises the event. + + + An instance of containing event data. + + + + Raises the event. + + + + + Raises the event. + + + + + Called when the current cell is changed. + + The sender. + The instance containing the event data. + + + + Called when the current row is changed. + + The sender. + The instance containing the event data. + + + + Called when the current row is changing. + + The sender. + The instance containing the event data. + + + + Raises the event. + + + A that contains the event data. + + + + Fires when the current selection is changing. + + The sender. + The instance containing the event data. + + + + Fires when the current selection changes. + + The sender. + The instance containing the event data. + + + + Fires when the current page is changed. + + The sender. + The instance containing the event data. + + + + Fires when the current page is changing. + + The sender. + The instance containing the event data. + + + + Called when thecolumn chooser item element is creating. + + The sender. + The instance containing the event data. + + + + Fires when a new expression editor form is created. + + The sender. + The instance containing the event data. + + + + Called when the child view is expanded. + + The sender. + The instance containing the event data. + + + + Called when the child view is expanding. + + The sender. + The instance containing the event data. + + + + Fires when the DataGroup is expanded or collapsed. + + The sender. + The instance containing the event data. + + + + Fires when the DataGroup is expanding or collapsing. This behavior is valid when grouping or hierarchy mode is applied. + + The sender. + The instance containing the event data. + + + + Called when the row info is created. + + The sender. + The instance containing the event data. + + + + Fires the RowSourceNeeded event. + + The sender. + The instance containing the event data. + + + + Occurs when the user adding new row to the RadGridView. + + The sender. + The instance containing the event data. + + + + Occurs when the user has finished adding a row to the RadGridView. + + The sender. + The instance containing the event data. + + + + Occurs when the user deletes a row from the RadGridView. + + The sender. + The instance containing the event data. + + + + Occurs when the user has finished deleting a row from the RadGridView. + + The sender. + The instance containing the event data. + + + + Fires when an unbound cell requires a value for a cell in order to format and display the cell. + + The sender. + The instance containing the event data. + + + + Fires after the height of a row changes. + + The sender. + The instance containing the event data. + + + + Fires before the height of a row changes. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The row under the mouse pointer. + A instance containing event data. + + + + + Fires when the Rows collection of a GridViewTemplate changes. + + The sender. + The instance containing the event data. + + + + Fires before the Rows collection of a GridViewTemplate changes. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + + + Fires when the unbound cell requires a value for a cell in order to format and display the cell. + + The sender. + The instance containing the event data. + + + + Called when the row editing is canceled. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + + + Called when [cell click]. + + The sender. + The instance containing the event data. + + + + Called when the cell is double clicked. + + The sender. + The instance containing the event data. + + + + Raises the event + + + + + Called when the cell value is changed. + + The sender. + The instance containing the event data. + + + + Fires when a toggle state changed of RadCheckBoxElement in header cell. + + The sender. + The instance containing the event data. + + + + Called when the command cell is clicked. + + The sender. + The instance containing the event data. + + + + Called when the column width is changed. + + The sender. + The instance containing the event data. + + + + Called when the column width is changing. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The sender. + The instance containing the event data. + + + + Called when a data error occurs. + + The sender. + The instance containing the event data. + + + + Fires when the data group requires in virtual mode.. + + The sender. + The instance containing the event data. + + + + Fires when evaluation of group summary is undergoing. + + The sender. + The instance containing the event data. + + + + Called when the context menu is opening. + + The sender. + The instance containing the event data. + + + + Raises the event. + + + An instance that contains the event data. + + + + + + Raises the + event. + + An that contains the event data. + + + + Called when the filter is changing. + + The sender. + The instance containing the event data. + + + + Called when the filter expression is changed. + + The sender. + The instance containing the event data. + + + + Fires when the filter is changed. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Raises the event. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The sender. + The instance containing the event data. + + + + Fires when sorting is changing. + + The sender. + The instance containing the event data. + + + + Fires when sorting is changed. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Fires when grouping is changing. + + The sender. + The instance containing the event data. + + + + Fires when grouping is changed. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Called when the hyperlink is opening. + + The sender. + The instance containing the event data. + + + + Fires when a link from a GridViewHyperlinkColumn is opened. + + The sender. + The instance containing the event data. + + + + Raises the event + + The grid cell that is painted. + A instance containing event data. + + + + + + Raises the event + + The grid cell that needs formatting. + A instance containing event data. + + + + + + Occurs for hierarchy rows with more than one child views. + + The print renderer that is currently printing the grid. + The + + + + Called when RadGridView has prepared appropriate data formats that represent the copy selection, added the copy selection formats to a DataObject, and is ready to either place the DataObject on the Clipboard. + + The sender. + The instance containing the event data. + + + + Occurs when the RadGridView is ready to paste data. + + The sender. + The instance containing the event data. + + + + Occurs when the RadGridView is ready to paste data to individual cells. + + The sender. + The instance containing the event data. + + + + Shows the for the columns of the master view template. + + + + + + + Shows the . + + The template which columns will be shown for. + + + + + + Hides the + + + + + + + Clears the current selection by unselecting all selected cells (rows). + + + + + Select all cells (rows) in RadGriView + + + + + Gets the displayed row count. + + The include partial row. + + + + + Gets the displayed column count. + + The include partial column. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + The mode. + + + + Gets whether the control defines the theme for the specific element. + + The element. + + + + + Suspends layout during initialization. + + + + + Resumes layout. + + + + + Determines whether an element may be edited via the EditUIElements dialog at design-time. + + + + + + + Creates a new accessibility object for the control. + + + A new for the + control. + + + + + Processes the coded UI message. + + The request. + + + + Processes Windows messages. + + The Windows to process. + + + + Puts the current cell in edit mode. + + Returns true if the process is successful. + + + + Commits any changes and ends the edit operation on the current cell. + + true on success. + + + + Close the currently active editor and discard changes. + + true on successful cancellation. + + + + Ends the edit operation without committing the changes + + true on success. + + + + Gets the default serialization info for RadGridView used by Save/Load layout methods to persist grid settings to/from XML. + + + You can use the serialization info to include/exclude properties of RadGridView and related objects from XML serialization. + Example:
+ ComponentXmlSerializationInfo serializationInfo = radGridView1. + info.SerializationMetadata.Add(); +
+ +
+ + + Creates the grid view layout serializer. + + The info. + + + + + Stores RadGridView properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + XmlWriter to use by the built-in serializer + + + + Stores to a stream RadGridView properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + Writes the XML content in the stream and leaves the stream open. + + + + + Stores to a file RadGridView properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + + + Unbound load the IDatareader data and reset current DataSource for MasterTemplate + + + + + + Loads RadGridView properties, sub-objects and their properties from XML reader, using the serialization information provided by the property + + + + + Fires when the layout is loaded. + + The sender. + The instance containing the event data. + + + + Loads RadGridView properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + Loads RadGridView properties, sub-objects and their properties from XML stream, using the serialization information provided by the property + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Raises the event. + + An that contains + the event data. + + + + Raises the + event. + + An that contains + the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Processes a dialog key. + + One of the values + that represents the key to process. + true if the key was processed by the control; otherwise, false. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + An that contains the event data. + + + + Invalidates the multi selection. + + + + + Raises the event. + + A that + contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Determines whether the specified key data is input key. + + The key data. + + + + + Calls internally BeginUpdate. + + + + + + Begins the update. + + + + + Ends the update. + + + + + Ends the update. + + + + + Directly prints the to the default printer. + + + + + Directly prints the to the default printer or shows printer settings and then prints the . + + Indicates whether printer settings dialog should be shown. + + + + Directly prints the to the default printer or shows printer settings and then prints the . + + Indicates whether printer settings dialog should be shown. + As instance of used to control the print process. + + + + Shows a for editing the print settings. + + + + + Shows a for editing the print settings. + + As instance of used to control the print process. + + + + This method is called every time new print procedure is initiated. + + The document that contains the printed graphics. + The print arguments. + The number of pages that will be required for the print of the control. + + + + This method is called when all pages have been printed. + + The document that contains the printed graphics. + The print arguments. + Always returns true. + + + + This method is called for every page that is printed. + + The number of the current page. + The document that contains the printed graphics. + The print arguments. + True if there are more pages to print. + + + + Gets the dialog containing settings for the print job. + + The document that contains the printed graphics. + A print settings dialog. + + + + Retrieves the formatted values that represent the contents of the selected + cells for copying to the System.Windows.Forms.Clipboard. + + + + + + Copy the formatted values that represent the contents of the selected cells to the System.Windows.Forms.Clipboard. + + + + + Paste the contents of the System.Windows.Forms.Clipboard to the current view. + + + + + Moves the current selection in the to the Clipboard. + + + + + Gets whether the grid is disposing. + + The is disposing. + + + + Gets or set the text of the grid title. + + + + + Gets or sets a value indicating the position of the title. + + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets the default size of the control. + + The default of the control. + + + + + Gets or sets the position to place tabs for child views related with this template. + + + + + Gets or sets value indicating how user begins editing a cell. + + + + + Gets or sets value indicating whether hot tracking is enabled. + + + + + Gets the instance of . + This instance is wrapped by this control and the main element in the hierarchy tree and encapsulates the actual functionality of RadGridView. + + + + + + Gets the instance of + + + + + + Gets or sets a value indicating whether alternating row color is enabled. + + + + + Gets or sets a value specifying if the custom drawing (e.g. CellPaint and RowPaint) is enabled + + + + + Gets or sets value indicating whether the is visible. + + + + + Gets or sets a value indicating whether the selected item in the control + remains highlighted when the control loses focus. + + Returns: + true if the selected item does not appear highlighted when the control loses + focus; false if the selected item still appears highlighted when the control + loses focus. The default is true. + + + + + + Gets or sets the text to use when there is no data. + + + + + Gets or sets a value indicating whether to use dedicated vertical scrollbars in hierarchy. + + + + + Gets or sets a value indicating whether row height in a RataGridView + will expand for multiline cell text + + + + + Gets the currently active view in the RadGridView + + + + + Gets or sets the column chooser sort order. + + + The column chooser sort order. + + + + + Gets the current column chooser + + + + + Gets or sets the associated with the MasterTemplate. + + + + + Gets or sets a value indicating whether to show cell errors. + + + + + Gets or sets a value indicating whether to show row errors. + + + + + Gets an instance of or the instance that implements IContextMenuManager interface. + + + + + Gets or sets a value indicating how to split RadGridView. + + + + + Gets or sets whether when changing the current row in one split view the same row in the other split view will be brought into view. + + + + + Gets or set a value indicating the animation effect that will be used when expanding/collapsing groups. + + + + + Gets or sets a value indicating whether to show child view captions. + + + + + Gets or sets a value indicating whether the group panel will show scroll bars or it will expand to show all group headers. + + + + + RadGridView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadGridView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Gets or sets a value indicating whether columns are created automatically when the or properties are set. + + true if the columns should be created automatically; otherwise, false. The default is true. + + + + Sets or gets a value indicating the initial state of group rows when data is grouped. + + + + + + Indicates whether string comparisons of data are case-sensitive. + + + + + Gets or sets the display state of grid horizontal scrollbars. + + + + + Gets or sets the display state of grid vertical scrollbars. + + + + + Gets the collection containing summary rows placed at the bottom of each DataGroup. + + + + + Gets the collection containing summary rows placed on top of each DataGroup. + + + + + Gets or sets a value indicating whether user can drag a column header to grouping panel. + + + + + Gets or sets a value indicating whether user can reorder + Columns. + + + + + Gets or sets a value indicating whether user can resize a row. + + + This property does not prevent developer from setting + + + + + + Gets or sets a value indicating the location of the new row in the view template. + + + + + + Gets or sets a value indicating the location of the search row. + + + + + + Gets or sets a value indicating whether user can edit rows. + + + + + + + + Gets or sets a value indicating whether the ColumnInfo Chooser form is available to the user for this instance of . + + + + + + Gets or sets a value indicating whether the user is able to reorder rows in the grid + + + + + Gets or sets a value indicating whether context menu is displayed when user right clicks on a column header. + + + + + Gets or sets a value indicating whether context menu is displayed when user right clicks on a row header. + + + + + Gets or sets a value indicating whether user can resize columns. + + + This property does not prevent developer from setting + + + + + + Gets or sets a value indicating whether context menu is displayed when user right clicks on a data cell. + + + + + Gets or sets a value indicating whether user can automatically resize a column to fit its content by double-clicking the right border of header cell. + + + + + + + Gets or sets a value indicating whether user can delete rows. + + + + + + + + Gets or sets a value indicating whether the user can add new rows through the grid. + + + When set to true an empty row is added in which the user can enter data for the new record. + Set to false to hide the row. + The row position is controlled through + + + + + + + + Gets or sets a value indicating whether the user can search through the data of the grid. + + + When set to true a search row is added in which the user can enter search criteria. + Set to false to hide the row. + The row position is controlled through + + + + + + Gets or sets a value indicating whether the end-user can sort by more than one column. + + + + + Gets or sets a value indicating whether the columns by which the data is grouped are visible. + + + Set to false, and each column contained in the , will get hidden. + Set to true to see all columns. If some column is still not visible, check . + + + + + + Gets or sets a value indicating how column widths are determined. + + + + + + Gets or sets a value indicating how bottom pinned rows are laid out. + + + + + + Gets or sets a value indicating whether the row header column is visible. + + + + + Gets or sets a value indicating whether the column headers are visible. + + + + + Gets or sets a value indicating whether the filtering row should be visible. + + + + + Gets or sets a value indicating whether the header cell buttons are visible. + + + + + Gets the child templates of master template. + + The child templates of master template. + + + + Gets or sets value indicating whether users can sort data in master view template. + + + + + Gets or sets a value indicating whether the custom sorting functionality should be enabled. Use the event to apply the desired sorting. + + + + + Gets or sets value indicating whether users can group data in the master view template. + + + + + Gets or sets a value indicating whether the custom grouping functionality should be enabled. Use the event to group the data. + + + + + Gets or sets value indicating whether users can filter data in the master view template. + + + + + Gets or sets a value indicating whether the custom filtering functionality should be enabled. Use the event to apply the desired filters. + + + + + Gets or sets value indicating whether users can paginate data in the master view template. + + + + + Gets or sets value indicating the number of rows in the master view template when paging is enabled. + + + + + Gets or sets a value indicating whether you have provided your own data-management operations for the RadGridView control. + + The virtual mode. + + + + + + + + + + Gets or sets the current row of the currently active view containing the current cell. + + + + + Gets or sets the current column of the currently active view containing the current cell. + + + + + Gets the currently active cell in the grid. + + + + + Gets the row and column indexes of the currently active cell. + + + + + Gets the collection of rows selected by the user. + + + + + Gets the collection of cells selected by the user. + + + + + Gets a collection that contains the all rows in the . + + + + + Gets the columns. + + The columns. + + + + Gets a collection that contains the all groups in the . + + + + + Gets collection of instances that represent the hierarchical structure. + + + + + Gets the representing the top-most level + of the hierarchical data. + + + + + + Gets the top-most level of the grid. + + + + + + Gets the child rows. + + The child rows. + + + + Gets the filter descriptors of master template. + + The filter descriptors of master template. + + + + Gets the sort descriptors of master template. + + The sort descriptors. + + + + Gets the group descriptors of master template. + + The group descriptors of master template. + + + + Gets or sets the number of rows contained in the current . + + + + + Gets or sets the number of columns displayed. + + + + + Gets or sets a value indicating whether the RadGridView will automatically build hierarchy from DataSource. + + + + + Gets a value indicating whether the current row has changes that are not committed. + + true if the current row has changes that are not committed; otherwise, false. + + + + + + Gets or sets the print settings dialog factory. + + The print settings dialog factory. + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets a value indicating how the cells of the RadGridView can be selected. + + + + + Gets or sets a value indicating whether the user is allowed to select more than one cell, row, or column of the RadGridView at a time. + + + + + Gets or sets a value indicating whether the user can edit the cells of the RadGridView control. + + + + + Gets or sets an instance of or the instance that implements IGridBehavior interface. + + + + + + + Gets an instance of or the instance that implements IGridNavigator interface. + + + + + + + Gets or sets a value indicating whether the active editor should be closed when validation process fails. + + + + + Gets or sets value indicating if fast scrolling mode is turned on. + + + + + Gets or sets a value indicating whether the TAB key moves the focus to the next control in the tab order + rather than moving focus to the next cell in the control. + + + + + Gets or sets value indicating the behavior when the user presses Enter while adding new row. + + + + + Gets or sets value indicating the behavior when the user presses Enter while adding new row. + + + + + Gets an instance of GridViewEditManager that + defines how to initialize and create cells and editors. + + + + + Fires when a cell needs to be painted. + + + + + Fires when a row needs to be painted. + + + + + Fires when a ColumnChooserCreated is created. + + + + + Fires when a cell needs to be created. + + + + + Fires when a row needs to be created. + + + + Fires when a data row is invalidated and needs to be formatted. + + + void radGridView1_RowFormatting(object sender, RowFormattingEventArgs e) + { + if (e.RowElement.RowInfo.Cells.Count > 0 && (string)e.RowElement.RowInfo.Cells[0].Value == "3") + e.RowElement.Font = strikeoutFont; + else + e.RowElement.Font = SystemFonts.DialogFont; + } + + + + + + + Fires when a grid row is invalidated and needs to be formatted. + + + + + + Fires when the content of a data cell needs to be formatted for display. + + + + + + + Fires when the content of any grid cell needs to be formatted for display. + + + + + + + Fires after CellBeginEdit. + + + + Fires when the cell is entering edit mode. The action can be canceled. + + + Fires when an element for editing a cell is initialized and visible. + + + + + + Fires when the cell editing is finished. + + + + + Fires when the value of an editor changes. + + + + + Fires before the value in an editor is being changed. The action can be canceled. + + + + + Fires before a row is validated. + + + + + Fires when a row is validated. + + + + + Fires when Cell is validating. + + + + + Fires when a row has finished validating. + + + + + Fires after the current cell has changed. + + + + + Fires when current row is changed. + + + + + Fires when the current row is changing. The action can be canceled. + + + + + Fires when the current column has changed. + + + + + + + + + Fires when the current selection is changing. + + + + + Fires when the current selection is changed. + + + + + Fires after the current page has changed. + + + + + Fires when the current page is changing. + + + + + Fires when a new column chooser item element is being created. + + + + + Fires when a new expression editor form is created. + + + + + Fires when the child view is expanded or collapsed. + + + + + Fires when the child view is expanded or collapsed. + + + + + Fires when the DataGroup is expanded or collapsed. + + + + + Fires when the DataGroup is expanding or collapsing. This behavior is valid when grouping or hierarchy mode is applied. + + + + + Occurs when the instance of is created. + + + + + Provides data for the parent row in RadGridView Hierarchy Mode + + + + + Occurs when the user adding new row to the RadGridView + + + + + Occurs when the user has finished adding a row to the RadGridView + + + + + Occurs when the user deletes a row from the RadGridView. + + + + + Occurs when the user has finished deleting a row from the RadGridView. + + + + + Fires when an unbound cell requires a value for a cell in order to format and display the cell. + + + + + Fires after the height of a row changes. + + + + + Fires before the height of a row changes. + + + + + Fires when the mouse pointer moves over a row. + + + + + + + + Fires when the Rows collection of a GridViewTemplate changes. + + + + + Fires before the Rows collection of a GridViewTemplate changes. + + + + + Fires when the user enters the row for new records, so that it can be populated + with default values. + + + + + + + Fires when the unbound cell requires a value for a cell in order to format and display the cell. + + + + + + Fires when the unbound cell requires a value for a cell in order to format and display the cell. + + + + + Fires when the unbound cell requires a value for a cell in order to format and display the cell. + + + + + + + Fires when the unbound cell changed and requires storage in the underlying data source. + + + + + + + Fires when a cell is clicked. + + + + + Fires when a cell is double clicked. + + + + + Fires when the mouse pointer moves over the cell. + + + + + Fires when the value of a cell changes. + + + + + Fires when a toggle state changed of RadCheckBoxElement in header cell. + + + + + Fires when a command cell is clicked. + + + + + Fires when the width of a column changes. + + + + + Fires before the width of a column changes. + + + + + Fires when an external data-parsing or validation operation throws an exception, + or when an attempt to commit data to a data source fails. + + + + + Fires when the data group is required in virtual mode. + + + + + Fires when evaluation of group summary is undergoing. + + + Allows modification of the result by providing access to the currently + evaluated value and the data group. + + + + + Fires before a context menu is shown. + + + + + Fires after data binding operation has finished. + + 1 + + + + + + + + Occurs when the filter is changing. + + + + + Occurs when the filter expression is changed. + + + + + Occurs when the filter is changed. + + + + + Fires for custom filtering operation. + + + + + Occurs when a filter popup is required. + + + + + Occurs when the filter popup has been initialized. + + + + + Occurs when a composite filter dialog is being created. + + + + + Fires when the sorting is changing. The action can be canceled. + + + + + Fires when the sorting is changed. + + + + + Fires for custom sorting operation. + + + + + Fires when grouping is changing. The action can be canceled. + + + + + Fires when grouping is changed. + + + + + Fires for custom grouping operation. + + + + + Fires when the current view in RadGridView has changed. + + + + + Occurs when the hyperlink is opening. + + + + + Occurs when the hyperlink is opened. + + + + + Fires when the content of any grid cell needs to be formatted for printing. + + + + + + + Fires when the content of any grid cell needs to be formatted for printing. + + + + + + + Fires for hierarchy rows with more than one child views. + + + + + Occurs when the RadGridView has prepared appropriate data formats that represent the copy selection, added the copy selection formats to a DataObject, and is ready to either place the DataObject on the Clipboard. + + + + + Occurs when the RadGridView is ready to paste data. + + + + + Occurs when the RadGridView prepares each cell's value to be placed on the Clipboard. + + + + + Occurs when the RadGridView is ready to paste data to individual cells. + + + + + Gets a value indicating whether the cell is in edit mode. + + + + + Gets the active editor + + + + + Gets the serialization info for RadGridView used by Save/Load layout methods to persist grid settings to/from XML. + By default, or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + Occurs when the layout is loaded. + + + + + Gets or sets a value indicating how the is printed. + + + + + + Gets or sets a value that indicates whether users can cut cell text values + to the System.Windows.Forms.Clipboard and whether row and column header text is included. + + + + + Gets or sets a value that indicates whether users can copy cell text values + to the System.Windows.Forms.Clipboard and whether row and column header text is included. + + + + + Gets or sets a value that indicates whether users can paste Clipboard values + to the RadGridView control. + + + + + Implements a list of IGridViewEventListener weak references, which is sorted by the Priority member of each listener instance. + + + + + This class is a message filter for RadGridView and handles mouse and keyboard events + + + + + This interface defines methods that can intercept the keyboard and mouse events from RadGridView. + + + + + Initializes the IGridBehavior with the specified RadGridViewElement + + The RadGridViewElement to associate with this object + + + + Occurs when the RadGridView is clicked. + + Type: System.EventArgs + Returns true if the event is processed + + + + Occurs when the RadGridView is double-clicked. + + Type: System.EventArgs + Returns true if the event is processed + + + + Processes key events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes key down events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes key up events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes key press events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse pointer is over the RadGridView and a mouse button is pressed. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse pointer is over the RadGridView and a mouse button is released. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the RadGridView is double clicked by the mouse. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse pointer enters the RadGridView. + + Type: System.EventArgs + Returns true if the event is processed + + + + Occurs when the mouse pointer leaves the RadGridView. + + Type: System.EventArgs + Returns true if the event is processed + + + + Occurs when the mouse pointer is moved over the RadGridView. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse wheel moves while the RadGridView has focus. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the context menu of the RadGridView needs to be shown + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + The RadGridView associated with this navigator + + + + + The RadGridView associated with this navigator + + + + + Initializes the IGridBehavior with the specified RadGridViewElement + + The RadGridViewElement to associate with this object + + + + The RadGridView associated with this navigator + + + + + The RadGridView associated with this navigator + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Processes the key. + + The instance containing the event data. + + + + + Processes the key down. + + The instance containing the event data. + + + + + Processes key press events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the key up. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Occurs when the mouse pointer is over the RadGridView and a mouse button is pressed. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse pointer is over the RadGridView and a mouse button is released. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Gets the grid table element at point. + + The point. + + + + + Initializes a new instance of the class. + + + + + Registers instance for specified row type + + A type inherited from . + An instance of . + + + + Unregisters instance for specified row type + + A type inherited from . + Returns true if succeed, otherwise false. + + + + Locks the specified behavior. + + The behavior. + + + + Unlocks the behavior. + + The behavior. + + + + Gets an instance of IGridBehavior for specified type. + + A type inherited from . + Returns an instance of IGridBehavior + + + + Gets the current row behavior. + + + + + + Gets the row behavior at point. + + The point. + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Initializes the IGridBehavior with the specified RadGridViewElement + + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Processes the key. + + The instance containing the event data. + + + + + Processes the key down. + + The instance containing the event data. + + + + + Processes the key up. + + The instance containing the event data. + + + + + Processes the key press. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Occurs when the mouse pointer leaves the RadGridView. + + Type: System.EventArgs + Returns true if the event is processed + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + + Processes the PageUp key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the PageDown key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Navigates to page. + + The row. + The keys. + + + + Gets the last scrollable row. + + The table element. + + + + + Gets the first scrollable row. + + The table element. + if set to true [check bounds]. + + + + + Performs application-defined tasks associated with freeing, releasing, + or resetting unmanaged resources. + + + + + Performs application-defined tasks associated with freeing, releasing, + or resetting unmanaged resources. + + The disposing. + + + + Gets or sets the original control cursor. + + The original cursor. + + + + Gets the locked behavior. + + The locked behavior. + + + + Gets the default row behavior. + + The default row behavior. + + + + Gets the cell at point. + + The cell at point. + + + + Gets the row at point. + + The row at point. + + + + The scroll reason type. + + + + + Represents grid data row behavior + + + + + Initializes a new instance of the class. + + + + + Occurs when the RadGridView is clicked. + + Type: System.EventArgs + Returns true if the event is processed + + + + Occurs when the RadGridView is double-clicked. + + Type: System.EventArgs + Returns true if the event is processed + + + + Processes key events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes keys that are not handled by ProcessKey methoes + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes key down events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes key up events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes key press events in RadGridView. + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the context menu of the RadGridView needs to be shown + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Escape key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Enter key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Space key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the F2 key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Up key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Down key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Left key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Right key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Tab key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Add key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Subtract key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Delete key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Home key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the End key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Insert key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the alpha-numeric keys + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the PageUp key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the PageDown key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse pointer is over the RadGridView and the right mouse button is pressed. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse pointer is over the RadGridView and the left mouse button is pressed. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Resizes the row. + + The current location. + + + + Shows the size NS cursort. + + The current location. + + + + + Determines whether this instance [can resize row] the specified current location. + + The current location. + The row element. + + true if this instance [can resize row] the specified current location; otherwise, false. + + + + + Resets the control cursor. + + + + + Gets the expander primitive. + + The point. + + + + + Gets the cell at point. + + The point. + + + + + Gets the row at point. + + The point. + + + + + Validates the on user input. + + The instance containing the event data. + + + + + Resets the field values. + + + + + + Selects the next control. + + if set to true [forward]. + + + + + Determines whether [is on first cell]. + + + true if [is on first cell]; otherwise, false. + + + + + Determines whether [is on last cell]. + + + true if [is on last cell]; otherwise, false. + + + + + Gets the mouse navigation context. + + The instance containing the event data. + + + + + Determines whether this instance [can enter edit mode] the specified row info. + + The row info. + + true if this instance [can enter edit mode] the specified row info; otherwise, false. + + + + + Gets the navigator. + + The navigator. + + + + Gets the 's editor manager. + + The editor manager. + + + + Gets the root template. + + The root template. + + + + Gets a value indicating whether this instance is pressed shift. + + + true if this instance is pressed shift; otherwise, false. + + + + + Gets a value indicating whether this instance is pressed control. + + + true if this instance is pressed control; otherwise, false. + + + + + Gets the begin edit mode. + + The begin edit mode. + + + + Gets a value indicating whether the grid is in edit mode. + + + true if this grid is in edit mode; otherwise, false. + + + + + Gets the root grid behavior. + + The root grid behavior. + + + + Gets the mouse down location. + + The mouse down location. + + + + Gets the row to resize. + + The row to resize. + + + + Gets the initial height of the row to resize. + + The initial height of the row to resize. + + + + Represents filter row grid behavior + + + + + Initializes a new instance of the class. + + + + + Occurs when the mouse pointer is over the RadGridView and the left mouse button is pressed. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Determines whether this instance [can enter edit mode] the specified row info. + + The row info. + + true if this instance [can enter edit mode] the specified row info; otherwise, false. + + + + + Represents grid group row behavior + + + + + Initializes a new instance of the class. + + + + + Processes the Enter key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Space key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Escape key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the F2 key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the alpha-numeric keys + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Tab key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Gets the group row. + + The group row. + + + + Represents grid header row behavior + + + + + Initializes a new instance of the class. + + + + + Gets a value indicating whether column resize operation is in action. + + + + + Gets or sets a value indicating how long for the cell edge will the resizing cursor appear. + + + + + Represents grid hierarchy row behavior + + + + + Initializes a new instance of the class. + + + + + Processes the Enter key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Represents grid new row behavior + + + + + Initializes a new instance of the class. + + + + + Processes the Escape key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Processes the Enter key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse pointer is over the RadGridView and the left mouse button is pressed. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Occurs when the mouse pointer is over the RadGridView and the right mouse button is pressed. + + The MouseEventArgs containing data related to this event + Returns true if the event is processed + + + + Determines whether this instance [can enter edit mode] the specified row info. + + The row info. + + true if this instance [can enter edit mode] the specified row info; otherwise, false. + + + + + Contains information about the formatting properties to apply. + + + + + Creates a new instance of the BaseFormattingObject class. + + + + + Creates a new instance of the BaseFormattingObject class. + + Formatting object name. + Determines if the condition should be applied on a row. + + + + Evaluates the condition or expression of the formatting object. + + RadGridView row. + RadGridView column. + Returns true if the formatting object should apply. + + + + Checks whether a is equal by content. + + The to compare with. + true if the content is equal. + + + + Serves as a hash function for a particular type. + + A hash code for the current . + + + + Determines whether a non-default value is specified for the + + + + + + + Creates a new object that is a copy of the current instance. + + + + + + Copies the source's settings to this instance. + + + + + + Raises the PropertyChanging event. + + The property name. + true when the property value should be changed. + + + + Raises the PropertyChanged event. + + The property name. + + + + Returns whether the BaseFormattingObject equals the specified format. + + The format. + + + + + Gets or sets a value indicating what TextAlignment to apply + + + + + Determines what TextAlignment to apply to child cells when ApplyToRow is true. + + + + + Determines whether the condition is enabled (can be evaluated and applied). + + + + + Gets or sets a value indicating what ForeColor to apply on the cell + + + + + Gets or sets a value indicating what BackColor to apply on the cell + + + + + Gets or sets a value indicating what ForeColor to apply on the row + + + + + Gets or sets a value indicating what BackColor to apply on the row + + + + + Gets or sets a value indicating what Font to apply on the cell. + + + + + Gets or sets a value indicating what Font to apply on the row. + + + + + Gets or sets a value containing condition's name + + + + + Gets or sets a value indicating that the condition should be applied on a row + + + + + Gets or sets a value indicating whether the condition should be applied on selected rows. + + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Represents an element which supports conditional formatting. + Concrete implementors are GridDataRowElement and GridDataCellElement + + + + + Gets the instance which wraps the hierarchical structure of elements. + + + + + Sets the for this element. + + The for this element. + + + + Prepares the element for the formatting. + + + + + Gets the for this element. + + + + + Determines whether the this instance supports conditional formatting. + + + + + Contains the formatting properties to apply when some condition is met. (Used inside Conditional formatting form) + + + + + Initializes from the provided conditional format instance. + + + + + + Copies current settings to the provided conditional format instance. + + + + + + Gets or sets the alignment to be used for the cell values + + + + + Gets or sets the alignment to be used for the cell values + + + + + Determines whether case-sensitive comparisons will be made when evaluating string values. + + + + + Determines whether the condition is enabled (can be evaluated and applied). + + + + + Gets or sets the cell font. + + + + + Gets or sets the font for the entire row. + + + + + Gets or sets the foreground color to be used for the entire row + + + + + Gets or sets the background color to be used for the entire row + + + + + Gets or sets the foreground color to be used for the cell + + + + + Gets or sets the background color to be used for the cell + + + + + Determines whether to apply this condition on selected rows. + + + + + Displays a form used to manage conditional formatting objects + + + + + Initializes a new instance of the ConditionalFormattingForm class. + + + + + Initializes a new instance of the ConditionalFormattingForm class. + + the whose columns will be formatted. + + + + Initializes a new instance of the ConditionalFormattingForm class. + + the whose columns will be formatted. + An instance of + + + + Initializes a new instance of the ConditionalFormattingForm class. + + The whose columns will be formatted. + An instance of . + ThemeName of the form and its controls. + + + + Initializes a new instance of the ConditionalFormattingForm class. + + Owner control. + The whose columns will be formatted. + An instance of . + ThemeName of the form and its controls. + + + + Force edit of a specified column + + The GridViewColumn to edit + + + + Gets the column title. + + The column. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the whose columns will be formatted. + + + + + Gets the that is currently formatted. + + + + + Initializes a new instance of the ColumnFormattingInfo class + + + + + + + The GridViewColumn owner of the formatting info + + + + + The conditional formatting object associated with the column + + + + + Contains information about the condition and the formatting properties to apply. + + + + + Creates a new instance of the ConditionalFormattingObject class. + + + + + Initializes a new instance of the ConditionalFormattingObject class. + + Formatting object name. + The condition type. + Left value of the condition. + Right value of the condition. + Determines if the condition should be applied on a row. + + + + Evaluates the condition specified by this object against the actualValue. + + RadGridView row. + RadGridView column. + Returns true if the formatting object should apply. + + + + Creates a new object that is a copy of the current instance. + + + + + + Copies the source's settings to this instance. + + + + + + Gets or sets a value containing condition's type + + + + + Gets or sets a value containing condition's left value + + + + + Gets or sets a value containing condition's right value + + + + + Determines whether case-sensitive comparisons will be made when evaluating string values. + + + + + used internally by + + + + + Creates a new instance of the ParsableValueType class. + + + + + + + Gets the value contained in this object + + Indicates whether the value is parsed successfull. + The parsed value. + + + + Gets the value contained in this object + + The parsed value. + + + + Gets the string representation of the value. + + + + + Gets the desired type for conversion. + + + + + Extends to subscribe to Items' PropertyChanged and CollectionChanged events. + + + + + Defines the types of conditions used for conditional formatting + + + + + Contains information about the expression and the formatting properties to apply. + + + + + Creates a new instance of the ConditionalFormattingObject class. + + + + + Creates a new instance of the ConditionalFormattingObject class. + + Formatting object name. + The expression of the formatting object. + Determines if the condition should be applied on a row. + + + + Evaluates the expression of the formatting object. + + RadGridView row. + RadGridView column. + Returns true if the formatting object should apply. + + + + Creates a new object that is a copy of the current instance. + + + + + + Gets or sets the expression of the object. + + + + + Initializes a new instance of the RadMenuItem class. + + + + + Initializes a new instance of the RadMenuItem class using the displayed + text. + + + + + + Initializes a new instance of the RadMenuItem class using the displayed text. + + + + + + + Manages the context menus in GridVisualElement. + + + + + This interface provides methods for managing context menus in GridVisualElement. + + + + + Shows a context menu. + + The context menu provider. + Returns true if successful. + + + + Shows a context menu. + + The context menu provider. + The location in control's coordinates. + Returns true if successful. + + + + Hides the context menu. + + + + + + Gets the associated instance. + + + + + The current context menu + + + + + Initializes a new instance of the ColumnChooserForm class. + + The object, associated with this manager. + + + + Shows a context menu. + + The context menu provider. + The location in control's coordinates. + Returns true if successful. + + + + Shows a context menu. + + The context menu provider. + Returns true if successful. + + + + Hides the context menu. + + + + + Gets the associated instance. + + + + + The current context menu + + + + + Defines methods used to create context menu for a specified element + + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successfull. + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successfull. + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successfull. + + + + Gets or sets the context menu + + + + + Represents an auto-complete box editor in RadGridView. + + + + + Represents a textbox editor in RadGridView. + + + + + Abstract class that represents basic logic for grid editor + + + + + Initializes the editor. Used internally in RadGridView. + + The owner of this editor. + The value of the editor. + + + + Validates the value currently entered in the editor. + + + + + + Fires the event. + + A that contains the event data. + + + + Fires the event. + + + + + Translates system key down events to the owner element. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Translates mouse wheel events to the owner element. + + A System.Windows.Forms.MouseEventArgs that contains the event data. + + + + Gets a value indicating that the editor should close when grid loses focus. + + + + + Gets a value indicating whether the cell should clear its text when adding an editor. + + + + + Gets the type of the editor value + + + + + Initializes a new instance of the class. + + + + + Starts the editing process. Used internally in RadGridView. + + + + + Ends the edit operation. + + + + + + Creates a new editor element. + + a if successful + + + + Translates system key down events to the owner element. + + + + + + Handles the key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets the text box. + + The text box. + + + + Gets or sets the value. + + The value. + + + + Gets the type of the editor value + + + + + + Gets or sets the null value for the editor. + + + + + Indicates if all characters should be left alone or converted + to upper or lower case + + + + + The text could span more than a line when the value is true + + + + + Specifies the maximum length of characters which could be entered + + + + + Gets or sets whether the editor accepts the Tab key in multiline mode + + + + + Gets or sets whether the editor accepts the Enter key in multiline mode + + + + + Initializes a new instance of the class. + + + + + Represents a browse editor in RadGridView. + + + + + Gets or sets the editor's value. + + + + + Represents a calculator editor in RadGridView. + + + + + Handles key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the editor's value. + + + + + Represents a checkbox editor in RadGridView. + + + + + Initializes a new instance of the RadCheckBoxEditor class. + + + + + Toggles the checkbox state. + + + + + Gets or sets a value indicating whether this is a three state checkbox. + + + + + Represents a checkbox element used in RadCheckBoxEditor + + + + + Initializes a new instance of the RadCheckBoxEditor class. + + A instance. + + + + Get the checkmark element. + + + + + Gets or sets the checkmark state. + + + + + Represents a color editor in RadGridView. + + + + + Gets or sets the editor's value. + + + + + Represents a DropDownList editor in RadGridView. + + + + + Initializes a new instance of the RadDropDownListEditor class. + + + + + Handles key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets a value specifying the style of the DropDownList. + + + + + Gets or sets the drop down sizing mode. The mode can be: horizontal, veritcal or a combination of them. + + + + + Represents a date time editor in RadGridView. + + + + + Initializes a new instance of the RadDateTimeEditor class. + + + + + Handles key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + The DateTime value assigned to the date picker when the Value is null + + + + + Gets or sets the minimum date and time that can be selected in the editor. + + + + + Gets or sets the maximum date and time that can be selected in the editor. + + + + + Gets or sets the custom date/time format string. + + + + + Represents a spin editor in RadGridView. + + + + + Initializes a new instance of the GridSpinEditor class. + + + + + Handles the key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the minimum value that could be set in the editor. + + + + + Gets or sets the maximum value that could be set in the editor. + + + + + Gets or sets the value which is added to/subtracted from the current value of the editor. + + + + + Gets or sets the number of decimal places to display in the editor. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the editor. + + + + + Gets or sets the type of the value to use in the editor. + + + + + Used to manage editors in GridVisualElement. + + + + + Initializes a new instance of the GridViewEditManager class. + + The , associated with this class. + + + + Puts the current cell in edit mode. + + Returns true if the process is successful. + + + + Commits any changes and ends the edit operation on the current cell. + + true on success. + + + + Ends the edit operation without committing the changes + + true on success. + + + + Close the currently active editor and discard changes. + + true on successful cancellation. + + + + Checks whether there is a permanent editor associated with the specified type. + + The type to check. + true if it exists permanent editor for the given type. + + + + Gets the default editor for the specified provider. + + The to get editor for. + An instance of if successful. + + + + Register a permanent editor for specific type. + + The type to register. + + + + Disposes all resources. + + + + + Initializes the editor. + + An instance of IInputEditor + + + + Finishes the editing process. + + + A value that indicates whether the operation should be canceled. + returns true if successful and the editor is closed. + + + + Gets the active editor + + + + + The instance of associated with this class. + + + + + Gets a value indicating whether the cell is in edit mode. + + + + + Gets or sets a value indicating whether the active editor should be closed when validation process fails. + + + + + Represents a masked editbox editor in RadGridView. + + + + + Initializes a new instance of the RadMaskedEditBoxEditor class. + + + + + Handles the key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the prompt text that is displayed when the TextBox contains no text. + + + + + Gets the instance of this editor. + + + + + Specifies how a user starts cell editing in the RadGridView control. + + + + + Editing begins when the cell receives focus. This mode is useful when pressing + the TAB key to enter values across a row, or when pressing the ENTER key to + enter values down a column. + + + + + Editing begins when any alphanumeric key is pressed while the cell has focus. + + + + + Editing begins when any alphanumeric key or F2 is pressed while the cell has focus (default value). + + + + + Editing begins when F2 is pressed while the cell has focus. This mode places the + selection point at the end of the cell contents. + + + + + Editing begins only when the RadGridView.BeginEdit(System.Boolean) method is called. + + + + + Represents a textbox editor in RadGridView. + + + + + Initializes a new instance of the RadTextBoxEditor class. + + + + + Creates a new editor element. + + a if successful + + + + Initializes the editor. Used internally in RadGridView. + + The owner of this editor. + The value of the editor. + + + + Starts the editing process. Used internally in RadGridView. + + + + + Ends the edit operation. + + + + + + Translates system key down events to the owner element. + + + + + + Handles the key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the value. + + The value. + + + + Gets or sets the null value for the editor. + + + + + Indicates if all characters should be left alone or converted + to upper or lower case + + + + + The text could span more than a line when the value is true + + + + + Specifies the maximum length of characters which could be entered + + + + + Gets or sets whether the editor accepts the tab key in multiline mode + + + + + Gets or sets whether the editor accepts the tab key in multiline mode + + + + + Gets the type of the editor value + + + + + + Gets a value indicating whether the editor value is modified. + + + + + + Gets a value indicating whether the cell should clear its text when adding an editor. + + + + + + Defines the allowed states of . + + + + + Indicates that the instance of does not have states + + + + + Indicates that the instance of can be current + + + + + Indicates that the instance of can be selected + + + + + Indicates that the instance of can be expanded + + + + + Indicates that the instance of have all applicable states + + + + + Describes the action that caused a CollectionChanged event. + + + + + The data source was reset + + + + + RowInfo is added to the data source + + + + + RowInfo is removed from the data source + + + + + The data source was sorted + + + + + The grouping was changed + + + + + The filtering was changed + + + + + A group expanded state was changed + + + + + A row contains data that was changed + + + + + Data in all visible rows needs to be updated + + + + + A row is moved + + + + + The number of rows in a virtualized grid has been changed + + + + + The cell state has been changed + + + + + Visual rows need to be updated (row is removed, added, or row position has been changed) + + + + + Visual rows layout has been changed + + + + + Visual rows layout has been changed + + + + + Grid theme has been chenaged + + + + + Cached current row is no longer valid + + + + + Child view columns has been changed + + + + + Current row has changed it's state + + + + + Resets the current view to the default one + + + + + The row height has been changed + + + + + The column width has been changed + + + + + Defines the selection modes of RadGridView. + + + + + Cells and rows do not indicate selection. + + + + + One or more individual cells can be selected. + + + + + The entire row will be selected by clicking its row's header or a cell contained in that row. + + + + + Enumeration of possible values for animation effects for expanding/collapsing grid rows + + + + + Specifies the behavior when the user presses Enter while adding new row. + + + + + Pressing Enter key saves the value in the cell and the cell remains selected. + + + + + Pressing Enter key saves the value in the cell moves focus to the next cell and opens its editor. + + + + + Pressing Enter key saves the value in the cell moves focus to the next row and opens editor of the cell bellow current. + + + + + Specifies the behavior when the user presses Enter while adding new row. + + + + + Pressing Enter key saves the value in the cell and the cell remains selected. + + + + + Pressing Enter key saves the value in the cell and moves focus to the next cell and opens its editor. + + + + + Pressing Enter key saves the value in the cell and moves focus to the next row. + + + + + Pressing Enter key saves the value in the cell and moves focus to the newly added row. + + + + + Defines the split modes used in RadGridView. + + + + + Default view, no split views. + + + + + Split views horizontally. + + + + + Split views vertically. + + + + + Provides data for the CellFormatting event + + + + + Initializes a new instance of the CellFormattingEventArgs class. + + The + + + + Gets the + + + + + Represents the method that will handle the CellFormatting events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of CellFormattingEventArgs containing the data related with this event + + + + Represents the method that will handle the CellValidated event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of CellValidatedEventArgs containing the row related with this event + + + + Provides data for the CellValidated event + + + + + Initializes a new instance of the CellValidatedEventArgs class. + + The that is validated. + The that is validated. + The cell value. + + + + Gets the cell value. + + + + + Represents the method that will handle the CellValidating event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of CellValidatingEventArgs containing the row related with this event + + + + Provides data for the CellValidating event + + + + Provides data for and events. + 2 + + + + Initializes a new instance of the class. + + The related with the cell. + The related with the cell. + + + + + Gets the related with the cell. + + + + + Gets the related with the cell. + + + + + Gets the related with the cell. + + + + Gets a value indicating the column index of the cell that the event occurs for. + The index of the column containing the cell that the event occurs for. + 1 + + + Gets a value indicating the row index of the cell that the event occurs for. + The index of the row containing the cell that the event occurs for. + 1 + + + + Initializes a new instance of the CellValidatingEventArgs class. + + The that is validating. + The that is validating. + The cell value. + The old cell value. + The associated active editor + + + + Gets the cell value. + + + + + Gets the old cell value. + + + + + Provides data for the ColumnChooserCreated event + + + + + Represents the method that will handle the ColumnChooserCreated event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewColumnChooser which is created + + + + Represents the method that will handle the ContextMenuOpening events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of ContextMenuOpeningEventArgs containing the data related with this event + + + + Provides data for the ContextMenuOpening event + + + + + Initializes a new instance of the GridViewRowEventArgs class. + + the element for which the context menu will be open + the context menu which is associated with this provider + + + + Initializes a new instance of the GridViewRowEventArgs class. + + the element for which the context menu will be open + the context menu which is associated with this provider + a value indicating whether to cancel the event + + + + Gets or sets the context menu which is associated with this provider + + + + + Gets the element for which the context menu will be open + + + + + Represents the method that will handle the CurrentCellChanged events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of CurrentCellChangedEventArgs containing the data related with this event + + + + Provides data for the CurrentCellChanged event + + + + + Initializes a new instance of the CurrentCellChangedEventArgs class. + + + + + Gets the previous current cell. + + + + + Gets the new current cell. + + + + + Represents the method that will handle the RowMouseMove events of a RadGridView. + + + + + Represents the method that will handle the CellMouseMove events of a RadGridView. + + + + + Represents the method that will handle the CommandCellClick events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of EventArgs containing the data related with this event + + + + Represents the method that will handle the ToggleStateChanged events of embedded RadChechBoxElement in header Cell. + + + + + Represents the method that handles the EditorRequired cancelable event. + + The source of the event. + A EditorRequiredEventArgs that contains the event data. + + + + Provides information about the popup initialized on filter buton pressing. + + + + + Gets or sets the IRadFilterPopup instance. + + + + + Gets reference of column, for which the filter popup is initialized. + + + + + Represents the method that handles the FilterPopupInitialized event. + + The source of the event. + A FilterPopupInitializedEventArgs that contains the event data. + + + + Provides information about the type of the popup required on filter buton pressing + + + + + Gets or sets the IRadFilterPopup instance. + If a default popup is provided by the RadGridView, it is available for post-initialization + or substitution. + + + + + Gets reference of column, for which the filter popup is initialized. + + + + + Represents the method that handles the FilterPopupRequired event. + + The source of the event. + A FilterPopupRequiredEventArgs that contains the event data. + + + + Provides data for the ToolTipTextNeeded event used with GridTableElement + + + + + Initializes a new instance of the GridElementToolTipTextNeededEventArgs class. + + The tool tip that will be shown. + The row index of the first visible row. that is + The first visible + The default tooltip text + + + + Gets the row index of the first visible row. + + + + + Gets the first visible . + + + + + Represents the method that will handle the cell related events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewCellCancelEventArgs containing the data related with this event + + + Represents the method that will handle events related to cell and row operations. + 2 + + + Provides data for events related to cell and row operations. + 2 + + + + Gets the related with the cell. + + + + + Gets the cell value. + + + + + Provides data for the CellPaint event + + + + + Gets the Cell Element to be painted + + + + + Gets the Graphics object used to draw + + + + + Initializes a new instance of the GridViewCellPaintEventArgs class. + + The cell element to be painted + The Graphics object used to paint the cell + + + + Represents the method that will handle the CellPaint events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewRowPaintEventArgs containing the row related with this event + + + + Provides data for the CreateCell event + + + + + Initializes a new instance of the GridViewCreateCellEventArgs class. + + The GridRowElement that will contian the newly created cell + The specified GridViewColumn + The default cell type that will be used + + + + Gets ot sets the type of the GridCellElement that will be created for the specified row and column + + + + + Gets the GridRowElement that will contain the newly created cell + + + + + Gets the specified GridViewColumn + + + + + Gets or sets the cell instance that will be added to grid row. + + + + + Represents the method that will handle the CreateCell event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewCreateCellEventArgs containing the row related with this event + + + + Provides data for the CreateCell event + + + + + Initializes a new instance of the GridViewCreateCellEventArgs class. + + The GridRowElement that will contian the newly created cell + The default row type that will be used + + + + Gets the GridViewRowInfo that needs to be associated + + + + + Gets or sets the row instance that will be added to grid row. + + + + + Gets ot sets the type of the GridRowElement that will be created for the specified row and column + + + + + Represents the method that will handle the CreateCell event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewCreateRowEventArgs containing the row related with this event + + + + Provides data for the CurrentViewChanged event + + + + + Initializes a new instance of the GridViewCreateCellEventArgs class. + + The GridViewInfo that is currently active. + The GridViewInfo that will become active. + + + + Gets the old current view. + + + + + Gets the new current view. + + + + + Represents the method that will handle the CurrentViewChanged event of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewCurrentViewChangedEventArgs containing the row related with this event + + + + Provides data for the RowPaint event + + + + + Gets the RowInfo Element to be painted + + + + + Gets the Graphics object used to draw + + + + + Initializes a new instance of the GridViewRowPaintEventArgs class. + + The row element to be painted + The Graphics object used to paint the cell + + + + Represents the method that will handle the RowPaint events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewRowPaintEventArgs containing the row related with this event + + + + Represents the method that will handle the cell related events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of GridViewCellCancelEventArgs containing the data related with this event + + + Provides data for and events. + 2 + + + + Initializes a new instance of the class. + + The related with the cell. + The related with the cell. + + + + This values should be used when users use the Lasso selection and selection mode is CellSelection + + + + + This values should be used when users use the Lasso selection and selection mode is CellSelection + + + + + Gets the related with the cell. + + + + + Gets the related with the cell. + + + + Gets a value indicating the column index of the cell that the event occurs for. + The index of the column containing the cell that the event occurs for. + 1 + + + + Represents the method that will handle the HyperlinkOpened events of RadGridView. + + The event sender. + Instance of HyperlinkOpenedEventArgs. + + + + Provides data for the HyperlinkOpened event. + + + + + Gets the hyperlink. + + + + + Initializes a new instance of the HyperlinkOpenedEventArgs class. + + The hyperlink. + The row which contains the hyperlink. + The column which contains the hyperlink. + Any error occured while trying to open a hyperlink. + + + + Gets the related with the cell. + + + + + Gets the related with the cell. + + + + + Gets the related to with this hyperlink belongs. + + + + + Represents the method that will handle the HyperlinkOpening events of RadGridView. + + The event sender. + Instance of HyperlinkOpeningEventArgs. + + + + Provides data for the HyperlinkOpening event. + + + + + Gets the hyperlink. + + + + + Initializes a new instance of the HyperlinkOpeningEventArgs class. + + The hyperlink. + The row which contains the hyperlink. + The column which contains the hyperlink. + + + + Gets the related with the cell. + + + + + Gets the related with the cell. + + + + + Gets the related to with this hyperlink belongs. + + + + + Provides data for the RowFormatting event + + + + + Initializes a new instance of the RowFormattingEventArgs class. + + The + + + + Gets the + + + + + Represents the method that will handle the RowFormatting events of a RadGridView. + + The event sender, typicaly this is RadGridView + Instance of RowFormattingEventArgs containing the data related with this event + + + + Represents the method that will handle RowHeightChanged events of a RadGridView. + + + + + Event Arguments for RowHeightChanged event. + + + + + Initializes a new instance of the RowHeightChangedEventArgs class. + + The + + + + Gets the GridViewRowInfo having the new height. + + + + + Represents the method that will handle RowHeightChanging events of RadGridView. + + + + + Event arguments for RowHeightChanging event. + + + + + Initializes a new instance of the RowHeightChangingEventArgs class. + + The to resize. + The new row height. + + + + Initializes a new instance of the RowHeightChangingEventArgs class. + + The to resize. + The new row height. + a value indicating whether to cancel the event + + + + Gets the to resize. + + + + + Gets the new row height. + + + + + Initializes a new instance of the class. + + The referenced column. + + + + Initializes a new instance of the class. + + The formatting object. + The template. + + + + Shows expression builder for specified column + + Referenced RadGridView + + + + + Shows expression builder for specified column + + Referenced RadGridView + + + + + + Shows expression builder for specified formatting object. + + Referenced RadGridView. + Referenced formatting object. + The form to be shown. + Instance of the form. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Set the theme name, which should be applied to the expression builder + + + + + Displays a form used to crate custom filters. + + + + + Represents a base class for custom filtering dialog. All inheritors should + + + + + Initializes the editors in the dialog with the filter descriptor that is correctly applied to the RadGridView data. + + The column which represents the property by which data will be filtered + The filter descriptor that is currently applied to the grid for this column. + Determines whether type specific editors should be used e.g. RadSpinEditor for numeric properties. + + + + Gets the filter descriptor that should be applied to the RadGridView data. + + + + + Initializes a new instance of the CompositeFilterForm class. + + + + + Initializes a new instance of the CompositeFilterForm class. + + The , owner of this form. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the instance, used to build the filter expression. + + The data filter. + + + + Gets or sets the filter descriptor. + + The filter descriptor. + + + + Gets the column's data type + + The type of the column's data type. + + + + Displays a form used to crate custom filters. + + + + + Initializes a new instance of the CompositeFilterForm class. + + + + + Initializes a new instance of the CompositeFilterForm class. + + The , owner of this form. + + + + + Gets the selected value form editor. + + RadControl editor + return exception if parse is not successful + Value from the editor + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the logical operator + + The logical operator. + + + + Gets the combo box of left operator. + + The combo box left operator. + + + + Gets the combo box of right operator. + + The combo box right operator. + + + + Gets the left operator editor. + + + + + Gets the right operator editor. + + + + + Gets or sets the filter descriptor. + + The filter descriptor. + + + + Gets or sets the left descriptor. + + The left descriptor. + + + + Gets or sets the right descriptor. + + The right descriptor. + + + + Gets the column's data type + + The type of the column's data type. + + + + Represents a base class for sizable pop-up. + + + + + Creates the filter descriptor. + + The filter operator. + + + + + Edits the filter descriptor. + + The menu item. + + + + Creates the composite filter form + + An instance of . + + + + Gets the composite filter descriptor. + + Type of the desired. + The current descriptor. + + + + + Gets the distinct values table. + + + + + + Gets the filter descriptor. + + + + + + Sets the filter operator. + + The filter operator. + + + + Validates the user filter. + + The descriptor. + + + + + Sets the theme. + + Name of the theme. + + + + Gets or sets the data column. + + The data column. + + + + Gets or sets the filter descriptor. + + The filter descriptor. + + + + Occurs when the filter is confirmed. + + + + + Clears all customizable date select menu items. + + + + + Add customizable date select menu item. + + Menu item text to display + FilterDescriptor to apply on item click. + + + + Remove customizable date select menu item on specified position. + + Relative position + + + + Set popup theme. + + Theme name to set. + + + + Gets the menu item that holds the calendar. + + + + + Gets the menu item that holds the OK and Cancel buttons. + + + + + Initializes a new instance of the class. + + The data column. + + + + Processes the key. + + The instance containing the event data. + + + + Initializes the elements. + + + + + Creates the general menu items. + + + + + Creates the value list element. + + + + + Sets the list selection. + + + + + Fires when the popup is opened. + + + + + Determines whether the MouseWheel event is handled by the popup. + + + + + + + + The List is scrolled with the specified delta. + + The delta. + + + + Raises the + event. + + An that contains the event data. + + + + Sets the theme. + + Name of the theme. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Called when a filter menu item is clicked. + + The sender. + The instance containing the event data. + + + + Releases the unmanaged resources used by the + and its child controls and optionally releases the managed resources. + + true to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Gets the menu item that holds the list control + + + + + Gets whether the popup is opened. + + True if the popup is opened. + + + + Initializes the view with an instance of the . + + An instance of . + An instance of . + + + + Dataches the view from its owner. + + + + + Explicitly synchonizes the view with its owner. + + + + + Gets or the RadGridViewElement that owns this view. + + + + + Gets the GridViewInfo that this view represents. + + + + + Initializes the fields of the current instance. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the buttons strip element child elements. + + + + + Creates the text box strip element child elements. + + + + + Wires the buttons and text box events. + + + + + Unwires the buttons and text box events. + + + + + Disposes the managed resources of this instance. + + + + + Updates the visibility of the paging panel. + + + + + Updates the buttons strip element. Called when an update notification arrives. + + + + + Updates the text box strip element. Called when an update notification arrives. + + + + + Raises the standard .NET PropertyChanged event. + + + + + + Initializes the view with an instance of the . + + An instance of . + An instance of . + + + + Detaches the view from its owner. + + + + + Explicitly synchronizes the view with its owner. + + + + + Allows previewing of an event that is about to be dispatched. + + + + + + + Core entry point for receiving and processing an event. + + + + + + + Allows additional processing of an event that has been just dispatched. + + + + + + + Allows a listener to examine events queue and optionally to remove/add events. + + + + True if the listener has actually modified the queue, false otherwise. + + + + + Gets or sets the number of buttons with numbers in the paging panel. + + + + + Gets or sets the image of the button that navigates to the first page. + + + The first page button image. + + + + + Gets or sets the image of the button that navigates to the previous page. + + + The previous page button image. + + + + + Gets or sets the image of the button that navigates next page. + + + The next page button image. + + + + + Gets or sets the image of the button that navigates to the last page. + + + The last page button image. + + + + + Gets the command bar element. + + + The command bar. + + + + + Gets the command bar row element. + + + The command bar row element. + + + + + Gets the buttons strip element. + + + The buttons strip element. + + + + + Gets the button that navigates to the first page. + + + The first button. + + + + + Gets the button that navigates to the previous page. + + + The previous button. + + + + + Gets the button that navigates fast in the backward direction. + + + The fast back button. + + + + + Gets the button that navigates fast in the forward direction. + + + The fast forward button. + + + + + Gets the button that navigates to the next page. + + + The next button. + + + + + Gets the button that navigates to the last page. + + + The last button. + + + + + Gets the text box strip element. + + + The text box strip element. + + + + + Gets the label that shows the "Page" text. + + + The page label. + + + + + Gets the text box that shows the current page. + + + The page number text box. + + + + + Gets the label that shows the "of" text. + + + The of pages label. + + + + + Gets the label that shows the total number of pages. + + + The number of pages label. + + + + + Gets or sets whether the button that navigates to the first page is visible. + + + true if the button that navigates to the first page is visible; otherwise, false. + + + + + Gets or sets whether the button that navigates to the previous page is visible. + + + true if the button that navigates to the previous page is visible; otherwise, false. + + + + + Gets or sets whether the button that navigates fast backward is visible. + + + true if the button that navigates fast backward is visible; otherwise, false. + + + + + Gets or sets whether the buttons that navigate to a concrete page are visible. + + + true if the buttons that navigate to a concrete page are visible; otherwise, false. + + + + + Gets or sets whether the button that navigates fast forward is visible. + + + true if the button that navigates fast forward is visible; otherwise, false. + + + + + Gets or sets whether the button that navigates to the next page is visible. + + + true if the button that navigates to the next page is visible; otherwise, false. + + + + + Gets or sets whether the button that navigates to the last page is visible. + + + true if the button that navigates to the last page is visible; otherwise, false. + + + + + Gets or sets whether the strip element holding the page navigation buttons is visible. + + + true if the strip element holding the page navigation buttons is visible; otherwise, false. + + + + + Gets or sets whether the strip element holding the page navigation text box is visible. + + + true if the strip element holding the page navigation text box is visible; otherwise, false. + + + + + Gets or the RadGridViewElement that owns this view. + + + + + Gets the GridViewInfo that this view represents. + + + + + Gets the event type(s) this listener needs to process. + + + + + Gets the priority of the current instance. + + + + + Gets the event process mode for this instance. + + + + + Cell which is used in a browse column. + + + + + This is the base class for all data bound cells in RadGridView + + + + + Represents the base class for all cells in . + + + + + Initializes a new instance of the class. + + An instance of . + An instance of . + + + + Determines if the cell can BestFit for the specified column BestFit mode. + + + + + Initializes the cell with specified column and row + + An instance of . + An instance of . + + + + Updates the visual state of the cell. + + + + + Sets the value of the cell. + + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successful. + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successful. + + + + Updates the visual state of the cell. + + + + + Sets the actual text of the cell. + + + + + Applies the format string to the specified object. + + + + + + + Gets or sets a value indicating whether the cell is the current in the grid. + + + + + Gets or sets a value indicating whether the cell belongs to the current in the grid. + + + + + Gets or sets a value indicating whether the cell belongs to the current in the grid. + + + + + Gets or sets a value indicating whether the containing this cell is sorted. + + + + + Gets or sets a value indicating whether the containing this cell is hovered. + + + + + Gets or sets a value indicating whether the cell is pinned. + + + + + Gets or sets a value indicating whether the cell is selected. + + + + + Gets or sets a value indicating whether the cell belongs to an odd row. + + + + + Gets or sets the pin position for the row. When the column is pinned, it cannot be moved from its location when a user scrolls horizontally. + + + + + Gets or sets the format string to be used for the cell's value. + + + + + Gets the which the cell belongs to. + + + + + + + + Gets the which the cell belongs to. + + + + + + + + + + + Gets the root template element + + + + + Returns the index of the cell in the . + + + + + Returns the index of the in the columns collection. + + + + + Gets or sets the value represented by this cell. + + + + + Gets or sets the context associated with the cell. + + + + + Binds the column properties. + + + + + Unbinds the column properties. + + + + + Occurs when some column property changes its value. + + An instance of RadPropertyChangedEventArgs + + + + Binds the row properties. + + + + + Unbinds the row properties. + + + + + Occurs when some row property changes its value. + + An instance of RadPropertyChangedEventArgs + + + + Gets or set a value that determine that this cell can start row reordering + + + + + Initializes a new instance of the class. + + + + + Determines if the cell can BestFit for the specified column BestFit mode. + + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successful. + + + + Gets the editor element associated with this cell element. + + The editor which element we search. + An instance of RadItem that represents the editor element. Null if there is no editor element. + + + + Sets the position of the cell content in accordance with the . + + + + + Prepares the element for the formatting. + + + + + + Applies the format string to the specified object. + + + + + + + Gets or sets a value indicating whether this is the first data cell in the row. + + + + + Gets or sets a value indicating whether this is the first data cell in the row. + + + + + Gets a value indicating where the current cell is in edit mode. + + + + + Gets or sets the value represented by this cell. + + + + + Determines whether the this instance supports conditional formatting. + + + + + + Gets a value indicating that cell's value is invalid + + + + + Gets a value that indicates self-referencing expander element associated with the cell. + + + + + Gets the self reference layout instance when + the is bound to self-reference data source + + The self reference layout. + + + + Gets the data column info. + + The data column info. + + + + Initializes a new instance of the class. + + An instance of . + An instance of . + + + + Cell which is used in a calculator column. + + + + + Initializes a new instance of the class. + + An instance of . + An instance of . + + + + Represents the header cell with embedded CheckBox element. + + + + + Represents the header cell in RadGridView + + + + + Initializes a new instance of the class. + + + + + Creates the composite filter form + + An instance of . + + + + Determines if the cell can BestFit for the specified column BestFit mode. + + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successfull. + + + + Creates the column pinning menu items. + + The context menu. + + + + Creates the conditional formatting form. + + + + + + Pins the column. + + The position. + + + + Gets or sets a value indicating the sort order of data in the column. + + + + + Gets the filter button for the cell. + + + + + Gets the arrow indicating the sort order of the cell. + + + + + Defines the arrow position in the GridHeaderCellElement + + + + + Left arrow position + + + + + Right arrow position + + + + + Top arrow position + + + + + Bottom arrow position + + + + + Updates the information core. + + + + + Returns the check box element in the cell. + + + + + Cell for displaying and editing colors. + + + + + Initializes a new instance of the class. + + An instance of . + An instance of . + + + + Represents a filter cell in RadGridView + + + + + Initializes a new instance of the class. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Determines whether the specified cell is compatible with concrete column. + + The column. + The context. + + true if the specified column is compatible; otherwise, false. + + + + + Occurs when some column property changes its value. + + An instance of RadPropertyChangedEventArgs + + + + Updates filter cell items visibility. + + if set to true [enabled]. + + + + Updates the filter button visibility. + + if set to true [enabled]. + + + + Sets the actual text of the cell. + + + + + Sets the filter operator. + + The filter operator. + + + + Edits the filter descriptor. + + The menu item. + + + + Creates the composite filter form + + An instance of . + + + + Validates a descriptor set by the user. + + the descriptor to validate. + true if successful. + + + + Sets the filter descriptor. + + The descriptor. + + + + Removes the filter descriptor. + + [TRUE] if succeed, otherwise [FALSE] + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Creates the filter menu. + + Type of the data. + + + + + Determines if the cell can BestFit for the specified column BestFit mode. + + + + + Gets the filter button for the cell. + + + + + Gets the filter operator for the cell. + + + + + Gets or sets the spacing between elements in filter cell + + + + + Gets a value indicating whether this instance is editable. + + + true if this instance is editable; otherwise, false. + + + + + Gets a value indicating whether [supports conditional formatting]. + + + true if [supports conditional formatting]; otherwise, false. + + + + + Get or set the filter cell value + + + + + Gets or sets the filter descriptor associated with this cell + + The filter descriptor. + + + + Gets the filtering row info. + + The filtering row info. + + + + Initializes a new instance of the class. + + + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Disposes the managed resources. + + + + + Initializes the fields. + + + + + Handles the ValueChanged event of the rating control. + + The source of the event. + The instance containing the event data. + + + + Occurs when some column property changes its value. + + An instance of RadPropertyChangedEventArgs + + + + Attaches the specified data. + + The data. + The context. + + + + Updates the information core. + + + + + Sets the actual text of the cell. + + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Gets a value indicating whether the cell is editable. + + + true if [is editable]; otherwise, false. + + + + + Gets the rating element. + + + The rating. + + + + + Initializes a new instance of the class. + + An instance of . + An instance of . + + + + Docks the search info label on the left or right side of the search text box depending on the RightToLeft state. + + + + + Gets the search info label. + + + + + Represents the base class for all rows in . + + + + + Initializes the row. + + The instance of which the row is associated with. + + + + Initializes the row view. + + The instance of which the row is associated with. + + + + Updates row's visual state. + + + + + Updates cell layout + + + + + Updates cell content. + + + + + Occurs when some row property changes its value. + + An instance of RadPropertyChangedEventArgs + + + + Occurs when some template property changes its value + + An instance of PropertyChangedEventArgs + + + + Applies custom formatting to the row. + + + + + Gets the VisualStyleElement which describes the appearance in Windows Vista. + + + + + + Creates a based on the settings of the corresponding . + + The that contains the settings. + An instance of or null. + + + + Returns the default cell type to be created based on the settings of the corresponding . + + The that contains the settings. + An column type. + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successful. + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successful. + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successful. + + + + Gets or sets a value indicating whether the hot tracking behavior is enabled. + + + + + Gets or sets a value indicating whether the hot tracking behavior is enabled. + + + + + Gets or sets a value indicating the color of row's horizontal border. + + + + + Gets or sets the color of row's vertical border. + + + + + Gets or sets a value indicating that the row's border is drawn over the cells. + + + + + Gets or sets a value indicating whether the row is the current in the . + + + + + Gets or sets a value indicating whether the row has odd position. + + + + + Gets or sets a value indicating the row visual state. + + + + + Gets or sets a value indicating whether the row is selected. + + + + + Gets or sets a value indicating whether the row contains the current cell. + + + + + Gets or sets a value indicating whether the row contains selected cells. + + + + + Gets the corresponding instance of this row element. + + + + + + + + + + + Gets the root template element + + + + + Gets a value indicating whether the conditional formatting can be applied to the row. + + + + + Gets a value indicating whether alternating row color can be applied to the row. + + + + + Gets or sets the context menu + + + + + Gets a value indicating that conditional formatting can be applied + + + + + This interface defines methods to manage the row layout in . + + + + + Initializes the IGridRowLayout with the specified table element. + + The to associate with this object + + + + Measures the space required by the cells. + + The size that is available for grid rows. + The size required by the row element. + + + + Arranges the cells in the row. + + The size that is available for the specified row. + The to arrange. + The arranged rectangle. + + + + Starts resizing of a column from the UI + + The to resize + + + + Finishes the resizing of a column + + + + + Changes the size of an already choosen column by using the specified delta + + + + + + Invalidates the RenderColumns collection + + + + + Invalidates the row layout + + + + + Determines the actual row height. + + The desired . + The actual row height, if successfull. + + + + Measures the pinned columns. + + The data provider. + + + + + Ensures that the row layout is calculated + + + + + Gets or sets the GridViewTemplate that owns this view definition. + + + + + Gets the desired row size. + + + + + Gets the desired row size for group rows. + + + + + Gets the render columns. + + + + + Gets the scrollable columns + + + + + Gets the first data column. + + + + + Gets the last data column. + + + + + Gets the actual column width + + An instance of . + The actual column width, when successfull. + + + + Initializes the IGridRowLayout with the specified table element. + + The to associate with this object + + + + Measures the space required by the cells. + + The size that is available for grid rows. + The size required by the row element. + + + + Arranges the cells in the row. + + The size that is available for the specified row. + The to arrange. + The arranged rectangle. + + + + Starts resizing of a column from the UI + + The to resize + + + + Finishes the resizing of a column + + + + + Changes the size of an already choosen column by using the specified delta + + + + + + Invalidates the RenderColumns collection + + + + + Invalidates the row layout + + + + + Determines the actual row height. + + The desired . + The actual row height, if successfull. + + + + Measures the pinned columns. + + The data provider. + + + + + Gets or sets the GridViewTemplate that owns this view definition. + + + + + Gets the desired size for the row when using the specified layout. + + + + + Gets the desired size for the group row when using the specified layout. + + + + + Gets all columns currently visible on screen. + Gets a generic list containing all objects that are currently visible. + + + + + Gets the scrollable columns + + + + + Gets the first data column. + + + + + Gets the last data column. + + + + + Contains possible grid layout contexts + + + + + Grid content is displayed on screen. + + + + + Grid content renders on printer. + + + + + Adding value to DistinctValuesTable. It only adds the value if it is unique and is not null or empty. + + + + + + Check if a given value is contained in any of the ArrayLists value collections, bound to every string key. + + + + + + + Check if the collection conteins a given string key. + + Must be a string + + + + Gets the menu item that holds the tree view. + + + + + Gets the menu item that holds the OK and Cancel buttons. + + + + + Gets the menu item that holds the text box. + + + + + Provides static methods for creating strings to represent FilterDescriptors in text format. + + + + + Creates a string representation of filter descriptor. + Takes into account current localization provider and lookup value for lookup column. + + + + + + + Creates a string representation of filter descriptor. + Takes into account current localization provider and lookup value for lookup column. + + Given filter descriptor + Lookup column reference. Provide null if the column has not lookup value structure. + Filter string representation + + + + Creates a string representation of filter descriptor. + Takes into account current localization provider and lookup value for lookup column. + + Given filter descriptor. + Lookup column reference. Provide null if the column is not a lookup column. + Max text length. + Filter string representation + + + + Element containing hyperlink. + + + + + Gets or sets a value indicating if the link has been opened by the user. + + + + + Cell containing hyperlink element. + + + + + Initializes a new instance of the class. + + An instance of . + An instance of . + + + + Gets or sets the element containing hyperlink. + + + + + Gets or sets the text of the content element. + + + + + Gets or sets the image of the content element. + + + + + Creates the page view element. + + The context. + + + + + Creates the page view item. + + The context. + + + + + Creates the page view element. + + The context. + + + + + Creates the page view item. + + The context. + + + + + Creates the page view element. + + The context. + + + + + Creates the page view item. + + The context. + + + + + Creates the page view element. + + The context. + + + + + Creates the page view item. + + The context. + + + + + Best Fit All Columns Request + + + + + Requests the best fit columns. + + + + + Enqueues the best fit columns. + + The mode. + + + + Requests the best fit column. + + The column. + + + + Removes and returns the object at the beginning of the queue + + Returns BestFitRequest + + + + Dequeues the specified column's request from the queue + + The column's request that should be removed + Returns BestFitReques + + + + Represents BestFitRequest type + + + + + BestFit Operation for specified column + + + + + BestFit Operation for all columns + + + + + Represent best fit request + + + + + Initializes a new instance of the class. + + The operation. + The column. + + + + Initializes a new instance of the class. + + The operation. + + + + Initializes a new instance of the class. + + The operation. + The mode. + + + + Compares the current instance to the specified request. + + The request. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the operation. + + The operation. + + + + Gets the auto size mode. + + + + + Gets the column. + + The column. + + + + Ensures that the specified cell is visible. + + A GridViewRowInfo that specifies the cell's row + A GridViewColumn that specifies the cell's column + + + + Ensures that the specified row is visible. + + A GridViewRowInfo that specifies the row + + + + Ensures the row visible core. + + The row info. + + + + + Ensures the row visibility at top. + + The row rect. + The client rect. + The inner client rect. + The verical scroll bar. + The scroll value. + + + + Ensures the row visibility at bottom. + + An instance + if set to true [is last row]. + The row's client rectangle. + The inner client rectangle. + The verical scroll bar. + The scroll bar's value. + + + + Represents the virtualized stack container that holds the grid columns. + + + + + Initializes the fields. + + + + + Removes the element. + + The position. + + + + Gets the element context. + + + + + + Begins the measure. + + The available Size. + + + + + Ends the measure. + + + + + + Measures the element. + + The element. + + + + + Arranges the to its final location. + The element must call the Arrange method of each of its children. + + The size that is available for element. + In this method call to the Arrange method of each child must be made. + + The rectangle occupied by the element. Usually . Should you return different size, the Layout system will restart measuring and rearranging the items. That could lead to infinite recursion. + + + + + Determines whether the specified item is visible. + + The item. + true if item is visible; otherwise, false. + + + + Gets the discrete scroll offset. + + + + + + Gets or sets the context. + + The context. + + + + Gets or sets the scroll columns. + + The scroll columns. + + + + Returns an enumerator that iterates through the collection. + + + A that can + be used to iterate through the collection. + + + + + Inserts the specified index. + + The index. + The item. + + + + Removes the item + at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + The + is read-only. + + + + Returns the index of the specified column. + + The value. + + + + + Adds the specified item. + + The item. + + + + Removes all items from the . + + The + is read-only. + + + + Removes the specified item. + + The item. + + + + + Determines whether the specified columns is contained. + + The value. + + + + + Copies to the specified array starting at the specified index of the target array. + + The array. + The index. + + + + Gets or sets the right to left mode. + + The right to left. + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + + + Gets a value indicating whether the + is read-only. + + true if the + is read-only; otherwise, false. + + + + + Initializes a new instance of the class. + + The collection. + + + + Performs application-defined tasks associated with freeing, releasing, + or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + The collection was modified + after the enumerator was created. + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first + element in the collection. + + The collection was modified + after the enumerator was created. + + + + Gets the element in the collection at the current position of the enumerator. + + The element in the collection at the current position of the enumerator. + + + + + + Represents an lines that links expander cell + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The table element. + + + + Gets or sets the size of the arrow. Used to calculate pixel-perfect results. + + + + + Gets or sets a value determining the shape of the link + + + + + Gets or sets a value determining the style of the link lines + + + + + Defines the differen link styles + + + + + Initializes a new instance of the class. + + + + + Represents a service that manages drag and drop actions in + + + + + Initializes a new instance of the class. + + The grid view element. + + + + Gets the grid view element. + + The grid view element. + + + + Initializes a new instance of the class. + + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Raises the event. + + The owner control. + An instance of containing event data. + + + + Raises the event. + + The row that needs formatting. + A instance containing event data. + + + + + + Raises the event. + + The row that needs formatting. + A instance containing event data. + + + + + + Raises the event + + The cell that needs formatting. + A instance containing event data. + + + + + + Raises the event + + The grid cell that needs formatting. + A instance containing event data. + + + + + + Raises the event + + A instance containing event data. + + + + Returns an instance of GridViewEditManager that + defines how to initialize and create cells and editors. + + An instance of GridViewEditManager + + + + Puts the current cell in edit mode. + + Returns true if the process is successful. + + + + Commits any changes and ends the edit operation on the current cell. + + true on success. + + + + Close the currently active editor and discard changes. + + true on successful cancellation. + + + + Ends the edit operation without committing the changes + + true on success. + + + + Shows the for the columns of the master view template. + + + + + + + Shows the . + + The template which columns will be shown for. + + + + + + Hides the + + + + + + + Gets the drag drop service. + + + + + + Gives access to label element used for the title. + + + + + Gets or set the text of the grid title. + + + + + Gets or sets a value indicating the position of the title. + + + + + Gets or set a value indicating the animation effect that will be used when expanding/collapsing groups. + + + + + Gets the group panel element + + + + + Gets or sets a value indicating whether the group panel will show scroll bars or it will expand to show all group headers. + + + + + Gets the paging panel element + + + + + Gets or sets a value indicating whether to use dedicated vertical scrollbars in hierarchy. + + + + + Gets or sets an instance of or the instance that implements IGridBehavior interface. + + + + + + + Gets or sets a value indicating whether row height in a RataGridView + will expand for multiline cell text + + + + + Gets the instance of + + + + + + Gets or sets value indicating how user begins editing a cell. + + + + + Gets a value indicating whether the cell is in edit mode. + + + + + Gets or sets the current row of the currently active view containing the current cell. + + + + + Gets or sets the current column of the currently active view containing the current cell. + + + + + Gets or the currently active cell in the grid. + + + + + Gets or sets a value indicating whether the selected item in the control + remains highlighted when the control loses focus. + + Returns: + true if the selected item does not appear highlighted when the control loses + focus; false if the selected item still appears highlighted when the control + loses focus. The default is true. + + + + + + Gets or sets value indicating whether the is visible. + + + + + Gets or sets a value indicating whether the PaintCell and PaintRow events are enabled. + + + + + Gets an instance of used to navigate between rows and cells in grid. + + + + + + + Gets or sets value indicating the behavior when the user presses Enter while adding new row. + + + + + Gets or sets value indicating the behavior when the user presses Enter while adding new row. + + + + + Gets or sets a value indicating whether to show cell errors. + + + + + Gets or sets a value indicating whether to show row errors. + + + + + Gets or sets a value indicating whether the TAB key moves the focus to the next control in the tab order + rather than moving focus to the next cell in the control. + + + + + Gets or sets a value indicating how to split RadGridView. + + + + + Gets or sets the text to use when there is no data. + + + + + Gets or sets whether when changing the current row in one split view the same row in the other split view will be brought into view. + + + + + Fires when a cell needs to be created. + + + + + Fires when a row needs to be created. + + + + Fires when a data row is invalidated and needs to be formatted. + + + void radGridView1_RowFormatting(object sender, RowFormattingEventArgs e) + { + if (e.RowElement.RowInfo.Cells.Count > 0 && (string)e.RowElement.RowInfo.Cells[0].Value == "3") + e.RowElement.Font = strikeoutFont; + else + e.RowElement.Font = SystemFonts.DialogFont; + } + + + + + + + Fires when a grid row is invalidated and needs to be formatted. + + + + + + Fires when the content of a data cell needs to be formatted for display. + + + + + + + Fires when the content of any grid cell needs to be formatted for display. + + + + + + + Fires when the current view in RadGridView has changed. + + + + + Fires when a ColumnChooserCreated is created. + + + + + Gets an instance of GridViewEditManager that + defines how to initialize and create cells and editors. + + + + + Gets the active editor + + + + + Gets or sets the column chooser sort order. + + + The column chooser sort order. + + + + + Gets the current column chooser + + + + + Gets an instance of or the instance that implements IContextMenuManager interface. + + + + + Displays a list with column chooser items, associated with columns. + + + + + Creates a new instance of the ColumnChooserForm class. + + An instance of the . + + + + Creates a new instance of the ColumnChooserForm class. + + + + + Gets the used in the form. + + + + + Gets a generic list containing all objects available in the form. + + + + + Gets or sets the sort order of the columns. + + + The sort order. + + + + + Gets or sets a value indicating whether the filter text box is visible. + + + + + Gets the filter text box of this column chooser + + + + + Occurs when a new item element is being created. The created item is then added to the Column chooser. + + + + + This is a form containing the hidden columns in RadGridView + + + + + Represent the basic element of all elements in ColumnChooser + + + + + Initializes a new instance of the ColumnChooserElement class. + + + + + Initializes with new instance of the . + + An instance of the . + + + + + Uninitializes the associated instance of the in . + + + + + Updates the child elements collection of the . + + + + + Fires the event. + + + + + Gets an instance of the class + that represents the layout panel which holds the column chooser + items. + + + + + Gets or sets the associated with this column chooser + + + + + Gets list of objects contained in the + + + + + Gets or sets the sort order of the columns. + + + The sort order. + + + + + Gets the scroll viewer. + + The scroll viewer. + + + + Gets or sets a value indicating whether the filter text box is visible. + + + + + Gets the filter text box of this column chooser element + + + + + Gets or sets the GridVisualElement that owns this view. + + + + + Occurs when a new item element is being created. The created item is then added to the Column chooser. + + + + + Represents a column header in the column chooser form + + + + + Initializes a new instance of the ColumnChooserElement class. + + + + + Initializes a new instance of the ChoosenColumnElement class. + + An instance to GridViewDataColumn + + + + + Wries the events of the column. + + + + + Unwires the events of the column. + + + + + The associated with this item + + + + + Displays a form used to manage columns + + + + + Initializes a new instance of the GridViewColumnChooser class. + + + + + Initializes a new instance of the ColumnChooserForm class. + + The object, owner of this form + + + + Initializes a new instance of the GridViewColumnChooser class. + + The object, owner of this form + The object + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the associated with this form. + + + + + Gets or sets the sort order of the columns. + + + The sort order. + + + + + Gets or sets a value indicating whether the filter text box is visible. + + + + + Gets the associated with this form. + + + + + Gets list of objects contained in the form. + + + + + Gets or sets the associated instance of + + + + + Allows inheritors to provide custom logic when processing drop of group field. + + The drop location. + + + + + Represent a group expression element in a + + + + + Initializes a new instance of the GroupElement class. + + An instance of . + An instance of the . + + + + Gets a collection of which are children of the GroupElement. + + + + + Represent a group field element in a + + + + + Initializes a new instance of the GridGroupByField class. + + An instance of . + An instance of . + An instance of the . + + + + Gets the associated instance of type + + + + + Represent a link element among in . + + + + + Represent a group panel element in a . + + + + + Initializes with new instance of the . + + An instance of the . + + + + + Uninitializes the associated instance of the in . + + + + + Updates the child elements collection of the . + + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where an field will be dropped after a drag operation. + + + + + Gets or sets an instance of used by the control. + + + + + Gets or sets a value indicating whether the group panel will show scroll bars or it will expand to show all group headers. + + + + + Gets or sets the GridVisualElement that owns this view. + + + + + Gets the GridViewInfo that this view represents. + + + + + Initializes a new instance of the GridGroupHeaderItem class. + + The for the item. + The for the item. + + + + Gets the associated with this item. + + + + + Gets the associated with this item. + + + + + Gets the associated with this item. + + + + + Represents a button element used in GridGroupHeaderItem + + + + + Initializes a new instance of the GridGroupHeaderItemButtonElement class. + + + + + Initializes a new instance of the GridGroupHeaderItemButtonElement class. + + the text for the button. + + + + Updates the content of this list. + + Gets the , associated with this list. + true if the update process was successfull. + + + + Gets or sets the grouping lines color. + + + + + Gets the for the list. + + + + + Represents a collection containing GridGroupHeaderList items. + + + + + Initializes a new instance of the GridGroupHeaderListsCollection class. + + The , owner of this collection./> + + + + Returns the index of an element in the collection. + + The template to search for + The index in that template + The count + The index of the element + + + + Returns the index of an element in the collection. + + The template to search for + The index of the element + + + + Returns the index of an element in the collection. + + The template to search for + The index in that template + The index of the element + + + + Changes the place of an element in the collection. + + The old element index. + The new index. + + + + Removes elements from the collection's tail + + the starting index. + + + + Removes all elements in range. + + the starting index + the number of the elements to remove + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Represents a hierarchy of template group elements that is associated with specified . + + + + + Initializes a new instance of the TemplateGroupsElement class. + + An instance of . + An instance of . + + + + Recreates the child elements hierarchy depending on the associated . + + + + + Determines whether the specified drag object [can be drag over] this instance. + + The drag object. + + true if the specified drag object [can drag over]; otherwise, false. + + + + + Sets the group links offset + + + + + Sets the group links position + + + + + Sets the separator's width between two consecutive GridFieldElements + + + + + Sets the vertical and horizontal distance between two consecutive GroupElements + + + + + Sets the vertical and horizontal distance between two consecutive GroupElements + + + + + Sets the vertical offset between two consecutive child TemplateGroupsElements + + + + + Gets a read only collection of child elements of type + + + + + Gets a read only collection of child elements of type + + + + + Gets the group panel element. + + The group panel element. + + + + Gets the GridViewTemplate. + + The view template. + + + + A helper class that process best fitting of columns + + + + + Initializes a new instance of the class. + + The table element. + + + + Performs best fit for specified column + + An instance of that will be best fitted + + + + Performs best fit for all columns + + + + + Bests the fit columns. + + The mode. + + + + Process all best fit column requests + + + + + Performs best fit for all columns + + + + + Performs best fit for specified column + + An instance of that will be best fitted + The mode. + + + + Determines whether the instance of can be best fitted. + + The row. + + true if the instance of can be best fitted ; otherwise, false. + + + + + Gets the desired cell's width + + An instance of + Returns the desired cell's with + + + + Sets 's width + + An instance of . + The desired width + + + + Gets the table element. + + The table element. + + + + Gets the best fit requests. + + The best fit requests. + + + + Displays a cell with a checkbox inside, used with GridViewBooleanColumn + + + + + Initializes a new instance of the GridCheckBoxCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Gets the group column info. + + The group column info. + + + + Displays a cell with a combo box inside, used with GridVewComboBoxColumn + + + + + Initializes a new instance of the GridComboBoxCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Cell element used to present differend kind of commnad elements + + + + + Initializes a new instance of the GridCommandCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + + + + Gets an instance of the class + that represents the button in the command cell. + + + + + This is a cell with data and time formatting + + + + + Initializes a new instance of the GridDateTimeCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + This cell contains a child view table + + + + + Initializes a new instance of the GridDetailViewCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Gets the GridTableElement child element + + + + + Gets the RadPageViewElement which contains the child view for this cell element. + + + + + Gets the details row info associated with this cell element + + + + + Gets the hierarchy row, parent for this child view + + + + + Represent a filter checkbox cell element + + + + + Initializes a new instance of the class. + + + + + + + A button used inside filter cells in RadGridView. + + + + + Represents a group header content cell + + + + + Initializes a new instance of the GridGroupContentCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Displays a sign indicating that the row can be expanded/collapsed + + + + + Initializes a new instance of the GridFilterRowHeaderCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Gets or sets a value indicating whether the sign is in expanded or collapsed state + + + + + Gets or sets a value indicating whether the sign is in expanded or collapsed state + + + + + Represents an indent cell inside header row + + + + + Represents an indent cell + + + + + Initializes a new instance of the GridIndentCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Initializes a new instance of the GridHeaderIndentCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Represents a cell containing an image + + + + + Initializes a new instance of the GridImageCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Represents the row header cell + + + + + Initializes a new instance of the GridRowHeaderCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successfull. + + + + Creates the column pinning menu items. + + The context menu. + + + + Displays a cell containing summary info + + + + + Initializes a new instance of the GridSummaryCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Determines if the cell can BestFit for the specified column BestFit mode. + + + + + Gets the unformatted values represented by this cell. + + + + + Represents the top left cell of the grid + + + + + Initializes a new instance of the GridTableHeaderCellElement class. + + An instance of the GridViewColumn + An instance of the GridRowElement + + + + Represents an layout that is performed in self-referencing for the first data cell + + + + + Initializes a new instance of the class. + + The row element. + + + + Creates the self-referencing cell's elements. + + The data cell. + + + + Disposes all managed resources - such as Bitmaps, GDI+ objects, etc. + + + + + Detaches the cell elements. + + + + + Disposes the link elements. + + + + + Updates the associated instance of expander primitive + + Value that indiacted whether the row is first one. + + + + Updates links + + + + + Creates or deletes links + + + + + Updates link types in the specified data cell. + + + + + Determines whether [is last child row] [the specified parent]. + + The parent. + The row. + + true if [is last child row] [the specified parent]; otherwise, false. + + + + + Determines whether [is first child row] [the specified parent]. + + The parent. + The row. + + true if [is first child row] [the specified parent]; otherwise, false. + + + + + Gets the traverser for concrete instance of . + + An instance of . + + + + + Caches the link item. + + The item. + + + + Gets the link item. + + + + + + Binds the row properties. + + + + + Unbinds the row properties. + + + + + Gets a value that indicates the row assiciated with the layout + + + + + Gets a value that indicates the row element assiciated with the layout + + + + + Gets a value that indicates the expander element assiciated with the layout + + + + + Gets the stack layout element. + + The stack layout element. + + + + Gets the data cell. + + The data cell. + + + + Gets or sets the witdh of the group indent column. + + + + + Gets a value that indicates the links count + + + + + Gets a collection that contains all links + + + + + Represents a collection that stores visual cell elements. + + + + + Initializes a new instance of the class. + + The row. + + + + Returns the index of the specified cell element. + + The item. + + + + + Determines whether the specified cell element is contained in the collection. + + The item. + + + + + Returns an enumerator that iterates through the collection. + + + A that can + be used to iterate through the collection. + + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + + + Gets a value indicating whether the + is read-only. + + true if the + is read-only; otherwise, false. + + + + + Represents a collection of visual row elements. + + + + + Initializes a new instance of the class. + + The container. + + + + Returns the index of specific row element. + + The item. + + + + + Inserts the row element at the specified index. + + The index. + The item. + + + + Removes the item + at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + The + is read-only. + + + + Determines whether the specified row element is contained in the collection. + + The item. + + + + + Removes the specified item. + + The item. + + + + + Returns an enumerator that iterates through the collection. + + + A that can + be used to iterate through the collection. + + + + + Gets the number of elements contained in the . + + The number of elements contained in the . + + + + + + Gets a value indicating whether the + is read-only. + + true if the + is read-only; otherwise, false. + + + + + Enumerator for the visual row elements. + + + + + Initializes a new instance of the class. + + The visual rows collection. + + + + Performs application-defined tasks associated with freeing, releasing, + or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + The collection was modified + after the enumerator was created. + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first + element in the collection. + + The collection was modified + after the enumerator was created. + + + + Gets the element in the collection at the current position of the enumerator. + + The element in the collection at the current position of the enumerator. + + + + + + Returns the number of rows displayed to the user. + + true to include partial rows in the displayed row count; otherwise, false. + The number of rows displayed to the user. + + + + Returns the number of columns displayed to the user. + + true to include partial columns in the displayed column count; otherwise, false. + The number of columns displayed to the user. + + + + Gets the row's visual element based on the corresponding GridViewRowInfo + + The corresponding GridViewRowInfo + An instance to a GridRowElement if successfull, null othervise + + + + Gets a cell based on corresponding GridViewRowInfo and GridViewColumn + + The corresponding GridViewRowInfo + The corresponding GridViewColumn + An instance to a GridCellElement if successfull, null othervise + + + + Invalidates a row + + The GridViewRowInfo to invalidate + + + + Invalidates a single cell + + The corresponding GridViewRowInfo + The corresponding GridViewColumn + + + + Ensures that the specified row is visible. + + A GridViewRowInfo that specifies the row + + + + Ensures that the specified cell is visible. + + A GridViewRowInfo that specifies the cell's row + A GridViewColumn that specifies the cell's column + + + + Gets a value indicating whether the row is visible + + The GridViewRowInfo to check for visibility + Returns true if the row is visible + + + + Begins batch update of the items. + + + + + Ends batch update of the items. + + Tells the view to perform update + + + + Ends batch update of the items. + + + + + Gets a collection containing all visible child views + + + + + Gets the current GridCellElement + + + + + Gets the current GridRowElement + + + + + Gets the addreess of the current GridCellElement + + + + + Gets the rows currently visible on screen + + + + + Gets the number of rows displayed to the user. + + + + + Gets a value indicating whether the view is current + + + + + Begins batch update of the items. + + + + + Ends batch update of the items. + + + + + Ends batch update of the items. + + Tells the view whether an update is required or not. + + + + Returns the number of rows displayed to the user. + + true to include partial rows in the displayed row count; otherwise, false. + The number of rows displayed to the user. + + + + Returns the number of columns displayed to the user. + + true to include partial columns in the displayed column count; otherwise, false. + The number of columns displayed to the user. + + + + Gets the row's visual element based on the corresponding GridViewRowInfo + + The corresponding GridViewRowInfo + An instance to a GridRowElement if successful, null otherwise + + + + Gets a cell based on corresponding GridViewRowInfo and GridViewColumn + + The corresponding GridViewRowInfo + The corresponding GridViewColumn + An instance to a GridCellElement if successful, null otherwise + + + + Invalidates a row + + The GridViewRowInfo to invalidate + + + + Invalidates a single cell + + The corresponding GridViewRowInfo + The corresponding GridViewColumn + + + + Ensures that the specified row is visible. + + A GridViewRowInfo that specifies the row + + + + Ensures that the specified cell is visible. + + A GridViewRowInfo that specifies the cell's row + A GridViewColumn that specifies the cell's column + + + + Gets a value indicating whether the row is visible + + The GridViewRowInfo to check for visibility + Returns true if the row is visible + + + + Widens / shrinks a column based on the space required by the text in the columns. + + The column. + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + The mode. + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets the default row height. + + + + + Gets or sets the column headers row height. + + + + + Gets or sets the group header row height. + + + + + Gets or sets the height of the filter row. + + + + + Gets or sets the height of the search row. + + + + + Gets or sets the row height of the child rows in a hierarchical grid. + + + + + Gets or sets the cell spacing. + + + + + Gets or sets the row spacing. + + + + + Gets or sets the width of the row header column. + + + + + Gets or sets the width of the group indent column. + + + + + Gets or sets the value that determines the indent width among expander primitives in self-reference hierarchy. + + + + + Gets or sets a value indicating the alternating row color for odd rows. + + + + + Gets or sets an image for the row header cell of the row. + + + + + Gets or sets an image for the row header cell of the row. + + + + + Gets or sets the color that will be used for highlighting search matches. + + + + + Gets or sets an image for the row header cell of the current row indicating it is currently in edit mode. + + + + + Gets or sets an image for the row header cell of the row with error. + + + + + Gets or sets an image for the row header cell of the current row. + + + + + Gets or sets a value indicating whether the vertical scrollbar should be extended to encompass the upper right corner. + + + + + Gets or sets a value indicating whether the hottracking behavior is enabled. + + + + + Gets or sets a value indicating the name of the theme for the context menu in the current GridTableElement. + + + + + Gets or sets a value indicating the name of the theme for the context menu in the current GridTableElement. + + + + + Gets a value indicating that the user interface is updating now. + + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where a row will be dropped after a drag operation. + + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where a column will be dropped after a drag operation. + + + + + Gets or sets the PageViewProvider used in the child views. + + + + + Gets or sets the page view mode used in child views. + + + + + Gets or sets a value indicating whether to show lines in self reference mode. + + + + + Get or set reference to filter popup in order to allow additional interaction implementation. + + + + + Gets the current GridCellElement in the GridTableElement. + + + + + Gets a value indicating whether the view is current + + + + + Gets the current in the GridTableElement. + + + + + Gets the address of the current GridCellElement + + + + + Gets a containing the rows currently visible on screen. + + + + + Gets the number of rows displayed to the user. + + + + + This is the visual element responsible for presenting all of the data rows + + + + + Applies or resets alternating row color of the current row. + + + + + This is the visual element responsible for presenting child tables + + + + + This is the visual element responsible for presenting the filtering row + + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successfull. + + + + Gets a value indicating that conditional formatting can be applied + + + + + This is the visual element responsible for presenting group headers + + + + + Gets or sets a value indicating whether the row is selected. + + + + + Gets or sets a value indicating whether the row is selected. + + + + + Gets a value indicating that conditional formatting can be applied + + + + + This is the visual element responsible for presenting the "add new row" row + + + + + Merges the context menu. + + The to merge with. + merge parameters. + The merged context menu, if successful. + + + + Gets a value indicating that conditional formatting can be applied + + + + + This is the visual element responsible for presenting summaries in groups + + + + + This is the visual element responsible for presenting column headers + + + + + Calculates and applies the best width for a given column + + An instance of the GridViewColumn to fit + + + + Gets a value indicating that conditional formatting can be applied + + + + + Initializes a new instance of the class. + + The row view. + + + + Creates the element for the specific data row. + + The data. + The context. + + + + + Gets the element for the specific data row. + + The data. + The context. + + + + + Gets the size of the element. + + + + + + + Gets the element height by the row type. + + The item. + + + + + Determines whether the specified element is compatible with concrete data. + + The element. + The data. + The context. + + true if the specified element is compatible; otherwise, false. + + + + + Represents a collection containing objects. Used in . + + + + + Represents a collection containing objects. Used in . + + + + + Represents a collection containing objects. Used in . + + + + + Represents an auto-complete box editor in RadVirtualGrid. + + + + + Represents a textbox editor in RadVirtualGrid. + + + + + Initializes the editor. Used internally in RadVirtualGrid. + + The that will host this editor. + The initial value of the editor. + + + + Validates the value currently entered in the editor. + + + + + + Fires the event. + + A that contains the event data. + + + + Fires the event. + + + + + Translates system key down events to the owner element. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Translates mouse wheel events to the owner element. + + A System.Windows.Forms.MouseEventArgs that contains the event data. + + + + Gets a value indicating that the editor should close when grid loses focus. + + + + + Gets a value indicating whether the cell should clear its text when adding an editor. + + + + + Gets the type of the editor value + + + + + Initializes a new instance of the class. + + + + + Starts the editing process. Used internally in RadGridView. + + + + + Ends the edit. + + + + + + Creates a new editor element. + + a if successful + + + + Translates system key down events to the owner element. + + + + + + Handles the key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets the text box. + + The text box. + + + + Gets or sets the value. + + The value. + + + + Gets the type of the editor value. + + + + + + Gets or sets the null value for the editor. + + + + + Indicates if all charactes should be left alone or converted + to upper or lower case + + + + + The text could span more than a line when the value is true + + + + + Specifies the maximum length of characters which could be entered + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Initializes a new instance of the class. + + + + + Creates a new editor element. + + a if successful + + + + Represents a browse editor in RadVirtualGrid. + + + + + Creates a new editor element. + + a if successful + + + + Begins the edit operation. + + + + + Ends the edit operation. + + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets the editor's value. + + + + + Represents a calculator editor in RadVirtualGrid. + + + + + Creates a new editor element. + + a if successful + + + + Starts the editing process. Used internally in RadGridView. + + + + + Finishes the editing process. Used internally in RadGridView. + + + + + + Translates system key down events to the owner element. + + + + + + Handles key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the editor's value. + + + + + Represents a color editor in RadVirtualGrid. + + + + + Initializes the editor. Used internally in RadGridView. + + The owner of this editor. + The value of the editor. + + + + Creates the editor element. + + + + + + Starts the editing process. Used internally in RadGridView. + + + + + Finishes the editing process. Used internally in RadGridView. + + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets the editor's value. + + + + + Represents a date time editor in RadVirtualGrid. + + + + + Initializes a new instance of the RadDateTimeEditor class. + + + + + Starts the editing process. Used internally in RadGridView. + + + + + Finishes the editing process. Used internally in RadGridView. + + + + + + Creates a new editor element. + + a if successful + + + + Initializes the editor. Used internally in RadGridView. + + The owner of this editor. + The value of the editor. + + + + Determines whether the current value is a valid date. + + + + + + Translates system key down events to the owner element. + + + + + + Handles key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the value. + + The value. + + + + The DateTime value assigned to the date picker when the Value is null + + + + + Gets or sets the minimum date and time that can be selected in the editor. + + + + + Gets or sets the maximum date and time that can be selected in the editor. + + + + + Gets or sets the custom date/time format string. + + + + + Gets the type of the editor value + + + + + + Gets if the editor is modified. + + The is modified. + + + + Represents a DropDownList editor in RadVirtualGrid. + + + + + Initializes a new instance of the RadDropDownListEditor class. + + + + + Starts the editing process. Used internally in RadGridView. + + + + + Finishes the editing process. Used internally in RadGridView. + + + + + + Translates system key down events to the owner element. + + + + + + Handles key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Creates a new editor element. + + a if successful + + + + Gets or sets whether the item selection is allowed. + + The allow item selection. + + + + Gets or sets the value. + + The value. + + + + Gets or sets a value specifying the style of the DropDownList. + + + + + Gets or sets the drop down sizing mode. The mode can be: horizontal, veritcal or a combination of them. + + + + + Represents a spin editor in RadVirtualGrid. + + + + + Initializes a new instance of the VirtualGridSpinEditor class. + + + + + Starts the editing process. Used internally in RadGridView. + + + + + Ends the edit. + + + + + + Validates the spin editor. + + + + + + Initializes the editor. Used internally in RadVirtualGrid. + + The that will host this editor. + The initial value of the editor. + + + + Translates system key down events to the owner element. + + + + + + Handles the key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Creates a new editor element. + + a if successful + + + + Gets or sets the value. + + The value. + + + + Gets or sets the minimum value that could be set in the editor. + + + + + Gets or sets the maximum value that could be set in the editor. + + + + + Gets or sets the value which is added to/subtracted from the current value of the editor. + + + + + Gets or sets the number of decimal places to display in the editor. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the editor. + + + + + Gets or sets the type of the value to use in the editor. + + + + + Gets the type of the editor value + + + + + + Represents a masked editbox editor in RadVirtualGrid. + + + + + Initializes a new instance of the VirtualGridMaskedEditBoxEditor class. + + + + + Clears the editor value if needed. + + + + + Starts the editing process. Used internally in RadGridView. + + + + + Finishes the editing process. Used internally in RadGridView. + + + + + + Translates system key down events to the owner element. + + + + + + Handles the key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Creates a new editor element. + + a if successful + + + + Gets or sets the value. + + The value. + + + + Gets or sets the prompt text that is displayed when the TextBox contains no text. + + + + + Gets the instance of this editor. + + + + + Gets the type of the editor value + + + + + + Represents a textbox editor in RadVirtualGrid. + + + + + Initializes a new instance of the RadTextBoxEditor class. + + + + + Creates a new editor element. + + a if successful + + + + Initializes the editor. Used internally in RadGridView. + + The owner of this editor. + The value of the editor. + + + + Starts the editing process. Used internally in RadGridView. + + + + + Ends the edit. + + + + + + Translates system key down events to the owner element. + + + + + + Handles the key up events in the editor. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the value. + + The value. + + + + Gets or sets the null value for the editor. + + + + + Indicates if all characters should be left alone or converted + to upper or lower case + + + + + The text could span more than a line when the value is true + + + + + Specifies the maximum length of characters which could be entered + + + + + Gets or sets whether the editor accepts the tab key in multiline mode + + + + + Gets or sets whether the editor accepts the tab key in multiline mode + + + + + Gets the type of the editor value. + + + + + + Gets a value indicating whether the editor value is modified. + + + + + + Gets a value indicating whether the cell should clear its text when adding an editor. + + + + + + Represents a time picker editor in RadVirtualGrid. + + + + + Starts the editing process. Used internally in RadGridView. + + + + + Ends the edit. + + + + + + Creates a new editor element. + + a if successful + + + + Gets or sets the value. + + The value. + + + + Gets the type of the editor value + + + + + + Calculates the column widths. + + Size of the available. + + + + Starts the column resize. + + The column. + + + + Resizes the column. + + The delta. + + + + + Ends the resize column. + + + + + Resets the cache. + + + + + Calculates the column widths. + + Size of the available. + + + + Starts the column resize. + + The column. + + + + Resizes the column. + + The delta. + + + + + Ends the resize column. + + + + + Resets the cache. + + + + + Gets the element context. + + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes the offset. + + + + + Gets or sets the row element. + + The row element. + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Determines whether the specified item is visible. + + The item. + true if item is visible; otherwise, false. + + + + Measures the element with the available size. + + The element. + Size of the available. + + + + + Arranges the to its final location. + The element must call the Arrange method of each of its children. + + The size that is available for element. + In this method call to the Arrange method of each child must be made. + + The rectangle occupied by the element. Usually . Should you return different size, the Layout system will restart measuring and rearranging the items. That could lead to infinite recursion. + + + + + Updates the element at concrete position + + The position. + The data. + + + + + Gets or sets the top offset. + + The top offset. + + + + Gets or sets the table element. + + The table element. + + + + Initializes a new instance of the class. + + The owner. + + + + Returns whether an update operation should be performed. + + The element. + The data. + The context. + + + + + Determines whether the specified element is compatible with its data. + + The element. + The data. + The context. + + true if the specified element is compatible; otherwise, false. + + + + + Initializes a new instance of the class. + + State of the view. + + + + Scrolls to item. + + The item. + if set to true scroll visibility is checked before processing scrolling. + + + + + Scrolls down with the specified step. + + The step. + + + + + Scrolls up. + + The step. + + + + + Updates the scroll range. + + + + + Updates the scroll range with concrete range. + + The width. + if set to true [update scroll value]. + + + + Gets the height of the scroll. + + The item. + + + + + Gets the item offset. + + The item. + + + + + Represents the table element of RadVirtualGrid. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Suspends layout updates. + + + + + Resumes layout updates. + + + + + Sets the height of the row at the specified row index in the current view info. + + The index of the row. + The new height of the row. + + + + Sets the height of the rows at the specified row indices in the master view info. + + The new height of the rows. + The indices of the rows. + + + + Gets the height of the row at the given row index. + + The index of the row. + The height of the row. + + + + Gets the height of the column at the given column index. + + The index of the column. + The height of the column. + + + + Sets the width of the column. + + Index of the column. + The width. + + + + Sets the width of the columns at the specified column indices in the master view info. + + The new width of the columns. + The indices of the columns. + + + + Sets the pin position of the specified row. + + The index of the row. + The new pin position. + + + + Sets the pin position of the specified column. + + The index of the column. + The new pin position. + + + + Determines whether the row at the specified index is pinned. + + The index of the row. + True if the row is pinned, otherwise false. + + + + Determines whether the column at the specified index is pinned. + + The index of the column. + True if the column is pinned, otherwise false. + + + + Expands the specified row. + + The row index to expand. + True if the operation is successful, otherwise false. + + + + Collapses the specified row. + + The row index to collapse. + True if the operation is successful, otherwise false. + + + + Returs a value indicating whether the specified row is expanded. + + The index of the row. + True if the row is expanded, otherwise false. + + + + Gets the child view info. + + Index of the row. + + + + + Scrolls with the specified delta. + + The delta. + + + + Scrolls with the specified delta. + + The delta. + The scroll bar. + + + + Synchronizes the rows. + + + + + Synchronizes the rows. + + Indicates if it is recursive. + + + + Synchronizes the rows. + + The recursive. + Content of the update. + + + + Synchronizes the row. + + Index of the row. + Content of the update. + + + + Called when the view info property is changed. + + The sender. + The instance containing the event data. + + + + Triggers when the view info is changed. + + + + + Updates the no data text. + + + + + Triggered when the scale is changed. + + The scale factor. + + + + Measures the elements with the available size. + + The available size. + + + + + Arranges the elements in the available size. + + The final size. + + + + + Gets or sets an image for the indent cell of a row that is indicating the row is busy. + + + + + Gets or sets an image for the indent cell of a row containing a data error. + + + + + Gets or sets an image for the indent cell of the current row. + + + + + Gets or sets an image for the indent cell of a row that is currently in edit mode. + + + + + Gets or sets the color of the alternating row. + + The color of the alternating row. + + + + Gets or sets a value indicating whether there is a visual indication for the row currently under the mouse. + + + + + Gets or sets the height of the filtering row. + + + + + Gets or sets the height of the add new row. + + + + + Gets or sets the height of the header row. + + + + + Gets or sets the default height of data rows. + + + + + Gets or sets the width of the indent column. + + + + + Gets an instance of which allows the user to navigate between pages when paging is enabled. + + + + + Gets an instance of which can be used as a busy indicator for this table element. + + + + + Gets or sets the view info containing the settings for this table element. + + + + + Gets an containing information and settings for the currently displayed rows. + + + + + Gets an containing information and settings for the currently displayed columns. + + + + + Gets or sets the number of rows displayed in the table element. + + + + + Gets or sets the number of columns displayed in the table element. + + + + + Gets or sets the default column width. + + + + + Gets or sets the + + + + + Gets or sets the cell spacing. + + The cell spacing. + + + + Gets or sets the column layout. + + The column layout. + + + + Gets the row scroller. + + The row scroller. + + + + Gets the column scroller. + + The column scroller. + + + + Gets the grid element. + + The grid element. + + + + This property is used internally to help with scrolling of hierarchical grids. + + + + + Represents the traverser. + + + + + Initializes a new instance of the class. + + State of the view. + + + + Moves the previous. + + + + + + Moves to end. + + + + + + Performs application-defined tasks associated with freeing, releasing, + or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + The collection was modified + after the enumerator was created. + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first + element in the collection. + + The collection was modified + after the enumerator was created. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be + used to iterate through the collection. + + + + + Gets or sets the position. + + The position. + + + + Gets the element in the collection at the current position of the enumerator. + + The element in the collection at the current position of the enumerator. + + + + + + Represents the container of the virtual row elements. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Measures the space required by the + Used by the layout system. + + The size that is available to the . The available size can be infinity (to take the full size of the element) + In this method call to the Measure method of each child must be made. + + The minimum size required by the element to be completely visible. Cannot be infinity. + + + + + Arranges the to its final location. + The element must call the Arrange method of each of its children. + + The size that is available for element. + In this method call to the Arrange method of each child must be made. + + The rectangle occupied by the element. Usually . Should you return different size, the Layout system will restart measuring and rearranging the items. That could lead to infinite recursion. + + + + + Updates the element spacing. + + + + + Gets the row elements. + + + + + + Gets the row element. + + Index of the row. + + + + + Gets or sets the table element. + + The table element. + + + + Gets the scrollable rows. + + The scrollable rows. + + + + Gets the top pinned rows. + + The top pinned rows. + + + + Gets the bottom pinned rows. + + The bottom pinned rows. + + + + Represents the provider for the virtual row elements. + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates the element. + + The data. + Type of the row. + The context. + + + + + Gets the element. + + The data. + The context. + + + + + Caches the element. + + The element. + + + + + Returns whether the provider should be updated. + + The element. + The data. + The context. + + + + + Determines whether the specified element is compatible with its data. + + The element. + The data. + The context. + + true if the specified element is compatible; otherwise, false. + + + + + Gets the size of the element. + + The data. + + + + + Gets the size of the element. + + The element. + + + + + Clears the cached elements. + + + + + Tries to get element with the child view. + + The data. + The context. + The element. + + + + + Tries to get element without the child view. + + The data. + The context. + The element. + + + + + Gets or sets the default size of the element. + + The default size of the element. + + + + Represents the detail view cell in RadVirtualGrid. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Represents a cell element in RadVirtualGrid. + + + + + Initializes a new instance of the class. + + + + + Initializes the specified owner. + + The owner. + + + + Attaches the specified data. + + The data. + The context. + + + + Attaches the specified data. + + The data. + The context. + The synchronize. + + + + Detaches the cell element. + + + + + Synchronizes this instance. + + + + + Synchronizes the specified update content. + + Content of the update. + + + + Updates the info. + + The instance containing the event data. + + + + Synchronizes the specified context. + + The context. + + + + Determines whether element is compatible with the specified data. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Gets the editor element associated with this cell element. + + The editor which element we search. + An instance of RadItem that represents the editor element. Null if there is no editor element. + + + + Determines whether point is in resize location. + + The point. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Paints the element. + + The graphics. + The angle. + The scale. + + + + Measures the element with the available size. + + Size of the available. + + + + + Arranges the elements in the final size. + + The final size. + + + + + Arranges the editor element. + + The final size. + The client rect. + + + + Gets the associated data. + + The data. + + + + Gets the view info. + + The view info. + + + + Gets or sets the format string. + + The format string. + + + + Gets or sets the name of the field. + + The name of the field. + + + + Gets the row element. + + The row element. + + + + Gets or sets the value. + + The value. + + + + Gets the index of the column. + + The index of the column. + + + + Gets the index of the row. + + The index of the row. + + + + Gets the table element. + + The table element. + + + + Gets whether the cell can be edited. + + The can edit. + + + + Gets or sets a value indicating whether the cell is pinned. + + + + + Gets or sets whether the cell is selected. + + The is selected. + + + + Gets or sets whether the cell is sorted. + + The is sorted. + + + + Gets or sets whether the cell is in an odd row. + + The is odd row. + + + + Gets or sets whether the cell is current. + + The is current. + + + + Gets or sets whether the column is current. + + The is current column. + + + + Gets or sets whether the row is current. + + The is current row. + + + + Gets the editor. + + The editor. + + + + Represents the expander item in RadVirtualGrid. + + + + + A button used inside filter cells in RadGridView. + + + + + Defines columns auto size mode. + + + + + The column widths do not automatically adjust. + + + + + The column widths adjust so that the widths of all columns exactly fill the display area of the control + + + + + Defines the possible states that the virtual grid is in during selection. + + + + + A new selection begins. + + + + + The selection is cleared + + + + + The selection is clear due to a new selection being started. + + + + + The selection is extended. + + + + + All cells are selected. + + + + + Provides data for the CellPaint event. + + + + + Provides data for cell element related events. + + + + + Provides data for view info related events. + + + + + Initializes a new instance of the class. + + The view info. + + + + Gets the view info. + + + + + Initializes a new instance of the class. + + The cell element. + The view info. + + + + Gets the cell element. + + + + + Initializes a new instance of the class. + + The cell element. + The view info. + The graphics. + + + + Gets the graphics object used for drawing to the screen. + + + + + Provides data for the RowPaint event. + + + + + Provides data for row element related events. + + + + + + Initializes a new instance of the class. + + The row element. + The view info. + + + + Gets the row element. + + + + + Initializes a new instance of the class. + + The row element. + The view info. + The graphics. + + + + Gets the graphics object used for drawing to the screen. + + + + + Provides data for the CellEditorInitialized event. + + + + + Provides data for cell related events. + + + + + Initializes a new instance of the class. + + Index of the row. + Index of the column. + The view info. + + + + Gets the row index of the cell. + + + + + Gets the column index of the cell. + + + + + Initializes a new instance of the class. + + The active editor. + Index of the row. + Index of the column. + The view info. + + + + Gets the active editor. + + + + + Provides data for the CellMouseMove event. + + + + + Initializes a new instance of the class. + + The cell element. + The view info. + The instance containing the event data. + + + + Gets the mouse event arguments. + + + + + Provides data for events that cen be canceled. + + + + + Provides data for cell related events. + + + + + + Initializes a new instance of the class. + + The cell info. + + + + Gets the cell info. + + + + + Initializes a new instance of the class. + + The cell info. + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Provides data for the CellValidating event. + + + + + Initializes a new instance of the class. + + Index of the row. + Index of the column. + The view info. + The new value. + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Gets the new cell value. + + + + + Provides data for the CellValueNeeded event. + + + + + Initializes a new instance of the class. + + Index of the row. + Index of the column. + The view info. + + + + Gets or sets the name of the field that the cell will display. + + + + + Gets or sets the format string of the cell. + + + + + Gets or sets the value of the cell. + + + + + Provides data for the CellValuePushed event. + + + + + Initializes a new instance of the class. + + The value. + Index of the row. + Index of the column. + The view info. + + + + Gets the value that was input in the cell. + + + + + Provides data for the Copying, Cutting and Pasting events. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The cancel. + + + + Initializes a new instance of the class. + + The cancel. + The view info. + + + + Initializes a new instance of the class. + + The cancel. + The data object. + The view info. + + + + Initializes a new instance of the class. + + The cancel. + The format. + The data object. + The view info. + + + + Gets the view info. + + + + + Provides data for column related events. + + + + + Initializes a new instance of the class. + + Index of the column. + The view info. + + + + Gets the index of the column. + + + + + Provides data for the ColumnWidthChanging event. + + + + + Initializes a new instance of the class. + + Index of the column. + The old width. + The new width. + The view info. + + + + Gets the old column width. + + + + + Gets the new column width. + + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Provides data for the ContextMenuOpening event. + + + + + Initializes a new instance of the class. + + Index of the row. + Index of the column. + The view info. + The context menu. + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Gets or sets the context menu. + + + + + Provides data for the CreateCellElement event. + + + + + Initializes a new instance of the class. + + Index of the column. + Index of the row. + Type of the cell. + The view info. + + + + Gets the column index of the cell. + + + + + Gets the row index of the cell. + + + + + Gets the view info of the cell. + + + + + Gets or sets the type of the cell. + + + + + Gets or sets the cell element. + + + + + Provides data for the CreateRowElement event. + + + + + Initializes a new instance of the class. + + Index of the row. + Type of the row. + The view info. + + + + Gets the index of the row. + + + + + Gets the view info of the row. + + + + + Gets or sets the type of the row. + + + + + Gets or sets the row element. + + + + + Provides data for the EditorRequired event. + + + + + Initializes a new instance of the class. + + The editor. + Index of the row. + Index of the column. + The view info. + + + + Gets or sets the editor to be used. + + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Provides data for the UserAddedRow event. + + + + + Initializes a new instance of the class. + + The new values. + + + + Gets the values entered in the new row cells. + + + + + Provides data for the PageChanging event. + + + + + Initializes a new instance of the class. + + The old index. + The new index. + The view info. + + + + Gets the old паге index. + + + + + Gets the new паге index. + + + + + Gets the view info. + + + + + Provides data for the QueryHasChildRows event. + + + + + Provides data for row related events. + + + + + Initializes a new instance of the class. + + Index of the row. + The view info. + + + + Gets the index of the row. + + + + + Initializes a new instance of the class. + + Index of the row. + The view info. + + + + Gets or sets a value indicating whether the row has child rows. + + + + + Provides data for the RowExpanded event. + + + + + Initializes a new instance of the class. + + Index of the row. + The child view info. + The view info. + + + + Gets the child view info of the row. + + + + + Provides data for the RowExpanding event. + + + + + Initializes a new instance of the class. + + Index of the row. + The child view info. + The view info. + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Provides data for the RowHeightChanging event. + + + + + Initializes a new instance of the class. + + Index of the row. + The old height. + The new height. + The view info. + + + + Gets the old row height. + + + + + Gets the new row height. + + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Provides data for rows related events. + + + + + Initializes a new instance of the class. + + The row indices. + The view info. + + + + Gets the row indices of the affected rows. + + + + + Provides data for the RowValidating event. + + + + + Initializes a new instance of the class. + + Index of the row. + The view info. + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Provides data for the SelectionChanging event. + + + + + Initializes a new instance of the class. + + The selection action. + Index of the row. + Index of the column. + The view info. + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Gets the selection action that triggered the change. + + + + + Provides data for the ViewInfoPropertyChanged event. + + + + + Initializes a new instance of the class. + + The view info. + Name of the property. + + + + Gets the name of the changed property. + + + + + Represents an empty selection region where all properties are set to -1. + + + + + Initializes a new instance of the struct. + + The top index. + The left index. + The bottom index . + The right index . + The view info. + + + + Determines whether the selection region contains the specified cell. + + The cell row index. + The cell column index. + + + + + Determines whether the selection region contains the specified row. + + The row index. + True if the row is contained in the selection region, otherwise false. + + + + Determines whether the selection region contains the specified column. + + The column index. + True if the column is contained in the selection region, otherwise false. + + + + Gets the row index where the selection region starts. + + + + + Gets the column index where the selection region starts. + + + + + Gets the row index where the selection region ends. + + + + + Gets the column index where the selection region ends. + + + + + Gets the view info of the selection region. + + + + + Creates the specific states. + + + + + + Represents the filter cell in RadVirtualGrid. + + + + + Initializes a new instance of the class. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes the fields. + + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Determines whether cell element is compatible with the specified data. + + The data. + The context. + + + + + Determines whether the point is in resize location. + + The point. + + + + + Creates the filter menu. + + + + + + Initializes the menu items text. + + + + + Removes the filter descriptor. + + [TRUE] if succeed, otherwise [FALSE] + + + + Sets the filter descriptor. + + The descriptor. + + + + + Sets the filter operator. + + The filter operator. + + + + + Sets the selected filter operator text. + + + + + Updates the info. + + The instance containing the event data. + + + + Measures the elements according to the available size. + + Size of the available. + + + + + Arranges the elements in the final size. + + The final size. + + + + + Arranges the editor element. + + The element. + The editor rect. + The client rect. + + + + Gets the filter button for the cell. + + + + + Gets the filter operator for the cell. + + + + + Gets or sets the spacing between elements in filter cell + + + + + Gets whether a filter is applied. + + The is filter applied. + + + + Gets the can edit. + + The can edit. + + + + Gets the filter descriptor associated with this cell + + The filter descriptor. + + + + Represents the filter row in RadVirtualGrid. + + + + + Represents the row element of RadVirtualGrid. + + + + + Initializes the fields. + + + + + Initializes a new instance of the class. + + + + + Creates the left pinned columns container. + + + + + + Creates the right pinned columns container. + + + + + + Creates the scrollable columns container. + + + + + + Creates the detail view cell element container. + + + + + + Initializes the specified table element. + + The table element. + + + + Invalidates the pinned columns. + + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches the row element. + + + + + Determines whether element is compatible with the specified data. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Synchronizes the row element. + + + + + Synchronizes the specified update content. + + Content of the update. + + + + Synchronizes the indent cell. + + + + + Synchronizes the cells. + + + + + Synchronizes the cells. + + Content of the update. + + + + Disposes the managed resources. + + + + + Gets the cell elements. + + + + + + Raises the event. + + The instance containing the event data. + + + + Measures the space required by the + Used by the layout system. + + The size that is available to the . The available size can be infinity (to take the full size of the element) + In this method call to the Measure method of each child must be made. + + The minimum size required by the element to be completely visible. Cannot be infinity. + + + + + Measures the height of the row. + + Size of the available. + + + + + Measures the elements. + + Size of the available. + Size of the client. + The border thickness. + + + + + Arranges the to its final location. + The element must call the Arrange method of each of its children. + + The size that is available for element. + In this method call to the Arrange method of each child must be made. + + The rectangle occupied by the element. Usually . Should you return different size, the Layout system will restart measuring and rearranging the items. That could lead to infinite recursion. + + + + + Gets the details element. + + The details element. + + + + Gets whether the alternating color can be applied. + + The color of the can apply alternating. + + + + Gets the left pinned cell container. + + The left pinned cell container. + + + + Gets the right pinned cell container. + + The right pinned cell container. + + + + Gets whether the row element has child rows. + + The has child rows. + + + + Gets the cell container. + + The cell container. + + + + Gets the table element. + + The table element. + + + + Gets or sets whether the hot tracking is enabled for this row element. + + The hot tracking. + + + + Gets or sets whether the row is in edit mode. + + The is in edit mode. + + + + Gets or sets if the row element is odd. + + The is odd. + + + + Gets or sets if the row element is current. + + The is current. + + + + Gets or sets whether the row element is selected. + + The is selected. + + + + Gets or sets whether the row element contains the current cell. + + The contains current cell. + + + + Gets or sets the contains selected cells. + + The contains selected cells. + + + + Gets if the child view is initialized. + + The is child view initialized. + + + + Gets the index of the row. + + The index of the row. + + + + Gets the associated data. + + The data. + + + + Gets the view info. + + The view info. + + + + Gets if the child view is visible. + + The is child view visible. + + + + Initializes a new instance of the class. + + + + + Measures the height of the row. + + Size of the available. + + + + + Determines whether element is compatible with the specified data. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets whether the alternating color can be applied. + + The color of the can apply alternating. + + + + Initializes a new instance of the class. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes the fields. + + + + + Synchronizes the header cell. + + + + + Updates the arrow state. + + + + + Gets the column sort order. + + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Determines whether the point is in resize location. + + The point. + + + + + Gets whether the sort order is ascending. + + The is sorted ascending. + + + + Gets whether the sort order is descending. + + The is sorted descending. + + + + Gets the sort order. + + The sort order. + + + + Gets the arrow. + + The arrow. + + + + Initializes a new instance of the class. + + + + + Measures the height of the row. + + Size of the available. + + + + + Determines whether element is compatible with the specified data. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets whether the alternating color can be applied. + + The color of the can apply alternating. + + + + Represents indent cells in RadVirtualGrid. + + + + + Initializes a new instance of the class. + + + + + Updates the info. + + The instance containing the event data. + + + + Updates the image. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Attaches the specified data. + + The data. + The context. + The synchronize. + + + + Detaches the indent cell element. + + + + + Determines whether the cell is compatible with the specified data. + + The data. + The context. + + + + + Measures the elements according to the available size. + + Size of the available. + + + + + Gets or sets the is waiting. + + The is waiting. + + + + Gets or sets the has error. + + The has error. + + + + Gets or sets whether the row is in edit mode. + + The is row in edit mode. + + + + Gets the expander item. + + The expander item. + + + + Gets or sets the show expander item. + + The show expander item. + + + + Represents a cell element for the new row in RadVirtualGrid. + + + + + Initializes a new instance of the class. + + + + + Updates the info. + + The instance containing the event data. + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Represents the new row element in RadVirtualGrid. + + + + + Initializes a new instance of the class. + + + + + Measures the space required by the + Used by the layout system. + + The size that is available to the . The available size can be infinity (to take the full size of the element) + In this method call to the Measure method of each child must be made. + + The minimum size required by the element to be completely visible. Cannot be infinity. + + + + + Measures the height of the row. + + Size of the available. + + + + + Synchronizes the row element. + + + + + Updates the content visibility. + + The show cells. + + + + Determines whether element is compatible with the specified data. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets whether the alternating color can be applied. + + The color of the can apply alternating. + + + + Represents the virtual grid's waiting bar element. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Starts the waiting. + + + + + Stops the waiting. + + + + + Gets the waiting bar element. + + The waiting bar element. + + + + Specifies how a user starts cell editing in the RadVirtualGrid control. + + + + + Editing begins when the cell receives focus. This mode is useful when pressing + the TAB key to enter values across a row, or when pressing the ENTER key to + enter values down a column. + + + + + Editing begins when any alphanumeric key is pressed while the cell has focus. + + + + + Editing begins when any alphanumeric key or F2 is pressed while the cell has focus (default value). + + + + + Editing begins when F2 is pressed while the cell has focus. This mode places the + selection point at the end of the cell contents. + + + + + Editing begins only when the RadVirtualGrid.BeginEdit() method is called. + + + + + Specifies the behavior when the user presses Enter while editing a row. + + + + + Pressing Enter key saves the value in the cell and the cell remains selected. + + + + + Pressing Enter key saves the value in the cell moves focus to the next cell and opens its editor. + + + + + Pressing Enter key saves the value in the cell moves focus to the next row and opens editor of the cell bellow current. + + + + + Defines the selection modes of RadVirtualGrid. + + + + + One or more individual cells can be selected. + + + + + The entire row will be selected by clicking its row's header or a cell contained in that row. + + + + + Represents the context menu of RadVirtualGrid. + + + + + Initializes a new instance of the class. + + The grid element. + + + + Initializes the children. + + + + + Initializes the menu items text. + + + + + Initializes the menu items. + + The cell. + + + + Initializes the row context menu. + + + + + Initializes the filter cell context menu. + + + + + Initializes the new row context menu. + + + + + Initializes the header cell context menu. + + The cell. + + + + Initializes the data cell context menu. + + + + + Called when the clear sort item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the sort descending item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the sort ascending item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the pin at right item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the pin at left item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the pin at bottom item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the pin at top item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the unpin row item is clicked. + + The sender. + The instance containing the event data. + + + + Called when unpin column item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the delete row item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the clear value item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the edit item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the paste item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the cut item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the copy item is clicked. + + The sender. + The instance containing the event data. + + + + Called when the best fit item is clicked. + + The sender. + The instance containing the event data. + + + + Gets the grid element. + + The grid element. + + + + Gets or sets the class name string that ThemeResolutionService will use to find the themes registered for the control. + + + By default the return value is RadControl's type FullName; Some controls like drop down menu has different ThemeClassName + depending on the runtime usage of the control. + + + + + + Initializes a new instance of the class. + + The grid element. + + + + Selects the cell defined with the row and column parameters in the grid master view info. Clears previous selection. + + The row index. + The column index. + + + + Selects the cell defined with the row and column parameters in the provided view info. Clears previous selection. + + The row index. + The column index. + The view info. + + + + Selects the cell defined with the row and column parameters in the provided view info. Extends or clears the previous selection based on the shift and ctrl parameters. + + The row index. + The column index. + Determines if the selection should be extended as if the Shift key is pressed. + Determines if the selection should be extended as if the Ctrl key is pressed. + The view info. + + + + Selects the next control. + + if set to true [forward]. + + + + + Gets the last scrollable row. + + The table element. + + + + + Gets the first scrollable row. + + The table element. + + + + + Handles the mouse down. + + The instance containing the event data. + + + + + Handles the mouse double click. + + The instance containing the event data. + + + + + Handles the mouse move. + + The instance containing the event data. + + + + + Handles the mouse up. + + The instance containing the event data. + + + + + Handles the mouse wheel. + + The instance containing the event data. + + + + + Handles the key down. + + The instance containing the event data. + + + + + Handles the key up. + + The instance containing the event data. + + + + + Handles the key press. + + The instance containing the event data. + + + + + Processes keys that are not handled by HandleKeyDown methoes + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Escape key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Enter key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Space key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the F2 key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Up key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Down key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Left key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Right key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Tab key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Add key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Subtract key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Delete key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Home key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the End key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the Insert key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the alpha-numeric keys + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handles the PageUp key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Handle the PageDown key + + The KeyPressEventArgs containing data related to this event + Returns true if the event is processed + + + + Gets a value indicating whether a selection operation is underway. + + + + + Gets a value indicating whether a resize operation is underway. + + + + + Gets a value indicating whether a column resize operation is iunderway. + + + + + Gets a value indicating whether a row resuze operations is underway. + + + + + Gets the instance this behavior is assigned to. + + + + + Initializes a new instance of the class. + + + + + Begins a new selection operation. + + The row index of the cell to begin the selection from. + The column index of the cell to begin the selection from. + The view info of the cell to begin the selection from. + Determines whether old selection should be kept or discarded. + + + + Adds a new to the selection. + + The selection region to add. + + + + Removes all s. + + + + + Extends the current selection region to the provided cell. + + The cell row index. + The cell column index. + + + + Returns a value indicating whether the provided cell is selected. + + The row index of the cell. + The column index of the cell. + The view info of the cell. + + + + + Returns a value indicating whther the provided row has selected cells in it. + + The row index. + The view info of the row. + + + + + Returns a value indicating whther the provided column has selected cells in it. + + The column index. + The view info of the row. + + + + + Clears all selected cells. + + + + + Selects all cells in the grid. + + + + + Fires the event. + + + + + Fires the event. + + + + + Gets or sets a value indicating whether multiple cells can be selected simultaneously. + + + + + Gets or sets a value indicating how cells are selected. + + + + + Gets the current selected region. + + + + + Gets all selected regions. + + + + + Gets the current view info. + + + + + Gets a value indicating whether there are selected cells. + + + + + Gets the index of the current row. + + + + + Gets the index of the current column. + + + + + Gets the row index of the row where the current selection starts. + + + + + Gets the row index of the row where the current selection ends. + + + + + Gets the column index of the row where the current selection starts. + + + + + Gets the column index of the row where the current selection ends. + + + + + Occurs after the selection of the grid is changed. + + + + + Occurs before the selection of the grid is changed. + + + + + Initializes a new instance of the class. + + The grid view element. + The view info. + + + + Initializes the fields of the current instance. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the buttons strip element child elements. + + + + + Creates the text box strip element child elements. + + + + + Wires the buttons and text box events. + + + + + Unwires the buttons and text box events. + + + + + Disposes the managed resources of this instance. + + + + + Updates the visibility of the paging panel. + + + + + Updates the buttons strip element. Called when an update notification arrives. + + + + + Updates the text box strip element. Called when an update notification arrives. + + + + + Explicitly synchronizes the view with its owner. + + + + + Raises the standard .NET PropertyChanged event. + + + + + + Measures the space required by the + Used by the layout system. + + The size that is available to the . The available size can be infinity (to take the full size of the element) + In this method call to the Measure method of each child must be made. + + The minimum size required by the element to be completely visible. Cannot be infinity. + + + + + Gets the theme. + + The type of the theme effective. + + + + Gets the VirtualGridTableElement which owns this view. + + + + + Gets the GridViewInfo that this view represents. + + + + + Gets or sets the number of buttons with numbers in the paging panel. + + + + + Gets or sets the image of the button that navigates to the first page. + + + The first page button image. + + + + + Gets or sets the image of the button that navigates to the previous page. + + + The previous page button image. + + + + + Gets or sets the image of the button that navigates next page. + + + The next page button image. + + + + + Gets or sets the image of the button that navigates to the last page. + + + The last page button image. + + + + + Gets the command bar element. + + + The command bar. + + + + + Gets the command bar row element. + + + The command bar row element. + + + + + Gets the buttons strip element. + + + The buttons strip element. + + + + + Gets the button that navigates to the first page. + + + The first button. + + + + + Gets the button that navigates to the previous page. + + + The previous button. + + + + + Gets the button that navigates fast in the backward direction. + + + The fast back button. + + + + + Gets the button that navigates fast in the forward direction. + + + The fast forward button. + + + + + Gets the button that navigates to the next page. + + + The next button. + + + + + Gets the button that navigates to the last page. + + + The last button. + + + + + Gets the text box strip element. + + + The text box strip element. + + + + + Gets the label that shows the "Page" text. + + + The page label. + + + + + Gets the text box that shows the current page. + + + The page number text box. + + + + + Gets the label that shows the "of" text. + + + The of pages label. + + + + + Gets the label that shows the total number of pages. + + + The number of pages label. + + + + + Gets or sets whether the button that navigates to the first page is visible. + + + true if the button that navigates to the first page is visible; otherwise, false. + + + + + Gets or sets whether the button that navigates to the previous page is visible. + + + true if the button that navigates to the previous page is visible; otherwise, false. + + + + + Gets or sets whether the button that navigates fast backward is visible. + + + true if the button that navigates fast backward is visible; otherwise, false. + + + + + Gets or sets whether the buttons that navigate to a concrete page are visible. + + + true if the buttons that navigate to a concrete page are visible; otherwise, false. + + + + + Gets or sets whether the button that navigates fast forward is visible. + + + true if the button that navigates fast forward is visible; otherwise, false. + + + + + Gets or sets whether the button that navigates to the next page is visible. + + + true if the button that navigates to the next page is visible; otherwise, false. + + + + + Gets or sets whether the button that navigates to the last page is visible. + + + true if the button that navigates to the last page is visible; otherwise, false. + + + + + Gets or sets whether the strip element holding the page navigation buttons is visible. + + + true if the strip element holding the page navigation buttons is visible; otherwise, false. + + + + + Gets or sets whether the strip element holding the page navigation text box is visible. + + + true if the strip element holding the page navigation text box is visible; otherwise, false. + + + + + RadVirtualGrid is complex control that allows you to display and edit tabular data from any kind of data source. + + + + + Creates the child items. + + The parent. + + + + Creates the element. + + + + + + Suspends layout updates. + + + + + Resumes layout updates. + + + + + Selects all cells in the grid. + + + + + Selects the cell defined with the row and column parameters in the grid master view info. Clears previous selection. + + The row index. + The column index. + + + + Selects the cell defined with the row and column parameters in the specified view info. Clears previous selection. + + The row index. + The column index. + The view info. + + + + Widens / shrinks all columns based on the space required by the text in the cells. + + + + + Widens / shrinks all columns in the specified view info based on the space required by the text in the cells. + + + + + Starts the editing process for the current cell. + + + + + Ends the editing process and tries to commit any changes made to the edito value. Returns a value indicating whther the operation succeeded. + + Returns true if the operation is successfull. Returns false if the operation is not successfull e.g. validation fails or the grid was not in edit mode. + + + + Ends the editing process without committing any changes. Returns a value indicating whther the operation succeeded. + + Returns true if the operation is successfull. Returns false if the operation is not successfull e.g. the grid was not in edit mode. + + + + Raises the event. + + + + + + Raises the event. + + A that + contains the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Raises the + event. + + An that contains + the event data. + + + + Raises the event. + + An that contains + the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + A that contains + the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Determines whether the specified key data is an input key. + + The key data. + + + + + Processes a dialog key. + + One of the values + that represents the key to process. + true if the key was processed by the control; otherwise, false. + + + + Gets the default serialization info for RadVirtualGrid used by Save/Load loyout methods to persist grid settings to/from XML. + + + You can use the serialization info to include/exclude properties of RadVirtualGrid and related objects from XML serialization. + Example:
+ ComponentXmlSerializationInfo serializationInfo = radVirtualGrid1.info.SerializationMetadata.Add(); +
+ +
+ + + Stores RadVirtualGrid properties, sub-objects and their properties in XML format, using the serialization information specified by the property + + XmlWriter to use by the built-in serializer + + + + Stores to a stream RadVirtualGrid properties, sub-objects and their properties in XML format, using the serialization information specified by the property + + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores to a file RadVirtualGrid properties, sub-objects and their properties in XML format, using the serialization information specified by the property + + + + + Loads RadVirtualGrid properties, sub-objects and their properties from XML file, using the serialization information specified by the property + + + + + Loads RadVirtualGrid properties, sub-objects and their properties from XML stream, using the serialization information specified by the property + + + + + Loads RadVirtualGrid properties, sub-objects and their properties from XML reader, using the serialization information specified by the property + + + + + Called when the layout is loaded. + + The sender. + The instance containing the event data. + + + + Gets or sets a value indicating whether users can resize columns through the grid UI. + + + + + Gets or sets a value indicating whether users can resize rows through the grid UI. + + + + + Gets or sets a value indicating whether the header row is visible. + + + + + Gets or sets a value indicating whether the add new row is visible. + + + + + Gets or sets a value indicating whether the filter row is visible. + + + + + Gets or sets a value indicating whether users can sort columns by clicking the header or through the header context menu. + + + + + Gets or sets a value indicating whether the users can sort by more than one column. + + + + + Gets or sets a value indicating whether users can edit the values in data cells. + + + + + Gets or sets a value indicating whether users can delete rows. + + + + + Gets or sets a value indicating whether the Cut option in the context menu and the Ctrl+X shortcut will be available to the user. + + + + + Gets or sets a value indicating whether the Copy option in the context menu and the Ctrl+C shortcut will be available to the user. + + + + + Gets or sets a value indicating whether the Paste option in the context menu and the Ctrl+V shortcut will be available to the user. + + + + + Gets or sets a value indicating whether event and odd rows will have a different back color. + + + + + Gets or sets a value indicating whether right-clicking on a header cell will show the default header cell context menu. + + + + + Gets or sets a value indicating whether right-clicking on a data cell will show the default data cell context menu. + + + + + Gets a object which provides an API for manipulating the selection. + + + + + Gets or sets the current cell. + + + + + Gets or sets a value indicating how cells are selected. + + + + + Gets or sets a value indicating whether multiple cells can be selected simultaneously. + + + + + Gets or sets value indicating whether child views have fixed size [true] or depend on the number of rows they contain [false]. + + + + + Gets the total number of pages when paging is enabled. + + + + + Gets or sets a value indicating whether data is presented in chunks (pages) to the user. + + + + + Gets or sets the number of rows shown per page when paging is enabled. + + + + + Gets or sets the index of the page currently presented in the grid. + + + + + Gets or sets the total number of rows to be displayed in the grid. + + + + + Gets or sets the total number of columns to be displayed in the grid. + + + + + Gets or sets a value indicating whether the TAB key moves the focus to the next control in the tab order + rather than moving the focus to the next cell in the control. + + + + + Gets or sets a value indicating whether a message should be displayed in the grid when no data is loaded. + + + + + Gets or sets a value indicating how column widths are determined. + + + + + + Gets or sets a value indicating whether there is a visual indication for the row currently under the mouse. + + + + + Gets the sort descriptors currently applied to the grid. + + + + + Gets the filter descriptors currently applied to the grid. + + + + + Gets the default size of the control. + + The default of the control. + + + + + Gets the instance of . + This instance is wrapped by this control and is the main element in the element tree. It encapsulates the actual functionality of . + + + + + + Gets an instance of which holds all rows and columns. + + + + + Gets the main instance of the grid. + + + + + RadVirtualGrid consists of multiple visual elements and separate settings are specified to customize their appearance. + Current BackColor property might be ignored. + + + + + RadVirtualGrid consists of multiple visual elements and separate settings are specified to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Gets or sets the method for entering edit mode. + + + + + Gets or sets the behavior of the Enter key when pressed while in edit mode. + + + + + Gets a value indicating whether the grid is in edit mode. + + + + + Gets the currently active editor when the grid is in edit mode. + + + + + Occurs when a cell is displayed and its content should be updated. + + + + + Occurs when a row is updated and needs formatting. + + + + + Occurs when a cell is updated and needs formatting. + + + + + Occurs before a row is expanded. + + + + + Occurs before a row is collapsed. + + + + + Occurs before the current cell changes. + + + + + Occurs after the current cell changes. + + + + + Occurs when the sort descriptors collection changes. + + + + + Occurs when the filter descriptors collection changes. + + + + + Occurs when a user deletes a row. + + + + + Occurs when a user adds a row. + + + + + Occurs after the current page index changes. + + + + + Occurs before the current page index changes. + + + + + Occurs when a new row element has to be created. + + + + + Occurs when a new cell element has to be created. + + + + + Occurs when the editor of a cell is initialized. + + + + + Occurs when an editor for a cell is required. + + + + + Occurs when a cell value is edited and should be stored in the data source. + + + + + Occurs before the value of a cell is changed. + + + + + Occurs after the value of a cell has been changed. + + + + + Occurs when the context menu is about to be opened. + + + + + Occurs before the selection changes. + + + + + Occurs after the selection changes. + + + + + Occurs after a row is expanded. + + + + + Occurs after a row is collapsed. + + + + + Occurs before the width of a column changes. + + + + + Occurs after the width of a column changes. + + + + + Occurs before a row height changes. + + + + + Occurs after a row height changes. + + + + + Occurs when a cell is clicked. + + + + + Occurs when a cell is double clicked. + + + + + Occurs when the mouse is moved over a cell. + + + + + Occurs after a cell is painted allowing users to draw on top of it. + + + + + Occurs after a row is painted allowing users to draw on top of it. + + + + + Occurs before a cell is validated. + + + + + Occurs before a row is validated. + + + + + Occurs after a row is validated. + + + + + Occurs when the content of cell(s) is copyed. Allows users to modify the operation or content. + + + + + Occurs when the content of cell(s) is about to be pasted. Allows users to modify the operation or content. + + + + + Occurs when a property of the view info changes. + + + + + Occurs when a row has to determine if it has child rows. + + + + + Gets the serialization info for RadVirtualGrid used by Save/Load loyout methods to persist grid settings to/from XML. + By default, or when this property is set to null, the ComponentXmlSerializationInfo specified by GetDefaultXmlSerializationInfo() will be used. + + + + + Represent the main element of RadVirtualGrid. + + + + + Initializes a new instance of the class. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the table element. + + The virtual grid element. + The view info. + + + + + Disposes the managed resources. + + + + + Suspends layout updates. + + + + + Resumes layout updates. + + + + + Commits the value in the new row by firing the event. + + + + + Deletes the currently selected row. + + True if the operations is successful, otherwise false. + + + + Deletes the rows specified in the first parameter from the specified view info. + + The indices of the rows to delete. + The view info from which to delete the rows. + + + + Gets the height of the row at the given row index. + + The index of the row. + The height of the row. + + + + Sets the height of the row at the specified row index in the master view info. + + The index of the row. + The new height of the row. + + + + Sets the height of the rows at the specified row indices in the master view info. + + The new height of the rows. + The indices of the rows. + + + + Gets the height of the column at the given column index. + + The index of the column. + The height of the column. + + + + Sets the width of the column at the specified column index in the master view info. + + The index of the column + The new width of the column. + + + + Sets the width of the columns at the specified column indices in the master view info. + + The new width of the columns. + The indices of the columns. + + + + Sets the pin position of the specified row. + + The index of the row. + The new pin position. + + + + Sets the pin position of the specified column. + + The index of the column. + The new pin position. + + + + Returs a value indicating whether the specified row is pinned. + + The index of the row. + True if the row is pinned at top or bottom, otherwise false. + + + + Returs a value indicating whether the specified column is pinned. + + The index of the column. + True if the column is pinned at left or right, otherwise false. + + + + Expands the specified row. + + The row index to expand. + True if the operation is successful, otherwise false. + + + + Collapses the specified row. + + The row index to collapse. + True if the operation is successful, otherwise false. + + + + Returs a value indicating whether the specified row is expanded. + + The index of the row. + True if the row is expanded, otherwise false. + + + + Fires when the DPI scale is changed. + + The scale factor. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The view info. + + + + Raises the event. + + The view information. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The new row values. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The source of the event. + The instance containing the event data. + + + + Raises the event. + + The source of the event. + The instance containing the event data. + + + + Raises the event. + + The cell info. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The cell. + The g. + + + + Raises the event. + + The row. + The g. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The view info. + Name of the property. + + + + Raises the event. + + The index of the row. + The view info of the row. + + + + + Starts the editing process for the current cell. + + + + + Starts the editing process for the specified cell. + + The cell to open for editing. + True if the operation is successful, otherwise false. + + + + Initializes the editor for editing. Allows settings of the editor to be modified. Fires the event. + + The editor that is being initialized. + The cell that will be edited. + + + + Gets an editor based on the column data type. + + The data type of the column. + The editor to be used for editing the specified data type. + + + + Gets an editor based on a cell value. Used when column data types are not defined. + + The value of the cell. + The editor to be used for editing the specified value. + + + + Attempts to find a visual cell element that represents the data on the specified row and column indices. + + The row index of the cell. + The column index of the cell. + The view info of the cell. + The cell element if it is visible, otherwise null. + + + + Returns a value indicating whether the current editor can be closed. + + True if the editor can be closed, otherwise false. + + + + Ends the editing process without committing any changes. Returns a value indicating whther the operation succeeded. + + Returns true if the operation is successfull. Returns false if the operation is not successfull e.g. the grid was not in edit mode. + + + + Ends the editing process and tries to commit any changes made to the edito value. Returns a value indicating whther the operation succeeded. + + Returns true if the operation is successfull. Returns false if the operation is not successfull e.g. validation fails or the grid was not in edit mode. + + + + Sets the value of a given cell to the specified value. + + The new value for the cell. + The row index of the cell. + The column index of the cell. + The view info of the cell. + + + + Sets the specified cell as the current cell. + + The cell to mark as current. + True if the operation is successful, otherwise false. + + + + Moves the current cell to the left of its current position. + + Determines if the current selection should be kept or discarded. + True if the operation is successful, otherwise false. + + + + Moves the current cell to the right of its current position. + + Determines if the current selection should be kept or discarded. + True if the operation is successful, otherwise false. + + + + Moves the current cell to the one below its current position. + + Determines if the current selection should be kept or discarded. + True if the operation is successful, otherwise false. + + + + Moves the current cell to the one above its current position. + + Determines if the current selection should be kept or discarded. + True if the operation is successful, otherwise false. + + + + Moves the current cell to the one defined by the row and column indices. + + The new current cell row index. + The new current cell column index. + Determines if the current selection should be kept or discarded. + + + + + Ensures the row at the specified row index is visible in the current view. + + The index of the row. + + + + Ensures the row at the specified row index is visible in the current view. + + The index of the row. + The view info of the row. + + + + Ensures the row at the specified row index is visible in the current view. + + The index of the row. + The table element of the row. + + + + Ensures the cell defined by the row and column indices is visible in the current view. + + The row index of the cell. + The column index of the cell. + + + + Ensures the cell defined by the row and column indices is visible in the current view. + + The row index of the cell. + The column index of the cell. + The view info of the cell. + + + + Ensures the cell defined by the row and column indices is visible in the current view. + + The row index of the cell. + The column index of the cell. + The table element of the row. + + + + Gets the scroll offset from the beginning of the rows in the specified view to the top edge of the specified row. + + The index of the row. + The view info of the row. + The distance to the row. + + + + Gets the scroll offset from the beginning of the rows in the specified view to the top edge of the specified row. + + The index of the row. + The table element of the row. + The distance to the row. + + + + Gets the scroll offset from the beginning of the columns in the specified view to the left edge of the specified column. + + The index of the column. + The view info of the column. + The distance to the column. + + + + Gets the scroll offset from the beginning of the columns in the specified view to the left edge of the specified column. + + The index of the column. + The table element of the column. + The distance to the column. + + + + Gets the table element displaying the info of the specified view info.. + + The view info. + The table element, if found, otherwise null. + + + + Gets the row element for the specified row index and view info. + + The index of the row. + The view info of the row. + The row element displaying the data for the row, if found, otherwise null. + + + + Gets the row element for the specified row index and view info. + + The index of the row. + The table element of the row. + The row element displaying the data for the row, if found, otherwise null. + + + + Gets the cell element for the specified row and column indices and view info. + + The row index of the cell. + The column index of the cell. + The view info of the cell. + Teh cell element, if found, otherwise false. + + + + Gets the cell element for the specified row and column indices and view info. + + The row index of the cell. + The column index of the cell. + The tabke element of the cell. + Teh cell element, if found, otherwise false. + + + + Widens / shrinks the column at the specified index in the specified view info based on the space required by the text in the cells. + + The index of the column. + + + + Widens / shrinks the column at the specified index in the specified view info based on the space required by the text in the cells. + + The index of the column. + The view info to perform the operation on. + + + + Widens / shrinks all columns based on the space required by the text in the cells. + + + + + Widens / shrinks all columns in the specified view info based on the space required by the text in the cells. + + The view info to perform the operation on. + + + + Cuts the content of the selected cells. + + True if the operation was successful, otherwise false. + + + + Copies the content of the selected cells. + + True if the operation was successful, otherwise false. + + + + Copies the content of the specified cell region to the clipboard. + + The index of the row where the content copy should start. + The index of the column where the content copy should start. + The index of the row where the content copy should end. + The index of the column where the content copy should end. + The view info of the cell region. + + + + Copies the content of the specified cell region to the clipboard. + + The index of the row where the content copy should start. + The index of the column where the content copy should start. + The index of the row where the content copy should end. + The index of the column where the content copy should end. + The view info of the cell region. + Determines whether only selected cells are copied. + Determines whether cell values should be cleard after the copy. + + + + Processes the content of the cells in the specified region and returns a string to be places in the clipboard. + + The format of the data that should be returned. + The index of the row where the content processing should start. + The index of the column where the content processing should start. + The index of the row where the content processing should end. + The index of the column where the content processing should end. + The view info of the cell region. + Determines whether only selected cells are processed. + Determines whether cell values should be cleard after they are processed. + + + + + Pastes the content of the clipboard into starting from the current cell and going on until either the available cells or the clipboard conent ends. + + True if the operatrion is successful, otherwise false. + + + + Gets or sets a value indicating whether users can resize columns through the grid UI. + + + + + Gets or sets a value indicating whether users can resize rows through the grid UI. + + + + + Gets or sets a value indicating whether the header row is visible. + + + + + Gets or sets a value indicating whether the add new row is visible. + + + + + Gets or sets a value indicating whether the filter row is visible. + + + + + Gets or sets a value indicating whether users can sort columns by clicking the header or through the header context menu. + + + + + Gets or sets a value indicating whether the users can sort by more than one column. + + + + + Gets or sets a value indicating whether users can edit the values in data cells. + + + + + Gets or sets a value indicating whether users can delete rows. + + + + + Gets or sets a value indicating whether the Cut option in the context menu and the Ctrl+X shortcut will be available to the user. + + + + + Gets or sets a value indicating whether the Copy option in the context menu and the Ctrl+C shortcut will be available to the user. + + + + + Gets or sets a value indicating whether the Paste option in the context menu and the Ctrl+V shortcut will be available to the user. + + + + + Gets or sets a value indicating whether event and odd rows will have a different back color. + + + + + Gets or sets a value indicating whether right-clicking on a header cell will show the default header cell context menu. + + + + + Gets or sets a value indicating whether right-clicking on a data cell will show the default data cell context menu. + + + + + Gets or sets the default context menu. + + + + + Gets an instance of which holds all rows and columns. + + + + + Gets the main instance of the grid. + + + + + Gets or sets an instance of which handles user input. + + + + + Gets the currently active editor when the grid is in edit mode. + + + + + Gets a object which provides an API for manipulating the selection. + + + + + Gets or sets the current cell. + + + + + Gets or sets a value indicating how cells are selected. + + + + + Gets or sets a value indicating whether multiple cells can be selected simultaneously. + + + + + Gets or sets value indicating whether child views have fixed size [true] or depend on the number of rows they contain [false]. + + + + + Gets the total number of pages when paging is enabled. + + + + + Gets or sets a value indicating whether data is presented in chunks (pages) to the user. + + + + + Gets or sets the number of rows shown per page when paging is enabled. + + + + + Gets or sets the index of the page currently presented in the grid. + + + + + Gets or sets the total number of rows to be displayed in the grid. + + + + + Gets or sets the total number of columns to be displayed in the grid. + + + + + Gets the sort descriptors currently applied to the grid. + + + + + Gets the filter descriptors currently applied to the grid. + + + + + Gets or sets a value indicating whether the TAB key moves the focus to the next control in the tab order + rather than moving the focus to the next cell in the control. + + + + + Gets or sets a value indicating whether a message should be displayed in the grid when no data is loaded. + + + + + Occurs when a cell is displayed and its content should be updated. + + + + + Occurs when a row is updated and needs formatting. + + + + + Occurs when a cell is updated and needs formatting. + + + + + Occurs when the sort descriptors collection changes. + + + + + Occurs when the filter descriptors collection changes. + + + + + Occurs when a user deletes a row. + + + + + Occurs when a user adds a row. + + + + + Occurs after the current page index changes. + + + + + Occurs before the current page index changes. + + + + + Occurs when a new row element has to be created. + + + + + Occurs when a new cell element has to be created. + + + + + Occurs when the editor of a cell is initialized. + + + + + Occurs when an editor for a cell is required. + + + + + Occurs when a cell value is edited and should be stored in the data source. + + + + + Occurs before the value of a cell is changed. + + + + + Occurs after the value of a cell has been changed. + + + + + Occurs before the current cell changes. + + + + + Occurs after the current cell changes. + + + + + Occurs when the context menu is about to be opened. + + + + + Occurs before the selection changes. + + + + + Occurs after the selection changes. + + + + + Occurs before a row is expanded. + + + + + Occurs after a row is expanded. + + + + + Occurs before a row is collapsed. + + + + + Occurs after a row is collapsed. + + + + + Occurs before the width of a column changes. + + + + + Occurs after the width of a column changes. + + + + + Occurs before a row height changes. + + + + + Occurs after a row height changes. + + + + + Occurs when a cell is clicked. + + + + + Occurs when a cell is double clicked. + + + + + Occurs when the mouse is moved over a cell. + + + + + Occurs after a cell is painted allowing users to draw on top of it. + + + + + Occurs after a row is painted allowing users to draw on top of it. + + + + + Occurs before a cell is validated. + + + + + Occurs before a row is validated. + + + + + Occurs after a row is validated. + + + + + Occurs when the content of cell(s) is copyed. Allows users to modify the operation or content. + + + + + Occurs when the content of cell(s) is about to be pasted. Allows users to modify the operation or content. + + + + + Occurs when a property of the view info changes. + + + + + Occurs when a row has to determine if it has child rows. + + + + + Gets or sets the method for entering edit mode. + + + + + Gets or sets the behavior of the Enter key when pressed while in edit mode. + + + + + Gets a value indicating whether the grid is in edit mode. + + + + + Creates the specific states. + + + + + + Adds the default visible states. + + The state manager. + + + + Creates the specific states. + + + + + + Adds the default visible states. + + The state manager. + + + + Creates the enabled states. + + + + + + Creates the specific states. + + + + + + Adds the default visible states. + + The sm. + + + + Represents the data cell in RadVirtualGrid. + + + + + Initializes a new instance of the class. + + Index of the row. + Index of the column. + The view info. + + + + Gets the index of the row. + + The index of the row. + + + + Gets the index of the column. + + The index of the column. + + + + Gets the view info. + + The view info. + + + + Stores information about row sizes and provides methods for fast scrolling among millions of rows. + The class only stores the sizes of rows which have been resized and uses additional structures to + allow fast calculation of target state when scrolling with large amounts. + + + + + Keeps the sizes only of the resized items + + + + + Keeps the partial sum of sizes up to a given item i.e. the scroll distance from the beginning + to the bottom of the specified item. The key is the index of the item, the value is the sum of item sizes up to + the bottom of that item. Has entries only for the resized items. Allows to quickly + calculate the distance between two resized items. Keeps the entries sorted in an increasing order + of items' indices (allows for quick lookup via binary search). Updated when the itemSizes dictionary changes. + + + + + Initializes a new instance of the class. + + The item count. + Default size of the item. + The item spacing. + The supports paging. + + + + Suspends calling UpdateOnItemSizeChanged() + + + + + Resumes calling UpdateOnItemSizeChanged(), forces an update. + + + + + Sets a custom size to the item with a given index. + + The index of the item. + The custom size to set. + + + + Returns a read-only collection of the sizes of the item. + + Returns a read-only collection of the sizes of the item. + + + + Gets the currently set size of an item with a given index. Checks if the item is pinned or expanded. + Return 0 for pinned items and the total expanded size for expanded items. + + The index of the item. + The size of the item. + + + + Gets the currently set size of an item with a given index. Checks if the item is pinned or expanded. + Return 0 for pinned items and the total expanded size for expanded items. + + The index of the item. + Determines if an item should be considered pinned if it is pinned. + The size of the item. + + + + Gets the currently set size of an item with a given index. Checks if the item is pinned or expanded. + Return 0 for pinned items and the total expanded size for expanded items. + + The index of the item. + Determines if an item should be considered pinned if it is pinned. + Determines if an expanded row should include its child view size. + The size of the item. + + + + Sets the size of the item when it is expanded. + + The index of the item. + The size. + + + + Resets the size of the item when it is expanded. + + The index of the item. + + + + Updates the internal structures when the size of an item changes. Needed for proper calculations of scroll offsets. + See the description of [partialItemSizes] and [itemSizes] for more info. + + + + + Calculates the total size of all items, using the ItemCount, DefaultItemSize, ItemSpacing, and considering the resized items. + Used to calculate the maximum for the scrollbar. + + The total item size. + + + + Calculates and returns the scroller position and offset if scrolled down from the bottom of item [startIndex] with [scrollOffset]. + + The current item from the scroller (the scroll operation starts from the bottom of this item). + The amount to scroll with. + Returns the index of the item which should be set as Current to the scroller. + Return the new scroll offset which should be set to the scroller after the Current has been set. + + + + Calculates and returns the scroller position and offset if scrolled up from the bottom of item [startIndex] with [scrollOffset]. + + The current item from the scroller (the scroll operation starts from the bottom of this item). + The amount to scroll with. + Returns the index of the item which should be set as Current to the scroller. + Return the new scroll offset which should be set to the scroller after the Current has been set. + + + + Finds a resized item with an index, larger than [startIndex]. Uses binary search to quickly lookup the index. + If there are no resized items after [startIndex], returns -1. + + The index after which resized items should be searched. + Returns the index of the found item in [partialItemSizes] for future use. + Returns the index of the found resized item, or -1 if no such item is found after [startIndex]. + + + + Finds a resized item with an index, smaller than [startIndex]. Uses binary search to quickly lookup the index. + If there are no resized items before [startIndex], returns -1. + + The index before which resized items should be searched. + Returns the index of the found item in [partialItemSizes] for future use. + Returns the index of the found resized item, or -1 if no such item is found after [startIndex]. + + + + Finds the last resized item which is after [startIndexInArray] in the [partialItemSizes] list and also fits entirely + into the scrollOffset. This means that, starting from the top of the item at [startIndexInArray], the distance to + the found item's bottom should be less than or equal to the scrollOffset. After the method completes, the [startIndex] + must be set to the found resized item's index, and the [scrollOffset] must be updated with the remainder as if we scrolled + to the bottom of the found item. + + The index of the start item in the [partialItemSizes]. + The offset to scroll with. Should be updated when a new target item is found. + This variable should be updated with the index of the found item. + + + + Finds the first resized item which is before [startIndexInArray] in the [partialItemSizes] list and also fits entirely + into the scrollOffset. This means that, starting from the top of the item at [startIndexInArray], the distance to + the found item's top should be less than or equal to the scrollOffset. After the method completes, the [startIndex] + must be set to the found resized item's index, and the [scrollOffset] must be updated with the remainder as if we scrolled + to the top of the found item. + + The index of the start item in the [partialItemSizes]. + The offset to scroll with. Should be updated when a new target item is found. + This variable should be updated with the index of the found item. + + + + Determines whether the item at the specified index is pinned. + + The index of the item. + True if the item is pinned, otherwise false. + + + + Sets the pin position of the specified item. + + The index of the item. + The pin position. + + + + Gets the pin position of the specified item. + + The index of the item. + The pin position of the specified item. + + + + Gets the total offset from the beginning of the items to the top edge of the specified item. + The method does not consider if paging is enabled. + + The index of the item. + The total offset. + + + + Gets the scroll offset from the beginning of the items in the current view to the top edge of the specified item. + The method considers if paging is enabled. + + The index of the item. + The total offset. + + + + Resets the collections with sized items. + + + + + Fires when the DPI scaling is changed. + + The scale. + + + + Fires the event. + + The old value. + The new value. + + + + + Fires the event. + + + + + Gets a value indicating whether paging is supported by this instance. + + + + + Gets the total number of pages when paging is enabled. + + + + + Gets or sets a value indicating whether data is presented in chunks (pages) to the user. + + + + + Gets or sets the number of rows shown per page when paging is enabled. + + + + + Gets or sets the index of the page currently presented in the grid. + + + + + Gets a read only collection of all the items pinned at the top of the view. + + + + + Gets a read only collection of all the items pinned at the bottom of the view. + + + + + Gets or sets the total number of items to be displayed. + + + + + Gets or sets the default size of items which have never been resized. + + + + + Gets or sets the spacing between adjucent items. + + + + + Gets the current DPI scale factor. + + + + + Occurs before the page index changes. + + + + + Occurs after the page index changes. + + + + + This property is only used for serialization purposes. + + + + + This property is only used for serialization purposes. + + + + + This property is only used for serialization purposes. + + + + + This property is only used for serialization purposes. + + + + + Represents the view info. + + + + + Initializes a new instance of the class. + + The parent view info. + Index of the parent row. + + + + Initializes a new instance of the class. + + The grid element. + + + + Initializes the view info. + + + + + Expands the specified row. + + The row index to expand. + True if the operation is successful, otherwise false. + + + + Collapses the specified row. + + The row index to collapse. + True if the operation is successful, otherwise false. + + + + Returs a value indicating whether the specified row is expanded. + + The index of the row. + True if the row is expanded, otherwise false. + + + + Sets the height of the row at the specified row index in the master view info. + + The index of the row. + The new height of the row. + + + + Gets the height of the row at the given row index. + + The index of the row. + The height of the row. + + + + Gets the height of the column at the given column index. + + The index of the column. + The height of the column. + + + + Sets the width of the column at the specified column index in the master view info. + + The index of the column + The new width of the column. + + + + Sets the pin position of the specified row. + + The index of the row. + The new pin position. + + + + Gets the row pin position. + + Index of the row. + + + + + Sets the pin position of the specified column. + + The index of the column. + The new pin position. + + + + Gets the column pin position. + + Index of the column. + + + + + Returs a value indicating whether the specified row is pinned. + + The index of the row. + True if the row is pinned at top or bottom, otherwise false. + + + + Returs a value indicating whether the specified column is pinned. + + The index of the column. + True if the column is pinned at left or right, otherwise false. + + + + Gets the child view info for the specified row. + + The index of the row. + The child view info if it exists, otherwise null. + + + + Gets the child view info for the specified row. + + The index of the row. + Determines if a new child view info should be created if one does not exist. + The child view info if it exists, otherwise null. + + + + Creates a child view info for the specified row. + + The index of the row. + A new instance of . + + + + Moves the current view to the specified page index. + + The index of the page. + + + + Moves the current view to the first page. + + + + + Moves the current view to the previous page index. + + + + + Moves the current view to the next page index. + + + + + Moves the current view to the last page. + + + + + Sets the row error text for the specified row. Setting the error text to null has the same effect as calling + + The index of the row. + The error text. + + + + Returns a value indicating whether the row has error text assigned to it. + + The index of the row. + True if the row has error text assigned to it, otherwise false. + + + + Returns the error text for the specified row. + + The index of the row. + The error text if the row has one, otherwise null. + + + + Clears the error text of the specified row. + + The index of the row. + + + + Marks the specified row as waiting. This will display a waiting indicator in the row indent cell. + + The index of the row. + + + + Removes the mark of the specified row as waiting. This will hide the waiting indicator in the row indent cell. + + Index of the row. + + + + Returns a value indicating whether the specified row is marked as waiting. + + The index of the row. + True if the row is marked as waiting, otherwise faslse. + + + + Sets the data type of the column. This affects the editors in the column and the available filter options. + + The index of the column. + The type of the data in the column. + + + + Sets the specified data types as the data type of the columns in the view info. The assignment starts from the first column and ends where the specified data types end. + Data types affect the editors in the columns and the available filter options for each column. + + The data types. + + + + Gets the data type of the specified column. + + The index of the column. + The data type of the column if one is assigned to it, otherwise null. + + + + Registers the column as one containing custom cells. This prevents default cells from being displayed in that column. + + The index of the column. + Returns true if the registration is successful, otherwise false. + + + + Removes the column registration as one containing custom cells. + + The index of the column. + Returns true if the registration removal is successful, otherwise false. + + + + Returns a value indicating whether the specified column is registerd as custom. + + The index of the column. + True if the column is registered as custom, otherwise false. + + + + Resets the view states of the view. Resets row heights, pin positions, expanded state, column widths and column pin positions. + + + + + Binds the properties. + + The source. + + + + Unbinds the properties. + + The source. + + + + Raises the standard .NET PropertyChanged event. + + + + + + Handles the property change. + + Name of the property. + + + + Gets the total height of the row. + + + + + + Gets or sets a value indicating whether users can edit the values in data cells. + + + + + Gets or sets a value indicating whether users can delete rows. + + + + + Gets or sets a value indicating whether the Cut option in the context menu and the Ctrl+X shortcut will be available to the user. + + + + + Gets or sets a value indicating whether the Copy option in the context menu and the Ctrl+C shortcut will be available to the user. + + + + + Gets or sets a value indicating whether the Paste option in the context menu and the Ctrl+V shortcut will be available to the user. + + + + + Gets or sets a value indicating whether event and odd rows will have a different back color. + + + + + Gets or sets a value indicating whether right-clicking on a header cell will show the default header cell context menu. + + + + + Gets or sets a value indicating whether right-clicking on a data cell will show the default data cell context menu. + + + + + Gets or sets a value indicating whether users can resize columns through the grid UI. + + + + + Gets or sets a value indicating whether users can resize rows through the grid UI. + + + + + Gets or sets a value indicating whether users can sort columns by clicking the header or through the header context menu. + + + + + Gets or sets a value indicating whether the users can sort by more than one column. + + + + + Gets or sets the minimum height a data row can be. + + + + + Gets or sets the minimum width a column can be. + + + + + Gets or sets the of the horizontal scroll bar. + + + + + Gets or sets the of the vertical scroll bar. + + + + + Gets or sets a value indicating how column widths are determined. + + + + + + Gets or sets the amount of padding to be applied to child views. + + + + + Gets or sets a value indicating whether the header row is visible. + + + + + Gets or sets a value indicating whether the filter row is visible. + + + + + Gets or sets a value indicating whether the add new row is visible. + + + + + Gets or sets the height of the filter row. + + + + + Gets or sets the height of the add new row. + + + + + Gets or sets the height of the header row. + + + + + Gets or sets the default height of the data rows. + + + + + Gets or sets the space between adjucent rows. + + + + + Gets or sets a value indicating whether the busy indicator of the current view is visible. + + + + + Gets a dictionary containing a cache of the values entered in the filter row. The key is the column index. + + + + + Gets a dictionary containing a cache of the values entered in the new row. The key is the column index. + + + + + Gets an instance of which is the main element of this control. + + + + + Gets the sort descriptors currently applied to the grid. + + + + + Gets the filter descriptors currently applied to the grid. + + + + + Gets the index of the parent row when the current view is a child view. + + + + + Gets a value indicating whether this view's parent row is expanded. + + + + + Gets or sets the name of the view. + + + + + Gets or sets an object used for storing any user data. + + + + + Gets the total number of pages when paging is enabled. + + + + + Gets or sets a value indicating whether data is presented in chunks (pages) to the user. + + + + + Gets or sets the number of rows shown per page when paging is enabled. + + + + + Gets or sets the index of the page currently presented in the grid. + + + + + Gets the parent view info when the current view info is a child view info. + + + + + Gets the hierarchy level of the current view. + + + + + Gets or sets the height of the current view when it is a child view and UseScrollbarsInHierarchy is set to true. + + + + + Gets an containing information and settings for the currently displayed rows. + + + + + Gets an containing information and settings for the currently displayed columns. + + + + + Gets or sets the total number of rows to be displayed in the grid. + + + + + Gets or sets the total number of columns to be displayed in the grid. + + + + + Gets or sets the default column width. + + + + + Gets or sets the distance betwween adjucent cells. + + + + + This property is only used for serialization purposes. + + + + + This property is only used for serialization purposes. + + + + + This class extends the default table layout in RadGridView with column groups. + + + + + This class implements the default table layout in RadGridView. + + + + + This interface defines methods used to layout the grid view + + + + + Creates a new visual element for the grid + + The object that owns the visual element. + If successfull, the new . + + + + Initializes a new instance of the class. + + + + + Creates the view UI element. + + The view info. + + + + + Gets the collection containing column groups. + + + + + Represents a column group in RadGridView with a ColumnGroupsViewDefinition. + Each group can either have subgroups or rows which contain data columns. + + + + + Initializes a new instance of the GridViewColumnGroup class. + + + + + Initializes a new instance of the GridViewColumnGroup class. + + The text displayed in the group. + + + + Initializes a new instance of the class. + + The text displayed in the group. + The name of the group. + + + + Finds the GridViewTemplate which owns this group. The method will return non-null value + only when the group has been added to a view definition hierarchy and the view definition + has been set to a template. + + + + + + Gets or sets a value indicating whether group header is visible. + Works only for top level groups. + + true if the group header is visible; otherwise, false. + + + + Gets a collection containing the subgroups of the current group. + + + + + Gets a collection containing the rows of the current group. + + + + + Gets or sets the column group text. + + + + + Gets or set the vertical span of the group (the height) in pixels. + + + + + Gets the parent column group. + + + + + Gets the root column group. + + + + + Gets the ViewDefinition of the group. Has value only on root groups. + + + + + Gets or sets a value indicating whether the column group is pinned + and cannot be moved from its location when a user scrolls horizontally. + Only the root column groups can be pinned. + + + + + Gets or sets the pin position for the row. When the column is pinned, + it cannot be moved from its location when a user scrolls horizontally. + + + + + Gets or sets a value indicating whether the group is visible. + + + + + Gets or sets value indicating whether the user can hide the group. + + + + + Gets or sets a value indicating whether the group will be visible in . + + + Use this property if you want to hide groups from the user. + + + + + Gets or sets value indicating whether the user can reorder the group using mouse. + + + + + Gets or sets the name of the group. + + + + + Gets or sets the tag of the group. + + + + + Represents a row in a column group in a RadGridView with ColumnGroupsViewDefinition set. + + + + + A collection containing the names of the columns in this row. The actual rows will be resolved + when the view definition is asigned to a template. + + + + + Gets or sets the minimum height of the row. If the property is not set, + the row height will be equal to the maximum RowSpan of the columns in that row. + + + + + Collection of s that will be contained in a . + + + + Gets the that owns this collection. + + + + Collection of s that will be contained in a . + + + + + Calls the NotifyListenersCollectionChanged method with the provided arguments if not in a batch update. + + + + + + Gets the that owns this collection. + + + + + This class contains information that specifies how to arrange and display a single cell in the + when a is used. + + + + + Initializes a new instance of the class using default values. + + + + + Initializes a new instance of the class using specified unique name. + + The unique name for the column that will be presented by this cell + + + + Initializes a new instance of the class. + + The unique name for the column that will be presented by this cell + The desired width of this CellDefinition. + The desired column span value + The desired row span value + + + + Gets the that owns this . + + + + + Gets the row index of this CellDefinition. + + + + + Gets the column index of this CellDefinition. + + + + + Gets or sets the unique name of the column related with this . + + + + + Gets or sets the desired width of this . + + + + + Gets or sets the cell span value of this CellDefinition. + + + + + Gets or sets the row span value of this CellDefinition. + + + + + Gets or sets the background color of this . + + + + + Gets or sets the border width for this . + + + + + This class contains information that specifies how to arrange and display a single row in the + when a is used. + + + + + Initializes a new instance of the class using the default height. + + + + + Initializes a new instance of the class. + + The desired height of this RowDefinition. + + + + Gets the that owns this . + + + + + Gets a collection that contains all the cell definitions in the . + + + + + Gets the at the specified index. + + The zero based index of the cell to get + The at the specified index. + + + + Gets or sets the desired height of this . + + + + + Gets or sets the background color of this . + + + + + This class contains information that specifies how to arrange and display rows in the . + + + + + Initializes a new instance of the class. + + + + + Reads XML data into the using the specified file. + + The filename (including the path) from which to read. + + + + Reads XML data into the using the specified System.IO.Stream. + + The Stream from which to read. + + + + Writes the current contents of the as XML using the specified file. + + The file to which to write the XML data. + + + + Writes the current contents of the as XML using the specified Stream. + + The stream to which the data will be written. + + + + Gets a collection that contains all the row definitions in the . + + + + + Gets the at the specified index. + + The zero based index of the row to get + The at the specified index. + + + + Gets the at the specified row and column + + The zero based row index of the row containing the cell + The zero based column index of the column containing the cell + The at the spfecified row and column + + + + Gets or sets the cell spacing for this . + + + + + Gets or sets the cell padding for this . + + + + + Gets or sets the border width for this . + + + + + Reads XML data into the using the specified file. + + The filename (including the path) from which to read. + + + + Reads XML data into the using the specified System.IO.Stream. + + The Stream from which to read. + + + + Gets or sets a the row template that specifies how to visualize the rows in this template. + + + + + This interface defines methods used to change the currently selected row and column + + + + + Initializes the IGridNavigator with the specified RadGridView + + The RadGridViewElement to associate with this object + + + + Begins grid selection + + An instance of . + + + + Ends selection + + + + + Selects the sepcified row as current and specified column as current + + An instance of . + An instance of . + + + + Selects the first row as current column in grid + + true if successfull. + + + + Selects the last row as current column in grid + + true if successfull. + + + + Selects the specified row as current row in grid + + The GridViewRowInfo to be selected + true if successfull. + + + + Selects the row at specified distance after the current position as current row in grid + + The distance to the row + true if successfull. + + + + Selects the row at specified distance before the current position as current row in grid + + The distance to the row + true if successfull. + + + + Checks whether the specified row is the last one. + + the row to check + true if this is the last row + + + + Checks whether the specified row is the first one. + + the row to check + true if this is the first row + + + + Selects the first column as current column in grid + + true if successfull. + + + + Selects the last column as current column in grid + + true if successfull. + + + + Selects the next column as current column in grid + + true if successfull. + + + + Selects the previous column as current column in grid + + true if successfull. + + + + Checks whether the specified column is the last one. + + the column to check + true if this is the last column + + + + Checks whether the specified column is the first one. + + the column to check + true if this is the first column + + + + Checks whether the specified column is the last editable one. + + the column to check + true if this is the last editable column + + + + Checks whether the specified column is the first editable one. + + the column to check + true if this is the first editable column + + + + Deletes the selected rows. + + + + + Clears the selection + + + + + Select all rows and cells + + + + + Gets the master gridelement associated with this navigator + + + + + Provides localization services for RadGridView + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Click here to add a new row. + + + + + Looks up a localized string similar to Best Fit. + + + + + Looks up a localized string similar to Clear Sorting. + + + + + Looks up a localized string similar to ColumnInfo Chooser. + + + + + Looks up a localized string similar to Drag a column header from the\ngrid here to remove it from\nthe current view.. + + + + + Looks up a localized string similar to ColumnInfo Chooser. + + + + + Looks up a localized string similar to Add. + + + + + Looks up a localized string similar to Apply. + + + + + Looks up a localized string similar to Cancel. + + + + + Looks up a localized string similar to OK. + + + + + Looks up a localized string similar to Remove. + + + + + Looks up a localized string similar to Custom Formatting Condition Editor. + + + + + Looks up a localized string similar to Apply to row. + + + + + Looks up a localized string similar to Conditions. + + + + + Looks up a localized string similar to Properties. + + + + + Looks up a localized string similar to ColumnInfo:. + + + + + Looks up a localized string similar to Name:. + + + + + Looks up a localized string similar to Type:. + + + + + Looks up a localized string similar to Value 1:. + + + + + Looks up a localized string similar to Value 2:. + + + + + Looks up a localized string similar to Conditional Formatting. + + + + + Looks up a localized string similar to Copy. + + + + + Looks up a localized string similar to Cancel. + + + + + Looks up a localized string similar to OK. + + + + + Looks up a localized string similar to RadGridView Custom Filter Dialog. + + + + + Looks up a localized string similar to Show rows where:. + + + + + Looks up a localized string similar to And. + + + + + Looks up a localized string similar to Or. + + + + + Looks up a localized string similar to Custom. + + + + + Looks up a localized string similar to Delete RowInfo. + + + + + Looks up a localized string similar to Edit. + + + + + Looks up a localized string similar to Between. + + + + + Looks up a localized string similar to Contains. + + + + + Looks up a localized string similar to Custom. + + + + + Looks up a localized string similar to Does not contain. + + + + + Looks up a localized string similar to Ends with. + + + + + Looks up a localized string similar to Equals. + + + + + Looks up a localized string similar to Greater than. + + + + + Looks up a localized string similar to Greater than or equal to. + + + + + Looks up a localized string similar to Is empty. + + + + + Looks up a localized string similar to Is null. + + + + + Looks up a localized string similar to Less than. + + + + + Looks up a localized string similar to Less than or equal to. + + + + + Looks up a localized string similar to No filter. + + + + + Looks up a localized string similar to Not between. + + + + + Looks up a localized string similar to Not equal to. + + + + + Looks up a localized string similar to Is not empty. + + + + + Looks up a localized string similar to Is not null. + + + + + Looks up a localized string similar to Starts with. + + + + + Looks up a localized string similar to Group by this column. + + + + + Looks up a localized string similar to Hide ColumnInfo. + + + + + Looks up a localized string similar to Paste. + + + + + Looks up a localized string similar to Pin ColumnInfo. + + + + + Looks up a localized string similar to Sort Ascending. + + + + + Looks up a localized string similar to Sort Descending. + + + + + Looks up a localized string similar to Ungroup this column. + + + + + Looks up a localized string similar to Unpin ColumnInfo. + + + + + Represents localization provider for RadGridView that uses the project resources. + + + + + Initializes a new instance of the . + + + + + Creates the resource manager. + + + + + Gets the + + + + + Represents localization strings in RadGridView. + + + + + This class determines the anchored position during navigation + + + + + Initializes a new instance of the class. + + + + + + + Gets or sets the anchored row position + + + + + Gets or sets the anchored column + + + + + This class defines methods used to change the currently selected row and column + + + + + Initializes the IGridNavigator with the specified RadGridView + + The RadGridViewElement to associate with this object + + + + Select all rows and cells + + + + + Clears the selection + + + + + Deletes the selected rows. + + + + + Begins grid selection + + An instance of . + + + + Ends selection + + + + + Selects the sepcified row as current and specified column as current + + An instance of . + An instance of . + + + + Selects the override. + + The row. + The column. + + + + + Returns a boolean value indicating whether the full row is selected. + + The old current row. + The row. + + + + + Does the multi select. + + The old row. + The old column. + The row. + The column. + + + + + Does the multi select core. + + + + + + Selects the first row as current column in grid + + true if successfull. + + + + Selects the last row as current row in grid + + true if successfull. + + + + Selects the specified row as current row in grid + + The GridViewRowInfo to be selected + true if successfull. + + + + Selects the row at specified distance after the current position as current row in grid + + The distance to the row + true if successfull. + + + + Selects the row at specified distance before the current position as current row in grid + + The distance to the row + true if successfull. + + + + Checks whether the specified row is the last one. + + the row to check + true if this is the last row + + + + Checks whether the specified row is the first one. + + the row to check + true if this is the first row + + + + Selects the first column as current column in grid + + true if successfull. + + + + Selects the last column as current column in grid + + true if successfull. + + + + Selects the next column as current column in grid + + true if successfull. + + + + Selects the previous column as current column in grid + + true if successfull. + + + + Checks whether the specified column is the last one. + + the column to check + true if this is the last column + + + + Checks whether the specified column is the first one. + + the column to check + true if this is the first column + + + + Checks whether the specified column is the first editable one. + + the column to check + true if this is the first editable column + + + + Checks whether the specified column is the last editable one. + + the column to check + true if this is the last editable column + + + + The RadGridViewElement associated with this navigator + + + + + The MasterTemplate associated with this navigator + + + + + Gets the GridViewInfo associated with the CurrentView in grid + + + + + Gets the GridViewTemplate associated with the CurrentView in grid + + + + + Gets the render columns associated with the CurrentView in grid + + + + + Gets grid's current row + + + + + Gets grid's current column + + + + + Gets the column index of the current column in grid + + + + + Gets a value that indicates whether Mouse Selection is performed + + + + + Gets a value that indicates whether right mouse button is performed + + + + + Gets a value that indicates whether the SHIFT button is performed + + + + + Gets a value that indicates whether the CONTROL button is performed + + + + + Gets a value indicating whether the grid is in right-to-left mode + + + + + A class that represents basic logic for grid editor + + + + + Initializes a new instance of the class. + + An instance of that determines the input device + An instance of indicating which of mouse buttons is in pressed state + An instance of indicating which of the modifier keys (SHIFT, CONTROL and ALT) is in pressed state + + + + Gets the type of the input. + + The type of the input. + + + + Gets a value indicating which of mouse buttons is in pressed state + + + + + Gets a value indicating which of the modifier keys (SHIFT, CONTROL and ALT) is in pressed state + + + + + + + + + + + + + + + + + + + + + + + + + Represents an expander that is drawn in expander cells + + + + + Gets or sets a value indicating whether the sign is in expanded or collapsed state + + + + + Represents an expander that is drawn in expander cells in self-referencing mode + + + + + Initializes an instance of . + + + + + Implements scrolling logic for a grid's rows + + + + + Initialize an instance of . + + The associated instance of . + + + + Fired when ToolTip needs text + + Event sender + An instance of . + + + + Gets the associated instance of . + + Returns the associated instance of .. + + + + Initializes a new instance of the class. + + The item. + + + + Initializes the drag hint. + + + + + + Sets the element tree. + + The value. + + + + Determines whether the element may be dragged. + + + + + + + Gets the context, associated with a drag operation. + + + + + + Gets the image to be used as a hint when this element is being dragged. + + + + + + Gets the item. + + The item. + + + + Represents the rectangle which surrounds the element bounds after the rotation caused by setting the AngleTransform property to some degree. The rectangle is in control coordinates. + + + + + + Gets a reference to the tree object, that contains information about the scene where the element is currently visualized. + + + + + + An animation factory used for rows animations in RadGridView. + + + + + Gets the expand animation related with the specified animation type. + + The table element. + + + + + Abstract class that defines methods used to animate rows in RadGridView. + + + + + Initializes a new instance of the class. + + The table element. + + + + Raises the event. + + The instance containing the event data. + + + + Stats expand animation for group rows in RadGridView. + + The desired + the offset + the row index + + + + Starts collapse animation for group rows in RadGridView. + + The desired + the offset + the row index + + + + Occurs when an update of the view is needed. + + + + + Gets the table element. + + The table element. + + + + Gets or sets whether it is animating. + + The is animating. + + + + Implements accordion annimation for group rows in RadGridView. + + + + + Initializes a new instance of the class. + + The table element. + + + + Starts expand animation for group rows in RadGridView. + + + the offset + the row index + + + + Starts collapse animation for group rows in RadGridView. + + The desired + the offset + the row index + + + + Implements fade animation for group rows in RadGridView. + + + + + Initializes a new instance of the class. + + The table element. + + + + Starts expand animation for group rows in RadGridView. + + + the offset + the row index + + + + Starts collapse animation for group rows in RadGridView. + + The desired + the offset + the row index + + + + Implements fade animation setting for group rows in RadGridView. + + + + + Initializes a new instance of the class. + + The property. + The animation start value. + The animation end value. + The number of frames. + The interval. + + + + Gets or sets the index of the row. + + The index of the row. + + + + Implements gradient wipe annimation for group rows in RadGridView. + + + + + Initializes a new instance of the class. + + The table element. + + + + Stats expand animation for group rows in RadGridView. + + + the offset + the row index + + + + Starts collapse animation for group rows in RadGridView. + + The desired + the offset + the row index + + + + Implements slide annimation for group rows in RadGridView. + + + + + Initializes a new instance of the class. + + The table element. + + + + Stats expand animation for group rows in RadGridView. + + + the offset + the row index + + + + Starts collapse animation for group rows in RadGridView. + + The desired + the offset + the row index + + + + Implements a host item that holds RadGridView inside. + + + + + Initializes a new instance of the . + + + + + Gets the hosted + + + + + This class represents a RadGridView control that is + used in the RadMultiColumnComboBox control. + + + + + Represents a popup form containing RadGridView. + + + + + Initializes the class. + + + + + Initializes a new instance of the . + + + + + + Initializes the editor element + + + + + Finds the first item in the list box that starts with the specified string. + + The string to search for. + The zero-based index of the first item found; returns null if no match is found. + + + + Finds all items in the list box that starts with the specified string. + + The string to search for. + Collection of items that match the criteria. + + + + Finds the first item in the list box that matches the specified string. + + The string to search for. + The zero-based index of the first item found; returns null if no match is found. + + + + Finds the first item in the list box that matches the specified string. + + The string to search for. + The field name to be used for the search. + The zero-based index of the first item found; returns null if no match is found. + + + + Gets the editor element (an instance of ) contained in the form + + + + + Gets or sets whether the nested RadGridView content will be filtered by the DisplayMember + field automatically. This property clears the contents of the filtering collections of RadGridView. + + + + + Gets the owner combobox associated with this popup form. + + + + + Gets the editor control (an instance of ) contained in the form + + + + + This enumerator defines the states of a Popup Editor. + This enumerator is used internally in a Popup Editor + to differentiate between states and thus properly + manage the user input. + + + + + The Popup editor is ready for user input. + + + + + The user types in the text editor of the control. + + + + + A complete match of the user input is found in the data and + displayed in the text editor of the control. + + + + + The user selects the next item in the control by double + clicking on the text editor. + + + + + The user selects an item from the popup of the editor. + + + + + Represents a multi column combo box control. + + + + + Initializes the class. + + + + + Initializes a new instance of the . + + + + + Wires all events. + + + + + Unwires all events. + + + + + Raises the CaseSensitiveChanged event. + + + + + Raises the DropDownOpened event. + + + + + Raises the DropDownClosed event. + + + + + Raises the DropDownClosing event. + + An instance of the RadPopupClosingEventArgs which contains information about the event. + + + + Raises the DropDownOpening event. + + An instance of the CancelEventArgs which contains information about the event. + + + + Raises the DropDownStyleChanged event. + + + + + Raises the SelectedIndexChanged event. + + + + + Raises the SelectedValueChanged event. + + + + + Raises the SortedChanged event. + + + + + Ends the initialization of a RadComboBox control that is used on a form or used by another component. + The initialization occurs at run time. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. Applies only on the visible rows. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + Determines whether to adjust drop-down size according to columns width + Determines whether to calculate the optimal with by iterating all rows (including non-visible rows). + + + + Gets or set the value in Milliseconds indicating delay between last key press and filtering operation + + + + + Determines whether the drop-down portion of the control will be auto-sized to best fit all columns. + + + + + Specifies the mode for the Text clearing if the text does not match the text in the DisplayMembar column. + + + + + Specifies the mode for the automatic completion feature used in the MultiColumnComboBox. + + + + + Gets a collection that contains all the columns in the grid contained in the drop down. + + + + Gets or sets displayed text., + + + + Rotate items on double click in the edit box part + + + + + Gets or sets a boolean value determining whether the user can scroll through the items + when the popup is closed by using the mouse wheel. + + + + + Gets the hosted RadMultiColumnComboBoxElement. + + + + + Gets or sets the drop down sizing mode. The mode can be: horizontal, vertical or a combination of them. + + + + + Gets or sets the text that is displayed when the Text property contains empty string or is null. + + + + + + + + The input control hosted in the popup form. In the case of + RadMultiColumnComboBox the control is a RadGridView. + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value specifying the style of the combo box. + + + + + Determines whether the drop-down portion of the control will be auto-sized to best fit all columns. + The DropDownWidth property must be set to its default value (-1) to allow this setting to work properly. + + + + + Determines whether the drop-down height will be auto-sized when filtering is applied. + + + + + Gets or sets the minimum size allowed for the drop-down of the + control. + + + + + Gets or sets the maximum size allowed for the drop-down of the + control. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Occurs when the data binding process finishes. + + + + + Occurs when the CaseSensitive property has changed. + + + + + Occurs before the drop-down window appears. + + + + + Occurs when the drop-down window has closed. + + + + + Occurs when the drop-down window is about to close. + + + + + Occurs when the drop-down window is about to open. + + + + + Occurs when the DropDownStyle property has changed. + + + + + Occurs when the SelectedIndex property has changed. + + + + Fires when the selected value is changed. + + + + Occurs when the Sorted property has changed. + + + + + Represents a multi column combo box element. The RadMultiColumnComboBox + class is a simple wrapper for the RadMultiColumnComboBoxElement class. The + RadMultiColumnComboBox acts to transfer events to and from its + corresponding RadMultiColumnComboBoxElement instance. The RadMultiColumnComboBoxElement which is + essentially the RadMultiColumnComboBox control may be nested in + other telerik controls. The RadMultiColumnComboBoxElement class implements all logical and UI + functionality. + + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Wires the popup form events. + + The popup. + + + + Unwires the popup form events. + + The popup. + + + + Initializes the provider. + + value to be pre-loaded inside the initialized editor. + + + + Call BeginUpdate at the beginning of a block that makes many modifications in the GUI + + + + + + Call BeginUpdate at the end of a block that makes many modifications in the GUI + + + + + + Ends the initialization of a RadComboBoxElement control that is used on a form or used by another component. + The initialization occurs at run time. + + + + + Call the GetItemHeight member function to retrieve the height of list items in a combo box. + + Specifies the item of the combo box whose height is to be retrieved. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. Applies only on the visible rows. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + Determines whether to adjust drop-down size according to columns width + Determines whether to calculate the optimal with by iterating all rows (including non-visible rows). + + + + Processes the filter descriptor. + + The descriptor. + The text to search. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Notifies for a change in the Parent value. + + The previous parent element (if any) + + + + Raises the DoubleClick event. + + + + + + Processes the key down. + + The sender. + The instance containing the event data. + + + + Processes the text key up. + + The sender. + The instance containing the event data. + + + + Processes the page up down keys. + + The instance containing the event data. + + + + Processes the delete key. + + The instance containing the event data. + + + + Processes the Escape key + + An instance of + true if the event is processed, false otherwise + + + + Processes the Enter key + + An instance of + + + + Processes the text changed. + + The sender. + The instance containing the event data. + + + + Sets the current state of the control to a provided one. + + The state which to set the control to. + + + + Reset the state of the control to Ready. + + + + + Scrolls to home. + + + + + Scrolls the item into view. + + The item. + + + + Sets the append auto complete. + + The instance containing the event data. + + + + Selects the previous item. + + + + + Selects the next item. + + + + + Selects the first row. + + + + + Sets the active item. + + The item. + + + + Sets the active item. + + The text. + + + + Allows previewing of an event that is about to be dispatched. + + + + + + + Core entry point for receiving and processing an event. + + + + + + + Allows additional processing of an event that has been just dispatched. + + + + + + + Specifies the mode for the Text clearing if the text does not match the text in the DisplayMembar column. + + + + + Specifies the mode for the automatic completion feature used in the ComboBox + and the TextBox controls. + + + + + Gets a value from the + enumerator that represents the current state + of the MultiColumnComboBox control. + + + + + The input control hosted in the popup form. In the case of + RadMultiColumnComboBoxElement the control is a RadGridView. + + + + + Gets a collection that contains the all columns in the . + + + + + Gets a collection that contains the all rows in the . + + + + + + + + Determines whether the drop-down portion of the control will be auto-sized to best fit all columns. + The DropDownWidth property must be set to its default value (-1) to allow this setting to work properly. + + + + + Determines whether the drop-down portion of the control will be auto-sized to best fit all columns. + The DropDownWidth property must be set to its default value (-1) to allow this setting to work properly. + + + + + Determines whether the drop-down height will be auto-sized when filtering is applied. + + + + + The popup form that hosts the RadGridView. + + + + + Gets or sets the value. + + The value. + + + + + + + Base class implementation, not applicable in the case of RadMultiColumnComboBox. Use + the Rows collection instead. + + + + + + + + + + + + + + + + + + + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + + + + + + + + + + + + + Gets a value whether the current row is being changed at the moment. + + + + + Gets the event type(s) this listener needs to process. + + + + + + Gets the priority of the current instance. + + + + + + Gets the event process mode for this instance. + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Creates the specific states. + + + + + + Adds the default visible states. + + The sm. + + + + Creates the specific states. + + + + + + Creates the specific states. + + + + + + Adds the default visible states. + + The sm. + + + + Creates the enabled states. + + + + + + Adds the default visible states. + + The sm. + + + + Creates the specific states. + + + + + + Adds the default visible states. + + The state manager. + + + + Creates the specific states. + + + + + + Adds the default visible states. + + The state manager. + +
+
diff --git a/Analysis/bin/x64/Debug/Telerik.WinControls.UI.dll b/Analysis/bin/x64/Debug/Telerik.WinControls.UI.dll new file mode 100644 index 0000000..fdbe24d Binary files /dev/null and b/Analysis/bin/x64/Debug/Telerik.WinControls.UI.dll differ diff --git a/Analysis/bin/x64/Debug/Telerik.WinControls.UI.xml b/Analysis/bin/x64/Debug/Telerik.WinControls.UI.xml new file mode 100644 index 0000000..7f9858b --- /dev/null +++ b/Analysis/bin/x64/Debug/Telerik.WinControls.UI.xml @@ -0,0 +1,61373 @@ + + + + Telerik.WinControls.UI + + + + + Gets the location and size of the accessible object + + + + + Gets the location and size of the accessible object + + + + + Gets a value for the Value property while in bound mode. + + Gets an object reference pointing to the value of the Value property in bound mode. + + + + Gets a value for the Value property in unbound mode. + + Returns an object reference pointing to the value of the Value property in unbound mode. + + + + This method is called when setting the Value property of a RadListDataItem when it is in unbound mode. + + The value to set the Value property to. + + + + This method is used to assign the DataBoundItem property of this RadListDataItem. + If a user attempts to set DataBoundItem while in bound mode, an exception should be thrown. + In unbound mode this property can be set to any value and will not affect the behavior of this RadListDataItem. + + A flag that indicates if the data bound item is being set from the data binding engine or by the user. + true means it is being set by the data binding engine. + The value that will be assigned to the DataBoundItem property. + + + + Gets a value indicating whether this data item is data bound. + + + + + Gets a value that represents the ListDataLayer associated with this data item and its parent RadListControl. + The ListDataLayer encapsulates the data operations provided by RadListControl which are sorting, filtering and currency synchronization. + + + + + Gets a value representing the owner RadListElement of this data item. + + + + + Gets a value representing the owner control of this data item. + + + + + Gets or sets the visual height of this item. + This property can be set only when AutoSizeItems of the parent RadListControl is true. + + + + + Gets the index of this data item in the Items collection of RadListControl. + + + + + Gets a value that will be used in the visual representation of this item. + + + + + Gets or sets a value for the property indicated by ValueMember if in bound mode, and private value in unbound mode. + Trying to explicitly set this property in bound mode will result in an InvalidOperationException. + + + + + Gets or sets a value that indicates if this item is selected. Setting this property will cause the selection events of the owner list control to fire if there is one. + + + + + Gets or sets whether this item responds to GUI events. + + + + + Gets or sets the text for this RadListDataItem instance. + + + + + Gets or sets a text value that is used for sorting. Creating a RadProperty during data binding is too slow, this is why + this property is used instead and its value can be used for sorting. + + + + + Gets or sets an image for this RadListDataItem instance. + + + + + Gets or sets the text-image relation for this RadListDataItem instance. + + + + + Gets or sets the image alignment for this RadListDataItem instance. + + + + + Gets or sets the text alignment for this RadListDataItem instance. + + + + + Gets or sets the text orientation for this RadListDataItem instance. + + + + + Gets or sets the font for this RadListDataItem instance. + + + + + Gets or sets the text color for this RadListDataItem instance. + + + + + Gets a value that indicates if this item is currently visible. + + + + + Gets a value that visually represents this data item. If the item is not visible, this property returns null. + The visual item returned should be used only to get information about a particular item. Since visual items + are shared between different data items, properties must not be set directly on the visual item in order + to avoid uncustomizable or unwanted behavior. For example if properties are set directly to the visual item + the themes may not work correctly. + + + + + Gets or sets the preferred size for the element which will present this item. + + + + + Gets the index of item in GridViewRowCollection. + + The index. + + + + Gets or sets a value that represents the raw data item that this RadListDataItem is associated with. + This property will be non null when the item is created via RadListControl's data binding and will contain the underlaying data item. Setting this property explicitly will have no effect in unbound mode and will throw an InvalidOperationException in bound mode. + + + + + Gets or sets a value that indicates if this item is selected. Setting this property will cause the selection events of the owner list control to fire if there is one. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Represents a auto-complete tokenized text box element + + + + + Represents an independent text box element + + + + + Represent a scrollable view element with scrollbars + + + + + + A light visual element supporting text, border, image, BackColor and ForeColor with different layout adjustments. + "http://www.telerik.com/help/winforms/tpf-primitives-lightvisualelement.html" + + + + + Base class for some RadItems, used in RadTreeView, RadPanelBar, RadCalendar, etc. Incorporates basic functionality for paiting gradient + background and borders the same way FillPrimitive and BorderPrimitive do. + + + + + Gets the border thickness of a + + The element to check. + Determines whether to consider when the border is disabled. + The border thickness. + + + + Toggles the text primitive when text related properties are change. + + The changed property. + + + + Called when animated image frame changes. + + + + + Gets the properties, which should mapped if set to a LightVisualElement instance. Used for testing purposes. + + + + + Gets or sets the text rendering hint. + + + + + Gets or sets the text rendering hint used when this element is disabled. + + + + + Gets or Sets value indicating whether the element should paint its text + + + + + Gets or Sets value indicating whether the element should paint its background + + + + + Gets or Sets value indicating whether the element should paint its border + + + + + Gets or Sets value indicating whether the element should paint its background image. + + + + + Gets or Sets value indicating whether the element should paint its image. + + + + + + Gets or sets the + Border style. The two possible values are SingleBorder and FourBorder. In the + single border case, all four sides share the same appearance although the entire + border may have gradient. In four border case, each of the four sides may differ in + appearance. For example, the left border may have different color, shadow-color, and + width from the rest. When SingleBorder is chosen, you should use the general + properties such as width and color, and respectively, when the FourBorder style is + chosen you should use properties prefixed with the corresponding side, for example, + LeftColor, LeftWidth for the left side. + + + + + Defines the order in which border lines are drawn. This property is considered when the is FourBorders. + + + + + Gets or sets a float value width of the left border. This property + has effect only if FourBorders style is used in BoxStyle property and + affects only the width of the left border. + + + + + Gets or sets a float value width of the left border. This property + has effect only if FourBorders style is used in BoxStyle property and + affects only the width of the left border. + + + + + Gets or sets a float value width of the top border . This property + has effect only if FourBorders style is used in BoxStyle property, + and affects only the top border. + + + + + Gets or sets a float value width of the right border. This + property has effect only if FourBorders style is used in BoxStyle + property, and affects only the right border. + + + + + Gets or sets a float value width. This property has effect only if + FourBorders style is used in BoxStyle property, and affects only the + bottom border. + + + + + Gets or sets gradient angle for linear gradient measured in degrees. + + + + + Gets or sets gradient style. Possible styles are solid, linear, radial, glass, + office glass, gel, and vista. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets a value indicating the TextImageRelation: ImageAboveText, + ImageBeforeText, Overlay, TextAboveImage, and TextBeforeImage. + + + + + Gets and sets the left border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the left border. + + + + + Gets and sets the top border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the top border. + + + + + Gets and sets the right border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the right border. + + + + + Gets and sets the bottom border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the bottom border. + + + + + Gets and sets the left shadow color. This option applies only if + fourBorders is chosen, and affects only the left border. + + + + + Gets and sets the top shadow color. This option applies only if + fourBorders is chosen, and affects only the top border. + + + + + Gets and sets the right shadow color. This option applies only if + fourBorders is chosen, and affects only the right border. + + + + + Gets and sets the bottom shadow color. This option applies only if + fourBorders is chosen, and affects only the bottom border. + + + + + Determines whether text will be clipped within the calculated text paint rectangle. + + + + + Gets or sets the transparent color for the image. + + + + + Specifies the style of dashed lines drawn with a border. + + + + + Specifies the style of dashed lines drawn with a border. + + + + + Gets or sets a value indicating whether image transparency is supported. + + + + + Determines whether character trimming will be automatically applied to the element if text cannot be fitted within the available space. + + + + + Determines whether ampersand character will be treated as mnemonic or not. + + + + + Gets or sets a value indicating whether text will be wrapped when exceeding the width of the element. + + + + + Determines whether keyboard focus cues are enabled for this element. + + + + + Determines whether trailing spaces will be included when text size is measured. + + + + + Gets the text structure used to render text + + + + + Creates the scroll bar element. + + + + + + Creates the view element. + + + + + + This method provides a chance to initialize the ViewElement object. + + The view element. + + + + Measures the view element. + + Size of the available. + + + + + Arranges the view element. + + The view element rect. + + + + Arranges the horizontal scroll bar. + + The view element rect. + The client rect. + + + + + Arranges the vertical scroll bar. + + The view element rect. + The hscroll bar rect. + The client rect. + + + + Gets the horizontal scroll bar. + + + The horizontal scroll bar. + + + + + Gets the vertical scroll bar. + + + The vertical scroll bar. + + + + + Gets or sets the view element. + + + The view element. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + + + + Creates an instance of + + + + + + Called when the context menu is opening. + + The menu. + + + + + Raises the event. + + The instance containing the event data. + + + + Clamps the offset to valid text position bounds + + The offset. + + + + + Determines whether the text can be inserted + + The text. + + true if this text can be inserted; otherwise, false. + + + + + Determines whether the current position is valid for the auto-complete operation + + + true if [is valid auto complete position]; otherwise, false. + + + + + Performs the auto-complete for concrete operation. + + The context. + + + + Performs the auto complete override. + + The context. + + + + Gets the text that is as filter condition in auto-completion + + The start position. + The end position. + + + + + Gets the auto-complete drop down location. + + + + + + Gets the lines of the text box element. + + + + + + Sets the lines of the text box element. + + The lines. + + + + Creates the caret of the text box element. + + + + + + Creates the auto-complete list element. + + + + + + Creates the auto-complete drop down. + + + + + + Gets the size of the auto-complete drop down. + + + + + + Shows the drop down. + + The location. + + + + Closes the auto-complete drop down. + + + + + Closes the drop down. + + The reason. + + + + Moves the current selection in the text box to the Clipboard. + + + + + + Copies the current selection in the text box to the Clipboard. + + + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + + Inserts the text at current position + + The text. + + + + + Deletes the selected text or character at the current position + + + + + + /// Deletes the selected text or character at the current position + + if set to true deletes next character. + + + + + Appends text to the current text of a text box. + + The text. + + + + Appends text to the current text of a text box and selects it + + The text. + if set to true selects the text. + + + + Selects a range of text in the text box. + + The start. + The length. + + + + Selects all text in the text box element. + + + + + Specifies that the value of the SelectionLength property is zero so that no characters are selected in the element. + + + + + + Scrolls the contents of the control to the current caret position. + + + + + Clears all text from the text box element. + + + + + Gets or sets the current text in the text box element. + + + + + Gets or sets the prompt text that is displayed when the text box contains no text. + + + The null text. + + + + + Gets or sets the color of the null text. + + + The color of the null text. + + + + + Gets or sets a value indicating whether the null text will be shown when the control is focused and the text is empty + + + + + Gets or sets the lines of text in a text box element. + + + The lines. + + + + + Gets or sets a value indicating the currently selected text in the element. + + + The selected text. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box element. + + + The length of the max. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text box element types a TAB character in the element instead of moving the focus to the next element in the tab order. + + + true if [accepts tab]; otherwise, false. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline TextBox element creates a new line of text in the element or activates the default button for the form. + + + true if [accepts return]; otherwise, false. + + + + + Gets or sets a value indicating whether this is a multiline text box. + + + true if multiline; otherwise, false. + + + + + Gets or sets a value indicating whether the text in view + should appear as the default password character. + + + + + Gets or sets the character used to mask characters of a password in a single-line + + + + + Indicates whether a multiline text box control automatically wraps words to the beginning of the next line when necessary. + + + true if [word wrap]; otherwise, false. + + + + + Gets or sets how the text is horizontally aligned in the element. + + The horizontal text alignment. + + + + Gets the length of text in the element. + + + The length of the text. + + + + + Gets or sets the caret position. + + + The index of the caret. + + + + + Gets or sets the starting point of text selected in the text box. + + + The selection start. + + + + + Gets or sets the number of characters selected in the text box. + + + The length of the selection. + + + + + Gets or sets the color of the selection. + + + The color of the selection. + + + + + Gets or sets the selection opacity. + + + The selection opacity. + + + + + Gets or sets whether the TextBox element modifies the case of characters as they are typed. + + + The character casing. + + + + + Gets the associated caret. + + + + + Represents the associated keyboard and mouse input handler. + + + The input handler. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + + + true if this is in read only mode; otherwise, false. + + + + + Gets or sets a value indicating whether the caret is visible in read only mode. + + + true if the caret is visible; otherwise, false. + + + + + Gets or sets a value indicating whether the selected text in the text box control remains highlighted when the element loses focus. + + + true if [hide selection]; otherwise, false. + + + + + Gets or sets the associated context menu. + + + The context menu. + + + + + Gets or sets the navigator of the text position. + + + The navigator. + + + + + Gets the auto-complete list element. + + + + + Gets the view element of the null text. + + + + + Gets or sets an option that controls how automatic completion works for the TextBox. + + + The auto complete mode. + + + + + Gets or sets the auto complete display member. + + + The auto complete display member. + + + + + Gets or sets a value specifying the source of complete items used for automatic completion. + + + The auto complete data source. + + + + + Gets a value specifiying the complete items used for automatic completion. + + + + + Gets or sets the size of the drop down max. + + + The size of the drop down max. + + + + + Gets or sets the size of the drop down min. + + + The size of the drop down min. + + + + + Gets or sets the max count of visible items in auto-complete drop down + + + The max drop down item count. + + + + + Gets a value indicating whether this auto-complete drop down is open. + + + true if the drop down is open; otherwise, false. + + + + + Gets or sets when the vertical scroll bar should appear in a multiline TextBox element. + + + The state of the vertical scroll bar. + + + + + Gets or sets when the horizontal scroll bar should appear in a multiline TextBox element. + + + The state of the horizontal scroll bar. + + + + + Gets a value indicating whether this text box can perform auto complete operation. + + + true if this instance can perform auto complete; otherwise, false. + + + + + Gets the auto complete drop down. + + + + + Gets the clear button. + + + + + Gets or sets a value indicating whether the clear button is shown. + + + + + Occurs when text block is formatting. + + + + + Occurs when an instance of is created + + + + + Occurs when the context menu is opening. + + + + + Occurs when text selection is changing. + + + + + Occurs when text selection is changed. + + + + + Fired when the Input Method Editor starts the composition. + + + + + Fired when the Input Method Editor completes the composition. + + + + + Fired when the Input Method Editor has a result ready. For languages like Korean + this might happen before the composition has ended. + + + + + Initializes a new instance of the class. + + + + + Creates the tokenized item collection. + + + + + + Gets or sets a value indicating whether the remove button of should appear. + Notice that the text box should not be in read only mode + + + true if [show remove button]; otherwise, false. + + + + + Gets or sets a property name which will be used to extract a value from the data items + + + + + Gets or sets the delimiter used to tokenize the text + + + The delimiter. + + + + + Gets the tokenized items. + + + + + Gets the auto complete view element. + + + + + Gets or sets the auto complete drop down location. + + + The auto complete popup location. + + + + + Occurs when text is validating as token + + + + + Represent a virtualize panel element provider + + The type of view element. + The type of virtualized item. + + + + + + + + + + Represents interface for virtualized element provider + + + + + + Gets the element. + + The data. + The context. + + + + + Caches the element. + + The element. + + + + + Shoulds the update. + + The element. + The data. + The context. + + + + + Determines whether the specified element is compatible with its data. + + The element. + The data. + The context. + + true if the specified element is compatible; otherwise, false. + + + + + Gets the size of the element. + + The data. + + + + + Gets the size of the element. + + The element. + + + + + Clears the cached elements. + + + + + Gets or sets the default size of the element. + + + The default size of the element. + + + + + Creates the element. + + The data. + The context. + + + + + Gets the element from cache. + + The data. + The context. + + + + + Gets the element from cache or creates it. + + The data. + The context. + + + + + Pre-initialize cached element. + + The element. + The context. + + + + Caches the element. + + The element. + + + + + Determine whether the element should be updated. + + The element. + The data. + The context. + + + + + Determines whether the specified element is compatible with concrete data. + + The element. + The data. + The context. + + true if the specified element is compatible; otherwise, false. + + + + + Gets the size of the element. + + The item. + + + + + Gets the size of the element. + + The element. + + + + + Clears the cache. + + + + + Gets or sets the default size of the element. + + + The default size of the element. + + + + + Gets the cached elements count. + + + The cached elements count. + + + + + Creates the element. + + The data. + The context. + + + + + Shoulds the update. + + The element. + The data. + The context. + + + + + Represents a traverser that enumerates collection. + + + + + + Represents traverser class that enumerates items. + + + + + + Moves the previous. + + + + + + Moves to end. + + + + + + Gets or sets the position. + + + The position. + + + + + Initializes a new instance of the class. + + The collection. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + Moves the previous. + + + + + + Moves to end. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Called when items are navigated. + + The current. + + + + + Moves the next core. + + + + + + Moves the previous core. + + + + + + Gets or sets the collection. + + + The collection. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets or sets the position. + + + The position. + + + + + Occurs when items are navigated. + + + + + Moves the next core. + + + + + + Gets or sets the font for this RadListDataItem instance. + + + + + Represents a virtaulizable element interface + + + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance. + + + + + Determines whether element is compatible with the specified data. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets the associated data. + + + The data. + + + + + Applies or resets alternating row color of the current visual item. + + + + + Gets or sets a value indicating whether this item has odd position. + + + + + Clears all Checked Items + + + + + Represents a auto-complete list element in . + + + + + Represents a auto-complete list element in . + + + + + This class is used to represent data in a list similar to the ListBox control provided by Microsoft. + + + + + Performs events subscription to internal objects. + The base implementation must always be called. + + + + + Performs events unsubscription from internal objects. + The base implementation must always be called. + + + + + This method creates an object that implements IVirtualizedElementProvider. Child elements are not yet created + in this method. + + A new instance of an implementation of IVirtualizedElementProvider. + + + + Creates an instance of ITraverser which traverses the child elements. + + + + + + Creates an instance of ItemScroller. Child elements are not yet created in this method. + + + + + + This method provides a chance to setup the ItemScroller. + + The item scroller on which properties will be set. + + + + This method provides a chance to setup the the VirtualizedStackContainer. + + The view element on which properties will be set. + + + + Measures the item. + + The item. + Size of the available. + + + + + Gets the desired size of the item. + + The item. + + + + + Called when auto size is changed. + + + + + Gets the Element with the specified item. + + + + + + Updates on measure. + + Size of the available. + + + + + Updates the items fit to size mode. + + + + + Gets or sets the items. + + + The items. + + + + + Gets the associated scroller. + + + The scroller. + + + + + Gets or sets a value indicating whether items fit to size. + + + true if [fit items to size]; otherwise, false. + + + + + Gets or sets the items orientation. + + + The orientation. + + + + + Gets or sets a value indicating whether items auto sizing. + + + true if [auto size items]; otherwise, false. + + + + + Gets or sets the item spacing. + + + The item spacing. + + + + + Creates a new instance of the RadListElement class. + + + + + Creates an instance of the data layer object responsibe for items management in bound or unbound mode. + + + + + + Creates an instance of the element provider object which is responsible for mapping logical and visual items and determining + when a visual item must be updated to reflect the state of its corresponding logical item. + + + + + + Creates an instance of the visual element responsible for displaying the visual items in a particular layout. + + + + + + Finds the first item in the RadList control that matches the specified string. + + The string to search for. + Determines whether the search is case sensitive or not. + The zero-based index of the first item found; returns null if no match is found. + + + + Raises the event. + + + An instance that contains the event data. + + + + + + Suspends notifications of changing groups. + This method is cumulative, that is, if SuspendGroupRefresh is called N times, ResumeGroupRefresh must also be called N times. + + + + + Resumes refreshing of groups. + + Indicates whether refreshing of groups should be performed. + + + + Refreshes the groups. + + + + + Scrolls to the active item if it is not null and if it is not fully visible. + + + + + Forces re-evaluation of the current data source (if any). + + + + + Suspends internal notifications and processing in order to improve performance. + This method is cumulative, that is, if BeginUpdate is called N times, EndUpdate must also be called N times. + + + + + Resumes the internal notifications and processing previously suspended by BeginUpdate. + + + + + Defers the refresh. + + + + + + Selects all items if the SelectionMode allows it. + + Selecting all items is not a valid operation in the current selection mode. SelectionMode = + this.selectionMode.ToString() + . + + + + Clears the currently selected items and selects all items in the closed range [startIndex, endIndex]. + + The first index at which to start selecting items. + The index of one item past the last one to be selected. + + + + Scrolls to the provided item so that the item will appear at the top of the view if it is before the currently visible items + and at the bottom of the view if it is after the currently visible items. + + The item to scroll to. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default this relation is the System.String.StartsWith(). + This method starts searching from the beginning of the items. + + The string with which every item will be compared. + The index of the found item or -1 if no item is found. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Creates a new item traverser and updates the current. + If group refresh is suspended this method has no effect. + + + + + This method returns true if the ActiveItem is fully visible. + + + + + Gets the index of the last visible item. + + + + + Gets the index of the first visible item. + + + + + Gets the index of the middle visible item. + + + + + Determines if the provided visual item intersects the view but is not contained in it. + + + + + If the object assigned to the DataSource property is of type Component, this callback will be invoked if + the data source is disposed which cause all data items to become disposed. + + + + + Handles changes in the data layer. + Nothing will done if we the RadListElement is in a BeginUpdate state. + + + + + Syncronizes the properties of all visual elements with their data items. + + + + + When the data layer changes the current position, this callback triggers the selection logic with the new position. + + + + + Fires the SelectedIndexChanged event. + + + + + Fires the SelectedIndexChanging event. + + + + + Fires the SelectedValueChanged event if SelectedValue has actually changed since many items can have the same value. + + + + + Fires the ItemDataBinding event. + + + + + Fires the ItemDataBound event. + + + + + Fires the CreatingVisualItem event. + + + + + Fires the SortStyleChanged event. + + + + + Fires the VisualItemFormattingeEvent with the provided visual item. + + + + + Performs scrolling logic depending on the delta from the mouse wheel. + + + + + Raises the ItemsChanged event with the provided arguments. + + The arguments that contain the data relevant to the items change. + + + + Raises the ItemsChanging event with the provided arguments. + + The arguments that contain the data relevant to the pending items change. + + + + Raises the DataItemPropertyChanged + + + + + + + Handles the mouse input by finding the RadElement involved with the mouse and sending the element and event information to the appropriate + subsystem of RadListElement. + + + + + Performs logical branching depending on the type of the routed event. + + + + + Performs logical branching of the selection logic depending on the notification reason. + + + + + Handles the keyboard input by delegating the information of the event to the appropriate RadListElement subsystem. + + + + + Finds an item with the text provided by an internal search buffer after the character argument is appended to the buffer. + The search buffer is reset after a user defined time since the last character was typed. By default this is 300 ms. + Users can set the KeyboardSearchResetInterval property to a custom interval. + + A character that will be appended to the search buffer. + + + + Handles the space key press depending on the SelectionMode and the state of the control key. + + + + + This method is the entry point for the selection logic if initiated by the keyboard. + + + + + Determines whether the selection logic should select the next or the previous item depending on the which arrow key is pressed. + + + + + This method is the entry point in RadListElements selection logic. + + + + + Performs logical branching of the MultiExtended selection logic depending on the parameters. + + + + + This method performs only logical branching of the selection logic depending on the input type parameter. + + + + + This method is for clarity. CodeMultiSimple is the same as MouseMultiSimple but does not change the current position of the data layer. + + + + + Toggles the Selected state of the item at the specified index and fires selection events depending on the second argument. + + The index of the item which will selected or deselected. + Indicates whether to change the current positio of the data layer and therefore fire selecton events. + + + + Handles the MultiSimple selection logic for adding items. + + + + + Handles the MultiSimple selection logic for removing items. + + + + + Selects the item at the specified index and clears all other selected items and updates the active item. + This method triggers selection events. + + The index of the item which will be selected. + + + + Selects all items in the range [startIndex, endIndex] and clears all other selected items. + This method triggers selection events. + + The beginning of the selection range. + The end of the selected range. + + + + This method sets the provided item as active and the previous one to inactive. There can be only active item at a time. + + The item to set to an active state. + The value to which the Active property of item will be set. + + + + Sets the SelectedItem and thus SelectedIndex to the logical item with the specified value. If there are many items with the same value the first item found will be selected. + This method triggers selection events. + + The value for which to find an item. + + + + Sets the the selected data item to the specified item. If the item is different than the current one the selection events will be fired. + This method triggers selection events. + + + + + + Sets the selected index to the specified value if it is different than the current value and fires the selection events. + This method triggers selection events. + + + + + + Determines if RadListElement is ready for data binding. This is true only when Items is empty or DataSource is different from null. + If RadListElement is not ready for binding an InvalidOperationException is thrown. + + + + + Determines if this list element is ready for unbound mode. + If it is not an invalid operation exception is thrown. + RadListElement is ready for unbound mode if it has not data source set. + + + + + Returns the value of the Value property of the RadListDataItem at the specified index. + + The index of the item from which to get the Value property. + + + + + Returns the index of the provided list data item. This index determines the items position in the data view. + + The index for which to return an index. + Returns the index of the provided item. + + + + Gets the text of the data item provided in the argument depending on the ItemTextComparisonMode property. + + The data item for which to get the Text value. + The text value of the provided data item. + + + + Determines whether the provided index is in the range [0, Items.Count) + + The index to validate. + Returns true if the index is inside [0, Items.Count) and false otherwise. + + + + Swaps two integers. + + + + + Disposes every item in the Items collection. + + + + + Converts the provided ListSortDirection to SortStyle. + + The ListSortDirection to be converted to SortStyle. + The converted SortStyle value. + + + + Sets the sort comparer. + + The comparer. + The direction. + + + + Sets the sort style to the specified value and fires the SortStyle changed event if the new value is different than the previous value. + + + + + + Sets the selection mode of this RadListElement to the provided value. + + The new selection mode. + + + + Gets property name by which items will be sorted when SortStyle is set. + If DisplayMember is an empty string, items will be sorted by their text, otherwise + they will be sorted according to the DisplayMember. + + Returns the property by which items will be sorted. + + + + Clamps the provided value parameter to be be in the closed range [min, max]. + + The left bound of the range. + The right bound of the range. + The value to be clamped to the range specified by the previous two parameters. + + + + This is a helper method which keeps track of the number of subscriptions to the CurrentPositionChanged event of the data layer. + + + + + This is a helper method which keeps track of the number of unsubscriptions from the CurrentPositionChanged event of the data layer. + + + + + This method is for testing purposes. It invokes the MultiExtended selection logic with the supplied parameters. + + The index to which the selection will span starting from SelectedIndex. + An enumeration indicating whether the input comes from the keyboard, the mouse or from code. + If this flag is true the selection logic will invoke MultiExtended as if the shift key was pressed. + If this flag is true the selection logic will invoke MultiExtended as if the control key was pressed. + + + + Returns the logical item associated with the top visible item if the layout is vertical and the left most item if the layout is horizontal. + + + + + + Gets a value indicating whether the oldSelectedIndex is reset to initial state. + The old selected index is in initial state only when the list control is newly + constructed and has not yet had any selected items, or when the data layer sends + a reset notification. This happens when the data source is changed. + + + + + Gets a value indicating whether the SelectedValue property is different after the selection last changed. + + + + + Gets or sets value indicating if the user can reorder items via drag and drop. + Always false when kinetic scrolling is enabled. + + + + + Gets or sets a value indicating whether alternating item color is enabled. + + + + + Gets or sets a value indidcating the alternating item color for odd items. + + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets a value indicating whether kinetic scrolling is enabled. + + + + + Gets or sets the offset of the items when they are displayed in a collapsible group. + + + + + Gets or sets the offset of the items when they are displayed in a non-collapsible group. + + + + + Gets or sets a value that indicates if this RadListElement will stop firing the ItemsChanging and ItemsChanged events. + + + + + Gets or sets a value that indicates whether text case will be taken into account when sorting. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + The default value of this property is 300 ms. + + + + + Gets or sets a value that determines whether the user can search for an item by typing characters when RadListElement is focused. + + + + + Gets or sets a value that determines whether the FindString() method searches via the text property + set by the user or by the text provided by the data binding logic, that is, by DisplayMember. + + + + + Gets or sets a Predicate that will be called for every data item in order to determine + if the item will be visible. + + + + + Gets or sets a filter expression that determines which items will be visible. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the FindString() method when searching for an item. + + + + + Gets or sets an object that implements IComparer and sorts the items according to its logic. + + + + + Gets or sets the active item. This property is meaningful only when SelectionMode is MultiSimple or MultiExtended with the Control key pressed. + + + + + Provides a readonly interface to the currently selected items. + + + + + Gets or sets a value that determines whether to stop the selection events from firing. These are SelectedIndexChanged, + SelectedIndexChanging and SelectedValueChanged. + + + + + Gets or sets the SelectionMode which determines selection behavior of RadListElement. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + Setting this property throws an InvalidOperationException if Items is not empty and the data source is null. + + + + + Gets or sets the position of the selection. + Setting this property will cause the SelectedIndexChanging and SelectedIndexChanged events to fire. + + + + + Gets or sets the selected logical list item. + Setting this property will cause the selection events to fire. + + + + + Gets or sets the currently selected value. Setting the SelectedValue to a value that is shared between many items causes the first item to be selected. + This property triggers the selection events. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This property can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets a string which will be used to get a description text string for each visual item. This property can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets a string which will be used to get a description text string for each visual item. This property can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets the item height for the items. This property is disregarded when AutoSizeItems is set to true. + + + + + Gets or sets the sort style. It can be Ascending, Descending or None. Sorting is performed according to the property specified by DisplayMember. + + + + + Gets or sets a value that determines whether text formatting is enabled for the visual items. + + + + + Gets or sets a format string that will be used for visual item formatting if FormattingEnabled is set to true. + + + + + Gets or sets an object that implements the IFormatProvider interface. This object is used when formatting items. The default object is + CultureInfo.CurrentCulture. + + + + + Gets or sets the scrolling mode. + + + + + Gets a boolean value that indicates whether the is a filter currently set either with the Filter or FilterExpression properties. + + + + + Gets or sets a value indicating whether the drop down list is read only. + + + true if the drop down list is read only; otherwise, false. + + + + + Fires after data binding operation has finished. + + 1 + + + + + + This event fires when the SelectedValue changes. This is will not always fire when the SelectedItem or SelectedIndex changes because the new item may have the same value. + + + + + This event fires when selected index changes. This always happens when the SelectedItem changes. + + + + + This event fires before SelectedIndexChanged and provides a means for cancelling the whole selection operation. + Someties this event will not fire since cancelling the change is not possible, for example when the DataSource is set to null. + + + + + This item fires for data item that is being created during data binding and fires before the ItemDataBound event. The event provides a means for changing the instance of the data item + to a custom data item. + + + + + This event fires after a data item has been created and bound. + + + + + This event fires while creating visual items. This happens on during initial layout and during resizing if the new size is larger and thus allowing more items to be visualized. + The event provides a means to create a custom visual item. + + + + + This event fires after the sorting style changes. + + + + + The visual item formatting fires whenever the state of a visible logical item changes and when scrolling. + + + + + This event fires whenever an item is added, removed, set or if the whole items collection was modified. + + + + + This event fires right before adding, removing or setting an item. This event will not fire if an item is added to a data source directly + because there is no way for RadListElement to be notified before the change. + + + + + This event fires whenever a RadProperty of a data item changes. This event is most often used to listen changes in Selected and Active properties of the data items. + + + + + This class is used to compare data items when sorting in ascending order. + + + + + This class is used to compare data items when sorting in descending order. + + + + + Raises the event. + + The action. + + + + Raises the event. + + The instance containing the event data. + + + + Determines whether the two text variables are equal + + The suggestion. + The pattern. + + true if the specified suggestion is matching; otherwise, false. + + + + + Determines whether the suggested text matches the pattern text + + The suggestion. + The pattern. + + true if [is exact suggestion] [the specified suggestion]; otherwise, false. + + + + + Suspends the event. + + + + + Resumes the event. + + + + + Performs text suggestion for concrete text pattern + + The pattern. + The start position. + The end position. + + + + Performs text suggestion for concrete text pattern + + The pattern. + The start position. + The end position. + if set to true [notify]. + + + + Performs text suggestion for concrete text pattern + + The pattern. + + + + Custom filtering predicated + + The item. + + + + + Custom filtering predicated. + + The item. + + + + + Sets the suggested text. + + The text. + The action. + + + + Gets the suggested text from + + The item. + if set to true [perform append]. + + + + + Gets the first fully visible item. + + + + + + Gets the last fully visible item. + + + + + + Gets the fully visible item. + + if set to true [first item]. + + + + + Gets the visual item at point. + + The location. + + + + + Finds by text + + The text. + + + + + Gets or sets the auto complete mode. + + + The auto complete mode. + + + + + Gets the suggested text. + + + + + Gets the text search criteria. + + + + + Gets a value indicating whether this text and suggested text are matched. + + + true if they are matched; otherwise, false. + + + + + Gets a value indicating whether the auto-complete mode is suggest mode. + + + true if the mode is suggest mode; otherwise, false. + + + + + Gets a value indicating whether the auto-complete mode is append mode. + + + true if the mode is append mode; otherwise, false. + + + + + Gets or sets the start position where the suggestion is performed + + + + + Gets or sets the end position where the suggestion is performed + + + + + Occurs when suggested text is changed + + + + + Represents a CheckedDropDown List. The RadCheckedDropDownList class is essentially a simple + wrapper for the RadDropDownListElement. The latter + may be included in other telerik controls. All UI and logic functionality is + implemented by the RadDropDownListElement class. + RadDropDownList act to transfer event to and from its + RadDropDownListElement instance. + + + + + Represents a combo box class. The RadDropDownList class is essentially a simple + wrapper for the RadDropDownListElement. The latter + may be included in other telerik controls. All UI and logic functionality is + implemented by the RadDropDownListElement class. + RadDropDownList act to transfer event to and from its + RadDropDownListElement instance. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the DropDownList box. + + + + + Selects all items if the SelectionMode allows it. + + Selecting all items is not a valid operation in the current selection mode. SelectionMode = + this.selectionMode.ToString() + . + + + + Raises the event. + + + An instance that contains the event data. + + + + + + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from zero based index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index of the found item or -1 if no item is found. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Forces re-evaluation of the current data source (if any). + + + + + Displays the popup on the screen. + + + + + HIde the popup from the screen. + + + + + Call BeginUpdate at the begining of a block that makes many modifications in the GUI + + + + + + Call EndUpdate at the end of a block that makes many modifications in the GUI + + + + + + Defers the refresh. + + + + + + Gets or sets a value indicating whether alternating item color is enabled. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a value indicating whether the user can give the focus to this control + using the TAB key. + /// + true if the user can give the focus to the control using the TAB key;otherwise, false. The default is true. + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets that RadListDataItem Image will be displayd in Editor Element when DropDownStyle is set to DropDownStyleList + \ + + + + Gets a reference to the drop down form associated with this RadDropDownList. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the RadDropDownList. + + + + + Gets or sets a value that indicates whether items will be sized according to + their content. If this property is true the user can set the Height property of each + individual RadListDataItem in the Items collection in order to override the automatic + sizing. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + + + + Gets or sets a value of the enumeration. + This value determines how the pop-up form can be resized: vertically, horizontally or both. + + + + + Gets or sets a value indicating whether string comparisons are case-sensitive. + + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + + Rotate items on double click in the edit box part + + + + + + Gets or sets an object that implements the IFormatProvider interface. This object is used when formatting items. The default object is + CultureInfo.CurrentCulture. + + + + + + Gets or sets a format string that will be used for visual item formatting if FormattingEnabled is set to true. + + + + + + Gets or sets the sort style. It can be Ascending, Descending or None. Sorting is performed according to the property specified by DisplayMember. + + + + + Gets or sets a value that determines whether text formatting is enabled for the visual items. + + + + + + /// + Gets or sets the easing type of the animation. + + + + + Gets or sets a value indicating whether the RadDropDownList will be animated when displaying. + + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + + + Gets or sets the height in pixels of the drop-down portion of the RadDropDownList. + + + + + Gets or sets a value specifying the style of the DropDownList + + + + + DefaultItems count in drop-down portion of the RadDropDownList. + + + + + Gets or sets the drop down maximum size. + + + + Represent the DropDownListElement element + + + + + Represent the List element + + + + + Provides a readonly interface to the currently selected items. + + + + + Gets or sets the currently selected value. Setting the SelectedValue to a value that is shared between many items causes the first item to be selected. + This property triggers the selection events. + + + + + Gets or sets the selected logical list item. + Setting this property will cause the selection events to fire. + + + + + Gets or sets the position of the selection. + Setting this property will cause the SelectedIndexChanging and SelectedIndexChanged events to fire. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets a property name which will be used to extract a text for description text from the data items. The value of the property with + this name will be available via the Value property of every RadListDataItem in the Items collection. + + + + + Enable or disable Mouse Wheel Scrolling. + + + + + Indicating whether the Popup part of the control + are displayed. + + + + + Gets or sets a predicate which filters which items can be visible. + + + + + Gets or sets a filter expression which determines which items will be visible. + + + + + Gets a value indicating whether there is a Filter or FilterExpression set. + + + + + Gets or sets a value indicating whether the drop down list is read only. + + + true if the drop down list is read only; otherwise, false. + + + + + Occurs when the Text property value changes. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + Gets or sets the text that is selected in the editable portion of the DropDownList. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets a value indicating whether the control causes validation to be + performed on any controls that require validation when it receives focus. + + + true if the control causes validation to be performed on any controls requiring + validation when it receives focus; otherwise, false. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the FindString() method when searching for an item. + + + + + Gets or sets an object that implements IComparer which is used when sorting items. + + + + + Fires after data binding operation has finished. + + 1 + + + + + + Occurs when a key is pressed while the control has focus. + + 1 + + + + Occurs when a key is released while the control has focus. + + 1 + + + + Occurs when a key is pressed while the control has focus. + + + + + Fires when the popup-form is opened. + + + + + Fires when the popup-form is about to be opened. + + + + + Fires when the popup is about to be closed. + + + + + Fires when the popup is closed. + + + + + This event fires when the selected index property changes. + + + + + This event fires before SelectedIndex changes. This event allows the operation to be cancelled. + + + + + This event fires only if the SelectedValue has really changed. For example it will not fire if the previously selected item + has the same value as the newly selected item. + + + + + This event fires before a RadListDataItem is data bound. This happens + when the DataSource property is assigned and the event fires for every item provided by the data source. + This event allows a custom RadListDataItem to be provided by the user. + + + + + This event fires after a RadListDataItem is data bound. This happens + when the DataSource property is assigned and the event is fired for every item provided by the data source. + + + + + This event allows the user to create custom visual items. + It is fired initially for all the visible items and when the control is resized afterwards. + + + + + This event fires when the SortStyle property changes. + + + + + The VisualItemFormatting event fires whenever a property of a visible data item changes + and whenever a visual item is associated with a new data item. During scrolling for example. + + + + + This property is not applicable for RadCheckedDropDownList + + + + + This property is not applicable for RadCheckedDropDownList + + + + + Show or Hide the CheckAll item + + + + + Gets or sets a value indicating whether the hosted textbox is multiline. + + + true if multiline; otherwise, false. + + + + + This property is not applicable for RadCheckedDropDownList. + + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + Gets or sets a value specifying the style of the DropDownList + This property is not applicable for RadCheckedDropDownList + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + Gets or sets a value indicating whether the drop down list is read only. + + + true if the drop down list is read only; otherwise, false. + + + + + Gets or sets a value indicating whether the user can give the focus to this control + using the TAB key. + + true if the user can give the focus to the control using the TAB key;otherwise, false. The default is true. + + + + Gets or sets a value indicating whether items checked state is synchronized with the text in the editable area. + + + + + Gets the associated auto complete text box element. + + + + + Occurs when text is validating as token + + + + + /// Occurs when text block is formatting. + + + + + Occurs when an instance of is created + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a CheckAllItem is about to be checked. Cancelable. + + + + + Occurs when a CheckAllItem is checked. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the combo box. + + + + + TextBox Property + + + + + Gets or sets the text that is selected in the editable portion of the ComboBox. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the combo box. + + + + + Gets or sets the text that is selected in the editable portion of the ComboBox. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Represents the base for all editor elements. Provides the default visual states such as IsFocused and Disabled. + + + + + This interface supports the editor infrastructure of the RadGridView. + + + + + Occurs when the editor is validating the value. + + + + + Occurs when the editor is finished validating the value. + + + + + Occurs when the editor value is being changed. Cancelable event. + + + + + Occurs when the value of the editor changes. + + + + + Occurs when internally the editor detects an error or when the Validating event fails. + + + + + Gets the VisualElement that must receive the focus, when the editor is invoked. + + + + + + Initializes the provider. + + + + + Initializes the provider. + + value to be pre-loaded inside the initialized editor. + + + + Initializes the provider. + + the owner + value to be pre-loaded inside the initialized editor. + + + + Occurs when internally the editor detects an error or when the Validating event fails. + + + + + Gets whether the editor is instantiated on demand or is always availabele. + Example: GridBooleanCellElement and GridViewBooleanColumn. + + + + + Closes the popup if it is open, or shows the popup if it is closed. + + + + + Closes the popup with a RadPopupCloseReason.CloseCalled reason. + + + + + Closes the popup with the provided reason for closing. + + the reason for the close operation as specified through RadPopupCloseReason enumeration. + + + + Displays the popup on the screen. + + + + + Used to initialize the size of the popup + when it is initially opened and the + element tree is loaded. + + + + + Performs the core popup display logic. + + The popup form that is about to be displayed. + + + + Gets the screen coordinated where the popup should be displayed. + + + + + + + Gets the display size for the popup. + + The popup which size should beretrieved. + True to perform explicit measure, false otherwise. + + + + + Applies any Min/Max size restrictions to the popup form. + + + + + + Syncronizes the theme of the editor itself with the popup that is about to be displayed. + + + + + + Determines whether the popup form may be displayed. + + + + + + Creates the popup instance. You have to override this method in order to provide a popup + that is specialized by its content. Example: In a combo box you have to override and provide a specialized class + that contains and handles the listbox element. + + The popup instance. + + + + Gets a valid instance of the popup, that is properly + initialized to work with the PopupEditorBaseElement. + + The popup instance. + + + + Gets the popup form + + + + + + + + + + + + + + + + + + + + + + + + + Main entry point for updating DropDownList + + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the ComboBox. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + AutoCompleteValueMember Property + + + + + AutoCompleteDataMember Property + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + + + + + Popup Property + + + + + DefaultItemsCountInDropDown Property + + + + + The input element hosted in the popup form. In the case of + DropDownList the control is a ListElement. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the combo box. + + + + + Selects all items if the SelectionMode allows it. + + Selecting all items is not a valid operation in the current selection mode. SelectionMode = + this.selectionMode.ToString() + . + + + + Defers the refresh. + + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index of the found item or -1 if no item is found. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + main update entry point + + contains notification context + + + + This method is used internally! + + + + + Creates the auto complete append handler. + + + + + + Creates the auto complete suggest helper. + + + + + + Gets or sets a value indicating whether the SelectedIndex is synchronized with the text in the editable area. + + + + + Get or set the text in Editable area + + + + + Gets a value that indicates if the popup associated with this RadDropDownListElement is open. + + + + + Represent list of all AutoComplete Helpers + + + + + Gets or sets that RadListDataItem Image will be displayd in Editor Element when DropDownStyle is set to DropDownStyleList + + + + + Gets or sets a Predicate that will be called for every data item in order to determine + if the item will be visible. + + + + + Gets or sets a filter expression that determines which items will be visible. + + + + + Gets a value indicating whether there is a Filter or FilterExpression set. + + + + + EditableElement Property + + + + + Gets or sets a value that indicates whether items will be sized according to + their content. If this property is true the user can set the Height property of each + individual RadListDataItem in the Items collection in order to override the automatic + sizing. + + + + + Enable or disable Mouse Wheel Scrolling. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + Gets or sets the text that is selected in the editable portion of the DropDownList. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + Gets or sets a value specifying the style of the combo box. + + + + + + + + + + + + + + Gets or sets a value that determines whether to stop the selection events from firing. These are SelectedIndexChanged, + SelectedIndexChanging and SelectedValueChanged. + + + + + For information on this property please refer to the MSDN. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets the item height for the items. + + + + + TextBox Property + + + + + ArrowButton Property + + + + + Gets or sets a value indicating whether string comparisons are case-sensitive. + + + + + Rotate items on double click in the edit box part + + + + + Gets or sets the type of the DropDown animation. + + + + + Gets or sets a value indicating whether the RadDropDownList will be animated when displaying. + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + AutoCompleteSuggest Property + + + + + AutoCompleteAppend Property + + + + + Get or sets the minimum width of the arrow button element. + + + + + Gets or sets the color of prompt text that is displayed when the TextBox contains no text + + + + + Gets or sets the drop down minimum width. + + + + + + + + This property is not applicable for RadCheckedDropDownList + + + + + This property is not applicable for RadCheckedDropDownList + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + Gets or sets a property name which will be used to extract a text for description text from the data items. The value of the property with + this name will be available via the Value property of every RadListDataItem in the Items collection. + + + + + Gets or sets a value indicating whether items checked state is synchronized with the text in the editable area. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + + + + + Gets or sets a value indicating whether the drop down list is read only. + + + true if the drop down list is read only; otherwise, false. + + + + + Indexes the of. + + The item. + + + + + Indexes the of. + + The text. + + + + + Determines whether [contains] [the specified text]. + + The text. + + true if [contains] [the specified text]; otherwise, false. + + + + + Displays a flat collection of labeled items with checkbox, each represented by a ListViewDataItem. + + + + + Displays a flat collection of labeled items, each represented by a ListViewDataItem. + + + + + Creates an instance of . + + + + + Executed on EndInit() method. + + The sender. + The event args. + + + + Suspend any item change notifications until is called. + + + + + Resumes the item change notifications. + + + + + Finds an item with the specified key. + + The key of the searched item. + + + + + Finds an item with the specified key. + + The key of the searched item. + Indicates if the search should check only visible items. + + + + + Selects a set of items. + + The items to select. + + + + Begins an edit operation over the currently selected item. + + [true] if success, [false] otherwise + + + + Ends the current edit operations if such. Saves the changes. + + [true] if success, [false] otherwise + + + + Ends the current edit operations if such. Discards the changes. + + [true] if success, [false] otherwise + + + + Expands all the groups in the control. + + + + + Collapses all the groups in the control. + + + + + Checks the selected items. + + + + + Unchecks the selected items. + + + + + Checks all of the items. + + + + + Unchecks all of the items. + + + + + Fires when a group has been expanded. + + + + + Fires when a group is about to expand. Cancelable. + + + + + Occurs when the BindingContext has changed. + + + + + Occurs when the process of binding to a data source has finished + + + + + Occurs when a ListViewDataItem is about to be selected. Cancelable. + + + + + Occurs when the content of the SelectedItems collection has changed. + + + + + Occurs when the selected item has changed. + + + + + Occurs when the selected item has changed. + + + + + Occurs when the ViewType of RadListView is changed. + + + + + Occurs when the ViewType of RadListView is about to change. Cancelable. + + + + + Occurs when the user presses a mouse button over a ListViewDataItem. + + + + + Occurs when the user presses a mouse button over a ListViewDataItem. + + + + + Occurs when the user moves the mouse over a ListViewDataItem. + + + + + Occurs when the user hovers a ListViewDataItem. + + + + + Occurs when the mouse pointer enters a ListViewDataItem. + + + + + Occurs when the mouse pointer leaves a ListViewDataItem. + + + + + Occurs when the user clicks a ListViewDataItem. + + + + + Occurs when the user double-clicks a ListViewDataItem. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Occurs when a ListViewDataItem changes its state and needs to be formatted. + + + + + Occurs when a ListViewDataItem needs to be created. + + + + + Occurs when a BaseListViewVisualItem needs to be created; + + + + + Occurs when a DetailsView cell needs to be formatted. + + + + + Occurs when a data-bound item is being attached to a ListViewDataItem. + + + + + Occurs when the CurrentItem property is changed. + + + + + Occurs when the CurrentItem property is about to change. Cancelable. + + + + + Occurs when an editor is required. + + + + + Occurs when an edit operation is about to begin. Cancelable. + + + + + Occurs when an editor is initialized. + + + + + Occurs when a ListViewDataItem is edited. + + + + + Fires when a validation error occurs. + + + + + Occurs when an edit operation needs to be validated. + + + + + Occurs when the value of a ListViewDataItem is changed. + + + + + Occurs when the value of a ListViewDataItem is about to change. Cancelable. + + + + + Occurs when a needs to be created. + + + + + Occurs when a needs to be created. + + + + + Occurs when an item is about to be removed using the Delete key. Cancelable. + + + + + Occurs when an item is removed using the Delete key. + + + + + Gets or sets a value indicating whether column names which differ only in the casing are allowed. + + + + + Gets or sets the position of the checkboxes when ShowCheckBoxes is true. + + + + + Gets or sets the alignment of the checkboxes within the item when ShowCheckBoxes is true. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a value indicating whether the last added item in the RadListView DataSource will be selected by the control. + + + + + Gets or sets the display state of the horizontal scrollbar. + + + + + Gets or sets the display state of the vertical scrollbar. + + + + + Gets or sets a value indicating whether the checkboxes should be in ThreeState mode. + + + + + Gets or sets value indicating if the user can reorder items via drag and drop. + + + + + Gets or sets a value indicating whether grid lines should be shown in DetailsView. + + + + + Gets or sets a value indicating whether items can be selected with mouse dragging. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. Always false when lasso selection is enabled. + + + + + Gets or sets a value indicating whether items should react on mouse hover. + + + + + Gets or sets a value indicating whether the items should be sorted when clicking on header cells. + + + + + Gets or sets the default item size. + + + + + Gets or sets the default item size. + + + + + Gets or sets the indent of the items when they are displayed in a group. + + + + + Gets or sets the space between the items. + + + + + Gets a collection of filter descriptors by which you can apply filter rules to the items. + + + + + Gets or sets the filter predicate used for filtering operation. + + The filter. + + + + Gets a value indicating whether the control is in bound mode. + + + + + Gets a collection containing the groups of the RadListView. + + + + + Gets or sets the value member. + + + + + Gets or sets the display member. + + + + + Gets or sets the checked member. + + + + + Gets or sets a value indicating whether sorting is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets or sets a value indicating whether grouping is enabled. + + + + + Gets or sets a value indicating whether custom grouping is enabled. + + + + + Gets a collection of SortDescriptor which are used to define sorting rules over the + ListViewDataItemCollection. + + + + + Gets a collection of GroupDescriptor which are used to define grouping rules over the + ListViewDataItemCollection. + + + + + Gets or sets the data source of a RadListView. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets the selected item. + + + + + Gets or sets the index of the selected item. + + + + + Gets or sets the current item. + + + + + Gets or sets the current column in Details View. + + + + + Indicates whether there is an active editor. + + + + + Gets or sets a collection of ListViewDetailColumn object which represent the columns in DetailsView. + + + + + Gets or sets a collection of ListViewDataItem object which represent the items in RadListView. + + + + + Gets or sets a value indicating whether the column headers should be drawn. + + + + + Gets or sets a value indicating whether the items should be shown in groups. + + + + + Gets a collection containing the selected items. + + + + + Gets a collection containing the checked items. + + + + + Gets or sets value indicating whether checkboxes should be shown. + + + + + Gets or sets value indicating if the user can resize the columns. + + + + + Gets or sets value indicating if the user can reorder columns via drag and drop. + + + + + Gets or sets a value indicating whether the full row should be selected. + + + + + Gets or sets a value indicating whether the items can have different width. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Gets or sets value indicating whether multi selection is enabled. + + + + + Gets or sets value indicating whether editing is enabled. + + + + + Gets or sets value indicating whether the user can remove items with the Delete key. + + + + + Gets the currently active editor. + + + + + Gets or sets the type of the view. + + + + + Gets the of the control. + + + + + Gets or sets the height of the header in Details View. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + + + + + Gets or sets a value that determines whether the user can search for an item by typing characters when RadListView is focused. + + + + + Gets or sets the string comparer used by the keyboard navigation functionality. + + + + + Gets or sets a value indicating whether the item's check state changes whenever the item is clicked. + + + + + RadListView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadListView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Gets or sets value indicating whether checkboxes should be shown. + + + + + Gets or sets value indicating whether editing is enabled. + + + + + Gets or sets a value indicating whether the item's check state changes whenever the item is clicked. + + + + + Returns a flag indicating whether the sizing element is at the bottom of the window. + If true, the size of the popup should increase. If false, the size should decrease. + + + + + + Gets or sets a boolean value that + determines whether the SizeGripItem + can resize the hosting control. + + + + + Base interface for providers. + + The type used to specialize the provider implementation. + + + + Gets IEnumerable<T> for items that match the conditions defined by the specified predicate. + + The Predicate<T> delegate that defines the conditions of the item to search for. + IEnumerable<T> for items that match the conditions defined by the specified predicate, if found; + + + + Inserts an item of type T. + + The item of type T to insert. + + + + Updates he first occurrence of a specific item in the data store. + + The item of type T to update. + Name of the property which value changed. + Null or an empty string if all properties should be updated. + + + + Removes the first occurrence of a specific item from the data store. + + The item of type T to delete. + + + + The ItemsChanged event is raised by the provider to inform all listeners that the items in the data store have changed. + + + + + The PositionChanged event is raised by the provider to inform all listeners that the current position in data items list has changed. + + + + + Gets or sets the current position in the list of data items. + + + + + Gets or sets a data store mapping to the provider. + + + + + Associates a source properties collection with the corresponding properties collection exposed by the scheduler events. + It is used in common by all RadScheduler data providers. + Contains a collection of SchedulerMapping objects, and is implemented by the + + + + + Searches for a SchedulerMapping instance that binds a property of an item from the data store to + a property of an item from RadScheduler. The RadScheduler items are events, resources, etc. + + Property name of an item in RadScheduler. + The first element that matches the property name, if found. + + + + Searches for a SchedulerMapping instance that binds a property of an item from the data store to + a property of an item from RadScheduler. The RadScheduler items are events, resources, etc. + + Property name of an item in the data store. + The first element that matches the property name, if found. + + + + Represents the method that will handle the type conversion between the values of corresponding properties. + + The value to be converted. + The converter applied. + The converted value. + + + + Contains information about a list change event. + + + + + + Initializes a new instance of the class. + + Type of the list change. + + + + Initializes a new instance of the class. + + Type of the list change. + The new item. + The new index. + + + + Initializes a new instance of the class. + + Type of the list change. + The changed item. + Name of the property. + + + + Initializes a new instance of the class. + + Type of the list change. + The new item. + The old item. + + + + Initializes a new instance of the class. + + Type of the list change. + The new items. + + + + Initializes a new instance of the class. + + Type of the list change. + The changed items. + Name of the property. + + + + Initializes a new instance of the class. + + Type of the list change. + The new items. + The old items. + + + + Gets the type of the list change. + + The type of the list change. + + + + Gets the new items. + + The new items. + + + + Gets the old items. + + The old items. + + + + Gets the name of the property. + + The name of the property. + + + + Represents the simple binding between the property of an item from the data store and + the property of an item from RadScheduler. The RadScheduler items are events, resources, etc. + + + + + Initializes a new instance of the SchedulerMapping class that simple-binds the + indicated property of an item from RadScheduler to the specified item from the data store. + + Property name of an item in RadScheduler. + Property name of an item in the data store. + + + + The callback that converts the given value object from the data store to the specified type of the RadScheduler corresponding item. + + + + + The callback that converts the given value object from a RadScheduler item to the specified type of the data store corresponding item. + + + + + Gets or sets the RadScheduler item property name that is mapped. + + + + + Gets or sets the data store item property name that is mapped. + + + + + Base class for all generic RadDock objects - such as Services, Settings, etc. + + + + + Forces object clean-up and resource release. + + + + + Performs the actual dispose logic. + + True to notify that managed resources should also be disposed. + + + + Disposes any managed resources associated with this object. + + + + + Disposes any unmanaged resources associated with this instance. + + + + + Raises the PropertyChanging notification. + + + True to indicate that the change is accepted, false otherwise. + + + + Raises the PropertyChanged event. + + + + + + Determines whether the property with the specified name needs serialization. + + + + + + + Notifies that the object is disposed. + + + + + + + + + + Represents the action button element + + + + + Represents a button element. The button element could be placed in each control's + Items collection. It encapsulates all the necessary logic related to the user + interaction and UI. The RadButton class is a simple + wrapper for the RadButtonElement class. The RadButton + acts to transfer events to and from its corresponding RadButtonElement instance. + The RadButtonElement which is essentially the RadButton control may be nested in + other telerik controls. + + + + + Represents a button item. + + + + Initializes a new instance of the RadButtonItem class. + + + + + Initializes a new instance of the RadButtonItem class and sets it's Text property to + the provided string. + + + + + + Initializes a new instance of the RadButtonItem class, sets it's Text and Image + properties to the provided string and Image. + + + + + + + Gets or sets the image that is displayed on a button element. + + + + + Gets or sets the image list index value of the image displayed on the button control. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the position of text and image relative to each other. + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + Specifies the options for display of image and text primitives in the element. + + + + + Gets a value indicating whether the button item is in the pressed state. + + + + + Determines if this button is the default button for the form it is on. + + + + + Determines whether the Image value of the current item is shared (reused by ither items). + This flag is true by default. If it is set to false, then the item itselft will dispose the Image upon its disposal. + + + + + Initializes a new instance of the RadButtonElement class. + + + + + + + + + + + + + + + + + Gets the FillPrimitive element that is responsible for painting of the background of the control + + + + + Gets the BorderPrimitive element that is responsible for painting of the border of the control + + + + + Gets the TextPrimitive element that is responsible for painting of the text of the control + + + + + Gets a reference to the ImagePrimitive of the RadButtonElement. + + + + + Gets a reference to the FocusPrimitive of the RadButtonElement. + + + + + Gets a reference to the ImageAndTextLayoutPanel of the RadButtonElement. + + + + + Gets the large image that is displayed on a button element. + + + + + Gets the large image list index value of the image displayed on the button control. + + + + + Gets the large key accessor for the image in the ImageList. + + + + + Gets or sets the large image that is displayed on a button element. + + + + + Gets or sets the small image list index value of the image displayed on the button control. + + + + + Gets or sets the small key accessor for the image in the ImageList. + + + + + Specifies whether the button should use the original image list or the small image list. + + + + + Angle of rotation for the button image. + Unlike AngleTransform the property ImagePrimitiveAngleTransform rotates the image only. + AngleTransform rotates the whole button + + + + + Includes the trailing space at the end of each line. By default the boundary rectangle returned by the Overload:System.Drawing.Graphics.MeasureString method excludes the space at the end of each line. Set this flag to include that space in measurement. + + + + + Gets or sets a value indicating whether the border is shown. + + + + + This property is used internally! + + + + + Values used by RadDropDownButton, to determine the mouse position relative to the action or arrow button part. + + + + + This class represents the popup of the + control. + + + + + Represents a drop down menu used in radComboBox and radMenu. + + + + + Represents a base class for all popup-forms used throughout the suite. + + + + + An interface for all Popup-forms used in RadControls for WinForms. + + + + + Shows the IPopupControl at the specific location. + + An instance of the Rectangle struct + which represents a portion of the screen which the IPopupControl + is aligned to. + + + + Closes the IPopupControl. + + + + + Tries to close the . + + An instance of the class + containing information about the close request. + + + + This method determines whether the IPopupControl can be closed. + Used in the PopupManager class to prevent the IPopupControl from closing + in specific occasions. + + The reason why the IPopupControl is closed. + True if the IPopupControl can be closed, otherwise false. + + + + Executes when a key is pressed. + + An instance of the + struct which contains the key information. + A boolean value that determines whether the + IPopupControl processes the message. + + + + Callback for handling the WM_MOUSEWHEEL message. + + + + True if the message is processed, false otherwise. + + + + Gets a instance that represents + a collection of logical children of this IPopupControl. + The OwnerPopup property of these children would point + to this IPopupControl instance. + + + + + Gets the owner IPopupControl of this IPopupControl. + + + + + Gets the Bounds rectangle of the IPopupControl. + + + + + Gets the owner element of the IPopupControl. + + + + + Creates an instance of the RadPopupFormBase class. + + + + + Shows the popup based on the value + set to its Location property. + + + + + Shows the popup at the location passed + as a parameter. The location is in screen coordinates + + An instance of the struct that represents the location. + + + + Shows the control based on the screen rectangle + of a given control. + + The control which defines the location of the popup. + + + + Closes the popup. + + + + + Fires when the popup is opened. + + + + + Fires when the popup is about to open. + + A CancelEventArgs object that contains information about the event + + + + Fires when the popup is closed. + + A RadPopupClosedEventArgs instance + that contains information about what caused the popup to close. + + + + Fires when the popup is about to close. + + A RadPopupClosingEventArgs instance that + contains information about the event + + + + Updates the Aero effects support upon property change. + + + + + Updates the location of the popup based on the + alignment rectangle and the current alignment settings. + You can adjust the alignment settings by using the + VerticalPopupAlignment and HorizontalPopupAlignment properties. + + The alignment rectangle based on which the popup is positioned. + + + + Updates the location of the popup based on the last used + alignment rectangle and the current alignment settings. + You can adjust the alignment settings by using the + VerticalPopupAlignment and HorizontalPopupAlignment properties. + + + + + This method returns a point which defines the position of the popup. + By default, aligns the popup based on the + and the current alignment settings. You can adjust the alignment settings + by settin the HorizontalPopupAlignment and VerticalPopupAlignment properties. + + The alignment rectangle based on which + the popup is aligned. + An instance of the struct + that represents the calculated position of the popup. + + + + This method returns a point which defines the position of the popup. + By default, aligns the popup based on the + and the current alignment settings. You can adjust the alignment settings + by settin the HorizontalPopupAlignment and VerticalPopupAlignment properties. + + An instance of the class + that represents the screen where the popup is about to be positioned. + The alignment rectangle based on which + the popup is aligned. + An instance of the struct + that represents the calculated position of the popup. + + + + Gets the screen on which the popup will be displayed. + + The alignment rectangle for the popup. + An instance of the class that represents + the screen where the popup will be displayed. + + + + Gets an instance of the class + that represents the screen where the popup is displayed. + + + + + Gets a which represents the available bounds for the popup to show. + By default this method returns the bounds of the screen. + + An instance of the class that represents + the active screen where the popup is about to be shown. + An instance of the struct that represents the + available bounds for the popup based on the active screen. + + + + Calculates the horizontal position of the popup + according to the current + and . + + The screen in which the popup will be aligned. + The alignment rectangle of the popup. + The calculated location that will be corrected if needed. + An instance of the struct that represents the corrected location of the popup + + + + Calculates the vertical position of the popup + according to the current + and . + + The screen in which the popup will be aligned. + The alignment rectangle of the popup. + The calculated location that will be corrected if needed. + An integer that represents the corrected vertical location of the popup + + + + Calculates the horizontal popup location based on the . + This method uses the HorizontalPopupAlignment property setting. + + An instance of the struct + that represents the alignment rectangle. + Returns an integer that represents the X coordinate of the popup. + + + + Calculates the vertical popup location based on the . + This method uses the VerticalPopupAlignment property setting. + + An instance of the struct + that represents the alignment rectangle. + Returns an integer that represents the Y coordinate of the popup. + + + + Fires when a drop-down animation is about to begin. + + + + + This method is executed when the popup needs to receive manual horizontal alignment. + This can happen when there is no reasonable possibility for the + alignment routines to define a proper horizontal position for the popup. + In this way the developer is enabled to define a horizontal position + according to their preferences. + + The proposed alignment rectangle with screen coordinates.. + The proposed coordinates. + The proposed available space for the popup.. + An instance of the struct that represents the location of the popup. + + + + Checks whether the current alignment rectangle intersects with the popup's bounds + according to a given popup location. + + An instance of the struct that represents + the current alignment rectangle. + An instance of the struct that represents the proposed popup location. + An instance of the struct that represents the available bounds on the screen. + An instance of the struct that represents the result of the operation. + + + + This method is executed when the popup needs to receive manual vertical alignment. + This can happen when there is no reasonable possibility for the + alignment routines to define a proper vertical position for the popup. + In this way the developer is enabled to define a vertical position + according to their preferences. + + The proposed alignment rectangle with screen coordinates.. + The proposed coordinates. + The proposed available space for the popup.. + An instance of the struct that represents the location of the popup. + + + + Shows the popup. + + The alignment rectangle. + + + + Closes the popup. + + The info. + + + + Called when the popup is closing. + + The info. + + + + + Called when popup is closed. + + The info. + + + + Closes the IPopupControl. + + + + + + This method determines whether the IPopupControl can be closed. + Used in the PopupManager class to prevent the IPopupControl from closing + in specific occasions. + + The reason why the IPopupControl is closed. + + True if the IPopupControl can be closed, otherwise false. + + + + + Executes when a key is pressed. + + An instance of the + struct which contains the key information. + + A boolean value that determines whether the + IPopupControl processes the message. + + + + + Determines whether the MouseWheel event is handled by the popup. + + + + + + + + Raises the MouseWheel event. + + + + + + Gets or sets the direction of the drop-down + animation. + + + + + Gets or sets the easing type for the drop down animations. + + + + + Gets or sets the count of the frames of the drop down animation. + + + + + Gets or sets a bool value determining + whether popup animation is enabled. + + + + + Gets or sets a value determining what animation type to use when showing the popup. + + + + + Gets or sets the frame count + for the fade animation. + + + + + Gets or sets the time interval for each fade animation frame. + + + + + Gets or sets a float value that determines the opacity of the popup. + This property accepts values from 0.0 to 1.0. For example, + to make the popup semi-transparent, set the property to 0.5. + + + + + Gets or sets a boolean value which determines + whether the popup drops a shadow. + + + + + Enables the support for Windows Vista DWM effects. + + + + + Gets or sets a value indicating the type + of the fade animation. + + + + + Gets or sets a value from the enum + which defines how the size of the popup is fit to the currently active screen. + + + + + Gets or sets a value from the enum + which determines what part of the screen is considered when positioning the popup. + + + + + Gets or sets a value from the which defines how the popup will be positioned according to the + alignment rectangle when its location cannot be adjusted so that it meets all popup alignment and alignment correction mode requirements. + + + + + Defines how the popup will be horizontally aligned in case of lack of + screen space. + + + + + Defines how the popup will be vertically aligned in case of lack of + screen space. + + + + + Gets or sets a value that defines the vertical alignment + of the popup based on the alignment rectangle passed + in the ShowPopup method. + + + + + Gets or sets a value that defines the horizontal alignment + of the popup based on the alignment rectangle passed + in the ShowPopup method. + + + + + Gets the RadElement that owns this popup. + + + + + + + + + + Gets a instance that represents + a collection of logical children of this IPopupControl. + The OwnerPopup property of these children would point + to this IPopupControl instance. + + + + + Occurs when the mouse pointer is moved over the element. + + + + + Fires when a fade animation has finished. The + event args contain information about the type of the animation. + + + + + Fires when the popup-form is about to be opened. + + + + + Fires when the popup-form is opened. + + + + + Fires when the popup is about to be closed. + + + + + Fires when the popup is closed. + + + + + Creates an instance of the PopupAnimationProperties class. + This class encapsulates a WindowAnimationEngine instance + and exposes its properties. + + The WindowAnimationEngine instance. + + + + Gets or sets the direction of the drop-down animation. + + + + + Gets or sets the count of the frames of the animation. + + + + + Gets or sets the easing type of the animation. + + + + + Gets an integer value representing the animation + step. + + + + + Gets the + instance associated with the AnimationProperties instance. + + + + + Gets a boolean value indicating whether the popup is visible. + + + + + Gets menu items collection + + + + + Get/Set minimum value allowed for size + + + + + Get/Set maximum value allowed for size + + + + + Initializes a new instance of the RadDropDownMenu class + + + + + Creates an instance of the RadDropDownMenu class. + + An instance of the RadElement class + that represents the owner of this drop down menu + + + + Displays the RadDropDownMenu in its default position. + + + + + Displays the RadDropDownMenu relative to the specified screen location. + + The horizontal screen coordinate, in pixels. + The vertical screen coordinate, in pixels. + + + + Displays the RadDropDownMenu relative to the specified screen location. + + The horizontal and vertical location of the screen's upper-left corner, in pixels. + + + + Positions the ToolStripDropDown relative to the specified screen location and with the specified direction. + + The horizontal and vertical location of the screen's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the RadDropDownMenu relative to the specified control location. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal coordinate relative to the control, in pixels. + The vertical coordinate relative to the control, in pixels. + + + + Positions the RadDropDownMenu relative to the specified control location. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the reference control's upper-left corner, in pixels. + + + + Positions the RadDropDownMenu relative to the specified control location and with the specified direction. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the reference control's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the RadDropDownMenu relative to the specified RadItem location. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal coordinate relative to the control, in pixels. + The vertical coordinate relative to the control, in pixels. + + + + Positions the RadDropDownMenu relative to the specified RadItem location. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the RadItem's upper-left corner, in pixels. + + + + Positions the RadDropDownMenu relative to the specified RadItem location and with the specified direction. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the RadItem's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the RadDropDownMenu relative to the specified RadItem location and + with specified direction and offset according to the owner. + + The RadItem that is the reference point for the RadDropDownMenu position. + Specifies the offset from the owner in pixels. + One of the RadDirection values. + + + + Gets the item that has been clicked. This property is valid when the drop-down is closed by an item click. + + + + + Gets or sets the popup element. + + + + + Indicates whether the DropDown contains one or two cloumns of items. + + + + + Gets or sets menu header column text + + + + + Gets or sets menu header column image + + + + + Represents a combo box element. + + + + + Initializes a new instance of the RadComboBoxElement class. + + + + + Gets the text of the specified item. + + + + + Raises the CaseSensitiveChanged event. + + + + + Raises the DropDownStyleChanged event. + + + + + Raises the SelectedIndexChanged event. + + + + + Raises the SelectedValueChanged event. + + + + + Raises the SortedChanged event. + + + + + Processes the Enter key + + An instance of + + + + Processes the Escape key + + An instance of + true if the event is processed, false otherwise + + + + Finds the first item in the combo box that starts with the specified string. + + The String to search for. + The first RadCOmboBoxItem found; returns null if no match is found. + + + + Finds the first item in the combo box that matches the specified string. + + The String to search for. + The first item found; returns null if no match is found. + + + + Finds the index of the item with the specified text. The passed argument + is compared with the DisplayMember value for each item in the items collection. + + The text of the item which index is to be acquired. + The index of the item if found, otherwise -1. + + + + Call BeginUpdate at the begining of a block that makes many modifications in the GUI + + + + + + Call BeginUpdate at the end of a block that makes many modifications in the GUI + + + + + + Call the GetItemHeight member function to retrieve the height of list items in a combo box. + + Specifies the item of the combo box whose height is to be retrieved. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the combo box. + + + + + Gets a layout panel that contains editor and arrow panel + + + + + LimitToList Property + + + + + Gets a value indicating whether a keyboard command has been issued. + + + + + Gets or set the value in Milliseconds indicating delay between last key press and filtering operation + + + + + Gets a value indicating whether the drop down is shown. + + + + + Gets the arrow button element. + + + + + Gets the fill element. + + + + + Gets the border element. + + + + + Specifies the mode for the automatic completion feature used in the ComboBox + and the TextBox controls. + + + + + Gets or sets a value indicating whether string comparisons are case-sensitive. + + + + + Rotate items on double click in the edit box part + + + + + Gets or sets a boolean value determining whether the user can scroll through the items + when the popup is closed by using the mouse wheel. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + + + + + Gets or sets a value specifying the style of the combo box. + + + + + Gets whether the text input control of the combo box is in editable mode. + + + + + Gets or sets the width of the of the drop-down portion of a combo box. + + + + + Gets or sets a value indicating whether the control should show or not partial items. + + + + + Gets a collection representing the items contained in this ComboBox. + + + + + Gets a value indicating whether the combo box is displaying its drop-down portion. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the ComboBox. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets the currently selected item. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets or sets the text that is selected in the editable portion of the ComboBox. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets a value indicating the sort style the of items in the combo box. + + + + Gets or sets the displayed text. + + + + Gets or sets a value indicating whether the ComboBox DropDown will be enabled when it shows. + + + + + Gets or sets the type of the DropDown animation. + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + Gets the TextBoxElement which is used in the ComboBox. + + + + + Gets or sets a value indicating whether RadScrollViewer uses UI virtualization. + + + + + Gets or sets the property to display. + + + + + Gets or sets the data source. + + + + + Gets or sets the IFormatProvider that provides custom formatting behavior. + + + + + Gets or sets the format-specifier characters that indicate how a value is to be displayed. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMember property. + + + + + Gets or sets value specifying the currently selected item. + + + + + Gets or sets t he property to use as the actual value for the items. + + + + + Occurs when the CaseSensitive property has changed. + + + + + Occurs when the SelectedIndex property has changed. + + + + Fires when the selected value is changed. + + + + Occurs when the Sorted property has changed. + + + + + Represents a date time editor. + + + + + Abstract class that represents basic logic for editor + + + + + Sets the IsInBeginEditMode property. This method is used internally. + + The new value of the IsInBeginEditMode property + + + + Initializes the editor. Used internally in RadGridView. + + The owner of this editor. + The value of the editor. + + + + Starts the editing process. Used internally in RadGridView. + + + + + Finishes the editing process. Used internally in RadGridView. + + + + + + Validates the value currently entered in the editor. + + + + + + Begins the editor initialization process. + + + + + Finishes the editor initialization process. + + + + + Fires the event. + + A that contains the event data. + + + + Fires the event. + + + + + Fires the event. + + A that contains the event data. + + + + Fires the event. + + + + + Fires the event. + + + + + + Creates a new editor element. + + a if successful + + + + Gets a value indicating whether this is the active editor in grid. + + + + + Gets a value indicating whether the editor is initializing. + + + + + Gets a value indicating whether the editor is in BeginMode mode. + + + + + Gets the element that owns this editor. + + + + + Gets a value indicating whether the editor is in RightToLeft mode. + + + + + Gets the type of the editor value + + + + + Gets or sets the editor value. + + + + + Gets a value indicating whether the editor value is modified. + + + + + Gets the associated with this editor. + + + + + Fires when changing the value of the editor. + + + + + Fires when the editor value has been changed. + + + + + Fires when the editor is validating. + + + + + Fires when the editor has finished validating. + + + + + Fires when a validation error is occurred. + + + + + Initializes a new instance of the RadDateTimeEditor class. + + + + + The DateTime value assigned to the date picker when the Value is null + + + + + Gets or sets the minimum date and time that can be selected in the editor. + + + + + Gets or sets the maximum date and time that can be selected in the editor. + + + + + Gets or sets the custom date/time format string. + + + + + Represents a date time editor element used in RadDateTimeEditor + + + + + Represents the RadDateTimePickerElement class + + + + + Represents the IsDropDownShown dependancy property + + + + + Represents RadDateTimePickerElement's constructor + + + + + Represents RadDateTimePickerElement's constructor + + + + + + Creates a new instance of + + + + + Gets the maximum date value allowed for the DateTimePicker control. + + + + + Gets the minimum date value allowed for the DateTimePicker control. + + + + + Gets the date as a string + + string value + + + + Resets the current value + + + + + Gets the current behavior of the control. By default it is showing a calendar in the drop down + + + + + + Sets the current value to behave as a null value + + + + + Raises the FormatChanged event + + + + + + Raises the ValueChanged event + + + + + + Raises the ValueChanged event + + + + + + Raises the NullableValueChanged event + + + + + + Raises the PropertyChanged event + + + + + + Sets the behavior of the date picker + + + + + + Closes the popup if it is open, or shows the popup if it is closed. + + + + + Gets an instance of RadTextBoxElement + + + + Gets or sets a value indicating whether RadDateTimePicker is read-only. + + true if the RadDateTimePicker is read-only; otherwise, false. The default is + false. + 1 + + + + Indicates whether a spin box rather than a drop down calendar is displayed for editing the control's value + + + + + Gets or sets the CultureInfo supported by this RadCalendar object. + Describes the names of the culture, the writing system, and + the calendar used, as well as access to culture-specific objects that provide + methods for common operations, such as formatting dates and sorting strings. + + + The culture names follow the RFC 1766 standard in the format + "<languagecode2>-<country/regioncode2>", where <languagecode2> is + a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> + is an uppercase two-letter code derived from ISO 3166. For example, U.S. English is + "en-US". In cases where a two-letter language code is not available, the + three-letter code derived from ISO 639-2 is used; for example, the three-letter + code "div" is used for cultures that use the Dhivehi language. Some culture names + have suffixes that specify the script; for example, "-Cyrl" specifies the Cyrillic + script, "-Latn" specifies the Latin script. + The following predefined CultureInfo names and identifiers are + accepted and used by this class and other classes in the System.Globalization + namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Culture NameCulture IdentifierLanguage-Country/Region
"" (empty string)0x007Finvariant culture
af0x0036Afrikaans
af-ZA0x0436Afrikaans - South Africa
sq0x001CAlbanian
sq-AL0x041CAlbanian - Albania
ar0x0001Arabic
ar-DZ0x1401Arabic - Algeria
ar-BH0x3C01Arabic - Bahrain
ar-EG0x0C01Arabic - Egypt
ar-IQ0x0801Arabic - Iraq
ar-JO0x2C01Arabic - Jordan
ar-KW0x3401Arabic - Kuwait
ar-LB0x3001Arabic - Lebanon
ar-LY0x1001Arabic - Libya
ar-MA0x1801Arabic - Morocco
ar-OM0x2001Arabic - Oman
ar-QA0x4001Arabic - Qatar
ar-SA0x0401Arabic - Saudi Arabia
ar-SY0x2801Arabic - Syria
ar-TN0x1C01Arabic - Tunisia
ar-AE0x3801Arabic - United Arab Emirates
ar-YE0x2401Arabic - Yemen
hy0x002BArmenian
hy-AM0x042BArmenian - Armenia
az0x002CAzeri
az-AZ-Cyrl0x082CAzeri (Cyrillic) - Azerbaijan
az-AZ-Latn0x042CAzeri (Latin) - Azerbaijan
eu0x002DBasque
eu-ES0x042DBasque - Basque
be0x0023Belarusian
be-BY0x0423Belarusian - Belarus
bg0x0002Bulgarian
bg-BG0x0402Bulgarian - Bulgaria
ca0x0003Catalan
ca-ES0x0403Catalan - Catalan
zh-HK0x0C04Chinese - Hong Kong SAR
zh-MO0x1404Chinese - Macau SAR
zh-CN0x0804Chinese - China
zh-CHS0x0004Chinese (Simplified)
zh-SG0x1004Chinese - Singapore
zh-TW0x0404Chinese - Taiwan
zh-CHT0x7C04Chinese (Traditional)
hr0x001ACroatian
hr-HR0x041ACroatian - Croatia
cs0x0005Czech
cs-CZ0x0405Czech - Czech Republic
da0x0006Danish
da-DK0x0406Danish - Denmark
div0x0065Dhivehi
div-MV0x0465Dhivehi - Maldives
nl0x0013Dutch
nl-BE0x0813Dutch - Belgium
nl-NL0x0413Dutch - The Netherlands
en0x0009English
en-AU0x0C09English - Australia
en-BZ0x2809English - Belize
en-CA0x1009English - Canada
en-CB0x2409English - Caribbean
en-IE0x1809English - Ireland
en-JM0x2009English - Jamaica
en-NZ0x1409English - New Zealand
en-PH0x3409English - Philippines
en-ZA0x1C09English - South Africa
en-TT0x2C09English - Trinidad and Tobago
en-GB0x0809English - United Kingdom
en-US0x0409English - United States
en-ZW0x3009English - Zimbabwe
et0x0025Estonian
et-EE0x0425Estonian - Estonia
fo0x0038Faroese
fo-FO0x0438Faroese - Faroe Islands
fa0x0029Farsi
fa-IR0x0429Farsi - Iran
fi0x000BFinnish
fi-FI0x040BFinnish - Finland
fr0x000CFrench
fr-BE0x080CFrench - Belgium
fr-CA0x0C0CFrench - Canada
fr-FR0x040CFrench - France
fr-LU0x140CFrench - Luxembourg
fr-MC0x180CFrench - Monaco
fr-CH0x100CFrench - Switzerland
gl0x0056Galician
gl-ES0x0456Galician - Galician
ka0x0037Georgian
ka-GE0x0437Georgian - Georgia
de0x0007German
de-AT0x0C07German - Austria
de-DE0x0407German - Germany
de-LI0x1407German - Liechtenstein
de-LU0x1007German - Luxembourg
de-CH0x0807German - Switzerland
el0x0008Greek
el-GR0x0408Greek - Greece
gu0x0047Gujarati
gu-IN0x0447Gujarati - India
he0x000DHebrew
he-IL0x040DHebrew - Israel
hi0x0039Hindi
hi-IN0x0439Hindi - India
hu0x000EHungarian
hu-HU0x040EHungarian - Hungary
is0x000FIcelandic
is-IS0x040FIcelandic - Iceland
id0x0021Indonesian
id-ID0x0421Indonesian - Indonesia
it0x0010Italian
it-IT0x0410Italian - Italy
it-CH0x0810Italian - Switzerland
ja0x0011Japanese
ja-JP0x0411Japanese - Japan
kn0x004BKannada
kn-IN0x044BKannada - India
kk0x003FKazakh
kk-KZ0x043FKazakh - Kazakhstan
kok0x0057Konkani
kok-IN0x0457Konkani - India
ko0x0012Korean
ko-KR0x0412Korean - Korea
ky0x0040Kyrgyz
ky-KZ0x0440Kyrgyz - Kazakhstan
lv0x0026Latvian
lv-LV0x0426Latvian - Latvia
lt0x0027Lithuanian
lt-LT0x0427Lithuanian - Lithuania
mk0x002FMacedonian
mk-MK0x042FMacedonian - FYROM
ms0x003EMalay
ms-BN0x083EMalay - Brunei
ms-MY0x043EMalay - Malaysia
mr0x004EMarathi
mr-IN0x044EMarathi - India
mn0x0050Mongolian
mn-MN0x0450Mongolian - Mongolia
no0x0014Norwegian
nb-NO0x0414Norwegian (Bokmål) - Norway
nn-NO0x0814Norwegian (Nynorsk) - Norway
pl0x0015Polish
pl-PL0x0415Polish - Poland
pt0x0016Portuguese
pt-BR0x0416Portuguese - Brazil
pt-PT0x0816Portuguese - Portugal
pa0x0046Punjabi
pa-IN0x0446Punjabi - India
ro0x0018Romanian
ro-RO0x0418Romanian - Romania
ru0x0019Russian
ru-RU0x0419Russian - Russia
sa0x004FSanskrit
sa-IN0x044FSanskrit - India
sr-SP-Cyrl0x0C1ASerbian (Cyrillic) - Serbia
sr-SP-Latn0x081ASerbian (Latin) - Serbia
sk0x001BSlovak
sk-SK0x041BSlovak - Slovakia
sl0x0024Slovenian
sl-SI0x0424Slovenian - Slovenia
es0x000ASpanish
es-AR0x2C0ASpanish - Argentina
es-BO0x400ASpanish - Bolivia
es-CL0x340ASpanish - Chile
es-CO0x240ASpanish - Colombia
es-CR0x140ASpanish - Costa Rica
es-DO0x1C0ASpanish - Dominican Republic
es-EC0x300ASpanish - Ecuador
es-SV0x440ASpanish - El Salvador
es-GT0x100ASpanish - Guatemala
es-HN0x480ASpanish - Honduras
es-MX0x080ASpanish - Mexico
es-NI0x4C0ASpanish - Nicaragua
es-PA0x180ASpanish - Panama
es-PY0x3C0ASpanish - Paraguay
es-PE0x280ASpanish - Peru
es-PR0x500ASpanish - Puerto Rico
es-ES0x0C0ASpanish - Spain
es-UY0x380ASpanish - Uruguay
es-VE0x200ASpanish - Venezuela
sw0x0041Swahili
sw-KE0x0441Swahili - Kenya
sv0x001DSwedish
sv-FI0x081DSwedish - Finland
sv-SE0x041DSwedish - Sweden
syr0x005ASyriac
syr-SY0x045ASyriac - Syria
ta0x0049Tamil
ta-IN0x0449Tamil - India
tt0x0044Tatar
tt-RU0x0444Tatar - Russia
te0x004ATelugu
te-IN0x044ATelugu - India
th0x001EThai
th-TH0x041EThai - Thailand
tr0x001FTurkish
tr-TR0x041FTurkish - Turkey
uk0x0022Ukrainian
uk-UA0x0422Ukrainian - Ukraine
ur0x0020Urdu
ur-PK0x0420Urdu - Pakistan
uz0x0043Uzbek
uz-UZ-Cyrl0x0843Uzbek (Cyrillic) - Uzbekistan
uz-UZ-Latn0x0443Uzbek (Latin) - Uzbekistan
vi0x002AVietnamese
vi-VN0x042AVietnamese - Vietnam
+
+
+ + + Gets the default null date + + + + + The DateTime value assigned to the date picker when the Value is null + + + + + When ShowCheckBox is true, determines that the user has selected a value + + + + + Gets or sets the custom date/time format string. + + + + + Gets or sets the format of the date and time displayed in the control. + + + + + Gets or sets the location of the drop down showing the calendar + + + + + Gets or sets the size of the calendar in the drop down + + + + + Indicates whether a check box is displayed in the control. When the check box is unchecked no value is selected + + + + + Gets or sets whether the current time is shown. + + + + + Set ot get which part of the datetime structure will be included when checking for NullValue. + + + + + Gets or sets the date/time value assigned to the control. + + + + + Gets or sets the text that is displayed when the DateTimePicker contains a null + reference. + + + + + Gets the maximum date value allowed for the DateTimePicker control. + + + + + Gets the minimum date value allowed for the DateTimePicker control. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Occurs when MaskProvider has been created + This event will be fired multiple times because + the provider is created when some properties changed + Properties are: Mask, Culture, MaskType and more. + + + + + Occurs when the value of the control has changed + + + + + Occurs when the value of the control has changed + + + + + Occurs when the format of the control has changed + + + + + Occurs when the value of the control is changing + + + + + Occurs when the drop down is opened + + + + + Occurs when the drop down is opening + + + + + Occurs when the drop down is closing + + + + + Occurs when the drop down is closed + + + + + Occurs before the CheckBox's state changes. + + + + + Occurs when the CheckBox's state changes. + + + + + Occurs when the value of the checkbox in the editor is changed + + + + + Get nested RadCalendar in the popup part of the RadDateTimePicker + + + + + + Show or Hide the nested TimePicker element in the popup part of the RadDateTimePicker + + + + + + Represents a DropDownList editor. + + + + + Initializes a new instance of the RadDropDownListEditor class. + + + + + Gets or sets a value specifying the style of the DropDownList. + + + + + Gets or sets the drop down sizing mode. The mode can be: horizontal, veritcal or a combination of them. + + + + + Represents a DropDownList editor element. + + + + + Represents a numeric up/down editor. + + + + + Gets or sets the minimum value that could be set in the editor. + + + + + Gets or sets the maximum value that could be set in the editor. + + + + + Gets or sets the value which is added to/subtracted from the current value of the editor. + + + + + Gets or sets the number of decimal places to display in the editor. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the editor. + + + + + Gets or sets the type of the value to use in the editor. + + + + + Represents a numeric up/down editor element. + + + + + Represents a numeric up/down element. The RadSpinEditor + class is a simple wrapper for the numeric up/down element class. The + RadSpinEdit acts to transfer events to and from its + corresponding numeric up/down element instance. The numeric up/down element which is + essentially the numeric up/down element control may be nested in + other telerik controls. + + + + + create child elements + + + + + Creates the button element for the increment button. + + A to be placed in the . + + + + Creates the button element for the decrement button. + + A to be placed in the . + + + + increase or decrease value in the numeric up/down with step value + + + + + + This method is used internally! + + the new flag state. + + + + This method is used internally! + + the new flag state. + + + + Gets or Sets represent the Value in the numeric up/down - this value can be NULL + + + + + Gets or set how to interpret the empty text in the editor portion of the control + if true the empty value will set NULL in NullableValue property + + + + + Gets reference to the SpinControl's Down Button + + + + + Gets reference to the SpinControl's Up Button + + + + + Gets or sets the number of decimal places to display in the RadSpinEdit + + + + + represent the default value in the numeric up/down + + + + + Gets or sets a value indicating whether the RadSpinEdit should display the value it contains in hexadecimal format. + + + + + Gets or sets a value indicating whether the user can use the UP ARROW and DOWN ARROW keys to select values. + + + + + Gets or sets a value indicating whether the text can be changed by the use of the up or down buttons only. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the RadSpinEdit + + + + + Gets contained in the spin editor. + + + + + Gets or sets the minimum value that could be set in the spin editor + + + + + allow element to be stretched vertically + + + + + represent the decimal in the numeric up/down + + + + + Gets or sets the value which is added to/subtracted from the current value of the spin editor. + + + + + Gets or sets the minimum value that could be set in the spin editor + + + + + Gets or sets whether RadSpinEditor will be used as a numeric textbox. + + + + + Gets or sets whether by right-mouse clicking the up/down button you set the max/min value respectively. + + + + + set or get the Max numeric value in the numeric up/down + + + + + Gets or sets a value indicating whether the border is shown. + + + + + Gets or sets a value indicating that value will revert to minimum value after reaching maximum and to maximum after reaching minimum. + + + + + Gets or sets a value indicating whether the user can change the value with mouse wheel. + + + true if [enable mouse wheel]; otherwise, false. + + + + + Occurs before the value of the SpinEdit is changed. + + + + + Occurs when the value is being changed. Cancelable event. + + + + + Occurs when the user presses a key. + + + + + Initializes a new instance of the GridSpinEditorElement class. + + + + + Represents a text editor. + + + + + Gets or sets the null text for the editor. + + + + + Indicates if all charactes should be left alone or converted + to upper or lower case + + + + + The text could span more than a line when the value is true + + + + + Specifies the maximum length of characters which could be entered + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Represents a text editor. + + + + + Initializes a new instance of the RadTextBoxEditor class. + + + + + Gets or sets the null value for the editor. + + + + + Indicates if all charactes should be left alone or converted + to upper or lower case + + + + + The text could span more than a line when the value is true + + + + + Specifies the maximum length of characters which could be entered + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Represents a text box editor element. + + + + + Represents a text box element. The RadTextBox + class is a simple wrapper for the RadTextBoxElement class. All UI and logic + functionality is implemented in the RadTextBoxElement class. + RadTextBox class acts to transfer events to and from + its corresponding RadTextBoxElement instance. The RadTextBoxElement may be nested + in other telerik controls. + + + + Initializes a new instance of the RadTextBoxElement class. + + + + Initializes a new instance of RadTextBoxElemenet + + + + + + Raises the MultilineChanged event. + + + + + Raises the ReadOnlyChanged event. + + + + + Raises the TextChanging event. + + + + + Raises the TextChanged event. + + + + + Raises the TextAlignChanged event. + + + + + Raises the ModifiedChanged event. + + + + + Raises the HideSelectionChanged event. + + + + + Raises the AcceptsTabChanged event. + + + + + Gets an instance of the corresponding RadTextBoxItem + + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + Gets or sets a value indicating whether the border is shown. + + + + Gets or sets a value indicating whether the clear button is shown. + + + + + Gets or sets + the character used to mask characters of a password in a single-line TextBox + control. + + + + + Gets or sets the color of prompt text that is displayed when the TextBox contains no text. + + + + + Occurs when the value of the AcceptsTab property has changed. + + + + + Occurs when the value of the HideSelection property changes. + + + + + Occurs when the value of the Modified property has changed. + + + + + Occurs when the value of the Multiline property has changed. + + + + + Occurs when the ReadOnly property changes. + + + + + Occurs when the value of the TextAlign property has changed. + + + + + Occurs + when text is being changed. + + + + + Occurs + when text has changed. + + + + + Represents a TimePicker editor. + + + + + This class manages all opened popups per UI thread. + + + + + Adds a popup form to the popups of the PopupManager and + registers a message hook if the form provided is the first one. + + The popup to add. + + + + Removes the provided popup from the popups of the PopupManager and unregisters the message hook + if there are no more popups. + + The popup to remove. + + + + Attempts to close an implementation. + + The popup to close. + + + + Closes all popups managed by the PopupManager. + + Clarification why all popups need to be closed. + + + + Closes all popups from a leaf to the root. + + The reason why popups are closed. + The leaf popup from which to start closing the hierarchy. + + + + Checks if the PopupManager monitors the provided popup. + + The popup to check for. + + + + + This method begins to close all IPopupControl instances + starting from the end of the collection. If a IPopupControl + cannot be closed, the iteration stops and all popups previously added + to the collection will not be closed. + + + + + Gets the count of the IPopupControl instances + currently registered in the PopupManager. + + + + + The popup which was last activated. + + + + + Gets the only instance of the PopupManager class. Other instances can not be created. + + + + + Represents a calculator editor element used in calculator editors. + + + + + Encapsulates the UI representation and functionality of RadCalculatorDropDown. + + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + + + + Gets or sets the calculator value. + + + + + Gets or sets the editor content element. + + + + + Gets or sets the arrow button. + + + + + Gets or sets the popup. + + + + + Gets the content element. + + + + + Gets the memory element. + + + + + Gets or sets the default popup width. + + + + + Gets or sets the default popup height. + + + + + Gets or sets the minimum popup width. + + + + + Gets or sets the minimum popup height. + + + + + Gets RadCalculatorElement FillPrimitive + + + + + Gets the RadCalculatorElement BorderPrimitive + + + + + Gets or sets a value indicating whether RadCalculatorDropDownElement is read only. + + + true if RadCalculatorDropDownElement is read only; otherwise, false. + + + + + Fires when the value of the calculator is changing. + + + + + Fires when the value of the calculator is changing. + + + + + Fires after the color dialog is closed. + + The event arguments. + + + + Fires right after the editor value is changed. + + The event arguments. + + + + Fires right before the editor value is changed. + + The event arguments. + + + + Fires when the is clicked. + + The event arguments. + + + + Gets the value of the editor. + + + + + Gets the that shows the color in the editor. + + + + + Gets or set the that is displayed when the button is clicked. + + + + + Gets the that opens the . + + + + + Gets or sets a value indicating if the user is allowed to type in the text field. + + + + + Occurs when the value is being changed. Cancelable event. + + + + + Occurs after the editor has changed the value during the editing process. + + + + + Occurs when the dialog window is closed. + + + + + Represents a date time editor element used in date time editors. + + + + + Represents a class that handles append auto-complete mode in + + + + + Owner Property + + + + + LimitToList Property + + + + + Initializes a new instance of the class. + + The element. + + + + Sets the editable element text. + + Index of the item. + + + + Represents a DropDownList element used in drop down list editors. + + + + + Constructor + + There is no mask applied by default + + + + handles the key press + + + + + + Fires the ValueChanged event + + + + + + Fires the ValueChanging event + + + + + + Determines whether to add minus sign to the value. + + + + + + + Format the specified text using the specified mask + + The mask to use + The text to format + The formatted text string + There are four overloads for this method. + + + + Format the specified text using the specified mask and prompt + character. + + The mask to use. + The text to format. + The prompt character to use for missing + characters. If a null character ('\x0') is specified, prompt + characters are omitted. + The formatted text string. + + + + Format the specified text using the specified mask, prompt + character, and culture information. + + The mask to use. + The text to format. + The prompt character to use for missing + characters. If a null character ('\x0') is specified, prompt + characters are omitted. + The culture information to use. If null, + the current culture is used. + The formatted text string. + + + + Format the specified text using the specified mask, prompt + character, and culture information and return the result + values. + + The mask to use. + The text to format. + The prompt character to use for missing + characters. If a null character ('\x0') is specified, prompt + characters are omitted. + The culture information to use. If null, + the current culture is used. + The result of formatting the text. + The position related to the result + hint. + The formatted text string. + + + + Gets the text which is in the clipboard + + + + + + This is used to set or get the label text. + + When set, the text is formatted according to the current + masked text provider settings. If the mask is empty, the text is + set as-is. When retrieved, the text is returned in its formatted + state. Use to get the text without + the mask applied. + + + + Represent the RadMaskedEditBox ContextMenu + + + + Gets or sets a value that determines whether literals and prompt characters + are included in the formatted string. + One of the values. The + default is . + Property + set with a value that is not + valid. + + + + This returns a clone of the masked text provider currently being + used by the masked label control. + + + + + This returns the result hint for the last assignment to the + property. + + If the assigned text could not be properly formatted, + this will contain a hint as to why not. Positive values + indicate success. Negative values indicate failure. + + + + This returns the result hint position for the last assignment to + the property. + + If the assigned text could not be properly formatted, + this will contain the position of the first failure. + + + + This read-only property returns the unmasked copy of the text + + + + + This is used to set or get the culture information associated with + the masked label. + + This is thrown if the + culture value is null + + + + This is used to set or get the mask for the label text + + + + + This is used to set or get the prompt character for display + in the label text. + + The default is an underscore (_). + + + + This is used to set or get whether or not prompt characters are + also displayed in the label text. + + By default, prompt characters are not shown. + + + + Gets or sets the mask type. + + + + + Gets or sets the edited value + + + + + Gets or set a value indicating whether end users can set the value to NULL. + This can be achieved by pressing Ctrl + Del or Ctrl + 0 key combinations. + + + + + Occurs when MaskProvider has been created + This event will be fired multiple times because + the provider is created when some properties changed + Properties are: Mask, Culture, MaskType and more. + + + + + Occurs when the editing value has been changed + + + + + Occurs when the editing value is changing. + + + + + Gets or sets the mask type. + + + + + Represents a numeric up/down element used by spin editors.. + + + + + Initializes a new instance of the RadSpinEditorElement class. + + + + + Represents a textbox editor element used in RadTextBoxEditor + + + + + Represent a continuous band in Linear Gauge + + + + Gets or sets a value indicating element visibility. + + Setting this property affects also the children of the element. Collapsed means the element and its children would not be painted and would not be + calculated in the layout. + This property has no effect in design-time on objects. + + + + + Indicates whether the RangeStart property is bound to the gauge's Value. + + + + + Indicates whether the RangeEnd property is bound to the gauge's Value. + + + + + Specifies the start range offset of the arc according to the gauge's value. + + + + + Specifies the end range offset of the arc according to the gauge's value. + + + + + The RadLinearGauge control is designed to display a a single quantitative measure. + + + + + The RadLinearGauge control is designed to display a simple value within a definite range. + + + + XmlWriter to use by the built-in serializer + + + + Stores to a stream RadRadialGauge properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores to a file RadRadialGauge properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML reader, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + The ValueChanged event fires when the value is modified. + + + + + The OrientationChanged event fires when the orientation of the gauges is changed. + + + + + Specifies the gauge's end. + + + + + Specifies the gauge's start. + + + + + Specifies the gauge's value + + + + + Set or Get Gauge Orientation + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + Gets the serialization info for RadRadialGauge used by Save/Load loyout methods to persist grid settings to/from XML. + By default, or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + This portion of the bullet graph displays the primary data. + + + + + Presents a value which should be less visually dominant than the featured measure, but easy to see in relation to the featured measure. + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + The OrientationChanged event fires when the orientation of the gauges is changed. + + + + + The OrientationChanged event fires when the orientation of the gauges is changed. + + + + + Represents the scale labels. + + + + + Specifies the font size. Default value is 8. + + + + + Specifies the start value from which the labels are displayed. + + + + + Specifies the end value to which the labels are displayed. + + + + + Controls how far according to the gauge's arc the labels are rendered + + + + + Specifies the format of the label's value. + + + + + Controls how many labels will be displayed next ticks for the specified range. + + + + + Represent a continuous band in Linear Gauge + + + + + Indicates whether the RangeStart property is bound to the gauge's Value. + + + + + Indicates whether the RangeEnd property is bound to the gauge's Value. + + + + + Specifies the start range offset of the arc according to the gauge's value. + + + + + Specifies the end range offset of the arc according to the gauge's value. + + + + + Present additional information for the RadLinearGauge. + + + + + Specifies the label format. By default, it is set to #,##0.#. + + + + + Controls whether the specific ticks are circle or not. + + + + + Specifies the value offset of the needle according to the gauge's value. + + + + + Indicates whether the needle's value is bound to the gauge's Value. + + + + + Specifies the inner radius of the needle's start point. + + + + + Specifies the value with which the needle juts out from the center point. + + + + + Specifies the outer radius of the needle's start point. + + + + + Controls the needle width. + + + + + Specifies the needle's value. + + + + + Controls how long the needle will be rendered. + + + + + Present additional information for the RadLinearGauge, e.g. current value + + + + + Indicates whether the single label's text is bound to the gauge's Value. + + + + + Controls the label's location (x, y) according to the center point. LocationPercentage accepts values withing the range [(-1,-1), (1,1)]. + + + + + Specifies the label size. + + + + + Specifies the label format. By default, it is set to #,##0.#. + + + + + Represents the scale ticks. + + + + + Specifies at which index the visible ticks range will start. + + + + + Specifies at which index the visible ticks range will end. + + + + + Controls how far according to the gauge's arc the ticks will be rendered. + + + + + Specifies the width of ticks. + + + + + Specifies the color for the ticks + + + + + Specifies the ticks back length towards the center point. + + + + + Controls the ticks length. + + + + + Specifies how many ticks will be displayed. + + + + + Represent main needle element. This element is container for all other elements in the Gauge + + + + + The ValueChanged event fires when the value is modified. + + + + + The OrientationChanged event fires when the orientation of the gauges is changed. + + + + + Specifies the gauge's value + + + + + Set or Get Gauge Orientation + + + + + Represent a continuous band spanning the entire sweep angle. + + + + + Controls the radius of the arc. + + + + + The width of the arc. + + + + + The start of the arc. + + + + + The end value of the arc. + + + + + Indicates whether the RangeStart property is bound to the gauge's Value. + + + + + Indicates whether the RangeEnd property is bound to the gauge's Value. + + + + + Specifies the start range offset of the arc according to the gauge's value. + + + + + Specifies the end range offset of the arc according to the gauge's value. + + + + + Creates Star like shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Represents the scale labels displayed next to the ticks. + + + + + Specifies the font size. Default value is 8. + + + + + Specifies the start value from which the labels are displayed. + + + + + Specifies the end value to which the labels are displayed. + + + + + Controls how far according to the gauge's arc the labels are rendered + + + + + Specifies the format of the label's value. + + + + + Controls how many labels will be displayed next ticks for the specified range. + + + + + Represent a scale indicator that points to a value. + + + + + Specifies the value offset of the needle according to the gauge's value. + + + + + Indicates whether the needle's value is bound to the gauge's Value. + + + + + Specifies the inner radius of the needle's start point. + + + + + Specifies the value with which the needle juts out from the center point. + + + + + Specifies the outer radius of the needle's start point. + + + + + Controls the needle width. + + + + + Specifies the needle's value. + + + + + Controls how long the needle will be rendered. + + + + + Present additional information for the RadRadialGauge, e.g. current value + + + + + Indicates whether the single label's text is bound to the gauge's Value. + + + + + Controls the label's location (x, y) according to the center point. LocationPercentage accepts values withing the range [(-1,-1), (1,1)]. + + + + + Specifies the label size. + + + + + Specifies the label format. By default, it is set to #,##0.#. + + + + + Represents the scale ticks. + + + + + Specifies at which index the visible ticks range will start. + + + + + Specifies at which index the visible ticks range will end. + + + + + Controls how far according to the gauge's arc the ticks will be rendered. + + + + + Controls whether the specific ticks are circle or not. + + + + + Specifies the width of ticks. + + + + + Specifies the color for the ticks + + + + + Specifies the ticks back length towards the center point. + + + + + Controls the ticks length. + + + + + Specifies how many ticks will be displayed. + + + + + The RadRadialGauge control is designed to display a value within a definite range + + + + XmlWriter to use by the built-in serializer + + + + Stores to a stream RadRadialGauge properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores to a file RadRadialGauge properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML reader, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + The ValueChanged event fires when the value is modified. + + + + + Controls the RadRadialGauge's offset in vertical direction. + + + + + Controls the RadRadialGauge's offset in horizontal direction. + + + + + Specifies the gauge's value + + + + + Specifies the gauge's end. + + + + + Specifies the gauge's start. + + + + + Determines the angle value starting from the StartAngle to draw an arc in clockwise direction. + + + + + Determines the angle value starting from the StartAngle to draw an arc in clockwise direction. + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + Gets the serialization info for RadRadialGauge used by Save/Load loyout methods to persist grid settings to/from XML. + By default, or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + Represent main needle element. This element is container for all other elements in the Gauge + + + + + The ValueChanged event fires when the value is modified. + + + + + Specifies the gauge's value + + + + + Specifies the gauge's end. + + + + + Specifies the gauge's start. + + + + + Determines the angle value starting from the StartAngle to draw an arc in clockwise direction. + + + + + Determines the angle value starting from the StartAngle to draw an arc in clockwise direction. + + + + + Controls the RadRadialGauge's offset in vertical direction. + + + + + Controls the RadRadialGauge's offset in horizontal direction. + + + + + This class represents the custom editor + shown when the FadeAnimationType of the popup + is adjusted in the Visual Studio Designer. + + + + + Creates an instance of the FadeAnimationTypeEditorUI class. + This class represents the control used to set the + FadeAnimationType property while in the Visual Studio + Designer. + + The inital value of the property. + + + + Gets the result of the editor execution. + + + + + This class stores information about a close request sent to an . + The class stores the reason for the close request, information about the operation result, + and an instance to a context. + + + + + Creates an instance of the class. + The default value of the Closed property is true. + + A value from the enum + that determines the reason for the close request. + A request context. + + + + Defines whether the request is executed or not. + + + + + The reason for the close request. + + + + + The context associated with this the close request. + + + + + This class represents a base class for popup controls + used by editors like ComboBox, MultiColumnComboBox etc. + + + + + This class represents a pop-up form that exposes sizing-grip and + thus can be resized by the user. + + + + + Creates an instance of the RadSizablePopupControl class. + + The owner of the popup-form + + + + Gets or sets a value of the enumeration. + This value determines how the pop-up form can be resized: vertically, horizontally or both. + + + + + Gets the element that represents the sizing grip + of the popup. + + + + + Gets the DockLayoutPanel that holds the sizing grips. + + + + + Creates an instance of the RadEditorPopupControlBase class. + This class is used in all popup-powered controls. + + An instance of the RadItem class that + represents the owner of the popup. + + + + Gets or sets the header text of the drop-down menu. + + + + + Gets or sets the header image of the drop-down menu. + + + + + Gets an instance of the + class that represents layout panel that provides scrolling functionality. + + + + + Gets or sets the left column minimal width. + + + + + Gets or sets the right column minimal width. + + + + + This class represents the Telerik's Form control. + You can create RadForm controls by inheriting from this class. + + + + + Represents a RadFormControl. RadFormControlBase is an abstract class and is base class for + all telerik windows forms. + + + + + Determines whether the control and all its child elements should use the new layout system. + + + + + + Loads the element tree. While not loaded, no layout operations are allowed upon the tree. + By default, the tree will be loaded when the control is displayed for the first time. + + + + + Loads the element tree using the specified desired size. + + + + + + Notifies that the control is about to be visualized. + + + + + + In this override we reset the RootElement's BackColor property + since the DocumentDesigner class sets the BackColor of the + Form to Control when initializing and thus overrides the theme. + + + + + + Calls the base OnPaint implementation. This method + can be used by the form behavior to call the base + implementation in case it is needed. + + + + + Calls the base OnPaintBackground implementation. This method + can be used by the form behavior to call the base + implementation in case it is needed. + + + + + Processes a dialog box key. + + true if the keystroke was processed and consumed by the control; otherwise, false to allow further processing. + + + One of the values that represents the key to process. + + + + Updates which button is the default button. + + + + Determines whether the BackColor property should be serialized. + + + + + + Determines whether the ForeColor property should be serialized. + + + + + + Determines whether the ForeColor property should be serialized. + + + + + + Determines whether the specified RadProperty should be serialized. + + + + + + + Called to initialize the behavior of the form. + + + + + + Resets the behavior associated with the Form. This method is used internally. + + Determines whether the InitializeFormBehavior method + will be called after the p + + + + Processes a focus request from the specified element. + + The element that requested the focus. + True if focus is approved, false otherwise. + + + + Processes a capture request from the specified element. + + The element which requested the capture. + + True if the capture request is approved, otherwise false. + + + + Gets a value indicating if control themes by default define PropertySettings for the specified element. + If true is returned the ThemeResolutionService would not not set any theme to the element to avoid duplicatingthe style + settings of the element. + + + + + + + Gets or sets a value indicating whether the Analytics functionality is enabled or disbaled for this control. + + + + + Gets a boolean value which determines + whether the control is loaded. + + + + + Gets or sets the FormBorderStyle of the Form. + + + + + Gets the behavior associated with this form if any. + + + + + Gets or sets a boolean value indicating whether the Form + customizes its NC area when under Vista with Composition enabled. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets or sets a value indicating whether ToolTips are shown for the RadItem objects contained in + the RadControl. + + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this speciffic control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets or sets the BackColor of the control. + This is actually the BackColor property of the root element. + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + Gets or sets the Font of the control. This is actually the Font property of the root element. + + + + + Occurs when a RadItem instance iside the RadControl requires ToolTip text. + + + + + Occurs prior the ScreenTip of a RadItem instance inside the RadControl is displayed. + + + + + Gets or sets the ImageList that contains the images displayed by this control. + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Prevent the Form from getting the mouse capture when the capture is requested + by one of the system buttons. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The text associated with this control. + + + + + Gets the RadFormElement instance that represents + the element hierarchy which builds the RadForm appearance. + + + + + Gets or sets the scaling mode of the form's icon. + + + + + Gets or sets a boolean value indicating whether the Form + customizes its NC area when under Vista with Composition enabled. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Enable or Disable the selection of the next or prev. part of the date with arrow keys + + + + + Gets or sets the date and time format used by + RadDateInput. + + + A string specifying the date format used by RadDateInput. The + default value is "d" (short date format). + + + + private void Page_Load(object sender, System.EventArgs e) + { + RadDateInput1.DateFormat = "M/d/yyyy"; //Short date pattern. The same as "d". + } + + + Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load + RadDateInput1.DateFormat = "M/d/yyyy" 'Short date pattern. The same as "d". + End Sub + + + + + + Gets or sets a value that indicates the end of the century that is used to interpret + the year value when a short year (single-digit or two-digit year) is entered in the input. + + + The year when the century ends. Default is 2029. + + + Having a value of 2029 indicates that a short year will be interpreted as a year between 1930 and 2029. + For example 55 will be interpreted as 1955 but 12 -- as 2012 + + + + + Gets a value that indicates the start of the century that is used to interpret + the year value when a short year (single-digit or two-digit year) is entered in the input. + + + The year when the century starts. Default is 1930. + + + Having a value of 1930 indicates that a short year will be interpreted as a year between 1930 and 2029. + For example 55 will be interpreted as 1955 but 12 -- as 2012 + + + + + Removes the assigned characters between the specified positions from the formatted + string. + + true if the character was successfully removed; otherwise, false. + + + The zero-based index of the first assigned character to remove. + + + The zero-based index of the last assigned character to remove. + + + + + Gets a value indicating whether all required inputs have been entered into the formatted string. + + true if all required input has been entered into the mask; otherwise, false. + + + + + Initializes a new instance of the NumericTextBoxProvider> + class using the specified mask and culture. + + + A that represents the input mask. + + + A that is used to set region-sensitive + separator characters. + + + + + + . + Replaces all ocurances of given parameters with string.Empty. + + + + + Gets the culture that determines the value of the localizable separators and + placeholders in the input mask. + + + A containing the culture information + associated with the input mask. + + + + + Gets the input mask. + + + A containing the full mask. + + + + + Raises the event. + + + An that contains event data. + + + + + Gets a value indicating whether all required inputs have been entered into the formatted string. + + true if all required input has been entered into the mask; otherwise, false. + + + + + Gets or sets the text insertion mode of the masked text box control. + + + An value that indicates the current insertion mode. The default is . + + + An invalid value was supplied when setting this property. + + + + + Occurs after the insert mode has changed. + + + + + Gets a value that specifies whether new user input overwrites existing input. + + true if will overwrite existing characters as the user enters new ones; false if will shift existing characters forward. The default is false. + + 1 + + + + Uses a mask to distinguish between proper and improper user input + + + + + Clears all text from the text box control and Value. + + + + + Clears information about the most recent operation from the undo buffer of the + text box. + + + + + selects the whole text + + + + + Fires the ValueChanging event + + + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a mask expression. + + + + + Gets or sets the mask type. + + + + + Gets or sets the value associated to the mask edit box + + + + Gets or sets a value that determines whether literals and prompt characters + are included in the formatted string. + One of the values. The + default is . + Property + set with a value that is not + valid. + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + + Gets or sets the horizontal alignment of the text. + + + + + Gets or sets + a value indicating whether the defined shortcuts are enabled. + + + + + Gets or sets + the starting point of text selected in the text box. + + + + + Gets or sets a value indicating whether the RadTextBox control has been modified + by the user since the control was created or since its contents were last set. + + + + + Gets or sets + a value indicating whether this is a multiline TextBox control. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets + the character used to mask characters of a password in a single-line TextBox + control. + + + + + Gets or sets + a value indicating whether the contents of the TextBox control can be + changed. + + + + + Gets or sets + which scroll bars should appear in a multiline TextBox control. + + + + + Gets or sets a value indicating the currently selected text in the + control. + + + + + Gets or sets + the number of characters selected in the text box. + + + + + Gets or sets a value indicating whether the selected text remains highlighted + even when the RadTextBox has lost the focus. + + + + + Gets or sets + the lines of text in multiline configurations. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline RadTextBox + control creates a new line of text in the control or activates the default button for + the form. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text + box control types a TAB character in the control instead of moving the focus to the + next control in the tab order. + + + + + Gets or sets a value indicating whether the RadTextBox control modifies the + case of characters as they are typed. + + + + + Gets or sets the current culture associated to the RadMaskBox + + + + + Gets or set a value indicating whether end users can set the value to NULL. + This can be achieved by pressing Ctrl + Del or Ctrl + 0 key combinations. + + + + + Occurs when the editing value has been changed + + + + + Occurs when the editing value is changing. + + + + + Occurs when the RadItem has focus and the user pressees a key down + + + + + Occurs when the RadItem has focus and the user pressees a key + + + + + Occurs when the RadItem has focus and the user releases the pressed key up + + + + + Occurs when + the value of the Multiline property has changed. + + + + + Occurs when + the value of the TextAlign property has changed. + + + + + Represents an application drop down menu in Office 2007 style. + + + + + + Represents a drop down button. Essentially the RadDropDownButton class is a + simple wrapper for + RadDropDownButtonElement. + + You can set items that appear when the drop down button is pressed. Also you + can configure the visual appearance in numerous ways through themes. + + The RadDropDownButtonElement class + implements all UI and logic functionality. The RadDropDownButton acts to + transfer the events to and from its + RadDropDownButtonElementinstance. + + + + + Initializes a new instance of the RadDropDownButton class. + + + + Override this method to create custom main element. By default the main element is an instance of + RadDropDownButtonElement. + + Instance of the one-and-only child of the root element of RadDropDownButton. + + + + + + + + + + + + + + + + + + Gets or sets the text value that is displayed on the button. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets the instance of RadDropDownButtonElement wrapped by this control. RadDropDownButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadDropDownButton. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection representing the right column items of RadApplicationMenu. + + + + + Gets a collection representing the button items of RadApplicationMenu. + + + + + Gets or sets the right column width + + + + + Gets or sets the whether RadApplicationMenu will have TwoColumnDropDownMenu. + + + + + Represents a rad dropdown button element. The + RadDropDownButton control is a simple wrapper + for the RadDropDownButtonElement. All UI and logic functionality is implemented in + RadDropDownButtonElement class. The + RadDropDownButton acts to transfer events to + and from its RadDropDownButtonElement instance. RadDropDownButtonElement can be + nested in other telerik controls. + + + + Initializes a new instance of the DropDownButtonElement class. + + + Determines whether the event is passed up in the control hierarchy. + + + + Shows the drop down menu at given location + + The upper left corner of the drop down in screen coordinates + + + Shows the drop down menu. + + + Hides the drop down menu. + + + + Raises the DropDownOpening event. + + + + + Raises the DropDownOpened event. + + + + + Raises the DropDownClosed event. + + + + + Fires when the drop-down of the button is about to close. + + An instance of the + class that contains information about the event. + + + + Gets the drop down menu + + + + + Gets the arrow button + + + + + Gets the action button + + + + + Gets or sets the minimum size of the arrow button + + + + + Gets or sets a value indicating the position where the arrow button appears in drop-down button. + + + + + Gets or sets a value indicating the direction in which the dropdown item emerges from its parent container. + + + + + Gets or sets the expand arrow button + + + + + Gets a value indicating whether the drop down is shown + + + + + Gets the Items collection where you can add and remove items from the + DropDownButton. + + + + + Indicates whether the DropDown of the button should have two columns or one column. + + + + + Gets or sets a value indicating whether an arrow button is displayed on the drop-down buuton. + + + + + Gets or sets the image that is displayed on a button element. + + + + + Gets or sets the image list index value of the image displayed on the button control. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the position of text and image relative to each other. + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + Specifies the logical combination of image and text primitives in the element. + + + + + Gets a value indicating whether the button item is in the pressed state. + + + + + Gets the border element + + + + + Occurs when the drop-down is opening. + + + + + Occurs when the drop-down has opened. + + + + + Occurs when the drop-down window has closed. + + + + + Occurs when the drop-down window is about to close. + + + + + Gets or sets value indicating whether DropDownMenu will have the same class name as the owner control or its own. + True means that the same class name will be used as the control that opened the dropdown. + + + + + Gets or sets the whether RadApplicationMenu will have TwoColumnDropDownMenu. + + + + + Represents an application drop down menu in Office 2007 style. + + + + + Gets or sets the right column width + + + + + Gets a collection representing the right column items of RadApplicationMenu. + + + + + Gets a collection representing the button items of RadApplicationMenu. + + + + + Represents a context menu + + + + + Displays the context menu in its default position. + + + + + Displays the context menu relative to the specified screen location. + + The horizontal screen coordinate, in pixels. + The vertical screen coordinate, in pixels. + + + + Displays the context menu relative to the specified screen location. + + The horizontal and vertical location of the screen's upper-left corner, in pixels. + + + + Positions the context menu relative to the specified screen location and with the specified direction. + + The horizontal and vertical location of the screen's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the context menu relative to the specified control location. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal coordinate relative to the control, in pixels. + The vertical coordinate relative to the control, in pixels. + + + + Positions the context menu relative to the specified control location. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the reference control's upper-left corner, in pixels. + + + + Positions the context menu relative to the specified control location and with the specified direction. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the reference control's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the context menu relative to the specified RadItem location. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal coordinate relative to the control, in pixels. + The vertical coordinate relative to the control, in pixels. + + + + Positions the context menu relative to the specified RadItem location. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the RadItem's upper-left corner, in pixels. + + + + Positions the context menu relative to the specified RadItem location and with the specified direction. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the RadItem's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the context menu relative to the specified RadItem location and + with specified direction and offset according to the owner. + + The RadItem that is the reference point for the RadDropDownMenu position. + Specifies the offset from the owner in pixels. + One of the RadDirection values. + + + + Raises the DropDownOpening event. + + The event arguments + + + + Raises the DropDownClosing event. + + The event arguments + + + + Raises the DropDownOpened event. + + + + + Raises the DropDownClosed event. + + + + + Occurs when the drop down is opening. + + + + + Occurs when the drop down is closing. + + + + + Occurs when the drop down is opened. + + + + + Occurs when the drop down is closed. + + + + + Gets menu items collection + + + + + Gets or sets control's preferred theme name. Themes are stored and retrieved using + APIs of . + + + If ThemeResolutionService.ApplicatonThemeName refers to a + non-empty string, the theme of a RadControl can differ from the one set using + RadControls.ThemeName property. If the themes differ, the + RadControls.ThemeName property will be overridden by + ThemeResolutionService.ApplicatonThemeName. If no theme is registered + with a name as ThemeResolutionService.ApplicatonThemeName, then + control will revert to the theme specified by its ThemeName property. + If ThemeName is assigned to a non-existing theme name, the control may + have no visual properties assigned, which will cause it look and behave in unexpected + manner. If ThemeName equals empty string, control's theme is set to a + theme that is registered within ThemeResolutionService with the name + "ControlDefault". + + + + + Gets or sets the ImageList that contains the images displayed by this control. + + + + + Gets menu drop down panel + + + + + Gets or sets a value indicating whether the Analytics functionality is enabled or disabled for this control. + + + + + This class represents the drop-down menu + used in the + component. + + + + + Represents a base class for the RadMenuItem class. + + + + + Initializes a new instance of the RadMenuItemBase class. + + + + + Calls the ShowPopup method and displays the child items in a popup window. + + + + + Closes the RadMenuItemBase popup. + + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An instance of the class + that contains information about the event. + + + + Raises the event. + + An that contains the event data. + + + + Occurs after the menu item dropdown opens. + + + + + Occurs before the menu item dropdown opens. + + + + + Occurs after the menu item dropdown closes. + + + + + Occurs before the popup is creating. + + + + + Occurs before the popup is closed. + + + + + Gets a value indiciating that the popup containing this menu item's children is shown. + + + + + Gets or sets the direction of the popup which is opened by this menu item. + + + + + Gets a collection of the child items. + + + + + Gets or sets menu header column text + + + + + Gets or sets menu header column image + + + + + Returns the control that owns this item. This can be a RadMenu or RadDropDownMenu. + + + + + Gets a values indicating whether this item has child items to show. + + + + + Gets the drop down menu associated with this menu item + + + + + Gets a value indicating whether this item has child items. + + + + + Gets a value indicating whether this item is in the root items collection. + + + + + Gets or sets the parent menu item. + + + + + Gets the next child item in the parent item's Items collection. + + + + + Gets the previous child item in the parent item's Items collection. + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + Provides a reference to the ButtonElement element in the menu item. + + + + + Gets or sets the index value of the image that is displayed on the item. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the index value of the image that is displayed on the item. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets the ImagePrimitive of this RadMenuHeaderItem. + + + + + Gets the FillPrimitive of this RadMenuHeaderItem. + + + + + Gets the BorderPrimitive of this RadMenuHeaderItem. + + + + + Gets the TextPrimitive of this RadMenuHeaderItem. + + + + + Represents a menu item which has a combobox placed inside. + + + + + Provides a reference to the hosted control in the menu item. + + + + + Creates an instance of the RadMenuItemPopup class. + This class represents the popup which is used to display menu + items in the RadMenu control. + + An instance of the RadItem class which represents the + owner of the popup. + + + + Defines the animation type used in popups + + + + + No animation is applied. + + + + + The control fades in upon showing. + + + + + The control uses easing animation. + + + + + Both easing and fade animation will be applied. + + + + + Defines the type of fade animation. + + + + + No fade animation is applied. + + + + + The control fades in upon showing. + + + + + The control fades out upon closing. + + + + + Defines the horizontal alignment of the popup + based on the alignment rectangle passed + in the ShowPopup method. + + + + + The left edge of the popup is aligned to the left edge of the alignment rectangle. + + + + + The left edge of the popup is aligned to the right edge of the alignment rectangle. + + + + + The right edge of the popup is aligned to the left edge of the alignment rectangle. + + + + + The right edge of the popup is aligned to the right edge of the alignment rectangle. + + + + + Defines the vertical alignment of the popup + based on the alignment rectangle passed + in the ShowPopup method. + + + + + The top edge of the popup is aligned to the top edge of the alignment rectangle. + + + + + The top edge of the popup is aligned to the bottom edge of the alignment rectangle. + + + + + The bottom edge of the popup is aligned to the top edge of the alignment rectangle. + + + + + The bottom edge of the popup is aligned to the bottom edge of the alignment rectangle. + + + + + Defines the popup alignment correction mode. + The values of this enumerator define how the popup alignment + is adjusted when the default aligning routine is not able + to properly position the popup due to lack of screen space. + + + + + No adjustments to the coordinates are applied. + + + + + The coordinates are adjusted with the needed amount so that + the popup remains visible in the current screen. + + + + + The coordinates are adjusted with the needed amount so that + the popup remains visible in the current screen, whereby + the popup edge is aligned with an edge of the alignment rectangle. + + + + + The coordinates are adjusted with the needed amount so that + the popup remains visible in the current screen, whereby + the popup edge is aligned with an outer edge of the alignment rectangle. + The popup does not cross the alignment rectangle bounds. + + + + + This enum defines how the size of a is + fitted to the screen bounds. + + + + + The size of the popup is not fit to the bounds of the screen. + + + + + The width of the popup is fit to the available space on the screen. + + + + + The height of the popup is fit to the available space on the screen. + + + + + This eunm defines the possible screen space usage modes. + + + + + The whole screen is used when positioning the popup. + + + + + The working area of the screen is used when positioning the popup. + + + + + An enum that defines the possible overlap modes which are + used to position the popup when its location cannot be adjusted so + that it meets all alignment and alignment correction requirements. + + + + + The popup's bounds can overlap with the alignment rectangle. + + + + + The popup will be snapped to the first possible outer edge of the alignment rectangle so that it does not overlap it. + The order of the considered edges depends on the popup alignment settings. + + + + + The RadScrollablePanel control can be used as a container for different UI elements. + This control is powered by the Telerik Presentation Framework and supports + gradient backgrounds, shapes and theming. This control supports also theming + of the scrollbars. + + + + + This method inserts the scrollbars and the container + in the Controls collection of this control. + + + + + Calculates the non-client margin of the control + based on the radius of the round rect shape. + + An instance of the struct + which represents the left, top, right and bottom margin. + + + + This method initializes the scrollbars and the + container control. + + + + + Resizes the panel to fit its contents. + + + + + Gets or sets a value indicating whether the focused control inside the RadScrollablePanel + will be automatically scrolled into view when gaining focus. + + + + + Gets or sets the state of the vertical scroll bar which indicates + whether it will be always visible(), + always hidden() + or determined by the content() - default + + + + + Gets or sets the state of the horizontal scroll bar which indicates + whether it will be always visible(), + always hidden() + or determined by the content() - default + + + + + Gets the current client area margin + of the control. + + + + Gets the default size of the control. + The default System.Drawing.Size of the control. + The default Size of the control. + + + + Gets an instance of the + class which represents the main element of the control. + + + + + Gets the container panel that holds + all the components added to the panel. + + + + + Gets the vertical scrollbar of the control. + + + + + Gets the horizontal scrollbar of the control. + + + + + This property is not relevant for this class. + + + + + This property is not relevant for this class. + + + + + Gets or sets a value of the enumeration. + This value determines how the pop-up form can be resized: vertically, horizontally or both. + + + + + Gets or sets a value indicating whether the user can give the focus to this control + using the TAB key. + /// + true if the user can give the focus to the control using the TAB key;otherwise, false. The default is true. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a value specifying the style of the DropDownList + + + + + + + + + + + + + + + + + + + + + + + + + ArrowButton Property + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets a value specifying the style of the DropDownList + + + + + Represents an interface for printable objects. + + + + + Called when the printing begins. + + The that has initiated the printing. + The event args. + The number of pages. + + + + Called when the printing ends. + + The that has initiated the printing. + The event args. + [false] if cancel + + + + Prints the page with the specified number. + + The number of the current page. + The that has initiated the printing. + The event args. + [true] if there are more pages, [false] otherwise + + + + Gets a print settings dialog that is specific for the printable object. + + The that has initiated the printing. + The dialog. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the associated with the event. + + + + + Gets the graphics object which is used for painting. + + + + + Gets the bounds in which the element is being painted. + + + + + Represents an UI dialog for editing print settings. + + + + + Loads the settings when the dialog is shown. + + + + + Saves all settings from the dialog into the . + + + + + Creates the specific control for editing the settings of the printed control. + + The that will be displayed on the first page of this dialog + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the page view control of the dialog. + + The page view. + + + + Gets the shown in this dialog. + + + + + If [true] a Preview button is shown, otherwise an OK button is shown. + + + + + Defines a reusable object that sends output to a printer and manages the whole printing process, + when printing from an application. Can be associated with any object that implements the interface. + + + + + Prints the header part of the page. + + The printing arguments. + + + + Prints the footer part of the page. + + The printing arguments. + + + + Prints the watermark of the page. + + The printing arguments. + + + + Called when the associated printable object has changed. + + + + + Parses a given string for special words. + + The string. + The parsed string. + + + + Gets or sets the currently selected page. This page will be the first to be printed when the PrintRange + is set to Current or Selection. + + + + + Gets or sets the count of the selected pages. This indicates how many pages will be printed when the PrintRange + is set to Selection. + + + + + Gets or sets the font of the page header. + + + + + Gets or sets the font of the page footer. + + + + + [true] if the LeftHeader and RightHeader should be reversed on even pages, [false] otherwise. + + + + + [true] if the LeftFooter and RightFooter should be reversed on even pages, [false] otherwise. + + + + + Gets or sets the text that will be printed near the upper left corner of the page. + + + + + Gets or sets the text that will be printed near the upper right corner of the page. + + + + + Gets or sets the text that will be printed at the top center of the page. + + + + + Gets or sets the text that will be printed near the bottom left corner of the page. + + + + + Gets or sets the text that will be printed near the bottom right corner of the page. + + + + + Gets or sets the text that will be printed at the bottom center of the page. + + + + + Gets or sets the height of the header area. + + + + + Gets or sets the height of the header area. + + + + + Gets or sets the object, associated with this document. + + + + + Gets the number of the page being printed. + The value of this property changes during the printing process. + + + + + Gets the total page count. The value is populated when the printing process begins. + + + + + Indicates whether the printing process is running. + + + + + Draws the element using the object in the given rectangle. + + The graphics object used for the drawing. + The draw area. + + + + Draws the element using the object in the given rectangle. + + The graphics object used for the drawing. + The draw area. + + + + Gets or sets the padding arround the text. + + + + + Gets or sets a value indicating whether the text should be drawn. + + + + + Gets or sets the rotation angle of the element. + + + + + Gets or sets the scale factors of the element. + + + + + Gets or sets whether a fill should be drawn. + + + + + Gets or sets whether a border should be drawn. + + + + + Gets or sets whether the cell is right to left. + + + + + Gets or sets the fore color of the element. + + + + + Gets or sets the back color of the element. + + + + + Gets or sets the back color of the element. + + + + + Gets or sets the text alignment of the element. + + + + + Gets or sets the text to be drawn. + + + + + Gets or sets the font used for drawing the text. + + + + + Gets or sets the string trimming mode. + + + + + Gets or sets the string format flags. + + + + + Gets or sets the image of the element. + + + + + Gets or sets the image layout. + + + + + Gets or sets the image alignment + + + + + Represents a series of points that will define the shape of the element. + + + + + Gets or sets a value indicating whether html text will be interpreted or will be printed directly. + + + + + A control which is responsible for displaying print documents. + + + + + Gets or sets the border color for each page. + + + + + Gets or sets the inner border color for each page. + + + + + Gets or sets the current scroll position. + + + + + A dialog for previwing and setting before printing. + + + + + Scrolls the preview with a specified offset. + + The offset. + + + + Sets the zoom factor of the preview. + + The zoom factor. + + + + Localizes the strings in the dialog with strings from the current + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the that should be previewed. + + + + + Gets the RadMenu instance of the form. + + + + + Gets the RadCommandBar instance of the form. + + + + + Gets the that is shown by this dialog. + + + + + Gets the that is shown by this dialog. + + + + + Checks whether the watermark should be printed on the given page. + + The page to check. + True if the watermark should be printed, otherwise false. + + + + Gets a list of integer values for the string Pages. + + + + + Gets or sets a value indicating whether the watermark is printed on all pages. + + + + + Gets or sets a string which indicates on which pages the watermark should be printed. + + + + + Gets or sets the fore color of the text. + + + + + Gets or sets the text. + + + + + Gets or sets the font of the text. + + + + + Gets or sets a value indicating whether the watermark is drawn under or over the printed content. + + + + + Gets a value indicating whether there is a text to be printed. + + + + + Gets or sets the angle at which the text is rotated. + + + + + Gets or sets the text opacity. + + + + + Gets or sets the text horizontal offset. + + + + + Gets or sets the text vertical offset. + + + + + Gets a value indicating whether there is an image to be printed. + + + + + Gets or sets the path to the image. + + + + + Gets or sets the image opacity. + + + + + Gets or sets the image horizontal offset. + + + + + Gets or sets the image vertical offset. + + + + + Gets or sets a value indicating whether the image should tiled. + + + + + Represent a stack layout element + + + + + Arranges the items horizontally. + + The final size. + + + + Arranges the items horizontaly. + + The client rect. + The final size. + Width of the stretchable. + The spacing. + + + + Arranges the items vertically. + + The final size. + + + + Arranges the element. + + The element. + The client rect. + The final rect. + The final size. + + + + Aligns the rectangle according to orientation and element's alignment. + + The element. + The arrange rect. + + + + + Gets or sets the item orientation. + + + The orientation. + + + + + Gets or sets the element spacing between items. + + + The element spacing. + + + + + Gets or sets the right to left mode. + + + The right to left mode. + + + + + Gets or sets a value indicating whether to fit the available size. + + + true if fit the available size; otherwise, false. + + + + + Gets or sets a comparer to be used for defining the order of the child elements. + + + + + Right to left modes in + + + + + Represents a selectable option displayed on a or + in a drop down panel. + + + + + Initializes a new instance of the RadMenuItem class. + + + + + Initializes a new instance of the RadMenuItem class using the displayed + text. + + + + + + Initializes a new instance of the RadMenuItem class using the displayed text. + + + + + + + Raises the ToggleStateChanging event. + + + + + Raises the ToggleStateChanged event. + + + + + Determines whether the arrow is currently displayed for this item. + + + + + Occurs before the item's toggle state changes. + + + + + Occurs when the item's toggle state changes. + + + + + Gets or sets the text that appears as a HintText for a menu item. + + + + + Gets or sets the toggle + state. Toggle state enumeration defines the following values: Off, + Indeterminate, and On. + + + + + Gets or sets if the arrow is shown when the menu item contains sub menu. + + + + + Gets or sets the font of the descrition text of the RadMenuItem. + + + + + Gets the visibility of description text element + + + + + Gets or sets the description text associated with this item. + + + + + Gets or sets a value indicating whether a menu item should toggle its CheckState on mouse click. + + + + + Gets the FillPrimitive of RadMenuItem responsible for the background appearance. + + + + + Gets the BorderPrimitive of RadMenuItem responsible for appearance of the border. + + + + Gets or sets a value indicating whether the menu item is checked. + + + + Gets or sets the index value of the image that is displayed on the item. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the position of a merged item within the current menu. + + + + + Gets or sets the visibility of the separator element between the text and the description text + + + + + Gets or sets the name of the control for use by accessibility client applications. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents event data for some of the progress bar event: + ValueChanged, + MinimumChanged, + MaximumChanged, + StepChanged, + StepWidthChanged, + DashChanged, + IntegralDashChanged, + SeparatorWidthChanged, + TextOrientationChanged, + TextAlignmentChanged, + ProgressOrientationChanged, + ShowProgressIndicatorsChanged and + SeparatorColorChanged. + + + + + Initializes a new instance of the ProgressBarEventArgs class using the sender + of the event. + + Represents the event sender. + + + + Gets or sets the event sender. + + event sender. + + + + Exposes the reason for a progress bar or waiting bar event. + + + + + Indicates that value1 or value2 has been changed. + + + + + Indicates that the Minimum property has been changed. + + + + + Indicates that the Maximum property has been changed. + + + + + Indicates that the Step has been changed. + + + + + Indicates that the Step width has been changed. + + + + + Indicates that the Dash property has been changed. + + + + + Indicates that the Hatch property has been changed. + + + + + Indicates that the IntegralDash property has been changed. + + + + + Indicates that the Text property has been changed. + + + + + Indicates that the SeparatorWidth property has been changed. + + + + + Indicates that the TextOrientatio property has been changed. + + + + + Indicates that the TextAlignment property has been changed. + + + + + Indicates that the ProgressOrientation property has been changed. + + + + + Indicates that the ProgressOrientation property has been changed. + + + + + Indicates that one of the separator colors property has been changed. + + + + + Indicates that the separators gradeient angle property has been changed. + + + + + Indicates that the separator color stop has changed + + + + + Indicates that the separator number of colors changed. + + + + + Initializes the fields. + + + + + Rrepresents a progress indicator used in + + + + + Represents a state manager for the progress bar progress indicators. + + + + + Creates the state manager. + + + + + + Represents a state manager for + + + + + Creates the specific states. + + + + + + Creates the state manager. + + + + + + Virtual function that draws the primitive on the screen. + + The graphics object. + The angle. + The scale. + + + + Gets or sets the width of the separator. + + + The width of the separator. + + + + + Gets or sets the width of the step. + + + The width of the step. + + + + + Gets or sets the separator color1. + + + The separator color1. + + + + + Gets or sets the separator color2. + + + The separator color2. + + + + + Gets or sets the separator color3. + + + The separator color3. + + + + + Gets or sets the separator color4. + + + The separator color4. + + + + + Gets or sets the separator gradient angle. + + + The separator gradient angle. + + + + + Gets or sets the separator gradient percentage1. + + + The separator gradient percentage1. + + + + + Gets or sets the separator gradient percentage2. + + + The separator gradient percentage2. + + + + + Gets or sets the number of colors to be used. + + + The number of colors. + + + + + Gets or sets the flow direction of the progress indicator. + + + The progress orientation. + + + + + Gets or sets the sweep angle. + + + The sweep angle. + + + + + Gets or sets a value indicating whether this is dash. + + + true if dash; otherwise, false. + + + + + Gets or sets a value indicating whether this is hatch. + + + true if hatch; otherwise, false. + + + + + Initializes the fields. + + + + + Gets or sets whether this progress indicatior will automatically control its + opacity when close to or over the second progress indicator. + + + + + Gets or sets the minimum opacity level this progress indicator will go to + when over the second progress indicator when AutoOpacity property is set + to true. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + The RadCheckBoxThreeStateAttribute determines whether properties inside will have a three state check box editor or a two state one. + + + + + Creates a new instance of the attribute with the specified value. + + The value defining whether the editor should be three state. + + + + Gets the value of the attribute. + + + + + The RadRangeAttribute is an attribute which specifies the allowed range of values. + It can be applied to properties declarations only. + It is used by an editor when the propertyes is being edited. + + + + + Creates a new instance of the attribute withe the specific range. + + The minimum possible value in the range. + The maximum possible value in the range. + + + + Gets the minimum value of the specified range. + + + + + Gets the maximum value of the specified range. + + + + + The RadSortOrderAttribute is an attribute which specifies the sort order for properties inside . + It can be applied to properties declarations only. + + + + + Creates a new instance of the attribute with the specified value. + + The value defining the sort order. + + + + Gets the value of the attribute. + + + + + Defines an interface used to acces property information in RadPropertyGrid. + + + + + Gets the property name. + + + + + Gets the property display name + + + + + Gets or sets the property value. + + + + + Gets the property description. + + + + + Gets a value indicating whether the property is read only. + + + + + Gets the property category. + + + + + Gets a collection of the attributes applied to the property. + + + + + Gets the property type. + + + + + Gets the associated with this property. + + + + + Gets the associated with this property. + + + + + Gets the associated with this property. + + + + + Gets the property name. + + + + + Gets the property display name + + + + + Gets or sets the property value. + + + + + Gets or sets the description associated with this property. + + + + + Gets the categoty of the property from its or returns "Other" if no category is specified. + + + + + Gets a value indicating whether the property is editable. + + + + + Gets a collection of the attributes applied to the property. + + + + + Gets the property type. + + + + + Gets the property descriptor for this property. + + + + + Gets the UITypeEditor associated with this property + + + + + Gets the TypeConverter associated with this property + + + + + Gets the associated with this accessor. + + + + + Expands this instance. + + + + + Collapses this instance. + + + + + Gets the group item. + + The group item. + + + + Gets the expanded state of the group. + + + + + Expandes the item. + + + + + Collapses the item. + + + + + Ensures that this item is visible in the content of the RadPropertyGridElement. + + + + + Selects the grid tiem. + + + + + Allows PropertyChanged notifications to be temporary suspended. + + + + + Resumes property notifications after a previous SuspendPropertyNotifications call. + + + + + Gets the parent property grid that the item is assigned to. + + + + + Gets or sets a value indicating whether this instance is visible. + + + true if this instance is visible; otherwise, false. + + + + + Gets or sets a value indicating whether this item is selected. + + + true if this item is selected; otherwise, false. + + + + + Gets or sets a value indicating whether this item is expanded. + + + true if this item is expanded; otherwise, false. + + + + + Gets or sets a value indicating whether the item can respond to user interaction. + + The default value is true. + + + + Gets or sets the height of the item. + + The default value is 20. + + + + Gets or sets the image of the node. + + ImageIndex Property + ImageKey Property + + + + Gets or sets the left image list index value of the image displayed when the tree + node is not selected. + + Image Property + ImageKey Property + + + + Gets or sets the key + for the left image associated with this tree node when the node is not selected. + + Image Property + ImageIndex Property + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the description associated with this item. + + + + + Gets or sets the tool tip text associated with this item. + + + + Gets or sets the context menu associated to the item. + Returns an instance of RadDropDownMenu Class that + is associated with the item. The default value is null. + + This property could be used to associate a custom menu and replace the property grid's + default. If the context menu is invoked by right-clicking an item, the property grid's menu + will not be shown and the context menu assigned to this item will be shown instead. + + + + + Gets or sets the tag object that can be used to store user data, corresponding to the item. + + The tag. + + + + Gets a value indicating how deep in the hierarchy this propety is. + + + + + Gets the child items list associated with this item. + + + + + Gets a value indicating whether this item is expandable. + + + + + Gets the parent item for this item. + + + + + Gets the property name + + + + + Resets the property value to its default value. + + + + + Selects this item and puts the Property grid in edit mode. + + + + + Gets the child items for a given item. + + The parent item for which to get the child items. + The instance of the item. + The type of the property. + Collection of . + + + + Gets the default value of the current item. A return parameter determines if the operation succeeded. + + An object where the default value will be stored if there is such. + True if the item has a default value otherwise false. + + + + Determines if the item should update its child items based on the types of the old value and the new one. + + The old value of this item. + The new value of this item. + True if child items should be updated otherwise false. + + + + Converts a string into a password string. + + The input. + + + + + Gets the property name + + + + + Gets or sets the text that would be displayed for this property. + + + + + Gets or sets the description associated with this item. + + + + + Gets the category of the property from its or returns "Other" if no category is specified. + + + + + Gets a value indicating whether the property is read only. + + + + + Gets or sets the item value. + + The text. + + + + Gets the value of the property as a string using its . + + + + + Gets the original property value. + + + + + Gets a value indicating whether the property value is modified. + + + + + Gets a value indicating whether this is a complex property. + + + + + Gets or sets a value defining the sort order of the item when no other sorting is applied. + + + + + Gets or sets a value defining whether check box editor will be three state. + + + + + Gets a collection of the attributes applied to the property. + + + + + Gets the sub items of the current if it is composed of several subitems. + + + + + Gets or sets the parent of this item. + + + + + Gets or sets an error message to be displayed when property value validation fails. + + + + + Gets the UITypeEditor associated with this property + + + + + Gets the TypeConverter associated with this property + + + + + Gets the property type + + + + + Gets the property descriptor for this property. + + + + + Gets the item accessor for this property item. + + + + + Gets the items. + + + + + + Sets the current. + + The item. + + + + Resets this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Suspends the update. + + + + + Resumes the update. + + + + + Gets the property grid element. + + The tree view. + + + + Gets a value indicating whether this instance is suspended. + + + true if this instance is suspended; otherwise, false. + + + + + Gets the text displayed for this group. + + + + + Gets the items collection of the group. + + + + + Gets a value indicating whether this item is expandable. + + + + + Gets the group created by the Group Factory + + + + + Gets the name of this group. + + + + + Represents a text box control editor in . + + + + + Gets the PropertyGridTableElement. + + + + + Gets the item tha is being processed. + + + + + Gets or sets the GroupKey. The GroupKey is a unique identifier for a group. + + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + PropertyGridSpreadExport is a powerful exporting API, allowing to export RadPropertyGrid to XLSX, PDF, CSV, and TXT format, utilizing the Document Processing Libraries. + + + + + Initializes a new instance of the class. + + The RadPropertyGrid to export. + + + + Initializes a new instance of the class. + + The RadPropertyGrid to export. + The export format. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Starts an export operation. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadPropertyGrid will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadPropertyGrid will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadPropertyGrid will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadPropertyGrid will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Cancels an asynchronous export operation. + + + + + Check if date is supported from MS Excel + + + True if value is supported + + + + Gets or sets the name of the sheet. + + + The name of the sheet. + + + + + Specifies whether a file will be exported as a new file, or if a file with the same name already exists at the specified path, a new sheet will be added to it. + + + ExportAsNewSheetInExistingFile - will add a new sheet to the specified file, if it exists + ExportInNewFile - will create/override the specified file + + + + + Gets or sets a value indicating whether to export child items grouped. + + + + + Gets or sets a value indicating whether to export item descriptions. + + + + + Gets or sets the format of the exported file - XLSX, PDF, CSV or TXT. + + + The file extension. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets the maximum number of rows per sheet. + + + The sheet max rows. + + + + + Gets or sets the indent of child items. + + + + + Gets or sets a value indicating how children of collapsed items are exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when the export process completes. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents the method that will handle the CellFormatting event. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the CellFormatting event + + + + + Initializes a new instance of the class. + + Export cell for further formatting. + The exporting item of RadPropertyGrid. + The row index in the worksheet. + + + + Gets the row index in worksheet. + + + + + Gets export cell for further formatting. + + + + + Gets the exporting item. + + + + + Defines the mode that uses to best fit its columns. + + + + + Maximizes the visibility of the strings in the Labels column. + + + + + Maximizes the visibility of the strings in the Values column. + + + + + Uses a mechanism that makes a maximum number of strings from both columns visibile. + + + + + Generates and displays a barcode using a provided encoding method (symbology) and a value. + + + + + Exports the barcode with the current dimentions of the control. + + An image of the barcode. + + + + Layouts the barcode using the provided dimentions and exports it to an image. + + The width of the exported image. + The height of the exported image. + An image of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified stream. + + The stream to export the barcode to. + The size of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified file location. + + The location of the file where to export the barcode. + The size of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified stream in the specified image format. + + The stream to export the barcode to. + The size of the barcode. + The format of the exported image. + + + + Layouts the barcode using the provided size and exports it to the specified file location in the specified image format. + + The location of the file where to export the barcode. + The size of the barcode. + The format of the exported image. + + + + Gets the barcode element of this control. + + + + + Gets or sets the value that will be converted into a barcode. + + + + + Gets or sets the symbology that will be used to convert the value of this element into a visual barcode representation. + + + + + Occurs after the value of the barcode is changed. + + + + + Occurs before the value of the barcode is changed. + + + + + Occurs after the symbology of the barcode is changed. + + + + + Occurs before the symbology of the barcode is changed. + + + + + Updates the layout and invalidates the barcode. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Exports the barcode with the current dimentions of the control. + + An image of the barcode. + + + + Layouts the barcode using the provided dimentions and exports it to an image. + + The width of the exported image. + The height of the exported image. + An image of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified stream. + + The stream to export the barcode to. + The size of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified file location. + + The location of the file where to export the barcode. + The size of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified file location in the specified image format. + + The location of the file where to export the barcode. + The size of the barcode. + The format of the exported image. + + + + Layouts the barcode using the provided size and exports it to the specified stream in the specified image format. + + The stream to export the barcode to. + The size of the barcode. + The format of the exported image. + + + + Called when a property of the symbology changes. Suitable for performing necessary updates based on the changes. + + + + + + + Gets or sets the element factory that is used to create the elements of the displayed barcode. + + + + + Gets or sets the symbology that will be used to convert the value of this element into a visual barcode representation. + + + + + Gets or sets the value that will be converted into a barcode. + + + + + Occurs after the value of the barcode is changed. + + + + + Occurs before the value of the barcode is changed. + + + + + Occurs after the symbology of the barcode is changed. + + + + + Occurs before the symbology of the barcode is changed. + + + + + Gets or sets the horizontal alignment of the text dislayed in the barcode. + + + + + Gets or sets the vertical alignment of the text dislayed in the barcode. + + + + + Gets or sets whether the barcode should display the human readable value of the barcode. + + + + + Gets or sets whether the bars of the barcode should be stretched to fill the space available. + + + + + Gets or sets whether the barcode should calculate a checksum. + + + + + Gets or sets a module by which the barcode can be scaled up. + + + + + Gets the value currently being encoded by the symbology. + + + + + The EncodingMode enumeration determines the type of the acceptable data. + + + + + Auto mode. + + + + + Accepts byte data. + + + + + Allows text data. + + + + + Allows numeric data. + + + + + Creates a new PDF417 symbology with default values which can be used by to encode values into PDF417 barcodes. + + + + + Creates a new PDF417 symbology which can be used by to encode values into PDF417 barcodes. + + The number of columns fro the generated barcode. + The number of rows fro the generated barcode. + How much data will be available for error correction. + + + + Gets or sets how much data will be available for error correction. + + + + + Gets or sets the number of rows fro the generated barcode. + + + + + Gets or sets the number of columns fro the generated barcode. + + + + + Gets or sets a module by which the barcode can be scaled up. + + + + + Gets or sets the type of the acceptable data. + + + + + Gets the true/false values representing each module in the PDF417 code. + + + + + Switch to "Uppercase". + + + + + Switch to "Lowercase". + + + + + Switch to "Mixed". + + + + + Switch to "Punctuation" only for next character. + + + + + Initializes a new instance of the class. + + + + + Provides methods for encoding and validation of double-byte Kanji characters. + + + + + Initializes a new instance of the class. + + + + + This method encodes the data for the Kanji Mode. + + + + + Validates the data, to ensure no invalid characters are present. + + + + + Determines the type of code, such as Numeric, Alphanumeric, Byte or Kanji. + + + + + Byte Mode. + + + + + Allows Numbers [0-9]. + + + + + Allows characters or numbers. + + + + + Kanji Mode. + + + + + Determines how much data is available for error correction. + + + + + Low. + + + + + Medium. + + + + + Quartile. + + + + + High. + + + + + Determines the Extended Channel Interpretation (ECI) mode, which allows for encoding of characters from other sets. + + + + + None. + + + + + ECI 9. + + + + + ECI 8. + + + + + ECI 7. + + + + + ECI 6. + + + + + ECI 5. + + + + + ECI 4. + + + + + ECI 3. + + + + + ECI 2. + + + + + ECI 1. + + + + + ECI 10. + + + + + ECI 11. + + + + + ECI 13. + + + + + ECI 15. + + + + + ECI 17. + + + + + ECI 21. + + + + + ECI 22. + + + + + ECI 23. + + + + + ECI 24. + + + + + UTF-8. + + + + + ECI 27. + + + + + Signifies application of special formatting to the code data. + + + + + None. + + + + + FNC 1 in first position. + + + + + FNC 1 in second position. + + + + + Creates a new QRCode symbology with default values which can be used by to encode values into QR barcodes. + + + + + Creates a new QRCode symbology which can be used by to encode values into QR barcodes. + + The type of code that will be used for encoding. + Determines the size of the QR code and the amount of information that can be encoded. + Accepted values are in the range [1..40]. If you set the version to a number outside this range, version will be calculated automatically. + How much data will be available for error correction. + Extended Channel Interpretation (ECI) mode, which allows for encoding of characters from other sets. + Application of special formatting to the code data. + The application indentifier to be encoded in the QR code. + + + + Gets the true/false values representing each module in the QR code. + + + + + Gets or sets a module by which the barcode can be scaled up. + + + + + Gets the matrix, reflecting the filled modules/positions in the QR code matrix. + + + + + Gets the size of the QR code based on the current version. + + + + + Gets or sets the version of the QR code. The version determines the size of the QR code and the amount of information that can be encoded. + Accepted values are in the range [1..40]. If you set the version to a number outside this range, version will be calculated automatically. + + + + + Gets or sets the type of code that will be used for encoding, such as Numeric, Alphanumeric, Byte or Kanji. + + + + + Gets or sets how much data will be available for error correction. + + + + + Gets or sets the Extended Channel Interpretation (ECI) mode, which allows for encoding of characters from other sets. + + + + + Gets or sets application of special formatting to the code data. + + + + + Gets or sets the application indentifier to be encoded in the QR code. + + + + + Provides localization services for RadBrowseEditor. + + + + + Represents localization strings in RadBrowserEditor. + + + + + Specifies the navigation mode that will be used when user click on header element. + + + + + Exposes the top instance of CalendarView or its derived + types.v + Every CalendarView class handles the real calculation and + rendering of RadCalendar's calendric information. The + CalendarView has the + + CalendarViewCollection collection which contains all the sub views in case of multi view + setup. + + + + + Gets the parent calendar that the current view is assigned to. + + + + Gets or sets the selected cell. + + + + Gets the items collection of the element + + + + + Displays a collection of labeled items, each represented by a ListViewDataItem. + + + + + Shows the of CardTemplate and puts the selected item in customize mode. + + + + + Closes the and puts the selected item out of customize mode. + + + + + Gets the card view element. + + The card view element. + + + + Gets the RadLayoutControl used as a card template. + + + + + Gets or sets the default item size. + + + + + Gets or sets the space between the items. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Occurs when a new is created. + + + + + Occurs when a needs to be formatted. + + + + + Represents the main element of . + + + + + Represents the main element of . + + + + + Begins an edit operation over the currently selected item. + + [true] if success, [false] otherwise + + + + Ends the current edit operations if such. Saves the changes. + + [true] if success, [false] otherwise + + + + Ends the current edit operations if such. Discards the changes. + + [true] if success, [false] otherwise + + + + Creates a view element corresponding to the current ViewType. + + The view element. + + + + Suspend any item change notifications until is called. + + + + + Resumes the item change notifications. + + + + + Finds an item with the specified key. + + The key of the searched item. + + + + + Finds an item with the specified key. + + The key of the searched item. + Indicates if the search should check only visible items. + + + + + Causes synchronization of the visual items with the logical ones. + + + + + Ensures that a given item is visible on the client area. + + The item to ensure visibility of. + + + + Ensures that a given item is visible on the client area. + + The item to ensure visibility of. + Indicates whether the view should be scrolled horizontally. + + + + Ensures that a given column is visible on the client area. + + The column to ensure visibility of. + + + + Selects a range of items. + + The items. + + + + Expands all the groups in the element. + + + + + Collapses all the groups in the element. + + + + + Checks all of the selected items. + + + + + Unchecks all of the selected items. + + + + + Checks all of the items. + + + + + Unchecks all of the items. + + + + + Updates the contents of the collection. + + + + + Scrolls the view with a given amount. + + The amount to scroll the view with. + + + + Fires when a group has been expanded. + + + + + Fires when a group is about to expand. Cancelable. + + + + + Occurs when a ListViewDataItem is about to be selected. Cancelable. + + + + + Occurs when the content of the SelectedItems collection has changed. + + + + + Occurs when the selected item has changed. + + + + + Occurs when the index of the selected item has changed. + + + + + Occurs when the ViewType of RadListView is changed. + + + + + Occurs when the ViewType of RadListView is about to change. Cancelable. + + + + + Occurs when the user presses a mouse button over a ListViewDataItem. + + + + + Occurs when the user presses a mouse button over a ListViewDataItem. + + + + + Occurs when the user moves the mouse over a ListViewDataItem. + + + + + Occurs when the user hovers a ListViewDataItem. + + + + + Occurs when the mouse pointer enters a ListViewDataItem. + + + + + Occurs when the mouse pointer leaves a ListViewDataItem. + + + + + Occurs when the user clicks a ListViewDataItem. + + + + + Occurs when the user double-clicks a ListViewDataItem. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Occurs when a ListViewDataItem changes its state and needs to be formatted. + + + + + Occurs when a ListViewDataItem needs to be created. + + + + + Occurs when a BaseListViewVisualItem needs to be created; + + + + + Occurs when a DetailsView cell needs to be formatted. + + + + + Occurs when a data-bound item is being attached to a ListViewDataItem. + + + + + Occurs when the CurrentItem property is changed. + + + + + Occurs when the CurrentItem property is about to change. Cancelable. + + + + + Occurs when an editor is required. + + + + + Occurs when an edit operation is about to begin. Cancelable. + + + + + Occurs when an editor is initialized. + + + + + Occurs when a ListViewDataItem is edited. + + + + + Fires when a validation error occurs. + + + + + Occurs when an edit operation needs to be validated. + + + + + Occurs when the value of a ListViewDataItem is changed. + + + + + Occurs when the value of a ListViewDataItem is about to change. Cancelable. + + + + + Occurs when a needs to be created. + + + + + Occurs when a needs to be created. + + + + + Occurs when an item is about to be removed using the Delete key. Cancelable. + + + + + Occurs when an item is removed using the Delete key. + + + + + Gets or sets a value indicating whether column names which differ only in the casing are allowed. + + + + + Gets or sets a value indicating whether the last added item in the RadListView DataSource will be selected by the control. + + + + + Gets or sets the display state of the horizontal scrollbar. + + + + + Gets or sets the display state of the vertical scrollbar. + + + + + Gets or sets a value indicating whether the checkboxes should be in ThreeState mode. + + + + + Gets or sets a value indicating whether grid lines shoud be shown in DetailsView. + + + + + Gets or sets a value indicating whether items can be selected with mouse dragging. + + + + + Gets or sets a value indicating whether items should react on mouse hover. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. Always false when lasso selection is enabled. + + + + + Gets or sets a value indicating whether the items should be sorted when clicking on header cells. + + + + + Gets or sets a value indicating whether the column headers should be drawn. + + + + + Gets or sets a value indicating whether the items should be shown in groups. + + + + + Gets or sets value indicating whether checkboxes should be shown. + + + + + Gets or sets value indicating if the user can reorder columns via drag and drop. + + + + + Gets or sets value indicating if the user can reorder items via drag and drop. + Always false when using data source, grouping, filtering, sorting, kinetic scrolling or lasso selection. + + + + + Gets or sets value indicating if the user can resize the columns. + + + + + Gets or sets the current column in Details View. + + + + + Indicates whether there is an active editor. + + + + + Gets or sets the current item. + + + + + Gets or sets the index of the selected item. + + + + + Gets or sets the selected item. + + + + + Gets a collection containing the selected items. + + + + + Gets a collection containing the checked items. + + + + + Gets or sets value indicating whether multi selection is enabled. + + + + + Gets or sets value indicating whether editing is enabled. + + + + + Gets or sets value indicating whether the user can remove items with the Delete key. + + + + + Gets the currently active editor. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Gets or sets a value indicating whether the items can have different width. + + + + + Gets or sets a value indicating whether the full row should be selected. + + + + + Gets or sets the default item size. + + + + + Gets or sets the default group item size. + + + + + Gets or sets the indent of the items when they are displayed in a group. + + + + + Gets or sets the fill color of the lasso selection rectangle. + + + + + Gets or sets the border color of the lasso selection rectangle. + + + + + Gets or sets the space between the items. + + + + + Gets or sets a collection of ListViewDetailColumn object which represent the columns in DetailsView. + + + + + Gets a value indicating whether the control is in bound mode. + + + + + Gets a collection containing the groups of the RadListViewElement. + + + + + Gets or sets the value member. + + + + + Gets or sets the display member. + + + + + Gets or sets the checked member. + + + + + Gets the DataView collection. + + + + + Gets or sets a value indicating whether sorting is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets or sets a value indicating whether custom grouping is enabled. + + + + + Gets a collection of filter descriptors by which you can apply filter rules to the items. + + + + + Gets a collection of SortDescriptor which are used to define sorting rules over the + ListViewDataItemCollection. + + + + + Gets a collection of GroupDescriptor which are used to define grouping rules over the + ListViewDataItemCollection. + + + + + Gets the source of the items. + + + + + Gets or sets a collection of ListViewDataItem object which represent the items in RadListViewElement. + + + + + Gets the element that represents the active view. + + + + + Gets or sets the type of the view. + + + + + Gets or sets the data source of a RadListViewElement. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets the height of the header in Details View. + + + + + Gets or sets the that is responsible for resizing the columns. + + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when BaseListViewElement is focused. + The default value is false. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + The default value is 300. + + + + + Gets or sets a value indicating whether the item's check state changes whenever the item is clicked. + + + + + Occurs when the BindingContext has changed. + + + + + Occurs when the process of binding to a data source has finished + + + + + Gets or sets the BindingContext. + + + + + Creates a view element for the current CardView. + + The view element. + + + + Shows the of CardTemplate and puts the selected item in customize mode. + + + + + Closes the and puts the selected item out of customize mode. + + + + + Begins an edit operation over the currently selected item. + + [true] if success, [false] otherwise + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Initializes the editor. + + The visual item. + The initializable. + The editor. + + + + Sets the selected item value. + + The instance containing the event data. + The new value. + + + + Gets the used as a card template. + + + + + Occurs when a new is created in + + + + + Occurs when a needs to be formatted. + + + + + Represents a base class for view elements. + + + + + Gets the at a specified location. + + The location. + The . + + + + Gets the at a specified location. + + The location. + The . + + + + Scrolls the view with a given amount. + + The amount to scroll with. + + + + Ensures that a given is visible on the client area. + + The to ensure visibility of. + + + + Ensures that a given is visible on the client area. + + The to ensure visibility of. + Indicates if the view should be scrolled horizontally. + + + + Clears the selection. + + + + + Toggles the CheckState of given item. + + The item whose CheckState will be toggled. + + + + Returns a value indicating whether the current view supports given orientation. + + The orientation. + [true] if the current view supports the orientation, [false] otherwise. + + + + Ensures that a given is visible by scrolling the view horizontally. + + The item to ensure visibility of. + + + + Ensures that a given is visible by scrolling the view vertically. + + The item to ensure visibility of. + + + + Ensures that a given is visible when it is below the last visible item in the view. + + The item to ensure visibility of. + + + + Called when the orientation of the view has changed. + + + + + Updates the horizontal scrollbar. + + + + + Updates the visibility of the horizontal scrollbar. + + + + + Processes the MouseUp event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Processes the MouseMove event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Processes the MouseDown event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Processes the KeyDown event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Handles a press of the PageUp key. + + The event args. + + + + Handles a press of the PageDown key. + + The event args. + + + + Handles a press of the Delete key. + + The event args. + + + + Handles a press of the End key. + + The event args. + + + + Handles a press of the Home key. + + The event args. + + + + Handles a press of the Escape key. + + The event args. + + + + Handles a press of the F2 key. + + The event args. + + + + Handles a press of the Left key. + + The event args. + + + + Handles a press of the Right key. + + The event args. + + + + Handles a press of the Down key. + + The event args. + + + + Handles a press of the Up key. + + The event args. + + + + Handles a press of the Space key. + + The event args. + + + + Handles navigation upon key press. + + The character of the pressed key. + + + + This method traverses through the items in the control and fills a queue with these items that start with the . + + + + + + Gets the previous visible item of a given . + + The current item. + The previous item. + + + + Gets the next visible item of a given . + + The current item. + The next item. + + + + Processes the MouseWheel event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Processes the selection of a specified item. + + The which is being processed. + The modifier keys which are pressed during selection. + [true] if the selection is triggered by mouse input, [false] otherwise. + + + + Selects all items that are whitin the lasso rectangle. + + + + + Selects all items that are whitin the specified rectangle. + + + + + Begins the lasso selection. + + + + + Ends the lasso selection. + + + + + Gets the drag hint location according to the specified item. + + The drop target item. + The mouse location in client coordinates. + The location of the drag hint. + + + + Indicates whether an item should be dropped after the given target according to the specified location. + + The drop target item. + The drop location. + [true] if a dropped item should be inserted after the target, [false] otherwise. + + + + Gets the size of the drag hint according to the speficied target. + + The drop target. + The size of the drag hint. + + + + Gets or sets the display state of the horizontal scrollbar. + + + + + Gets or sets the display state of the vertical scrollbar. + + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where a column will be dropped after a drag operation. + + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets the orientation of the view element. + + + + + Gets the that owns the view. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Gets or sets a value indicating whether the items can have different width. + + + + + Gets or sets a value indicating whether the full row should be selected. + + + + + Gets or sets the default item size. + + + + + Gets or sets the default group item size. + + + + + Gets or sets the fill color of the lasso selection rectangle. + + + + + Gets or sets the border color of the lasso selection rectangle. + + + + + Gets or sets the indent of the items when they are displayed in a group. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the keyboard search functionality. + + + + + Updates the items layout. + + + + + Shows the customize dialog. + + + + + Closes the customize dialog. + + + + + Gets all child items. + + The items. + + + + + Gets the field names. + + + + + + Stores CardTemplate's layout state in XML format, using the serialization + information provided by the property. + + XmlWriter to use by the built-in serializer + + + + Stores CardTemplate's layout state in XML format, using the serialization + information provided by the property. + + The stream to write to. + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores CardTemplate's layout state in XML format, using the serialization + information provided by the property. + + The file to write to. + + + + Loads CardTemplate's layout state from XML file, using the serialization + information provided by the property. + + The XmlReader to read the XML from. + + + + Loads CardTemplate's layout state from XML file, using the serialization + information provided by the property. + + The stream to read from. + + + + Loads CardTemplate's layout state from XML file, using the serialization + information provided by the property. + + The file to read from. + + + + Gets the default serialization info for RadLayoutControl used by Save/Load layout methods to persist the layout to/from XML. + + The default serialization info. + + + + Initializes the items of the default context menu. + + + + + Gets the designer host. + + The list view element. + + + + + Gets a value indicating whether the owner is data bound or has any columns created. + + The list view element. + + + + + Synchronizes given CardViewContainerElement to the container of CardTemplate. + + The given container. + The visual item that owns the container. + + + + Updates item bounds and synchronizes properties. + + + + + + + + Handles the RadPropertyChanged event of the GroupItem control. + + The source of the event. + The instance containing the event data. + + + + Gets the item synchronization properties. + + The item synchronization properties. + + + + Gets the layout control used as a template for all displayed cards. + + + + + Gets or sets the context menu. + + + + + Gets the card view element. + + The card view element. + + + + Gets or sets the default item size. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Gets or sets a value indicating whether the items can have different width. + + + + + Gets the serialization info for RadLayoutControl used by Save/Load layout methods to persist the layout to/from XML. + By default or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + Updates the scrollbar metrics. + + + + + Gets the card items container. + + + + + Gets the horizontal . + + + + + Gets the vertical . + + + + + Represents the method that will handle the creating events of CardViewContainerElement items. + + The event sender, typically this is + Instance of containing the data related with this event + + + + Provides data for the CardViewItemCreating event. + + + + + Initializes a new instance of the CardViewItemCreatingEventArgs. + + The CardTemplate item. + The newly created item. + The visual item. + + + + Gets the from CardTemplate. + + + + + Gets or sets the created . + + + + + Gets the . + + + + + Represents the method that will handle the formatting events of CardViewContainerElement items. + + The event sender, typically this is + Instance of containing the data related with this event + + + + Provides data for the CardViewItemFormatting event. + + + + + Initializes a new instance of the CardViewItemFormattingEventArgs class. + + The + The + + + + Gets the . + + + + + Gets the . + + + + + Fires the VisualItemCreating event of . + + The visual item. + The view type of + The data item for which a visual item is being created + The new visual item. + + + + An element which hosts and provides the layout of items that inherit from the . + This element can be found at the root level of , as well as + in or . + + + + + A common interface for elements which host items. + + + + + Gets the the drag hint preview rectangle if an item were to be dragged at a given point. + + The dragged item. + The point in control coordinates. + The preview rectangle. + + + + Gets the the drag hint preview rectangle if an item were to be dragged at a given point. + + The dragged item. + The point in control coordinates. + The type of the dragged item. + The preview rectangle. + + + + Handles dropping an element over another at the specified position. + + The drop target element. + The dragged element. + The specified position. + + + + Rebuilds the layout of the container. + + + + + Rebuilds the layout of the container. + + If [true], forces a layout update. + + + + Updates the layout of the inner controls. + + + + + Updates the layout of the inner controls. + + If [true], goes into nested s recursively. + + + + Gets or sets the fill color of the drag preview rectangle. + + + + + Gets or sets the border color of the drag preview rectangle. + + + + + Gets the associated with this container. + + + + + The collection of items which this container hosts. + + + + + Represents an item which hosts other items that inherit from . + Has a header element and a which holds the items. + Can be expanded and collapsed. + + + + + A base class for all items which can be placed in + + + + + Gets the which owns this item. Can be either + or . + + The owner item. + + + + Gets a value indicating whether this item is currently hidden. + + + + + Gets or sets a value indicating whether this item can be deleted by the + end-user from the Customize dialog. + + + + + Called when the group is expanded or collapsed to do the necessary updates. + + + + + Occurs when the group item is expanded. + + + + + Occurs when the group item is collapsed. + + + + + Occurs when the group item is about to be expanded. Cancelable. + + + + + Occurs when the group item is about to be collapsed. Cancelable. + + + + + Gets or sets a value indicating whether the line in the header element should be shown. + + + + + Gets the header element of the group. + + + + + Gets or sets a value indicating whether the group is currently expanded. + + + + + Gets or sets the height of the header. + + + + + Gets the container element which hosts the items within the group. + + + + + Gets the items within the group. + + + + + This method is used internally! + + + + + This method is used internally! + + + + + + Gets or sets the name of field associated with this item. + + + + + Gets the field. + + + + + This method is used internally! + + + + + + Gets the rectangle in which the text part will be arranged. + + The client area of the item. + The arrange rectangle of the text part. + + + + Gets the rectangle in which the editor will be arranged. + + The client area of the item. + The arrange rectangle of the editor. + + + + Gets or sets the position of the text of the item. + + + + + Gets or sets the proportional size of the text part which will be used + when TextSizeMode is set to proportional. + + + + + Gets or sets the fixed size of the text part which will be used + when TextSizeMode is set to fixed. + + + + + Gets or sets the minimum size of the text part. + + + + + Gets or sets the maximum size of the text part. + + + + + Gets or sets the way in which the text part will be sized - proportionally or fixed-size. + + + + + Gets the editor label item. + + + + + Gets or sets the name of field associated with this item. + + + + + Gets the card field. + + + + + The dialog which is opened when is in edit mode. Provides interface + to access the hidden items, bring new items to the control, or preview and edit the existing item structure. + + + + + Called to update the Hidden Items group in the Items tab + + + + + Called to update the tree view in the Structure tab + + + + + Gets the text which should be displayed in an item in the Hidden Items group or the Structure tree view. + + The item to get the text for. + The text for the item. + + + + Gets the image which should be displayed in an item in the Hidden Items group or the Structure tree view. + + The item to get the image for. + The image for that item. + + + + Called to rearrange the items when the RightToLeft property of the dialog has changed. + + + + + Called when the drag drop service of the list view has started. + + + + + Called to handle dropping a dragged item from the list view on the Items tab. + + + + + Handles dropping a list view item over a . + + The dragged list view item. + The drop target item. + + + + Handles dropping a list view item over an empty container. + + The container. + The dragged item. + + + + Called to create a new when dropping an item from the New Items group. + + The dragged item. + The newly created item + + + + Handles the DragOver event of the list view's drag drop service. + + + + + Gets the drag context of a dragged item. + + The dragged item. + The type of the associated item. + + + + Handles the NodeRemoving event of the tree view on the structure tab. + + + + + Handles the Click event of the Save Layout button. + + + + + Handles the Click event of the Load Layout button. + + + + + Handles the NodeEdited event of the tree view on the Structure tab. + + + + + Handles the SelectedNodeChanged event of the tree view on the Structure tab. + + + + + Handles the MouseMove event of the tree view on the Structure tab. + + + + + Handles the MouseDown event of the tree view on the Structure tab. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Shows the provided overlay in the control. + + The message that contains the overlay info. + + + + Hides any overlays that are currently displayed by the control. + + + + + Adds a new message to the chat. Typical messages are , , , and + + The message to be displayed in the chat. + + + + Gets the main chat element. + + + + + Gets or sets the current author. This instance is used when is set to true as well as to determine the messages alignment and styling. + + + + + Gets or sets a value indicating whether messages typed by the user will automatically be added as to the chat. + + + + + Gets or sets the size of the avatar images. + + + + + Gets or sets whether avatar images will be displayed in the chat window next to messages. + + + + + Gets or sets whether messages will be displayed aligned to only one side of the chat window or on both. + + + + + Gets or sets the time interval between messages that will trigger the automatic addition of a Time separator. + If set to no Time separators will be added. + + + + + Occurs when the user performs an action e.g hits the Enter key, clicks the Send message button, clicks on a Suggested Action or a Card Action, clicks OK on an overlay. + + + + + Occurs when the user clicks on a Suggested Action + + + + + Occurs when the user clicks on a Card Action + + + + + Occurs when the user clicks on a Toolbar Action + + + + + Occurs after a new message is added. Allows you to decide whether a time separator should be inserted before the currently added message. + + + + + Occurs when the data item of a visual element is changed and the element is prepared for visualization. + + + + + Shows the provided overlay in the control. + + The message that contains the overlay info. + + + + Hides any overlays that are currently displayed by the control. + + + + + Adds a new message to the chat. Typical messages are , , , and + + The message to be displayed in the chat. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The card which triggered the event. + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Gets or sets the current author. This instance is used when is set to true as well as to determine the messages alignment and styling. + + + + + Gets or sets a value indicating whether messages typed by the user will automatically be added as to the chat. + + + + + Gets or sets the size of the avatar images. + + + + + Gets or sets whether avatar images will be displayed in the chat window next to messages. + + + + + Gets or sets whether messages will be displayed aligned to only one side of the chat window or on both. + + + + + Gets or sets the time interval between messages that will trigger the automatic addition of a Time separator. + If set to no Time separators will be added. + + + + + Occurs when the user performs an action e.g hits the Enter key, clicks the Send message button, clicks on a Suggested Action or a Card Action, clicks OK on an overlay. + + + + + Occurs when the user clicks on a Suggested Action + + + + + Occurs when the user clicks on a Card Action + + + + + Occurs when the user clicks on a Toolbar Action + + + + + Occurs after a new message is added. Allows you to decide whether a time separator should be inserted before the currently added message. + + + + + Occurs when the data item of a visual element is changed and the element is prepared for visualization. + + + + + Gets or sets the size of the avatar images. + + + + + Gets or sets whether avatar images will be displayed in the chat window next to messages. + + + + + Gets or sets whether messages will be displayed aligned to only one side of the chat window or on both. + + + + + Gets or sets the time interval between messages that will trigger the automatic addition of a Time separator. + If set to no Time separators will be added. + + + + + Represent item scroller + + + + + + Called when tool tip text is needed. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Scrolls to item. + + The item. + + + + + Scrolls to item. + + The item. + if set to true scroll visibility is checked before processing scrolling. + + + + + Scrolls to begin. + + + + + + Scrolls to end. + + + + + + Scrolls to specified position. + + The position. + + + + + Scrolls down to specified position. + + The step. + + + + + Gets the height of the scroll. + + The item. + + + + + Scrolls up. + + The step. + + + + + Updates the on scroll. + + The instance containing the event data. + + + + + Updates the scroll range. + + + + + Updates the scroll value. + + + + + Updates the scroll range with concrete range. + + The width. + if set to true [update scroll value]. + + + + Updates the scroll step. + + + + + Sets the scroll bar visibility. + + + + + Shows scroller's tool tip + + + + + Determines the ToolTip text + + + Returns the ToolTip's text + + + + + Determines the traverser's current item index + + + The Index of the current item + + + + + Hides scroller's tooltip + + + + + When set to true, allows the scroller to scroll through the items + when the scrollbar is not visible. + + + + + Gets the max width of item. + + + The width of the max item. + + + + + Gets or sets the state of the scroll. + + + The state of the scroll. + + + + + Gets or sets the associated traverser. + + + The traverser. + + + + + Gets or sets the associated scrollbar. + + + The scrollbar. + + + + + Gets or sets the element provider. + + + The element provider. + + + + + Gets or sets the scroll mode. + + + The scroll mode. + + + + + Gets or sets the client size. + + + The size of the client. + + + + + Gets or sets the item height. + + + The height of the item. + + + + + Gets or sets the item spacing. + + + The item spacing. + + + + + Gets or sets the scroll offset. + + + The scroll offset. + + + + + Gets the position. + + + The position. + + + + + Gets or sets the tool tip. + + + The tool tip. + + + + + Gets or sets a value indicating whether scrolling is asynchronous. + + + true if [asynchronous scrolling]; otherwise, false. + + + + + Occurs when the scroller is updated. + + + + + Occurs when tool tip text is needed. + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Gets or sets the image of the element. + + + The image. + + + + + Gets the image primitive. + + + The image primitive. + + + + + This class represents the container which holds + all controls put in a + control. The scrolling support comes from this container. + + + + + Creates an instance of the + class. This constructor is used by the Visual Studio Designer. + + + + + Creates an instance of the + class. + + An instance of the + class which represents the owner of this container. + + + + Gets or sets a value indicating whether the focused control inside the RadScrollablePanel + will be automatically scrolled into view when gaining focus. + + + + + Initializes a new instance of the class. + + + + + Initializes the internal container which holds the controls. + + + + + Creates the child items. + + The parent. + + + + Creates the controls container which holds the controls. + + + + + + Creates the collapsible panel element. + + + + + + Creates a new instance of the control collection for the control. + + + A new instance of assigned to the control. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Expands the control. Will not have effect if the control is already expanded or is animating. + Can be canceled from the Expanding event. + + + + + Collapses the control. Will not have effect if the control is already collapsed or is animating. + Can be canceled from the Collapsing event. + + + + + If the Control is expanded it will be collapsed and vice-versa. + + + + + If the Control is expanded it will be collapsed and vice-versa. + + if set to true ignores the IsExpanded property. + if set to true expands the control without animation. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + An that contains the event data. + + + + Gets the default size of the control. + + The default of the control. + + + + Gets the controls container. + + + The controls container. + + + + + Gets the panel container which contains the controls of the RadCollapsiblePanel. + + + The panel container. + + + + + Gets the collapsible panel element. + + + The collapsible panel element. + + + + + Gets or sets the expand direction. + + + The expand direction. + + + + + Gets or sets a value indicating whether to use animation to expand or collapse the control. + + + true if the expand/collapse animations are enabled; otherwise, false. + + + + + Gets or sets the content sizing mode. + + + The content sizing mode. + + + + + Gets a or Sets value indicating whether the control is expanded. + + + true if the control is expanded; otherwise, false. + + + + + Gets a value indicating whether the control is currently animating. + + + true if the control is currently animating; otherwise, false. + + + + + Gets or sets a value indicating whether to show a line primitive in the header. + + + true if a line in the header is visible; otherwise, false. + + + + + Gets or sets the horizontal header alignment. + + + The horizontal header alignment. + + + + + Gets or sets the vertical header alignment. + + + The vertical header alignment. + + + + + Gets or sets the header text. + + + The header text. + + + + + This value is set when the control is about to be collapsed and is used to restore the control's size when expanding. It should only be set by the control itself. + + + + + Gets or sets the animation interval. + + + The animation frames. + + + + + Gets or sets the animation frames. + + + The animation frames. + + + + + Gets or sets the easing type to be applied to the animation when expanding or collapsing + + + The animation easing type. + + + + + Gets or sets the type of the expand or collapse animation. + + + The type of the animation. + + + + + Gets or sets the BackColor of the control. + This is actually the BackColor property of the root element. + + + + + This property is not relevant for this class. + + + + + Occurs after the control is expanded. + + + + + Occurs after the control is collapsed. + + + + + Occurs before the control is expanded. + + + + + Occurs before the control is collapsed. + + + + + Synchronizes its size, location and margin with the specified instance + + The element to synchronize with. + + + + Synchronizes its size with the specified instance + + The element to synchronize with. + + + + Synchronizes its location with the specified instance + + The element to synchronize with. + + + + Synchronizes its margin with the specified instance + + The element to synchronize with. + + + + Suspends the child controls layout. + + + + + Suspends the child controls layout where the controls are not docked. + + + + + Resumes the child controls layout. + + if set to true [perform layout]. + + + + Resumes the child controls layout. + + + + + Draws the control to a + + A new instance of + + + + Gets the container panel that holds + all the components added to the panel. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control is resized with its parent. + + One of the values. The default is . + + + + Gets or sets the class name string that ThemeResolutionService will use to find the themes registered for the control. + + + By default the return value is RadControl's type FullName; Some controls like drop down menu has different ThemeClassName + depending on the runtime usaage of the control. + + + + + Initializes a new instance of the class. + + The owner control. + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the header element. + + + + + + Creates the layout element. + + + + + + Raises the event. + + The instance containing the event data. + + + + Called when the button in the CollapsiblePanel's header is clicked. + + The sender. + The instance containing the event data. + + + + Expands the control. Will not have effect if the control is already expanded or is animating. + Can be canceled from the Expanding event. + + + + + Expands the control. Will not have effect if the control is already expanded or is animating. + Can be canceled from the Expanding event. + + if set to true ignores the IsExpanded property. + if set to true expands the control without animation. + + + + Collapses the control. Will not have effect if the control is already collapsed or is animating. + Can be canceled from the Collapsing event. + + + + + Collapses the control. Will not have effect if the control is already collapsed or is animating. + Can be canceled from the Collapsing event. + + if set to true ignores the IsExpanded property. + if set to true expands the control without animation. + + + + If the Control is expanded it will be collapsed and vice-versa. + + + + + If the Control is expanded it will be collapsed and vice-versa. + + if set to true ignores the IsExpanded property. + if set to true expands the control without animation. + + + + Creates the instance which will be used to animate the control. + Create it according to its value. + + + + + + Creates the instance which will be used to animate the control. + + if set to true expand animation will be created, otherwise collapse animation will be created. + + + + + Sets the control bounds after it is collapsed. + + + + + Creates the expand animation. + + + + + + Setups the reveal expand animation. + + The animation to be set up. + + + + Setups the slide expand animation. + + The animation to be set up. + + + + Creates the collapse animation. + + The new instance + + + + Setups the reveal collapse animation. + + The animation to be set up. + + + + Setups the slide collapse animation. + + The animation to be set up. + + + + Executes the collapse preparations. This method is invoked before the panel starts collapsing. + + If the current enumeration is not supported + + + + Executes the collapse finalizations. This method is invoked after the panel has collapsed. + + If the current enumeration is not supported + + + + Executes the expand preparations. This method is invoked before the panel starts expanded. + + If the current enumeration is not supported + + + + Executes the expand finalizations. This method is invoked after the panel has expanded. + + If the current enumeration is not supported + + + + Gets the object to be animated. This object is used by the current animation object. + + + If the current enumeration is not supported + + + + Gets the header element. + + + The header element. + + + + + Gets or sets the expand direction. + + + The expand direction. + + + + + Gets or Sets a value indicating whether the control is expanded. + + + true if the control is expanded; otherwise, false. + + + + + Gets or sets a value indicating whether to use animation to expand or collapse the control. + + + true if the expand/collapse animations are enabled; otherwise, false. + + + + + Gets or sets the content sizing mode. + + + The content sizing mode. + + + + + Gets or sets a value indicating whether the control is currently animating. + + + true if the control is currently animating; otherwise, false. + + + + + Gets or sets the animation interval. + + + The animation interval. + + + + + Gets or sets the animation frames. + + + The animation frames. + + + + + Gets or sets a value indicating whether to show a line primitive in the header. + + + true if a line in the header is visible; otherwise, false. + + + + + Gets or sets the horizontal header alignment. + + + The horizontal header alignment. + + + + + Gets or sets the vertical header alignment. + + + The vertical header alignment. + + + + + Gets the layout element. + + + The layout element which is responsible for the position of the ControlsContainer + + + + + Gets or sets the header text. + + + The header text. + + + + + This value is set when the control is about to be collapsed and is used to restore the control's size when expanding. It should only be set by the control itself. + + + + + Gets or sets the easing type to be applied to the animations + + + The animation easing type. + + + + + Gets or sets the type of the expand or collapse animation. + + + The type of the animation. + + + + + Occurs when the control is expanded. + + + + + Occurs when the control is collapsed. + + + + + Occurs when the control is about to be expanded. Cancelable. + + + + + Occurs when the control is about to be collapsed. Cancelable. + + + + + Initializes member fields to their default values. + This method is called prior the CreateChildItems one and allows for initialization of members on which child elements depend. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the button element. + + + + + + Creates the text element. + + + + + + Creates the line element. + + + + + + Raises the event. + + The instance containing the event data. + + + + Gets the expand collapse button element. + + + The expand collapse button element. + + + + + Gets the header text element. + + + The header text element. + + + + + Gets the header line element. + + + The header line element. + + + + + Gets or sets a value indicating whether to show a line primitive in the header. + + + true if a line in the header is visible; otherwise, false. + + + + + Gets or sets the horizontal header alignment. + + + The horizontal header alignment. + + + + + Gets or sets the vertical header alignment. + + + The vertical header alignment. + + + + + The content will be horizontally positioned in the center of its parent. + + + + + The content will be horizontally positioned to the center of its parent. + + + + + The content will be horizontally positioned to the left of its parent. + + + + + The content will stretched so all children have equal width. + + + + + The content will be vertically positioned in the center of its parent. + + + + + The content will be vertically positioned to the bottom of its parent. + + + + + The content will be vertically positioned to the top of its parent. + + + + + The content will stretched so all children have equal height. + + + + + Represents a MaskedEditBox in . + + + + + A base class for all of the items contained in . + + + + + Represents a base class for most of the elements. + + + + + Gets or sets the orientation of the element - colud be horizontal or vertical. + + + + + Gets or sets the name that is displayed in command bar dialogs and context menus. + + + + + Raises the event. + + Event data. + + + + Raises the event. + + Event data. + true if the event should be canceled, false otherwise. + + + + Raises the event. + + Event data. + + + + Occurs when the orientation is changed + + + + + Occurs before the orientation is changed + + + + + Occurs when the property is changed. + + + + + Show or hide item from the strip overflow menu + + + + + Gets or sets the Orientation of the item. + + + + + Show or hide item from the strip + + + + + Gets or sets that the orientation will be inherit from parent + + + + + Occurs when the element is double-clicked. + + + + + Gets or sets a mask expression. + + + + + Gets or sets the mask type. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the hosted . + + + + + Gets or sets the name of the descriptor. + + The name of the descriptor. + + + + Gets or sets the type of the descriptor. + + The type of the descriptor. + + + + Gets or sets a value indicating if this descriptor item is auto generated. + + The is auto generated. + + + + Gets or sets the default filter operator. + + The default filter operator. + + + + Gets or sets the default value. + + The default value. + + + + Gets the filter operators. + + The filter operators. + + + + Gets the filter operation context. + + The filter operation context. + + + + Gets or sets the data source that populates the items for the . + + + + + Gets or sets a string that specifies the property or database column from which to get values that correspond to the items in the . + + + + + Gets or sets a string that specifies the property or database column from which to retrieve strings for display in the items. + + + + + Specifies the mode for the automatic completion feature used in the . + + + + + Gets or sets a value specifying the style of the . + + + + + Gets or sets the editor's value. + + + + + Gets or sets a value indicating whether the node is selected. + + + + + Gets or sets a value indicating that this is the current node. + + + + + Gets or sets a value indicating whether the node is expanded. + + + + + Gets or sets a value indicating whether the control contains the focus. + + + + + Gets a value indicating whether the node is currently at root level. + + + + + Gets or sets the arbitrary height for this particular node. + Valid when the owning RadTreeViewElement's AllowArbitraryHeight property is set to true. + + + + + Gets a value indicating that this is the hot tracking node. + + + + + Gets a value indicating whether this node contains child nodes. + + + + + Synchronizes this instance. + + + + + Sets the control cursor. + + The cursor. + + + + Gets or sets the currently editing element. + + The editing element. + + + + Gets the drag element. + + The drag element. + + + + Gets the close button. + + The close button. + + + + Gets the data filter element. + + The data filter element. + + + + Initializes new instance of the RadTreeNode class. + + The text to be used as label text. + A boolean value indicating whether the node is expanded. + + + + Finds the specified match. + + The match. + + + + + Finds the nodes. + + The match. + + + + + Finds the nodes. + + The match. + The argument. + + + + + Executes the specified command. + + The command. + The settings. + + + + + Executes the specified command include sub trees. + + if set to true [include sub trees]. + The command. + The settings. + + + + + Initiates the editing of the tree node. + + + + + + Ends the edit. + + + + + + Cancels the edit. + + + + + + Collapses the tree node. + + + + + Collapses the and optionally collapses its children. + + if set to true [ignore children]. + + + + Ensures that the tree node is visible, expanding tree nodes and scrolling the tree view control as necessary. + + + + + Expands the tree node. + + + + + Expands all the child tree nodes. + + + + + Returns the number of child tree nodes. + + if set to true [include sub trees]. + + + + + Removes the current tree node from the tree view control. + + + + + Toggles the tree node to either the expanded or collapsed state. + + + + + Returns a that represents the tree node. + + + A that represents the tree node. + + + + + This method is used internally! + + + + + Execute the action for every RadTreeNode in the branch + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Allows PropertyChanged notifications to be temporary suspended. + + + + + Resumes property notifications after a previous SuspendPropertyNotifications call. + + + + + Sets the IBindingList which holds the child nodes in Object Relational Binding mode + + + + + + Gets the last matches using Find method. + + Gets the last matches using Find method. + + + + Gets the style. + + The style. + + + + Gets a value indicating whether this instance has style. + + true if this instance has style; otherwise, false. + + + + Gets or sets a value indicating whether the node can respond to user interaction. + + The default value is true. + + + + Gets the root parent node for this RadTreeView. + + The default value is null. + + + + Gets the parent tree view that the tree node is assigned to. + + + + + Gets or sets a value indicating whether this is checked. + + true if checked; otherwise, false. + + + + Gets or sets the state of the check element. + + The state of the check. + + + + Gets or sets the type of the check element. + + The type of the check. + + + Gets or sets the context menu associated to the node. + + Returns an instance of RadDropDownMenu Class that + is associated with the node. The default value is null. + + + This property could be used to associate a custom menu and replace the treeview's + default. If the context menu is invoked by right-clicking a node, the treeview's menu + will not be shown and the context menu assigned to this node will be shown + instead. + + RadContextMenu Property (Telerik.WinControls.UI.RadTreeView) + + + + Gets or sets a value indicating whether this instance is visible. + + + true if this instance is visible; otherwise, false. + + + + + Gets the index. + + The index. + + + + Gets a value indicating whether this instance is editing. + + + true if this instance is editing; otherwise, false. + + + + + Gets or sets a value indicating whether this instance is selected. + + + true if this instance is selected; otherwise, false. + + + + + Gets or sets a value indicating whether this instance is current. + + + true if this instance is current; otherwise, false. + + + + + Gets or sets the tree view element. + + The tree view element. + + + + Gets or sets a value indicating whether this instance is expanded. + + + true if this instance is expanded; otherwise, false. + + + + + Gets or sets the parent. + + The parent. + + + + Gets or sets the text. + + The text. + + + + Gets or sets the node value. + + The text. + + + + Gets the nodes. + + The nodes. + + + + Gets the level. + + The level. + + + + + Gets or sets the name of the RadTreeNode. + + A String that represents the name of the tree node. + + The Name of a TreeNode is also the node's key, when the node is part of a + TreeNodeCollection. If the node does not + have a name, Name returns an empty string (""). + + + + + Gets the first node. + + The first node. + + + + Gets the last node. + + The last node. + + + + Gets the next node. + + The next node. + + + + Gets the next visible node. + + The next visible node. + + + + Gets the prev node. + + The prev node. + + + + Gets the prev visible node. + + The prev visible node. + + + + Gets or sets the tag object that can be used to store user data, corresponding to the tree node. + + The tag. + + + + Gets or sets the text that appears when the mouse pointer hovers over a tree node. + + The default value is "". + + + + Gets the full path. + + The full path. + + + + Gets or sets the image of the node. + + ImageIndex Property + ImageKey Property + + + + Gets or sets the left image list index value of the image displayed when the tree + node is not selected. + + Image Property + ImageKey Property + + + + Gets or sets the key for the left image associated with this tree node. + + Image Property + ImageIndex Property + + + + Gets or sets the height of the tree node in the tree view control. + + The default value is 20. + + + + Gets or sets the measured desired width for this node. + + + + + Gets or sets the measured desired width for this node. + + + + + Gets or sets a value indicating whether [allow drop]. + + true if [allow drop]; otherwise, false. + + + + Gets or a value indicating whether the control is in design mode. + + + + + Gets a value if the node is root node + + + + + Gets the data-bound object that populated the node. + + + + + Gets or sets the font of the node text. + + The default value is null. + + + + Gets or sets the foreground color of the tree node. This color is applied to the text label. + + + + + Gets or sets the backcolor of the tree node. Color type represents an ARGB color. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the tree node. This property is applicable to radial, glass, + office glass, gel, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the tree node. This property is applicable to radial, glass, + office glass, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the tree node. This property is applicable to radial, glass, + office glass, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the border color of the tree node. + + + + + Gets or sets gradient angle for linear gradient. + + GradientStyle Property + GradientPercentage Property + GradientPercentage2 Property + NumberOfColors Property + The default value is 90.0. + + + + Gets or sets GradientPercentage for linear, glass, office glass, gel, vista, and + radial gradients. + + GradientStyle Property + GradientPercentage2 Property + GradientAngle Property + NumberOfColors Property + The default value is 0.5. + + + + Gets or sets GradientPercentage for office glass, vista, and radial + gradients. + + GradientStyle Property + GradientPercentage Property + GradientAngle Property + NumberOfColors Property + The default value is 0.5. + + + + Gets and sets the gradient style. The possible values are defined in the gradient + style enumeration: solid, linear, radial, glass, office glass, gel, and vista. + + + The default value is + GradientStyles.Linear. + + GradientStyles Enumeration + GradientPercentage Property + GradientPercentage2 Property + GradientAngle Property + NumberOfColors Property + + + + Gets or sets the number of used colors in the gradient effect. + + BackColor Property + BackColor2 Property + BackColor3 Property + BackColor4 Property + GradientStyle Property + The default value is 4. + + + + Gets or sets the text alignment. + + + The default value is ContentAlignment.MiddleLeft. + + + + + Gets the associated group node. + + The associated group node. + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Gets the drop down button. + + The drop down button. + + + + Compares the specified x. + + The x. + The y. + + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Synchronizes this instance. + + + + + Gets the value of field, operator and value elements. + + + + + + Updates the descriptor value. + + The value. + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Gets the criteria node. + + The criteria node. + + + + Gets the field element. + + The field element. + + + + Gets the operator element. + + The operator element. + + + + Gets the value element. + + The value element. + + + + Removes the current tree node from the tree view control. + + + + + Gets the formatted value. + + + + + Gets or sets the associated filter descriptor. + + The descriptor. + + + + Gets or sets the descriptor item. + + The descriptor item. + + + + Gets or sets the property name of associated filter descriptor. + + The name of the property. + + + + Gets or sets the filter operator of associated filter descriptor. + + The filter operator. + + + + Gets or sets the value of associated filter descriptor. + + The descriptor value. + + + + Gets the type of the value. + + The type of the value. + + + + Gets or sets the node value. + + The text. + + + + Creates a new tree node in the target RadTreeView using the information from the source tree. + + The source tree node. + A new instance of if successfull. + + + + Gets or sets a value indicating whether show drop hint should be shown. + + true if [show drop hint]; otherwise, false. + + + + Gets or sets a value indicating whether drag hint should be shown. + + true if [show drag hint]; otherwise, false. + + + + Determines whether this instance can start the specified context. + + The context. + + + + + Determines whether this instance [can drag over] the specified drop position. + + The drop position. + The target node element. + + + + + Cancels the preview drag drop. + + The instance containing the event data. + + + + + Gets the editor element. + + The editor. + + + + + Gets the editor. + + The editor. + + + + Gets or sets the type of the editor. + + The type of the editor. + + + + Creates the element. + + The data. + The context. + + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Synchronizes this instance. + + + + + Updates the descriptor value. + + The value. + + + + Gets the logical operator form text. + + The text. + + + + + Gets the logical operator of group node. + + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Gets the size of the editor. + + Size of the available. + The editor element. + + + + + Gets the group node. + + The group node. + + + + Gets the logical operator element. + + The logical operator element. + + + + Gets the text element. + + The text element. + + + + Gets the logical operator. + + The logical operator. + + + + Adds child descriptor. + + The descriptor to add. + + + + Removes child descriptor. + + The descriptor to remove. + + + + Removes the current tree node from the tree view control. + + + + + Gets or sets the associated composite descriptor. + + The composite descriptor. + + + + Gets or sets the logical operator of associated CompositeDescriptor. + + The logical operator. + + + + Gets or sets the associated add node. + + The associated add node. + + + + Gets or sets the full desired size calculated by the virtualized container + + + + + Gets the first found item, with property name equal to item descriptor name specified, case-sensitive. + + RadItem if found, null (Nothing in VB.NET) otherwise + + + + + Gets the operator. + For example: If the operator is LIKE and the value is '%s%' - returns Contains. + + The filter operator. + The value. + + + + + Gets the display value. Returns a value depending on filter operator. + + The filter operator. + The value. + + + + + Gets the display name from localization provider. + + The filter operator. + The value. + + + + + Gets the filter operations that are suitable for the given data type. + + Type of the data. + + + + + Gets the name. + + The name. + + + + Gets the operator. + + The operator. + + + + Updates the properties from current SourceControl. + + + + + Gets the field names. + + + + + + Applies the filter to the SourceControl. + + The expression. + Thrown if the SourceControl is not initialized. + Thrown if the SourceControl is not implementer of System.ComponentModel.IBindingListView, System.Data.DataTable or System.Data.DataView + + + + Gets the type of the field. + + Name of the field. + + + + + Gets the property descriptor. + + Name of the property. + + + + + Gets or sets the source control. + + The source control. + + + + Gets or sets the property descriptors. + + The property descriptors. + + + + Creates the provider. + + The source control. + + + + + Applies the filter expression to the DataFilter. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the data filter. + + The data filter. + + + + Gets or sets the data source of DataFilter. + + The data source. + + + + RadDataFilter localization strings. + + + + + Provides localization services for RadDataFilter. + + + + + Gets the string corresponding to the given ID. + + String ID. + The string corresponding to the given ID. + + + + Displays a hierarchical collection of filter expressions. + + + + + Displays a hierarchical collection of labeled items, each represented by a RadTreeNode. + + + + + Sets the error. + + The text. + The RAD tree node. + + + + Creates a new node and adds a node by path. The label of the new node will be the text after the last separator. + + Where the node should be added. + The new node if the operation is successful. + + + + Creates a new node and adds a node by path. The label of the new node will be the text after the last separator. + + Where the node should be added. + The path separator. + The new node if the operation is successful. + + + + Gets a node by specifying a path to it. + + The path to the node. + The node if found. + + + + Gets a node by specifying a path to it. + + The path to the node. + The path separator. + The node if found. + + + + Gets a node with the specified name. + + The name of the node. + A node with the specified name. + + + + Gets a node with the specified name. + + The name of the node. + /// The node which the should be taken as a root. + A node with the specified name. + + + + Brings the into view. + + The node. + + + + Finds the specified match. + + The match. + + + + + Finds the specified match. + + The match. + The argument. + + + + + Finds the specified text. + + The text. + + + + + Execute the specified action for every RadTreeNode in the tree + + + + + + Finds the nodes. + + The match. + + + + + Finds the nodes. + + The match. + The argument. + + + + + Finds the nodes. + + The text. + + + + + Executes the specified command. + + The command. + The settings. + + + + + Executes the specified command include sub trees. + + if set to true [include sub trees]. + The command. + The settings. + + + + + Begins the edit. + + + + + Commits any changes and ends the edit operation on the current cell. + + + + + + Close the currently active editor and discard changes. + + + + + + Loads the XML. + + Name of the file. + The extra types that will be load + + + + Loads the XML. + + The stream. + The extra types that will be load + + + + Saves the XML. + + Name of the file. + The extra types that will be saved + + + + Saves the XML. + + The stream. + The extra types that will be saved + + + + Disables any update of the tree view. + + + + + Ends the update. + + + + + Defers the refresh. + + + + + + Collapses all the tree nodes. + + + + + Collapses all nodes in a given collection. + + The collection of nodes to be collapsed. + + + + Expands all the tree nodes. + + + + + Expands all nodes in a given collection. + + The collection of nodes to be expanded. + + + + Retrieves the tree node that is at the specified point. + + The System.Drawing.Point to evaluate and retrieve the node from. + The System.Windows.Forms.TreeNode at the specified point, in tree view (client) coordinates, or null if there is no node at that location. + + + + Retrieves the tree node at the point with the specified coordinates. + + The System.Drawing.Point.X position to evaluate and retrieve the node from. + The System.Drawing.Point.Y position to evaluate and retrieve the node from. + The System.Windows.Forms.TreeNode at the specified location, in tree view (client) coordinates, or null if there is no node at that location. + + + + Retrieves the number of tree nodes, optionally including those in all subtrees, assigned to the tree view control. + + The number of tree nodes, optionally including those in all subtrees, assigned to the tree view control. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Executes a command over an entire subtree starting with the specified nodes. + + The nodes form which the execuition starts. + The level of nodes over which to execute the command. If -1 the entire subtree is traversed. + The command to execute. + Parameters to pass the command prior to execution. + The results from the batch execution. + + + + Executes a command over an entire subtree starting with the specified node. + + The node form which the execuition starts. + The level of nodes over which to execute the command. If -1 the entire subtree is traversed. + The command to execute. + Parameters to pass the command prior to execution. + The first result from the batch execution. + + + + Executes a command over an entire subtree starting with the specified node. + + The node form which the execuition starts. + The level of nodes over which to execute the command. If -1 the entire subtree is traversed. + The command to execute. + Parameters to pass the command prior to execution. + The results from the batch execution. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets a value indicating whether the TreeView load child Nodes collection in NodesNeeded event only when Parent nodes expanded. + + true if [lazy mode]; otherwise, false. + + + + Gets or sets the color of the drop hint. + + + The drop feedback is a visual cue that assists the user with information where to + drop during the drag and drop operation. + + ShowDropHint Property + + The default value is + + black. + + + + + Gets or sets a value indicating whether [show drop feedback]. + + true if [show drop feedback]; otherwise, false. + + + + Gets or sets a value indicating whether [show drop feedback]. + + true if [show drop feedback]; otherwise, false. + + + + Contains data binding settings for related data. + + + + Gets or sets the type of the expand animation enumeration. + AllowPlusMinusAnimation enumeration + PlusMinusAnimationStep Property + ExpandAnimation Enumeration + + The default value is ExpandAnimation.Opacity. + + + + Gets or sets the opacity animation step for expand/collapse animation. + + Returns a double value from double.Epsilon to 1 representing the opacity changing step with + which the plus minus buttons are animated. The default value is 0.025. + + + + + Gets or sets a value indicating whether animation of collapse/expand images is enabled. + + ShowExpanCollapse Property + PlusMinusAnimationStep Property + The default value is false. + + + + The default image index for nodes. + + The index of the image. + + + + The default image key for nodes. + + The image key. + + + + Gets or sets a value indicating whether drag and drop operation with treeview + nodes is enabled. + + AllowDragDropBetweenTreeViews Property + AllowDrop Property (Telerik.WinControls.UI.RadTreeNode) + The default value is false. + + + + Gets or sets a value indicating whether the user is allowed to select more than one tree node at time + + true if [multi select]; otherwise, false. + + + + Gets or sets the shortcut menu associated with the control. + + + + A that represents the shortcut menu associated with the control. + + + + + Gets or sets the associated with this control. + + + + The for this control, or null if there is no . The default is null. + + + + + Gets or sets the filter. + + The filter. + + + + Gets or sets the sort order of Nodes. + + The sort order. + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets the sort descriptors. + + The sort descriptors. + + + + Gets or sets a value indicating whether checkboxes are displayed beside the nodes. + + The default value is false. + + + + Gets or sets a value indicating whether the child nodes should be auto checked when RadTreeView is in tri state mode + + The default value is false. + + + + Gets or sets a value indicating whether the highlight spans the width of the tree + view. + + The default value is false. + + + + Gets or sets a value indicating whether [hide selection]. + + true if [hide selection]; otherwise, false. + + + + Gets or sets a value indicating whether [hot tracking]. + + true if [hot tracking]; otherwise, false. + + + + Gets or sets the indent. + + The indent. + + + + Gets or sets the height of the item. + + The height of the item. + + + + Gets or sets a value indicating whether nodes can have different height. + + The default value is false. + + + Gets or sets the spacing in pixels between nodes. + The default value is 0. + + + + Gets or sets a value indicating whether editing is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether adding new nodes is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether removing nodes is allowed. + + true if [allow edit]; otherwise, false. + + + Gets a value indicating whether there is an open editor in the tree view. + + + Gets the active editor in the tree. + + The IValueEditor Interface if any. + + + + + Gets or sets the color of the line. + + The color of the line. + + + + Gets or sets the path separator. + + The path separator. + + + + Gets or sets the selected node. + + The selected node. + + + + Gets the checked nodes. + + The checked nodes. + + + + Gets or sets a value indicating whether [show lines]. + + true if [show lines]; otherwise, false. + + + + Gets or sets a value indicating whether expand/collapse (plus-minus) buttons are + shown next to nodes with children. + + The default value is true. + + + + Gets the top node. + + The top node. + + + + Gets the visible count. + + The visible count. + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets or sets the display member. + + The display member. + + + + Gets or sets the value member. + + The value member. + + + + Gets or sets the checked member. + + The checked member. + + + + Gets or sets the child member. + + The child member. + + + + Gets or sets the parent member. + + The parent member. + + + + Gets or sets a that will be used to convert the toggle state of the checkboxes + to the underlying data type it is bound to. + + + + + Gets the collection of tree nodes that are assigned to the tree view control. + + A System.Windows.Forms.TreeNodeCollection that represents the tree nodes assigned to the tree view control. + + + + Gets the tree view element. + + The tree view element. + + + + Gets the Horizontal scroll bar. + + The Horizontal scroll bar. + + + + Gets the Vertical scroll bar. + + The Vertical scroll bar. + + + + Gets or sets the line style. + + TreeLineStyle enumeration + + A TreeLineStyle that represents the style used for + the lines between the nodes. The default is + TreeLineStyle.Dot. + + + + + Gets or sets a value indicating whether tri state mode is enabled. + + The default value is false. + + + + Gets or sets a value indicating the default tree view toggle mode. + + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when RadTreeView is focused. + + The default value is false. + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + + The default value is 300ms. + + + + Gets or sets the string comparer used by the keyboard navigation functionality. + + + + + RadTreeView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadTreeView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs when the RadTreeView NodesNeeded event is handled and LazyMode property is true. + + + + + Occurs when the RadTreeView report the data error. + + + + + Occurs when the user begins dragging an item. + + + + + Occurs when TreeView required editor. + + + + + Occurs before the tree node label text is edited. + + + + + Occurs when initializing the active editor. + + + + + Occurs after the tree node label text is edited. + + + + + Occurs when the editor is changing the value during the editing process. + + + + + Occurs when the editor finished the value editing. + + + + + Occurs when the editor changed the value editing. + + + + + Occurs when editor validating fails. + + + + + Occurs when a drag is ending + + + + + Occurs when a drag has ended + + + + + Occurs when a drag is starting + + + + + Occurs when a drag has started + + + + + Occurs when drag feedback is needed for a node. + + + + + Occurs before a tree node is selected. + + + + + Occurs after the tree node is selected. + + For more information about handling events, see also SelectedNodeChanging. + + + + + + Occurs when selected nodes has been cleared. + + + + + Occurs when SelectedNodes collection has been changed. + + + + + Occurs when the user presses a mouse button over a RadTreeNode. + + + + + Occurs when the user releases a mouse button over a RadTreeNode. + + + + + Occurs when the user moves the mouse in the area of a RadTreeNode. + + + + + Occurs when the mouse enters the area of a RadTreeNode. + + + + + Occurs when the mouse leaves the area of a RadTreeNode. + + + + + Occurs when the mouse hovers over a RadTreeNode. + + + + + Occurs when a mouse button is clicked inside a + + + + + Occurs when a mouse button is double clicked inside a + + + + + Occurs when the value of the Checked property of a RadTreeNode is changing. + + + + + Occurs when the value of the Checked property of a RadTreeNode is changed. + + + + + Occurs before the value of the Expanded property of a tree node is changed. + + + + + Occurs after the value of the Expanded property of a tree node is changed. + + + + + Occurs when the Nodes collection requires to be populated in Load-On-Demand mode using LazyTreeNodeProvider. + + + + + Occurs when the node changes its state and needs to be formatted. + + + + + Occurs when a new node is going to be created. + + + + + Occurs when a new node element is going to be created. + + + + + Occurs when opening the context menu. + + + + + Occurs after a node is removed. + + + + + Occurs before a node is removed. + + + + + Occurs after a node is being added. + + + + + Occurs after a node is bound to a data item. + + + + + Occurs before a node is being added. + + + + + Gets or sets a value indicating whether single node expand is enabled. + + + + + Gets or sets a value indicating whether the default context menu is enabled. + + The default value is false. + + + + Applies the filter to the DataSource. + + + + + Signals the object that initialization is complete. + + + + + Loads the XML with reader. + + The reader. + The extra types. + + + + Saves the XML with writer. + + The writer. + The extra types. + + + + Gets or sets the auto generate descriptor items. + + The auto generate descriptor items. + + + + A collection of descriptor items used to identify the property names and their corresponding types. + + + + + Gets or sets the data source that the is displaying filters for. + + + + + Gets the data filter element. + + The data filter element. + + + + Gets or sets the expression. + + The expression. + + + + Gets or sets a value indicating whether the name of fields in fields drop down should be sorted. + + + + + Gets or sets a value indicating how the field names are sorted when SortFieldNames is true. + + + + + Gets the collection of tree nodes. + + + A System.Windows.Forms.TreeNodeCollection that represents the tree nodes assigned to the data filter control. + + + + + Gets or sets a value indicating whether drag and drop operation with RadDataFilter + nodes is enabled. + + AllowDragDropBetweenTreeViews Property + AllowDrop Property (Telerik.WinControls.UI.RadTreeNode) + The default value is false. + + + + Gets or sets a value indicating whether adding new nodes is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether removing nodes is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether editing is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets the height of the item. + + The height of the item. + + + + Gets or sets a value indicating whether [show lines]. + + true if [show lines]; otherwise, false. + + + + Gets or sets the color of the line. + + The color of the line. + + + + Gets or sets the line style. + + TreeLineStyle enumeration + + A TreeLineStyle that represents the style used for + the lines between the nodes. The default is + TreeLineStyle.Solid. + + + + + Gets or sets a value indicating the default tree view toggle mode. + + + + + Occurs when a property text is about to be displayed on the screen. Allows the developer to substitute property names with + user-friendly display strings. + + + + + Raises the event. + + The instance containing the event data. + + + + Sets the error. + + The text. + The RAD tree node. + The context where this error occured. + + + + Creates a new node and adds a node by path. The label of the new node will be the text after the last separator. + + Where the node should be added. + The new node if the operation is successful. + + + + Creates a new node and adds a node by path. The label of the new node will be the text after the last separator. + + Where the node should be added. + The path separator. + The new node if the operation is successful. + + + + Gets a node by specifying a path to it. + + The path to the node. + The node if found. + + + + Gets a node by specifying a path to it. + + The path to the node. + The path separator. + The node if found. + + + + Gets a node with the specified name. + + The name of the node. + A node with the specified name. + + + + Gets a node with the specified name. + + The name of the node. + /// The node which the should be taken as a root. + A node with the specified name. + + + + Puts the current node in edit mode. + + + + + + Commits any changes and ends the edit operation on the current cell. + + + + + + Close the currently active editor and discard changes. + + + + + + Updates the visual items in the three view + + Indicated the update action + + + + Updates the visual items in the three view + + Indicated the update action + Array representing the nodes which should be updated + + + + Begins the update. + + + + + Ends the update. + + + + + Ends the update. + + Tells the view whether an update is required or not. + Indicates the update action + + + + Defers the refresh. + + + + + + Collapses all. + + + + + Expands all. + + + + + Gets an enumerator which enumerates all nodes in the tree. + + The enumerator. + + + + Gets an enumerator which enumerates all descendant nodes of a node. + + The enumerator. + + + + Gets the node at. + + The x. + The y. + + + + + Gets the node at. + + The pt. + + + + + Gets the node element at. + + The x. + The y. + + + + + Gets the node element at. + + The pt. + + + + + Gets the node count. + + if set to true [include sub trees]. + + + + + Finds the specified match. + + The match. + + + + + Finds the specified text. + + The text. + + + + + Finds the nodes. + + The match. + + + + + Finds the nodes. + + The match. + The argument. + + + + + Finds the nodes. + + The text. + + + + + Execute the specified action for every RadTreeNode in the tree + + + + + + Executes the specified command. + + The command. + The settings. + + + + + Executes the specified command include sub trees. + + if set to true [include sub trees]. + The command. + The settings. + + + + + Scrolls to. + + The delta. + + + + Ensures that the specified tree node is visible within the tree view element, scrolling the contents of the element if necessary. + + The node to scroll into view + + + + Ensures that the specified tree node is visible within the tree view element, scrolling the contents of the element if necessary. + This method expands parent items when necessary. + + The node to bring into view + + + + This method traverses through the visible nodes of RadTreeView and returns a node that matches the . + + + + + + + Occurs when [data error]. + + + + + Occurs when [binding context changed]. + + + + + Occurs when is formatting + + + + + Occurs when is created. + + + + + Occurs when is created. + + + + + Occurs after a node is bound to a data item. + + + + + Occurs when is mouse down. + + + + + Occurs when is mouse up. + + + + + Occurs when mouse is move over a . + + + + + Occurs when LazyMode is true and NodesNeeded event is handled + + + + + Occurs when mouse enters a + + + + + Occurs when mouse leaves a + + + + + Occurs when a mouse button is clicked inside a + + + + + Occurs when a mouse button is double clicked inside a + + + + + Occurs when is hovered. + + + + + Occurs when node's checked state is changing. + + + + + Occurs when node's checked state is changed. + + + + + Occurs when node is expanding. + + + + + Occurs when node has been expanded. + + + + + Occurs when the selected node is changing + + + + + Occurs when selected node has been changed. + + + + + Occurs when selected node has been cleared. + + + + + Occurs when SelectedNodes collection has been changed. + + + + + Occurs when editor is required. + + + + + Occurs when editing is started. + + + + + Occurs when editor is initialized. + + + + + Occurs when editing has been finished. + + + + + Occurs when node's value is changing. + + + + + Occurs when node's value has been changed. + + + + + Occurs when node's value is validating. + + + + + Occurs when validation error occurs by canceling the ValueValidating event. + + + + + Occurs when the user begins dragging an item. + + + + + Occurs when a drag is starting + + + + + Occurs when a drag has started + + + + + Occurs when a drag is ending + + + + + Occurs when a drag has ended + + + + + Occurs when drag feedback is needed for a node. + + + + + Occurs when nodes are needed in load on demand hierarchy + + + + + Occurs after a node is removed. + + + + + Occurs after a node is being added. + + + + + Gets or sets the default sort Comparer for RadTreeView. The default comparer compares the nodes according to their text. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets a value indicating whether the TreeView load child Nodes collection in NodesNeeded event only when Parend nodes expanded. + + true if [lazy mode]; otherwise, false. + + + + Gets or sets a value indicating whether the child nodes should be auto checked when RadTreeView is in tri state mode + + The default value is false. + + + + Contains data binding settings for related data. + + + + Gets or sets the type of the expand animation enumeration. + AllowPlusMinusAnimation enumeration + PlusMinusAnimationStep Property + ExpandAnimation Enumeration + + + The default value is ExpandAnimation.Opacity. + + + + Gets or sets the opacity animation step for expand/collapse animation. + + Returns a double value from double.Epsilon to 1 representing the opacity changing step with + which the plus minus buttons are animated. The default value is 0.025. + + + + + Gets or sets a value indicating whether animation of collapse/expand images is enabled. + + ShowExpanCollapse Property + PlusMinusAnimationStep Property + The default value is false. + + + + The default image index for nodes. + + The index of the image. + + + + The default image key for nodes. + + The image key. + + + + + Gets or sets a value indicating whether [tri state mode]. + + true if [tri state mode]; otherwise, false. + + + + Gets or sets the toggle mode. + + The toggle mode. + + + + Gets or sets the drag drop service used when dragging nodes within RadTreeView or between different instances of RadTreeView. + + The drag drop service. + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where an item will be dropped after a drag operation. + + + + + Gets the last node. + + The last node. + + + + Gets or sets a value indicating whether [allow drag drop]. + + true if [allow drag drop]; otherwise, false. + + + + Gets or sets a value indicating whether [multi select]. + + true if [multi select]; otherwise, false. + + + + Gets or sets a value indicating whether [show expander]. + + true if [show expander]; otherwise, false. + + + + Gets the selected nodes. + + The selected nodes. + + + + Gets the checked nodes. + + The checked nodes. + + + + Gets or sets the context menu. + + The context menu. + + + + Gets or sets a value indicating whether [check boxes]. + + true if [check boxes]; otherwise, false. + + + + Gets or sets a value indicating whether [hide selection]. + + true if [hide selection]; otherwise, false. + + + + Gets or sets a value indicating whether [hot tracking]. + + true if [hot tracking]; otherwise, false. + + + + Gets or sets the height of the item. + + The height of the item. + + + + Gets or sets the active editor. + + The active editor. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets or sets the default RadTreeNode edit mode. + + The edit mode. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets a value indicating whether there is an open editor in the tree view. + + + + + Gets or sets the selected node. + + The selected node. + + + + Gets or sets a value indicating whether [show lines]. + + true if [show lines]; otherwise, false. + + + + Gets or sets a value indicating whether [show root lines]. + + true if [show root lines]; otherwise, false. + + + + Gets or sets a value indicating whether [show node tool tips]. + + true if [show node tool tips]; otherwise, false. + + + + Gets the first visible tree node in the tree view. + + + + + Gets or sets the color of the lines connecting the nodes in the tree view. + + + + + Gets or sets the line style. + + TreeLineStyle enumeration + + A TreeLineStyle that represents the style used for + the lines between the nodes. The default is + TreeLineStyle.Dot. + + + + + Gets the number of tree nodes that are visible in the tree view + + + + + Gets or sets the path separator. + + The path separator. + + + + Gets or sets the tree node provider. + + The tree node provider. + + + + Gets or sets the binding context. + + The binding context. + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets the nodes. + + The nodes. + + + + Gets or sets the indent of nodes, applied to each tree level. + + + + + Gets or sets the filter. + + The filter. + + + + Gets or sets the sort order of Nodes. + + The sort order. + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets the sort descriptors. + + The sort descriptors. + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets a property name which will be used to extract a value from the data items. The value of the property with + this name will be available via the Value property of every RadTreeNode. + + + + + Gets or sets a property name which will be used to extract the checked state of the data items. The value of the property with + this name will be available via the Checked property of every RadTreeNode. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to extract the text of the data items. The value of the property with + this name will be available via the Text property of every RadTreeNode. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a that will be used to convert the toggle state of the checkboxes + to the underlying data type it is bound to. + + + + + Gets or sets the expand image + + + + + Gets or sets the expand image + + + + + Gets or sets the hovered expand image + + + + + Gets or sets the hovered collapse image + + + + + Gets or sets a value indicating whether nodes can have different height. + + The default value is false. + + + + Gets or sets a value indicating whether to select the full row. + + The default value is false. + + + + Gets or sets the vertical spacing among nodes. + + + + + Gets or sets the alternating row color. + + + + + Gets or sets a value indicating whether to show rows with alternating row colors. + + + + + Gets the index of the first visible node. + + + + + Gets or sets a value indicating whether single node expand is enabled. + + + + + Gets or sets a property that controls the visibility of the horizontal scrollbar. + + + + + Gets or sets a property that controls the visibility of the vertical scrollbar. + + + + + Gets or a value indicating whether the control is in design mode. + + + + + Gets or sets a value indicating whether to scroll horizontally RadTreeView to ensure that the clicked node is visible. + + + + + Gets or sets a value indicating whether the default context menu is enabled. + + The default value is false. + + + + Provides a callback so that the default filtering expression parser can be substituted. + + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when RadTreeViewElement is focused. + The default value is false. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + The default value is 300. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the keyboard search functionality. + + + + + Gets or sets the expand timer interval - this is the interval of time in milliseconds which will pass before a hovered node is being expanded during drag and drop operation. + + + The expand timer interval. + + + + + Builds the tree based on the collection of filter descriptors. + + + + + Applies the filter to the DataSource. + + + + + Adds child nodes, based on the given filter descriptor and its child descriptors. + + The filter. + The node, that will be the parent of created nodes. + + + + Removes the child node. + + The node to remove. + + + + Removes the child node. + + The parent node. + The child node. + + + + Clears the child nodes of given group node. + + The node. + + + + Validates if adding new node is allowed. + + + + + Gets the default name of field property. + + + + + Updates the value and operator of the descriptor. + + The descriptor. + + + + Gets the field names. + + + + + Gets the type of the editor. + + Type of the value. + + + + + Puts the current node in edit mode. + + + + + Ends the init. + + + + + Normalizes the expression. + + + + + Normalizes the child descriptor. + + The composite descriptor. + + + + Called when [editor required]. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The sender. + The instance containing the event data. + + + + Setups the drop down list. + + The criteria node. + The editor. + The display value. + + + + Gets the editor. + + Type of the editor. + + + + + Initializes the editor. + + Type of the value. + The editor. + + + + Gets the type of the field by given property name. + + Name of the property. + + + + Initializes the spin editor. + + The spin editor. + Type of the value. + + + + Saves the editor value. + + The node element. + The new value. + + + + Gets the designer host. + + + + + Updates the nodes collection by removing all the nodes that does not have corresponding property name in the Descriptors collection. + + + + + Fires the event. + + + + + Gets or sets the provider. + + The provider. + + + + Gets or sets the data source that the is displaying filters for. + + + + + Gets or sets the expression. + + The expression. + + + + A collection of descriptor items used to identify the property names and their corresponding types. + + + + + Gets or sets the auto generate descriptor items. + + The auto generate descriptor items. + + + + Gets or sets a value indicating whether the name of fields in fields drop down should be sorted. + + + + + Gets or sets a value indicating how the field names are sorted when SortFieldNames is true. + + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether [allow drag drop]. + + true if [allow drag drop]; otherwise, false. + + + + Gets or sets the default date editor format. + + The default date editor format. + + + + Gets or sets the default custom date editor format. + + The default custom date editor format. + + + + Occurs when a property text is about to be displayed on the screen. Allows the developer to substitute property names with + user-friendly display strings. + + + + + Represents a to be used in control. + + + + + Represents an item of which can have an associated control. + Responsible for arranging the associated control within the . + Can display a text in addition to the control. + + + + + Gets the rectangle in which the text part will be arranged. + + The client area of the item. + The arrange rectangle of the text part. + + + + Gets the rectangle in which the associated control will be arranged. + + The client area of the item. + The arrange rectangle of the control. + + + + Updates the bounds of the associated control. + + + + + Gets or sets the position of the text of the item. + + + + + Gets or sets the position of the text of the item. + + + + + Gets or sets the proportional size of the text part which will be used + when TextSizeMode is set to proportional. + + + + + Gets or sets the fixed size of the text part which will be used + when TextSizeMode is set to fixed. + + + + + Gets or sets the minimum size of the text part. + + + + + Gets or sets the maximum size of the text part. + + + + + Gets or sets the way in which the text part will be sized - proportionally or fixed-size. + + + + + Gets or sets the control associated with this item. + + + + + Gets the arrange rectangle of the validation text label. + + The client rectangle of the item. + The arrange rectangle of the validation label. + + + + Gets or sets the fixed size of the validation label. If set to 0, the text will be autosized. + + + + + Gets the validation label element. + + + + + An extension of the which adds data binding functionality. + When set with a DataSource, RadDataLayout automatically generates editors for each + of the fields in the datasource. Provides validation functionality and additional + interface for displaying validation messages. + + + + + Initializes a new instance of the class. + + + + + Initializes the and the ValidationPanel + + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Updates the validation panel visibility. + + + + + Gets the instance of which is the main element + in the hierarchy tree and encapsulates the actual functionality of RadDataLayout. + + + + + Gets or sets the DataSource. Setting the DataSource will auto-generate editors + for the fields in it. + + + + + Gets or sets the number of columns which will be used to arrange generated controls. + + Number Of Columns should be at least one + + + + Gets the validation panel. + + + + + Gets the inner . + + + + + Gets or sets a value indicating whether the validation panel should appear. + + + + + Gets or sets a value indicating the flow direction of generated editors when the ColumnCount property has value bigger than 1. + + + + + The ItemDefaultHeight property sets the height that generated items should have. + + + + + Gets the BindingManagerBase manager that is used to manage the current DataSource. + + + + + If [true], the labels will have a fixed size, best-fitted to the largest text in the column. + If [false], the labels will have their default proportional size. + + + + + Gets the current object. + + + + + This property is not relevant for this class. + + + + + Occurs when the value of editor is changed. + + + + + Occurs when the value of editor is about to change. + + + + + Occurs when editor is being initialized. This event is cancelable + + + + + Occurs when the editor is Initialized. + + + + + This event is firing when the item associated with a given field is about to be Initialized. This event is cancelable.. + + + + + Occurs the item is already Initialized. + + + + + Occurs when a binding object for an editor is about to be created. This event is cancelable. + + + + + Occurs when binding object is created. + + + + + Gets the margin around the client area of the control. + In the default case, this should be the border thickness. + + + + + The main element of control. Handles the logic of creating and arranging items + when the control is databound. + + + + + The error icon property + + + + + Initializes the fields. + + + + + Binds this instance. + + + + + Clears this instance. + + + + + Initializes the data entry. + + + + + Finds the required properties. + + + + + Arranges the controls. + + + + + Creates a control with the specified type for a given property. + + The property. + The suggested editor type. + A Control instance. + + + + Generates the controls run time. + + The current column. + The pair. + Size of the property item control. + The property item control location. + + + + Generates the controls design time. + + The current column. + The pair. + Size of the property item control. + The property item control location. + + + + Creates the binding. + + The control. + Name of the property. + The data member. + Binding. + + + + Arranges the labels. + + + + + Gets the suggested editor type for the specified property type. + + The property type. + The type of the suggested editor. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + The ItemDefaultHeight property sets the height that generated items should have. + + + + + Gets or sets the number of columns which will be used to arrange generated controls. + + Number Of Columns should be at least one + + + + Gets or sets a value indicating the flow direction of generated editors when the ColumnCount property has value bigger than 1. + + + + + If [true], the labels will have a fixed size, best-fitted to the largest text in the column. + If [false], the labels will have their default proportional size. + + + + + Gets or sets the data source. + + + + + Gets the current object. + + + + + Gets the manager. + + + + + Gets or sets the icon of the Error provider. + + The error icon. + + + + Represents a data entry. The RadDataEntry class is essentially a simple wrapper + for the RadScrollablePanelElement. All UI and + logic functionality is implemented in the + RadScrollablePanelElement class. The RadDataEntry acts + to transfer the events to and from its corresponding + RadScrollablePanelElement instance. The + RadScrollablePanelElement may be nested in other + telerik controls. + + + + + The validation panel + + + + + The show validation panel + + + + + Initializes a new instance of the class. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the panel element. + + RadScrollablePanelElement. + + + + Creates the controls instance. + + Control.ControlCollection. + + + + Wires the events. + + + + + Unwires the events. + + + + + This method initializes the scrollbars and the + container control. + + + + + This method inserts the scrollbars and the container + in the Controls collection of this control. + + + + + Handles the ControlRemoved event of the ValidationPanel control. + + The source of the event. + The instance containing the event data. + + + + Handles the ControlAdded event of the ValidationPanel control. + + The source of the event. + The instance containing the event data. + + + + Handles the ItemValidated event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the ItemValidating event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the BindingCreated event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the BindingCreating event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the EditorInitialized event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the EditorInitializing event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the ItemInitializing event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the ItemInitialized event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Updates the validation panel visibility. + + + + + Gets or sets whether the edit control is auto-sized + + true if [automatic size]; otherwise, false. + + + + Gets the default size of the control. + + The default System.Drawing.Size of the control. + The default Size of the control. + + + + Gets the instance of RadDataEntryElement wrapped by this control. RadDataEntryElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadDataEntry. + + The data entry element. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets a value indicating whether the amount of columns that RadDataEntry will use to arrange generated controls. + + The number of columns. + + + + Gets or sets a value indicating whether the generated editors should fit their width to width of the RadDataEntry. + + true if [fit to parent width]; otherwise, false. + + + + Gets the validation panel. + + The validation panel. + + + + Gets or sets a value indicating whether [show validation panel]. + + true if [show validation panel]; otherwise, false. + + + + Gets or sets a value indicating whether generating flow of editors when the ColumnCount property has value bigger than 1. + + The flow direction. + + + + Gets or sets the between the generated items. + + The item space. + + + + The ItemDefaultSize property sets the size that generated items should have if FitToParentWidth property has value false. + When property the FitToParentWidth has value true the width of items are calculated according the width of the RadDataEntry + + The default size of the item. + + + + Gets the BindingManagerBase manager that is used for current DataSource. + + The manager. + + + + In RadDataEntry control there is logic that arranges the labels of the editors in one column according to the longest text. + This logic can be controlled by the AutoSizeLabels property. + + true if [resize labels]; otherwise, false. + + + + Gets the current object. + + The current object. + + + + This property is not relevant for this class. + + + + + Occurs when the value of editor is changed. + + + + + Occurs when the value of editor is about to change. + + + + + Occurs when editor is being initialized. This event is cancelable + + + + + Occurs when the editor is Initialized. + + + + + This event is firing when the panel that contains the label, editor and validation label is about to be Initialized. This event is cancelable.. + + + + + Occurs the item is already Initialized. + + + + + Occurs when a binding object for an editor is about to be created. This event is cancelable. + + + + + Occurs when binding object is created. + + + + + This class represents the main element of the + control. This element contains + a + and a . + + + + + Creates an instance of the RadPanelElement class. + + + + + Gets an instance of the + class which represents the text of the panel. + + + + + Gets an instance of the class + which represents the border of the panel. + + + + + Gets an instance of the + class which represents the fill of the panel. + + + + + Creates an instance of the + class. This constructor is used by the Visual Studio Designer. + + + + + Creates an instance of the class. + + An instance of the + class which represents the owner of this container. + + + + Class RadDataEntryElement. + + + + + The error icon property + + + + + Initializes the fields. + + + + + Binds this instance. + + + + + Clears this instance. + + + + + Initializes the data entry. + + + + + Finds the required properties. + + + + + Arranges the controls. + + + + + Creates the enum. + + The property. + Control. + + + + Creates the text box. + + The property. + Control. + + + + Creates the image. + + The property. + Control. + + + + Creates the color. + + The property. + Control. + + + + Creates the boolean. + + The property. + Control. + + + + Creates the date time. + + The property. + Control. + + + + Generates the controls run time. + + The current column. + The pair. + Size of the property item control. + The property item control location. + + + + Generates the controls design time. + + The current column. + The pair. + Size of the property item control. + The property item control location. + + + + Setups the inner controls. + + The pair. + Size of the property item control. + The property item control location. + The property item container. + The label control. + The validation control. + The editor control. + + + + Arranges the labels. + + + + + Creates the binding. + + The control. + Name of the property. + The data member. + Binding. + + + + Converts the image to icon. + + The image. + Icon. + + + + Clears the borders. + + + + + Handles the Validated event of the control control. + + The source of the event. + The instance containing the event data. + + + + Handles the Validating event of the control control. + + The source of the event. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Gets or sets a value indicating whether the amount of columns that RadDataEntry will use to arrange generated controls. + + The number of columns. + Number Of Columns should be at least one + + + + Gets or sets a value indicating whether generating flow of editors when the ColumnCount property has value bigger than 1. + + The filling order. + + + + Gets or sets the between the generated items. + + The item space. + + + + Gets or sets a value indicating whether the generated editors should fit their width to width of the RadDataEntry. + + true if [fit to parent width]; otherwise, false. + + + + The ItemDefaultSize property sets the size that generated items should have if FitToParentWidth property has value false. When property the FitToParentWidth has value true the width of items are calculated according the width of the RadDataEntry + + The default size of the item. + + + + In RadDataEntry control there is logic that arranges the labels of the editors in one column according to the longest text. This logic can be controlled by the AutoSizeLabels property. + + true if [resize labels]; otherwise, false. + + + + Gets or sets the data source. + + The data source. + + + + Gets the current object. + + The current object. + + + + Gets the manager. + + The manager. + + + + Gets the type of the theme effective. + + The type of the theme effective. + + + + Gets the data entry control. + + The data entry control. + + + + Gets or sets the icon of the Error provider. + + The error icon. + + + + Class RadBindingNavigator. + + + + + Creates the element. + + An instance of . + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + A that contains the + event data. + True if the change of orientation should be canceled, false otherwise. + + + + Raises the event. + + A that contains the + event data. + + + + Propagete ThemeName to child bar's menu + + + + + Apllies the orientation to the control and its child elements. + + The orientation to apply + Indicates whether events should be fired + + + + Gets the binding navigator element. + + The binding navigator element. + + + + Gets or sets the binding source. + + The binding source. + + + + Gets or sets the count item format. + + The count item format. + + + + Gets or sets a value indicating whether the control will handle internally the creation of new items. + + true if [automatic handle add new]; otherwise, false. + + + + Gets the rows of the binding navigator. + + + + + Gets or sets which RadBindingNavigator borders are docked to its parent control and determines + how a control is resized with its parent. + + + One of the values. The default + is . + + + The value assigned is not one of the + values. + + 1 + + + + Gets the menu opened upon rightclick on the control. + + + + + Gets the width and height of a rectangle centered on the point the mouse button was pressed, within which a drag operation will not begin. + + + + + Gets or sets the orientation of the RadBindingNavigator - could be horizontal or vertical. + This property is controlled by the Dock property of the RadBindingNavigator control. + + + + + This property is not relevant for this class. + + + + + Occurs before the orientation is changed. + + + + + Occurs after the orientation is changed. + + + + + Occurs before a floating form is created. + + + + + Occurs before a floating strip is docked. + + + + + Occurs when a floating strip is created. + + + + + Occurs after a floating strip is docked. + + + + + Occurs when opening the context menu. + + + + + Represents the RootElement of the RadBindingNavigator control. + + + + + Represents the main element of the RadCommandBar control. + Contains a collection of element. + + + + + Raises the event. + + The element that is responsible for firing the event - usually this is the strip that is going to be floating. + True if the creating of a floating form should be canceled, False otherwise. + + + + Raises the event. + + The element that is responsible for firing the event - usually this is the strip that is made floating. + + + + Raises the event. + + The element that is responsible for firing the event - usually this is the strip that is going to be docked. + True if the docking of a floating form should be canceled, False otherwise. + + + + Raises the event. + + The element that is responsible for firing the event - usually this is the strip that was docked. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + True if the change of orientation should be canceled, false otherwise. + + + + Moves a specific to the upper . + + The element to move. + The that contains the element to move. + + + + Moves a specific to the lower . + + The element to move. + The that contains the element to move. + + + + Saves the visual state of the to a specified file. + + The name of the destination file. + + + + Saves the visual state of the to a specified stream. + + The destination stream. + + + + Saves the visual state of the to a specified XmlWriter. + + The XmlWriter to save the visual state data. + + + + Loads the visual state of the from a specified file. + + The name of the file containing the visual state data. + + + + Loads the visual state of the from a specified stream. + + The source stream. + + + + Loads the visual state of the from a specified XmlReader. + + The XmlReader to read the visual state data. + + + + Creates a floating form of a specified . + + The strip element of which the floating form should be created. + The that contains the strip element. + The initial location of the floating form. + + + + Creates an XmlDocument containing the current visual state data of the . + + The created document. + + + + Restores the visual state of the from the specified XmlDocument. + + The document containing the visual state data. + + + + Occurs before dragging is started. + + + + + Occurs when item is being dragged. + + + + + Occurs when item is released and dragging is stopped. + + + + + Occurs when Orientation property is changed. + + + + + Occurs before Orientation property is changed. + + + + + Occurs before a floating form is created. + + + + + Occurs before a floating strip is docked. + + + + + Occurs when a floating strip is created. + + + + + Occurs when a floating strip is docked. + + + + + Gets the object that provides information about strips owned by the . + + + + + Gets or sets the size in pixels when current strip is being Drag and Drop in next or previous row + + + + + Gets or sets the orientation of the . + + + + + Gets the rows of the . + + + + + Allows inheritors to provide custom load logic. + + + + + Maps the controls. + + + + + Adds the standard items. + + + + + Disposes the managed resources of this instance. + + + + + Creates the first top strip element child elements. + + + + + Creates the second bottom strip element child elements. + + + + + Attaches the events. + + + + + Unwires the buttons and text box events. + + + + + Handles the Click event of the FirstButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the PreviousButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the NextButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the LastButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the KeyDown event of the currentNumberTextBox control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the DeleteButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the AddNewButton control. + + The source of the event. + The instance containing the event data. + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Binds this instance. + + + + + Updates the visibility. + + + + + Updates the text box. + + + + + Updates the label text. + + + + + Updates the add new button visibility. + + + + + Gets or sets the command bar row element. + + The command bar row element. + + + + Gets the first top strip element. + + The first top strip element. + + + + Gets or sets the first button. + + The first button. + + + + Gets or sets the previous button. + + The previous button. + + + + Gets or sets the current number text box. + + The current number text box. + + + + Gets or sets the page label. + + The page label. + + + + Gets or sets the next button. + + The next button. + + + + Gets or sets the last button. + + The last button. + + + + Gets or sets the second bottom strip element. + + The second bottom strip element. + + + + Gets or sets the add new button. + + The add new button. + + + + Gets or sets the delete button. + + The delete button. + + + + Gets or sets the binding source. + + The binding source. + + + + Gets the type of the theme effective. + + The type of the theme effective. + + + + Gets or sets the image of the button that navigates to the first item. + + The first item button image. + + + + Gets or sets the image of the button that navigates to the previous item. + + The previous item button image. + + + + Gets or sets the image of the button that navigates next item. + + The next item button image. + + + + Gets or sets the image of the button that navigates to the last item. + + The last item button image. + + + + Gets or sets the image of the button that adds new item. + + The add new button image. + + + + Gets or sets the image of the button that deletes the current item. + + The delete button image. + + + + Gets or sets the count item format. + + The count item format. + + + + Gets or sets a value indicating whether the control will handle internally the creation of new items. + + true if adding new items is handled by the binding navigator; otherwise, false. + + + + Enumerate the which part will be included when checking for NullValue. + + + + + Only Date + + + + + Only Time + + + + + Both + + + + + Represents an arrow button element. Each telerik control has a + corresponding tree of RadElements; the RadArrowButtonElement can be nested + in other telerik controls. + + + + Gets the default size of the + + + Gets or sets the + %arrow direction:Telerik.WinControls.Primitives.ArrowPrimitive.ArrowDirection%. + + + Gets the BorderPrimitive object. + + + Gets the FillPrimitive object. + + + Gets the ArrowPrimitive object. + + + + If set to true shows and OverflowPrimitive instead of an ArrowPrimitive. + + + + + This class represents the dialog form shown to the user when they drop + a RadRibbonBar control on a RadForm control in the Visual Studio designer. + + + + + Creates an instance of the RadFormDesignerRibbonDialog + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + This is a base class for a behavior that can be associated with a + RadFormControlBase instance. The behavior defines the behavior and appearance of the form. + + + + + Creates an instance of the RadFormBehaviorBase class. + This instance has no Form associated with it. + + + + + Creates an instance of the RadFormBehaviorBase class. + + + An implementation of the IComponentTreeHandler which + this behavior applies to + + + + Creates an instance of the RadFormBehavior class. + + + An implementation of the IComponentTreeHandler which + this behavior applies to + + + + + Occurs when a form is associated with the behavior. + + + + + Gets the RadElement instance that represents the root element + containing the hierarchy that builds the visual appearance of the form. + + + + + Determines whether the CreateChildItems call is + routed to the handler of the behavior. + Used by the RadFormControlBase class. + + + + + Gets the width of the form border + + + + + Gets the height of the caption that is drawn + by the behavior. + + + + + Gets the margin that describes the size and position + of the client area. + + + + + A class that represents a border for a Form which is built by images. + + + + + Gets a Padding object that represents + the left, top, right and bottom width of the border. + + + + + Gets or sets the left Image which represents the + transition between the image border and the + title bar element. + + + + + Gets or sets the right Image which represents the + transition between the image border and the + title bar element. + + + + + Gets or sets the texture for the left image border. + + + + + Gets or sets the texture for the bottom image border. + + + + + Gets or sets the texture for the right image border. + + + + + Gets or sets the image for the bottom left border corner. + + + + + Gets or sets the image for the bottom right border corner. + + + + + This class represents the root element of a RadFormControlBase Element Tree. + This class is needed because some extended region calculations are needed when the control + is a Form and shape is applied to it. + + + + + Creates an instance of the FormRootElement class. + + The RadFormControlBase which is owner of this root element + + + + A standard behavior for RadForm. + + + + + This class represents a base class for all behaviors that + modify the non-client area of the form and enable custom painting + in it. + + + + + Creates an instance of the ThemedFormBehavior class. + + + + + Creates an instance of the RadFormBehavior class. + + An IComponentTreeHandler instance. + + + + Creates an instance of the RadFormBehavior class. + + An IComponentTreeHandler instance. + A flag that determines whether the CreateChildItems + call is rerouted to the behavior. + + + + This method transforms screen coordinates + into local coordinates. + + The screen point to transform. + The transformed point. If the handle of the associated Form is + not created, the method returns the input. + + + + This method returns the maximum available height according + to the current position of the form in multi-monitor setup. + + + + + + Fires when the window state of the form is changed. Uses the SIZE_* values + to define the window states. + + The old window state of the form. + The new window state of the form + + + + Immediately refreshes the whole non-client area of the form + which this behavior is associated with. + + + + + Invalidates the specified bounds in the non-client area + of the form this behavior is associated with. + + + + + + This event is fired when the WM_GETMINMAXINFO message is sent to the form. + + Contains information about the position, maximum/minimum size of the form etc. + Can be modified to adjust the settings applied to the form. + + + + This event is fired when the WM_NCPAINT message is sent to the form. + + The NC Graphics. + + + + Paints an element on a specified graphics. + + The Graphics object to paint on. + The clipping rectangle. + The element to paint. + + + + Gets a bool value that determines whether the Form's window state is maximized. + + + + + Gets a bool value that determines whether the Form's window state is minimized. + + + + + Gets a boolean value that determines whether the Form's window state is normal. + + + + + Gets an integer value that determines the current Form state: + Possible values come from the SIZE_RESTORED, SIZE_MAXIMIZED, SIZE_MINIMIZED win32 constants. + + + + + Gets a boolean value showing whether a MDI child form is maximized. + + + + + Gets the MdiClient control of the Form. + Returns null if the Form is not MdiContainer. + + + + + Gets a boolean value determining whether there is a Menu in the Form. + + + + + Gets the maximized MDI child if any. + + + + + This rectangle represents the top sizing frame of a window. + + + + + This rectangle represents the topleft sizing corner of a window. + + + + + This rectangle represents the left sizing frame of a window. + + + + + This rectangle represents the bottomleft sizing corner of a window. + + + + + This rectangle represents the bottom sizing frame of a window. + + + + + This rectangle represents the bottomright sizing corner of a window. + + + + + This rectangle represents the right sizing frame of a window. + + + + + This rectangle represents the topright sizing corner of a window. + + + + + This rectangle represents the caption frame of a window. + + + + + This rectangle represents the left border frame of a window. + + + + + This rectangle represents the bottom border frame of a window. + + + + + This rectangle represents the right border frame of a window. + + + + + This rectangle represents the client rectangle of a window. + + + + + Gets the rectangle that contains the menu of the form. + + + + + Gets the rectangle that contains the system buttons of the form. + + + + + Gets the rectangle that contains the form's icon. + + + + + Gets the rectangle that contains the form's caption text. + + + + + Gets or sets a bool value indiciating + whether the behavior applies NC theming + to the form. + + + + + Gets the current form CreateParams settings. + + + + + Gets or sets the form associated with this behavior. + Used only in design-time. + IMPORTANT: This property can be assigned only one time. + An InvalidOperationException is thrown when the property + is assigned more than once. + + + + + Creates an instance of the RadFormBehavior class. + This instance has no Form associated with it. + + + + + Creates an instance of the RadFormBehavior class. + + An IComponentTreeHandler instance. + + + + Creates an instance of the RadFormBehavior class. + + An IComponentTreeHandler instance. + A flag that determines whether the CreateChildItems + call is rerouted to the behavior. + + + + Calculates the bounding rectangle of the vertical scrollbar. + + An instance of the Rectangle struct that represents + the position and the size of the vertical scrollbar + + + + Calculates the bounding rectangle of the horizontal scrollbar. + + An instance of the Rectangle struct that represents + the position and the size of the horizontal scrollbar. + + + + This method synchronizes the values of the standard vertical scrollbar + with the RadScrollBarElement in the Form's element hierarchy. + + + + + This method synchronizes the values of the standard horizontal scrollbar + with the RadScrollBarElement in the Form's element hierarchy. + + + + + Gets the Caption Height according to the Styles applied and + the current state of the form. + + A value representing the height of the caption. + + + + Gets a Padding object which represents the window NC margin according + to the currently set styles. + + The form NC margin. + + + + Calculates the client margin based on the current form and form element settings + + + + + + This method translates a point which is in client coordinates + to a point in NC coordinates. Used when the Form has captured the mouse + and NC mouse events have to be processed. + + A point in client coordinates. + The point in NC coordinates. + + + + Fires when a Form has been associated with the behavior. + + + + + This method adjusts the Element tree according + to the current AllowTheming property value. + If AllowTheming is true, the Element tree is painted, + otherwise not. + + + + + Changes the visibility of the separate items within the RadFormElement's element tree + according to the current Form state. + + The state of the Form as it comes from the WM_SIZE message + + + + This method adjusts the FormElement according to the styles currently applied to the Form. + For example, the MinimizeButton, MaximizeButton and CloseButton in the Title Bar are enabled/disabled + according to whether the corresponding window style is applied. + + + + + Gets the bounding rectangle of the sizing grip that appears + when both scrollbars are visible. + + + + + Gets the bounding rectangle of the horizontal scrollbar. + Returns an empty rectangle if the scrollbar is not visible. + + + + + Gets the bounding rectangle of the vertical scrollbar. + Returns an empty rectangle if the scrollbar is not visible. + + + + + Gets or sets a boolean value indicating + whether the behavior paints in the NC area of the + Form when OS is Vista or later and Composition is enabled. + + + + + Gets the Caption Height of the Form. + + + + + Gets the Border width of the Form. + + + + + Gets the margin that determines the position and size of the client + area of the Form. + + + + + A Delegate which is used for invoking the base implementation of WndProc of this form. + + + + + + This is the class that represents the element hierarchy which + is painted in the non-client area of a RadForm. + + + + + Gets or sets a boolean value to determine whether the form + should appear as active or inactive. + Using this property, you can override the default theme styles + which define different appearance of the form when in active/inactive state. + + + + + Gets the square element that appears at the end of the horizontal + scrollbar. + + + + + Gets the composed width of the border + built on the width of the line and image borders. + + + + + Gets the MdiControlStrip item that should appear + below the title bar when a MDI child is maximized. + + + + + Gets the BorderPrimitive of the RadFormElement. + + + + + Gets the FormImageBorderPrimitive of the RadFormElement. + + + + + Gets the RadFormTitleBarElement of the RadFormElement. + + + + + Gets the horizontal scrollbar element of the form element. + + + + + Gets the vertical scrollbar element of the form element. + + + + + Gets an instance of the + class that represents the fill of the MDI strip. + + + + + Gets the Minimize button + + + + + Gets the Maximize button + + + + + Gets the Close button + + + + + Gets the ImagePrimitive representing the Icon + of the currently maximized MDI child. + + + + + This class represents a Form that hosts a RadRibbonBar control and extends the behavior + of a standard form by providing Office 2007 form-like appearance. + + + + + Gets the RadRibbonBar control associated with this form. + + + + + Gets or sets a boolean value that determines + whether Vista Aero effects are enabled. + + + + + Creates an instance of the class. + + + + + Creates an instance of the class. + The implementation + which this behavior is associated with. + + + + + Creates an instance of the class. + + The associated implementation. + Determines whether the behavior + handles the CreateChildItems call. + + + + This method adjusts the form's element tree according to the composition state + of MS Windows. If Composition is enabled, the element tree is hidden and the glass + effects of the form are visible. + + + + + This method translates a point which is in client coordinates + to a point in NC coordinates. Used when the Form has captured the mouse + and NC mouse events have to be processed. + + A point in client coordinates. + The point in NC coordinates. + + + + Returns a zero for the caption height. + + + + + Gets an integer representing the top client margin of + the form when composition is enabled. + + + + + Gets a boolean value indicating whether composition effects + are enabled for the form. + + + + + Gets a value indicating whether composition effects are enabled for the Operating System. + + + + + Gets or sets value indicating whether the RadRibbonBar + is drawn over the Aero glass under Vista or later + versions of Windows. + + + + + This class serves as a dummy MenuStrip used by the RadRibbonFormBehavior + to prevent the default MDI caption from being painted when a MDI child is maximized + since the RadRibbonBar controls takes care to handle MDI children. + + + + + A class that represents the Border Primitive used in the new RadRibbonForm. + + + + + Gets or sets the color of the form's first broder. + + + + + Gets or sets the color of the form's second broder. + + + + + Gets or sets the color of the form's client area shadow. + + + + + This is the class that represents the element hierarchy which + is painted in the non-client area of a RadForm. + + + + + Gets the BorderPrimitive of the RadFormElement. + + + + + Represents a title bar element. All logic and UI functionality + is implemented in the RadFormTitleBarElement class. + You can use RadFormTitleBarElement events to substitute the title bar in a + borderless application. + + + + + Represents a title bar element. The RadTitleBar class is a simple + wrapper for the RadTitleBarElement class. The former acts to transfer events to and + from its corresponding RadTitleBarElement instance. All logic and UI functionality + is implemented in the RadTitleBarElement class. + You can use RadTitleBarElement events to substitute the title bar in a + borderless application. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Determines whether the parent form can be resized by dragging the title bar's edges. + + + + + Determines whether the parent form can be moved by dragging the title bar. + + + + + Fires when a close action is performed by the user (the close button is pressed + or the system menu is pressed twice). The system menu is not visible by default. + Use the Visual Style Builder to set which elements are visible and to change their + appearance. + + + + + Fires when a minimize action is performed by the user + + + + + Fires when a maximize/restore action is performed by the user (maximizes button + is pressed or the title bar is double clicked). + + + + + An Icon that represents the icon for the form. + + + + + Represents the default context menu for a . + + + + + Initializes a new instance of the class. + + The RadGanttView element. + + + + Raises the DropDownOpening event. + + The event arguments + + + + Called when the Add menu item is clicked. + + The menu item. + + + + Called when the Delete menu item is clicked. + + The menu item. + + + + Called when one of the Progress menu items is clicked. + + The menu item. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets the gantt view element. + + + The gantt view element. + + + + + Gets the add menu item. + + + The add menu item. + + + + + Gets the add child menu item. + + + The add child menu item. + + + + + Gets the add sibling menu item. + + + The add sibling menu item. + + + + + Gets the delete menu item. + + + The delete menu item. + + + + + Gets the progress menu item. + + + The progress menu item. + + + + + Gets or sets a value indicating whether progress menu items should be shown. + + + true if progress menu items should be shown; otherwise, false. + + + + + Gets or sets the step by which the progress values will increment. + + + The progress step. + + + + + Represents a menu item for the . + + + + + Initializes a new instance of the class. + + The command. + The text. + + + + Gets the command of this menu item. + + + The command. + + + + + Represents an abstract class containing the methods needed to be implemented so one can populate a + + + + + Initializes a new instance of the class. + + The gantt. + + + + Gets the items. + + + + + + Sets the current. + + The GanttView data item. + + + + Resets this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Suspends the update. + + + + + Resumes the update. + + + + + Gets the Gantt view. + + The Gantt view. + + + + Gets a value indicating whether this instance is suspended. + + + true if this instance is suspended; otherwise, false. + + + + + Represents a class that describes the relations used to extract data from a data source to populate a . + + + + + Gets or sets the name of the relation. + + The name of the relation. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets the tasks data member. + + The data member. + + + + Gets or sets the links data member. + + The data member. + + + + Gets or sets the title member. + + The title member. + + + + Gets or sets the parent member. + + The parent member. + + + + Gets or sets the child member. + + The child member. + + + + Gets or sets the start member. + + The start member. + + + + Gets or sets the end member. + + The end member. + + + + Gets or sets the progress member. + + The progress member. + + + + Gets or sets the link start member. + + The link start member. + + + + Gets or sets the link end member. + + The link end member. + + + + Gets or sets the link type member. + + The link type member. + + + + Represents the converter used to convert the type of the links from/to the data source format to/from the enumeration. + + + + + Converts the given value to a instance. + + The value. + + + + + Converts a instance to another type; + + Type of the link. + + + + + Gets the gantt view element. + + + The gantt view element. + + + + + Represents the data item uses to represent the data it is displaying. + + + + + Initializes a new instance of the class. + + + + + Sets a boolean property. + + Name of the property. + The property key. + The new value. + + + + + Notifies the that the expanded property of this item changed. + + The item. + + + + Raises the standard .NET PropertyChanged event. + + + + + + Expands this item. + + + + + Performs an update with the specified update actions. + + The update actions. + + + + Updates the parent item. + + + + + Sets the data bound item for this data item. + + if set to true the method assumes the data is set through data binding. + The value. + DataBoundItem can not be set explicitly in bound mode. + + + + Called when the Start property of a child item changes. + + The child item which Start changed. + + + + Called when the End property of a child item changes. + + The child item which End changed. + + + + Called when the Progress property of a child item changes. + + The child item which Progress changed. + + + + Called when a child item is added. + + The child item that is added. + + + + Called when a child item is removed. + + The child item that is removed. + + + + Called when the collection that will hold this children of this item is being created. + + + + + + Called when a child Start or End changes. + + + + + Called when a child progress changes. + + + + + Gets or sets the title. + + + The title. + + + + + Gets or sets the start. + + + The start. + + + + + Gets or sets the end. + + + The end. + + + + + Gets or sets the progress. + + + The progress. + + + + + Gets or sets a value indicating whether this is visible. + + + true if visible; otherwise, false. + + + + + Gets or sets the tag. + + + The tag. + + + + + Gets the child items of this item. + + + The child items. + + + + + Gets or sets a value indicating whether this instance is current. + + + true if this instance is current; otherwise, false. + + + + + Gets or sets a value indicating whether this instance is selected. + + + true if this instance is selected; otherwise, false. + + + + + Gets or sets a value indicating whether this instance is enabled. + + + true if this instance is enabled; otherwise, false. + + + + + Gets the hierarchy level of this task. + + The level. + + + + Gets the parent of this data item. + + The parent. + + + + Gets the index of this item in its parent items collection. + + The index. + + + + Gets or sets a value indicating whether this item is expanded. + + + true if this item is expanded; otherwise, false. + + + + + Gets the next item. + + The next item. + + + + Gets the prev visible item. + + The prev visible item. + + + + Gets or sets a value indicating whether the item is read only. + + + true if the item is read only; otherwise, false. + + + + + Gets or sets the context menu associated to the item. + + + Returns an instance of RadDropDownMenu Class that + is associated with the node. The default value is null. + + RadContextMenu Property (Telerik.WinControls.UI.RadTreeView) + + This property could be used to associate a custom menu and replace the ganttview's + default. If the context menu is invoked by right-clicking an item, the ganttview's menu + will not be shown and the context menu assigned to this item will be shown instead. + + + + + Gets a value indicating whether this data item is used in the RadGanttView. + + + + + Gets the data bound item. + + + The data bound item. + + + + + Gets or sets the value within the specified column of this item. + + + The value. + + The column. + + + + + Represents an observable collection of . + + + + + Initializes a new instance of the class. + + The owner. + + + + Refreshes this instance. + + + + + Gets the gantt view data item enumerator. + + + + + + Gets the gantt view data item enumerator. + + The position. + + + + + Gets the gantt view data item enumerator. + + The item. + + + + + Updates this instance. + + + + + Updates the view. + + + + + Inserts the item at the specified index. + + The index. + The item. + + + + + Sets the item at the specified index. + + The index. + The item. + + + + Removes the item at the specified index. + + The index. + + + + Removes all the items. + + + + + Raises the NotifyCollectionChanged event. + + The item. + + + + Raises the NotifyCollectionChanging event. + + The item. + + + + Raises the event. + + The instance containing the event data. + + + + Syncs the version of this collection with the binding provider. + + + + + Resets the version of this collection. + + + + + Gets the owner. + + The owner. + + + + Gets the gantt view. + + The tree view. + + + + Gets a value indicating whether the collection needs a refresh. + + + true if a refresh is needed; otherwise, false. + + + + + Gets a value indicating whether this instance is empty. + + + true if this instance is empty; otherwise, false. + + + + + Initializes a new instance of the class. + + The owner. + + + + Determines the index of a specific item. + + The object to locate. + + The index of if found in the collection; otherwise, -1. + + + + + Inserts an item to the collection at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the collection. + + + + Adds the item to the collection. + + The object to add. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Removes all items. + + + + + Determines whether the collection contains a specific value. + + The object to locate. + + true if is found; otherwise, false. + + + + + Copies all items to the given array. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object. + + The object to remove. + + true if was successfully removed; otherwise, false. + + + + + Returns an enumerator that iterates through the collection. + + + An IEnumerator that can be used to iterate through the collection. + + + + + Gets the gantt view data item enumerator. + + + + + + Gets the gantt view data item enumerator. + + The position. + + + + + Gets the gantt view data item enumerator. + + The item. + + + + + Updates this instance. + + + + + + Updates the view. + + + + + + Gets or sets the element at the specified index. + + The index. + + + + + Gets the number of elements contained in this collection. + + + The number of elements contained in this collection. + + + + + Gets a value indicating whether ththis collection is read-only. + + true if this collection is read-only; otherwise, false. + + + + + Gets a value indicating whether this instance is attached. + + + true if this instance is attached; otherwise, false. + + + + + Gets a value indicating whether this instance is empty. + + + true if this instance is empty; otherwise, false. + + + + + Represents a data item used by to store links. + + + + + Raises the event. + + The name of the property that changed. + + + + Raises the event. + + The instance containing the event data. + + + + Sets the data bound item for this link. + + if set to true the method assumes the value is set through data binding. + The value. + DataBoundItem can not be set explicitly in bound mode. + + + + Gets or sets the start item for this link. + + + The start item. + + + + + Gets or sets the end item for this link. + + + The end item. + + + + + Gets or sets the type of this link. + + + The type of the link. + + + + + Gets the data bound item of this link. + + + The data bound item. + + + + + Gets the points wehre this link will be drawn. + + + The lines. + + + + + Gets the that owns this link. + + + The gantt view element. + + + + + Occurs when a property value changes. + + + + + Represents an observable collection of . + + + + + Initializes a new instance of the class. + + The gantt view element. + + + + Refreshes this instance. + + + + + Syncs the version of this instance with the binding provider. + + + + + Resets the version of this instance. + + + + + Inserts the item at the specified index. + + The index. + The item. + + + + + Sets the item at the specified index. + + The index. + The item. + + + + Removes the item at the specified index. + + The index. + + + + Removes all the items. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets the that owns this collection. + + + The gantt view element. + + + + + Gets a value indicating whether this instance needs refresh. + + + true if a refresh is needed; otherwise, false. + + + + + Represents a column shown in . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name. + + + + Initializes a new instance of the class. + + The name. + The header text. + + + + Initializes a new instance of the class. + + The name. + The header text. + Name of the field. + + + + Fires the PropertyChanged event. + + Name of the property. + + + + Updates the width. + + + + + Gets or sets the name of the column. + + + The name. + + + + + Gets or sets a value indicating the type of the data this column is displaying. + + + + + Gets or sets the tag of the column. + + + The tag. + + + + + Gets or sets the header text of the column. + + + The header text. + + + + + Gets or sets the name of the field used to populate this column + + + The name of the field. + + + + + Gets or sets the format string. + + + The format string. + + + + + Gets or sets a value indicating whether this is visible. + + + true if visible; otherwise, false. + + + + + Gets or sets a value indicating whether this is current. + + + true if current; otherwise, false. + + + + + Gets the that is the owner of this column. + + + The owner. + + + + + Gets or sets the width of the column. + + + The width. + + + + + Gets a value indicating whether this instance is data bound. + + + true if this instance is data bound; otherwise, false. + + + + + Gets or sets the accessor of the column. + + + The accessor. + + + + + Occurs when a property value changes. + + + + + Represents an observable collection of . + + + + + Initializes a new instance of the class. + + The owner. + + + + Adds a column with the specified name. + + The name. + + + + Adds a column with the the specified name and header text. + + The name. + The header text. + + + + Removes a column with the specified column name. + + Name of the column. + + + + Determines whether the collection contains a column with the specified column name. + + Name of the column. + + true if a column with the specified name is contained in the collection; otherwise, false. + + + + + Gets the index of the column with the specified name or -1 if the column is not found. + + Name of the column. + The index of the column if found otherwise returns -1. + + + + Adds the specified collection of columns to the collection. + + The columns. + + + + Adds the specified collection of columns to the collection. + + The columns. + + + + Renames the column with the specified name with the new name. + + The name. + The new name. + + + + Sets a unique name name to the column. + + The column. + + + + Gets a unique name for a column of the collection. + + A base name to use. + the unique name for the collection. + + + + Inserts the item. + + The index. + The column. + The approved action. + + + + Removes the item. + + The index. + + + + Clears the items. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets the that owns this collection. + + + The owner. + + + + + Gets the with the specified column name. + + + The . + + Name of the column. + + + + + Defines the type of range the timeline of a will be displayed in. + + + + + Weeks view + + + + + Months view + + + + + Years view + + + + + Years view with half years for the sub items. + + + + + Years view with quarters for the sub items. + + + + + Days view + + + + + Days view with half hours for the sub items. + + + + + Days view with quarter hours for the sub items. + + + + + Hours view. + + + + + When this value is set the user is responsible for providing the items for the gantt timeline view. + + + + + Defines the type of the link a represents. + + + + + A finish to finish link. + + + + + A finish to start link. + + + + + A start to finish link. + + + + + A start to start link. + + + + + Defines when will enter edit mode. + + + + + Edit mode will begin on every click. + + + + + Edit mode will begin on second click. + + + + + Represents the event arguments for the CreateDataItem event of RadGanttView. + + + + + Gets or sets the data item. + + + The data item. + + + + + Represents the event arguments for the CreateLinkDataItem event of RadGanttView. + + + + + Gets or sets the link data item. + + + The link data item. + + + + + Represents the event arguments for an item event raised by RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Gets the item. + + + The item. + + + + + Represents the event arguments for a link event of RadGanttView. + + + + + Initializes a new instance of the class. + + The link. + + + + Gets the link. + + + The link. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the SelectedLinkChanging event of RadGanttView. + + + + + Represents the event arguments for a cancelable link event of RadGanttView. + + + + + Initializes a new instance of the class. + + The link. + + + + Gets the link. + + + The link. + + + + + Initializes a new instance of the class. + + The link data item. + + + + Represents the event arguments for the HeaderCellElementCreating event of RadGanttView. + + + + + Initializes a new instance of the class. + + The cell element. + + + + Gets or sets the cell element. + + + The cell element. + + + + + Initializes a new instance of the class. + + The data item. + + + + Gets the data item. + + + + + Gets or sets the item element. + + + + + Represents the event arguments of the ContextMenuOpening event of . + + + + + Represents the event arguments for a cancelable item event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Gets the item. + + + The item. + + + + + Initializes a new instance of the class. + + The item. + The menu. + + + + Gets or sets the menu. + + + The menu. + + + + + Represents the event arguments for the DataCellElementCreating event of RadGanttView. + + + + + Initializes a new instance of the class. + + The cell element. + + + + Gets or sets the cell element. + + + The cell element. + + + + + Represents the event arguments for the EditorRequired event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The column. + Type of the editor. + + + + Gets the current column of the item. + + + The column. + + + + + Gets or sets the editor that will be used for editing. + + + The editor. + + + + + Gets or sets the type of the editor. + + + The type of the editor. + + + + + Represents the event arguments for the ExpandedChanged event of RadGanttView. + + + + + Represents the event arguments for the ExpandedChanging event of RadGanttView. + + + + + Represents the event arguments for the GraphicalViewItemFormatting event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The item element. + + + + Gets the item element. + + + The item element. + + + + + Represents the event arguments for the ItemAdded event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the ItemAdding event of RadGanttView. + + + + + Initializes a new instance of the class. + + The data item. + + + + Represents the event arguments for the ItemChildIdNeeded event of . + + + + + Initializes a new instance of the class. + + The item. + + + + Gets or sets the child id that will be used to identify the item. + + + The child id. + + + + + Represents the event arguments for the ItemDataBound event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the ItemDataError event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The error text. + The context. + + + + Gets the error text. + + + The error text. + + + + + Gets the context of the error. + + + The context. + + + + + Represents the event arguments for the ItemEdited event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The editor. + if set to true [commit]. + + + + Gets a value indicating whether the edit operation will be committed. + + + true if commit; otherwise, false. + + + + + Gets the editor. + + + The editor. + + + + + Represents the event arguments for the ItemEditing event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The column. + The editor. + + + + Gets the column. + + + The column. + + + + + Gets the editor. + + + The editor. + + + + + Represents the event arguments for the EditorInitialized event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The editor. + + + + Gets the editor. + + + The editor. + + + + + Represents the event arguments for the ItemElementCreating event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The view element. + + + + Gets the view element. + + + The view element. + + + + + Gets or sets the item element. + + + The item element. + + + + + Represents the event arguments of the ItemPaint event of . + + + + + Initializes a new instance of the class. + + The element. + The graphics. + + + + Gets the element which is painted. + + + The element. + + + + + Gets the graphics object used for drawing. + + + The graphics. + + + + + Represents the event arguments for the ItemRemoved event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the ItemValidated event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The column. + + + + Gets the column. + + + The column. + + + + + Represents the event arguments for the ItemValidating event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The column. + The new value. + The old value. + + + + Gets the column. + + + The column. + + + + + Gets the new value. + + + The new value. + + + + + Gets the old value. + + + The old value. + + + + + Represents the event arguments for the LinkAdded event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the even arguments for the LinkAdding event of RadGanttView. + + + + + Initializes a new instance of the class. + + The link data item. + + + + Represents the event arguments for the LinkDataBound event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the LinkDataError event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The error text. + The context. + + + + Gets the error text. + + + The error text. + + + + + Gets the context of the error. + + + The context. + + + + + Represents the event arguments for the LinkRemoved event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the SelectedItemChanged event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the SelectedItemChanging event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the CellFormatting event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The cell element. + The column. + + + + Gets the column. + + + The column. + + + + + Gets the cell element. + + + The cell element. + + + + + Represents the event arguments for the ItemFormatting event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The item element. + + + + Gets the item element. + + + The item element. + + + + + Represents the event arguments for the TimelineItemFormatting event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The item element. + + + + Gets the item. + + + The item. + + + + + Gets the item element. + + + The item element. + + + + + Localizes the strings in the control by using the current . + + + + + Loads the from the printed into the dialog + + The print settings. + + + + Loads the into the dialog. + + The print settings. + + + + Saves all settings form the dialog. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the settings edited in the dialog. + + + The print settings. + + + + + Displays a hierarchical collection of task items along with the relations between them. Each item is represented by a and each link is represented by a . + + + + + Creates the child items. + + The parent. + + + + Creates the . + + + + + + Determines whether the pressed key is input key. + + The key data. + + true if the pressed key is an input key; otherwise, false. + + + + + Disables all notifications in the RadGanttView + + + + + Ends the update. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Processes a dialog key. + + One of the values that represents the key to process. + + true if the key was processed by the control; otherwise, false. + + + + + Handles windows messages. + + The message. + + + + Hanles the windows message for showing the context menu. + + The m. + + + + Directly prints the to the default printer. + + + + + Directly prints the to the default printer or shows printer settings and then prints the . + + Indicates whether printer settings dialog should be shown. + + + + Directly prints the to the default printer or shows printer settings and then prints the . + + Indicates whether printer settings dialog should be shown. + As instance of used to control the print process. + + + + Shows a for editing the print settings. + + + + + Shows a for editing the print settings. + + As instance of used to control the print process. + + + + Called when the printing begins. + + The that has initiated the printing. + The event args. + + The number of pages that will be printed. + + + + + Called when the printing ends. + + The that has initiated the printing. + The event args. + + false if the printing was canceled + + + + + Prints the page with the specified number. + + The number of the current page. + The that has initiated the printing. + The event args. + + true if there are more pages, false otherwise + + + + + Gets a print settings dialog that is specific for the printable object. + + The that has initiated the printing. + + The dialog. + + + + + Draws the current page by slicing a portion of the big bitmap. + + The graphics object. + The printed page. + + + + Draws the grid portion of the gantt view and the graphical view to the big bitmap. + + The BMP. + + + + Draws the grid cells and graphical tasks to the bitmap. + + The graphics. + + + + Draws the links to the bitmap. + + The g. + + + + Draws the header and the timeline view items to bitmap. + + The BMP. + + + + Draws the timeline items to bitmap. + + The g. + + + + Draws the header cells to bitmap. + + The g. + + + + Prints a gantt view element to the graphics object. + + The Graphics object used for painting the element. + The print element context. + The rectangle of the print element. + The text of the print element. + The data item of the print element. + + + + Prints a gantt view element to the graphics object. + + The Graphics object used for painting the element. + The print element context. + The rectangle of the print element. + The text of the print element. + The data item of the print element. + The column name of the print element. + + + + Gets the shape of an element based on the print context and the provided rectangle. + + The context. + The rect. + + + + + Gets an initialized print element based on the provided context. + + The context. + + + + + Returns a rectangle representing the coordinates where an object should be positioned or drawn for the given item and time frame. + + The item that will be printed. + The index of the item in a flat representation of the items hierarchy. + + + + + Gets the link lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the start to start lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the start to finish lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the finish to start lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the finish to finish lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the gantt view element. + + + The gantt view element. + + + + + Gets the collection of links. + + + The links. + + + + + Gets the collection of task items. + + + The task items. + + + + + Gets the collection of columns shown in the . + + + The columns. + + + + + Gets or sets the ratio between the text view and the graphical view. + + + The ratio. + + + + + Gets or sets the height of the items. + + + The height of the item. + + + + + Gets or sets the height of the header row and the timeline container. + + + The height of the header. + + + + + Gets or sets the width of the splitter. + + + The width of the splitter. + + + + + Gets a value indicating whether this instance is in edit mode. + + + true if this instance is in edit mode; otherwise, false. + + + + + Gets or sets a value indicating whether summary items are editable by the user or their value is auto-calculated from their sub items. + + + + + Gets or sets the gantt view behavior. + + + The gantt view behavior. + + + + + Gets or sets the drag drop service. + + + The drag drop service. + + + + + Gets or sets a link type converter that will be used to convert values coming from the data source to and vice versa. + + + The link type converter. + + + + + Gets or sets the selected item. + + The selected item. + + + + Gets or sets the selected link. + + The selected link. + + + + Gets or sets the current column. + + + + + Gets a value indicating whether this instance is data bound. + + + true if this instance is data bound; otherwise, false. + + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets or sets the name of the list or table in the data source from which the will extract tasks data. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to extract the title of the data items. + + + + + Gets or sets a property name which will be used to extract the start of the data items. + + + + + Gets or sets a property name which will be used to extract the end of the data items. + + + + + Gets or sets a property name which will be used to extract the Progress of the data items. + + + + + Gets or sets the name of the list or table in the data source from which the will extract links data. + + + + + Gets or sets a property name which will be used to extract links start item. + + + + + Gets or sets a property name which will be used to extract the links end item. + + + + + Gets or sets a property name which will be used to extract the link type of the data items. + + + + + Gets or a value indicating whether the control is in design mode. + + + + + Gets or sets a value indicating whether custom painting is enabled. + + + true if custom painting is enabled; otherwise, false. + + + + + Gets the default size of the control. + + + The default of the control. + + + + + Gets or sets the context menu associated with the control. + + + A that represents the context menu associated with the control. + + + + + Gets or sets a value indicating whether to show the timeline today indicator. + + + true if the timeline today indicator is visible; otherwise, false. + + + + + Gets or sets a value indicating whether to show the today indicator. + + + true if the today indicator is visible; otherwise, false. + + + + + Gets or sets a instance, which enables integration with other controls. + + + The data provider. + + + + + Gets or sets a instance, which hold the default print settings. + + + The print settings. + + + + + Gets or sets a value indicating whether the gantt view is read only. + + + true if the gantt view is read only; otherwise, false. + + + + + RadGanttView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadGanttView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs when an item needs an id for storing in data sources. + + + + + Occurs when an item is painted. Allows custom painting over the item. EnableCustomPainting must be set to true for this event to be fired. + + + + + Occurs when a context menu is about to be opened. + + + + + Occurs when a new data item is created. + + + + + Occurs when a new link data item is created. + + + + + Occurs before an is added to the Items collection. + + + + + Occurs before an is added to the Links collection. + + + + + Occurs when there is an error in the data layer of RadGanttView related to data operations with Item objects. + + + + + Occurs when there is an error in the data layer of RadGanttView related to data operations with Link objects. + + + + + Occurs when the selected item is about to be changed. + + + + + Occurs when selected item has been changed. + + + + + Occurs when the selected link is about to be changed. + + + + + Occurs when selected link has been changed. + + + + + Occurs when an item is about to be expanded or collapsed. + + + + + Occurs after an item is expanded or collapsed. + + + + + Occurs when an item is data bound. + + + + + Occurs when a new item is added to the Items collection. + + + + + Occurs when an item removed from the Items collection. + + + + + Occurs when an item's property is changed. + + + + + Occurs when a link is data bound. + + + + + Occurs when a new link added to the Links collection. + + + + + Occurs when a link is removed from the Links collection. + + + + + Occurs when a new header cell element needs to be created. + + + + + Occurs when a new data cell element needs to be created. + + + + + Occurs when the content of a cell needs to be formatted for display. + + + + + Occurs when an item in the state changes and it needs to be formatted. + + + + + Occurs when the state of a timeline item changes and it needs to be formatted. + + + + + Occurs when the state of an item in the changes and it needs to be formatted. + + + + + Occurs when the state of a link item in the changes and it needs to be formatted. + + + + + Occurs when an item element needs to be created. + + + + + Occurs when a timeline item element needs to be created. + + + + + Occurs when an element will be printed. Allows formatting of the element. + + + + + Occurs after an element is printed. Allows for custom painting over the element. + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes a new instance of the class. + + + + + Creates the the . + + The gantt view. + + + + + Creates the . + + + + + + Creates the . + + The gantt view. + + + + + Performs an update according the specified update action. + + The update action. + + + + Performs an update according the specified update action. + + The update action. + The items. + + + + Updates the visual items in the gantt view + + Indicates the update action + Array representing the items which should be updated + + + + Updates the instance when an item expanded state changes. + + The item. + + + + + Updates the scrollers on add. + + The item. + + + + Updates the scrollers. + + The skip item. + The update action. + + + + Synchronizes all item elements. + + + + + Creates a new task. + + A new + + + + Creates a new link. + + A new + + + + Begins an update. + + + + + Ends an update. + + + + + Ends the update. + + Tells the view whether an update is required or not. + Indicates the update action + + + + Processes the item for selection. + + The item. + + + + Processes the item as current. + + The item. + + + + + Processes the item for selection. + + The item. + + + + Ensures that the specified item is visible within the gantt view element, scrolling the contents of the element if necessary. + + The item to scroll into view + + + + Ensures the item is visible vertically. + + The item. + The item element. + + + + + Ensures the item visible vertically. + + The item. + + + + + Ensures that the specified item is visible within the gantt view element, scrolling the contents of the element if necessary. + This method expands parent items when necessary. + + The item to bring into view + + + + Clears the selection. + + + + + Puts the current item in edit mode. + + + + + + Commits any changes and ends the edit operation on the current item. + + + + + + Close the currently active editor and discard changes. + + + + + + Ends the editing of an item and commits or discards the changes. + + Determines if the changes are commited [true] or discarded [false]. + + + + + Gets the type of the editor to be used for editing the given item and column. + + The item. + The column. + + + + + Determines whether the given type is a numeric type. + + The type to check. + + true if the type is numeric; otherwise, false. + + + + + Gets an editor based on its type. + + Type of the editor. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Called when [selected item changed]. + + The item. + + + + Called when an item expanded is changing. + + The item. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Processes mouse down. + + The instance containing the event data. + + + + + Processes mouse move. + + The instance containing the event data. + + + + + Processes mouse up. + + The instance containing the event data. + + + + + Processes mouse click. + + The instance containing the event data. + + + + + Processes double click. + + The instance containing the event data. + + + + + Processes mouse enter. + + The instance containing the event data. + + + + + Processes mouse leave. + + The instance containing the event data. + + + + + Processes mouse wheel. + + The instance containing the event data. + + + + + Processes mouse hover. + + The instance containing the event data. + + + + + Processes key down. + + The instance containing the event data. + + + + + Processes key press. + + The instance containing the event data. + + + + + Processes key up. + + The instance containing the event data. + + + + + Gets or sets a value indicating whether summary items are editable by the user or their value is auto-calculated from their sub items. + + + + + Gets a value indicating whether the inks collection is populated. + + + true if this instance has links; otherwise, false. + + + + + Gets the collection of links. + + + The links. + + + + + Gets the collection of task items. + + + The task items. + + + + + Gets the . + + + The text view element. + + + + + Gets the . + + + The graphical view element. + + + + + Gets the . + + + The splitter element. + + + + + Gets the columns shown in the . + + + The columns. + + + + + Gets the root item for the gantt view hierarchye. + + + The root. + + + + + Gets or sets a value indicating whether custom painting is enabled. + + + true if custom painting is enabled; otherwise, false. + + + + + Gets or sets the ratio between the text view and the graphical view. + + + The ratio. + + + + + Gets or sets the minimum width of a column. + + + The minimum width of a column. + + + + + Gets or sets the height of the items. + + + The height of the item. + + + + + Gets or sets the item spacing. + + + The item spacing. + + + + + Gets or sets the height of the header row and the timeline container. + + + The height of the header. + + + + + Gets or sets the minimum length of the link. + + + The minimum length of the link. + + + + + Gets or sets the width of the splitter. + + + The width of the splitter. + + + + + Gets or sets the minimum width of a task when resizing it with the mouse. The size is in pixels and is for the current zoom. + + + The minimum width of the task. + + + + + Gets or sets a value indicating whether the gantt view is read only. + + + true if the gantt view is read only; otherwise, false. + + + + + Gets a value indicating whether this instance is in edit mode. + + + true if this instance is in edit mode; otherwise, false. + + + + + Gets the active editor. + + + + + Gets or sets the begin edit mode. + + + The begin edit mode. + + + + + Gets or sets the drag drop service. + + + The drag drop service. + + + + + Gets or sets the gantt view behavior. + + + The gantt view behavior. + + + + + Gets the that is responsible for kinetic scrolling. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets a link type converter that will be used to convert values coming from the data source to and vice versa. + + + The link type converter. + + + + + Gets or sets the selected item. + + The selected item. + + + + Gets or sets the selected link item. + + The selected link item. + + + + Gets or sets the current column. + + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets or sets the default sort Comparer for RadGanttView. The default comparer compares the items according to their start time. + + + + + Gets a value indicating whether this instance is data bound. + + + true if this instance is data bound; otherwise, false. + + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets or sets the name of the list or table in the data source from which the will extract tasks data. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to extract the title of the data items. + + + + + Gets or sets a property name which will be used to extract the start of the data items. + + + + + Gets or sets a property name which will be used to extract the end of the data items. + + + + + Gets or sets a property name which will be used to extract the Progress of the data items. + + + + + Gets or sets the name of the list or table in the data source from which the will extract links data. + + + + + Gets or sets a property name which will be used to extract links start item. + + + + + Gets or sets a property name which will be used to extract the links end item. + + + + + Gets or sets a property name which will be used to extract the link type of the data items. + + + + + Gets the binding provider. + + + The binding provider. + + + + + Gets the data item provider. + + + The data item provider. + + + + + Gets or sets a value indicating whether to disable ensure item visible horizontal. + + + true if ensure item visible horizontal is disabled; otherwise, false. + + + + + Gets or a value indicating whether the control is in design mode. + + + + + Gets or sets a value indicating whether the default context menu may be shown. + + + true if the default context menu may be shown; otherwise, false. + + + + + Gets or sets the context menu. + + The context menu. + + + + Gets or sets a value indicating whether to show the timeline today indicator. + + + true if the timeline today indicator is visible; otherwise, false. + + + + + Gets or sets a value indicating whether to show the today indicator. + + + true if the today indicator is visible; otherwise, false. + + + + + Gets or sets the BindingContext for the object. + + + + + Occurs when an item needs an id for storing in data sources. + + + + + Occurs when an item is painted. Allows custom painting over the item. EnableCustomPainting must be set to true for this event to be fired. + + + + + Occurs when a context menu is about to be opened. + + + + + Occurs when the binding context is changed. + + + + + Occurs when a new data item is created. + + + + + Occurs when a new link data item is created. + + + + + Occurs before an is added to the Items collection. + + + + + Occurs before an is added to the Links collection. + + + + + Fired when there is an error in the data layer of RadGanttView related to data operations with Item objects. + + + + + Fired when there is an error in the data layer of RadGanttView related to data operations with Link objects. + + + + + Occurs when the selected item is about to be changed. + + + + + Occurs when the selected link is about to be changed. + + + + + Occurs when selected item has been changed. + + + + + Occurs when selected link has been changed. + + + + + Occurs when an item is about to be expanded or collapsed. + + + + + Occurs after an item is expanded or collapsed. + + + + + Occurs when an item is data bound. + + + + + Occurs when a new item is added to the Items collection. + + + + + Occurs when an item removed from the Items collection. + + + + + Occurs when an item's property is changed. + + + + + Occurs when a link is data bound. + + + + + Occurs when a new link added to the Links collection. + + + + + Occurs when a link is removed from the Links collection. + + + + + Occurs when a new header cell element needs to be created. + + + + + Occurs when a new data cell element needs to be created. + + + + + Occurs when the content of a cell needs to be formatted for display. + + + + + Occurs when the state of an item in the changes and it needs to be formatted. + + + + + Occurs when the state of a timeline item changes and it needs to be formatted. + + + + + Occurs when the state of an item in the changes and it needs to be formatted. + + + + + Occurs when the state of a link item in the changes and it needs to be formatted. + + + + + Occurs when an item element needs to be created. + + + + + Occurs when a timeline item element needs to be created. + + + + + Occurs when an editor is required to edit a cell the text view. + + + + + Occurs when an cell is about to be edited. + + + + + Occurs when an editor has been initialized. + + + + + Occurs when an item validating is edited and needs to be validated. + + + + + Occurs when an item is validated. + + + + + Occurs when an item has been edited. + + + + + Occurs when the root item is created. + + + + + Represents a state manager used to define the states of an element for the theming mechanism. + + + + + Represents a state manager used to define the states of an element for the theming mechanism. + + + + + Creates the specific states. + + + + + + Creates the state manager. + + + + + + Represents a state manager used to define the states of an element for the theming mechanism. + + + + + Creates the specific states. + + + + + + Creates the state manager. + + + + + + Represents a state manager used to define the states of an element for the theming mechanism. + + + + + Creates the specific states. + + + + + + Represents a traverser which can traverse the hierarchical data structure of the data displayed by a . + + + + + Initializes a new instance of the class. + + The owner. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + + + + Moves to the previous. + + + + + + Moves to the last item. + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Moves to the specified item. + + The item. + + + + + Moves to the next item. + + true if the move was successful; otherwise false + + + + Moves to the previous item. + + true if the move was successfull; otherwise false + + + + Gets the last visible item in the given parent children. + + The parent. + + + + + Gets or sets a value indicating whether the traverser will go through an item's children no matter if it is expanded or not. + + + true if traversing all items; otherwise, false. + + + + + Occurs when the traverser moves. + + + + + Gets or sets the position. + + + The position. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Represents the method that will handle events in . + + + + + + + Represents the event arguments for the Traversing event of a + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets a value indicating whether the instance to be processed by . + + true if GanttViewRowInfo is processed otherwise, false. + + + + Gets the row. + + The row. + + + + Represents a class that is responsible for handling all the input for a + + + + + Initializes a new instance of the class. + + + + + Represents the base item element for the graphical and text view elements of + + + + + Represents the base visual item for all elements in + + + + + Initializes the class. + + + + + Attaches the specified data to the element. + + The data. + The context. + + + + Detaches this instance from the data it has been previously attached to. + + + + + Synchronizes this instance with its data item. + + + + + Determines whether the specified data is compatible with this element. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets the data item of this element. + + + The data. + + + + + Gets or sets a value indicating whether this is selected. + + + true if selected; otherwise, false. + + + + + Gets or sets a value indicating whether this is current. + + + true if current; otherwise, false. + + + + + Represents the base view element for the and . + + + + + Initializes a new instance of the class. + + The gantt view. + + + + Creates the element provider for the items of this view element. + + + + + + Gets the gantt view element that parents this instance. + + + The gantt view element. + + + + + Represents the class that handles the drag drop operations in . + + + + + Initializes a new instance of the class. + + The owner. + + + + Prepares the context for the drag drop operation. + + + + + + Notifies that a start request has occured. Cancelable. + + + + + + Handles the mouse move. + + The mouse pos. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Notifies that a stop request has occured. Cancelable. + + + + + + Notifies that a running operation has stopped. + Allows inheritors to perform some additional logic upon stop. + + + + + Location from where Drag is started + + + + + Gets or sets the owner. + + + The owner. + + + + + Represents the element used as a separator between the and . + + + + + Initializes the fields. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Represetns the element provider used by the virtualized view elements for creating visual item elements. + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates an element for the given data opbecj in the given context. + + The data. + The context. + + + + + Gets the size of the element based on the given data item. + + The item. + + + + + Called when a new item element is created. + + The item. + + + + + Represents the base item element for all items inside the . + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes a new instance of the class. + + The graphical view element. + + + + Creates the task element. + + + + + + Creates the left handle element. + + + + + + Creates the right handle element. + + + + + + Paints the children. + + The graphics. + The clip rectangle. + The angle. + The scale. + if set to true [use relative transformation]. + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance with its data item. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets the graphical view element. + + + The graphical view element. + + + + + Gets the task element. + + + The task element. + + + + + Gets the left link handle element. + + + The left link handle element. + + + + + Gets the right link handle element. + + + The right link handle element. + + + + + Represents a base class for all task elements in a . + + + + + Initializes the fields. + + + + + Initializes the class. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Determines whether the element may be dragged. + + + + + + + Determines whether this instance can be resized. + + + true if this instance can be resized; otherwise, false. + + + + + Gets or sets a value indicating whether the mouse is over the left area where resize could start. + + + true if this instance is mouse over start resize rectangle; otherwise, false. + + + + + Gets or sets a value indicating whether the mouse is over the right area where resize could start. + + + true if this instance is mouse over end resize rectangle; otherwise, false. + + + + + Represents the element which displays the graphical part of a . + + + + + Initializes the fields. + + + + + Creates the child elements. + + + + + Initializes a new instance of the class. + + The gantt view. + + + + Disposes the managed resources. + + + + + Updates the timeline data items. + + + + + Builds the timeline elements. + + + + + Applies the scroll offset to the link lines. + + The lines. + + + + + Determines whether the given link should be drawn. + + The link. + The link lines. + + + + + Calculates the link lines for all links. + + + + + Calculates the link lines for all links connected to the given item. + + The item. + + + + Calculates the link lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Calculates the start to start lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Calculates the start to finish lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Calculates the finish to start lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Calculates the finish to finish lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Populates the flat tasks collection which is used for positioning links. + + + + + Returns a value indicating whether a line represented with two points intersects the given rectangle. + + The begin point of the line. + The end point of the line. + The rectangle. + + + + + Returns a value indicating whether two lines intersect. + + The begin point of the first line. + The end point of the first line + The begin point of the second line. + The end point of the second line. + + + + + Updates the specified update action. + + The update action. + + + + Updates the scrollers. + + The update action. + + + + Synchronizes the item elements. + + + + + Updates the inner state. + + + + + Updates the timeline zoom. + + + + + Updates the text view scroller when the scroll bar is moved. + + + + + Called when the OnePixelTime property is assigned a new value. + + Indicated whether the change results in a zoom-in or zoom-out. + + + + Returns a rectangle with zero width representing the coordinates where an object should be positioned or drawn for the given item and time. + + The item . + The datetime. + + + + + Returns a rectangle representing the coordinates where an object should be positioned or drawn for the given item and time frame. + + The item. + The start. + The end. + + + + + Returns a rectangle representing the coordinates where an object should be positioned or drawn for the given item and time frame. + + The item. + The start. + The end. + if set to true the horizontal scroll bar offset is taken into account. + + + + + Returns a rectangle representing the coordinates where an object should be positioned or drawn for the given item and time frame. + + The item. + The start. + The end. + if set to true the horizontal scroll bar offset is taken into account. + if set to true the vertical scroll bar offset is taken into account. + if set to true the header header height is added to the y coordinate of the result. + + + + + Scrolls the graphical view to the given date. The date is placed in the middle of the view. + + The date to scroll to. + true if the scroll operation was successful otherwise false. + + + + Gets the link item in the given position if such exists otherwise returns null; + + The location in control coordinates where to search for a link. + + + + + Paints the children. + + The graphics. + The clip rectangle. + The angle. + The scale. + if set to true [use relative transformation]. + + + + Draws the link lines. + + The graphics. + + + + Raises the standard .NET PropertyChanged event. + + + + + + Gets or sets how many pixels along the link of a link will trigger selection. + + + + + Gets or sets how wide the selection highlight color will be painted along a selected link. + + + + + Gets the horizontal scroll bar element. + + + The horizontal scroll bar element. + + + + + Gets or sets a value indicating whether to show the today indicator. + + + true if the today indicator is visible; otherwise, false. + + + + + Gets the today indicator element. + + + The today indicator element. + + + + + Gets or sets a value indicating whether to show the timeline today indicator. + + + true if the timeline today indicator is visible; otherwise, false. + + + + + Gets the timeline today indicator element. + + + The timeline today indicator element. + + + + + Gets the timeline scroller. + + + The timeline scroller. + + + + + Gets the timeline container. + + + The timeline container. + + + + + Gets the timeline items. + + + The timeline items. + + + + + Gets or sets the behavior which handles the perations related to the gantt view timeline items. + + + + + Gets or sets the timeline start date. + + + The timeline start. + + + + + Gets or sets the timeline end date. + + + The timeline end. + + + + + Gets or sets the type of the timeline range. + + + The timeline range. + + + + + Gets or sets a value indicating whether the TimeRange of the gantt view will be handled by the control. + + + + + Gets or sets how much time a single pixel represents. + + + The one pixel time. + + + + + Gets or sets the color of the links. + + + The color of the links. + + + + + Gets or sets the size of the links handles. + + + The size of the links handles. + + + + + Gets or sets the new link instance. This is not null when a new link is being created. + + + The new link. + + + + + Gets or sets a value indicating whether a new link is being created. + + + true if a new link is being created; otherwise, false. + + + + + Represents a milestone element in a + + + + + Initializes the fields. + + + + + Determines whether this instance can be resized. + + + true if this instance can be resized; otherwise, false. + + + + + Represents an element that displayes a milestone item in a + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates the task element. + + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Represents a summary element in a + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the progress indicator element. + + + + + + Gets the element used for indicating the progress of the summary element. + + + + + Gets the left edge element of the summary element. + + + + + Gets the right edge element of the summary element. + + + + + Gets the element thats between the two edges of the summary element. + + + + + Represents an element that displays a summary item in a + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates the task element. + + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Represents a task element in a . + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the progress indicator element. + + + + + + Gets the progress indicator element. + + + The progress indicator element. + + + + + + + + + + Represents an element that displayes a task item in a + + + + + Initializes the fields. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Represents an element that visualizes the progress of a summary. + + + + + Represents an element that visualizes the progress of a task. + + + + + Gets a list of s that will be shown in the timeline. + + + + + Returns a list of s for week range. + + + + + Returns a list of s for month range. + + + + + Returns a list of s for year range. + + + + + Returns a list of s for year range with half years for the sub-items. + + + + + Returns a list of s for year range with quarter years for the sub-items. + + + + + Returns a list of s for day range. + + + + + Returns a list of s for day range with half hours for the sub-items. + + + + + Returns a list of s for da range with quarter hours for the sub-items. + + + + + Returns a list of s for hour range. + + + + + Gets the week number for the given date using ISO8601 stadard. + + The date. + + + + + Gets the time line top element text. + + The item to get text for. + + + + + Gets the timeline lower element text for the specified index. + + The timeline item. + The index of the lower element. + + + + + Gets the number of cells and optionally a start index to be displayed for the given timeline data item and time range. + + The data item for which the cell info is calculated. + The time range for which the cell info is calculated. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Creates the element. + + + + + + Fills the RangesMinWidths property (dictionary) with the minimum width for each . These values are used when AutomaticTimelineTimeRange is se to true. + + + + + Gets a new time range based on the current state of the . If no change is needed returns the value of the input range. + + The current . + Indicates whether a zoom-in or a zoom-out operation is performed. + A value of the enumeration. If no change is needed returns the input range. + + + + Gets the gantt graphical view this behavior is associated with. + + + + + Gets or sets the format for the upper row items of the timeline. + + + The timeline upper item format. + + + + + Gets or sets the format for the lower row items of the timeline. + + + The timeline lower item format. + + + + + Gets a value which enlarges the timeline end so only whole cells would be displayed. + + + + + Gets a value which enlarges the timeline start so only whole cells would be displayed. + + + + + Gets a dictionary where the key is a time ranges and the value is the minimum width for a single item in the timeline view for that time range. + + + + + Gets or sets the number of cells to be added. + + + + + Gets or sets a value indicating the first cell index. The value is optional. + + + + + Represents an element displayed in the timeline of a + + + + + Initializes the fields. + + + + + Initializes a new instance of the class. + + The element. + + + + Represents a virtualized stack container that shows the items in the timeline of a + + + + + + + + + + + + + Type of the ViewElement + + + + Updates the items' layout + + + + + Begins the measure. + + Size of the available. + + + + + Ends the measure. + + + + + + Determines whether the specified item is visible. + + The item. + + true if item is visible; otherwise, false. + + + + + Gets the element context. + + + + + + Removes the element. + + The position. + + + + Inserts the element. + + The position. + The element. + The data. + + + + Finds the compatible element. + + The position. + The data. + + + + + Updates the element at concrete position + + The position. + The data. + + + + + Gets or sets the associated element provider. + + + The element provider. + + + + + Gets or sets the associated data provider. + + + The data provider. + + + + + Gets a value indicating whether the data provider is empty. + + + true if data provider is empty; otherwise, false. + + + + + Measures the element core. + + The element. + Size of the available. + + + + + Arranges the element core. + + The element. + The final size. + The arrange rect. + + + + + Adds artificial offset on IsItemVisible when we want to use the method to hide the items + which are above the top edge of the control (we hide them to improve the virtualization performance). + The artificial offset will make the ArrangeOverride method start arranging items from + their actual position, as if the hidden items were there. + + The offset to add. + + + + Gets or sets the item spacing. + + + The item spacing. + + + + + Gets or sets the items orientation. + + + The orientation. + + + + + Gets or sets a value indicating whether the elements fit to size. + + + true if [fit elements to size]; otherwise, false. + + + + + Gets or sets the scroll offset. + + + The scroll offset. + + + + + Initializes the fields. + + + + + Initializes a new instance of the class. + + The owner. + + + + Gets the that is the owner of this container. + + + The owner. + + + + + Represents a data item for a timeline. + + + + + Initializes a new instance of the class. + + The start. + The end. + The range. + The one pixel time. + + + + Gets or sets the start date for the item. + + + The start. + + + + + Gets or sets the end date for the item. + + + The end. + + + + + Gets or sets the range. + + + The range. + + + + + Gets or sets how much time a single pixel represents. + + + The one pixel time. + + + + + Gets the width of this item. + + + The width. + + + + + Represents the provider that creates elements for the timeline of a . + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates a new element. + + The data. + The context. + + + + + Gets the size of the element for a given item. + + The item. + + + + + Called when a new item element is created. + + The item. + + + + + Gets the that is the owner of this provider. + + + The owner. + + + + + Represents the stack container in the lower half of a timeline item. + + + + + Represents an element that is used in a timeline. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the timeline item top element. + + + + + + Creates the timeline item bottom stack element. + + + + + + Initializes a new instance of the class. + + The data. + The graphical view element. + + + + Calculates the items that will be displayed in the timeline. + + + + + Called when the displayed data is changed. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance with its data item. + + + + + Determines whether the specified data is compatible with this element. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets the graphical view element that parents this element. + + + The graphical view element. + + + + + Gets the top element. + + + The top element. + + + + + Gets the bottom stack element. + + + The bottom element. + + + + + Gets the data item for this element. + + + The data. + + + + + Represents the top portion of a . + + + + + Represents the bottom portion of a . + + + + + Updates the scroll range. + + + + + Represents the layout for the expander element of each row in a + + + + + Initializes a new instance of the class. + + The item element. + + + + Creates the self-referencing cell's elements. + + The cell element. + + + + Disposes all MANAGED resources - such as Bitmaps, GDI+ objects, etc. + + + + + Disposes the link elements. + + + + + Updates the associated instance of expander primitive + + + + + Updates the indent items + + + + + Binds the row properties. + + + + + Unbinds the row properties. + + + + + Gets the data item assiciated with the layout + + + + + Gets the item element assiciated with the layout + + + + + Gets the expander element assiciated with the layout + + + + + Gets the stack layout element. + + The stack layout element. + + + + Gets the cell element. + + The cell element. + + + + Gets the witdh of the hierarchy indent. + + + + + Gets a value that indicates the indents count + + + + + Gets a collection that contains all indents + + + + + Represents a stack element which holds the expander element, the indent element(s) and the cell. + + + + + Represents an element that is used for displaying indentation in a item element. + + + + + Initializes a new instance of the class. + + The item element. + + + + Gets the item element. + + + The item element. + + + + + Represents an item element of a text part. + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes a new instance of the class. + + The text view. + + + + Creates the column container. + + + + + + Creates the element provider. + + + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance and all cells. + + + + + Disposes the self reference layout. + + + + + Synchronizes the properties. + + + + + Updates the info of each cell. + + + + + Gets the cell element for the given column. + + The column. + + + + + Gets or sets a value indicating whether this instance is expanded. + + + true if this instance is expanded; otherwise, false. + + + + + Gets the cell container. + + + The cell container. + + + + + Gets the self reference layout. + + + The self reference layout. + + + + + Gets the . + + + The text view. + + + + + Represents the element for a cell in a text part. + + + + + Initializes the fields. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + The owner. + The column. + + + + Disposes the managed resources. + + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance. + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Updates the info. + + + + + Updates the core. + + + + + Updates the self reference layout. + + + + + Arranges the self reference panel. + + The final size. + The client rect. + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Gets the editor element. + + The editor. + + + + + Gets the column of this cell. + + + The data. + + + + + Gets the column. + + + The column. + + + + + Gets the owner of this cell. + + + The owner. + + + + + Gets the data item. + + + The data item. + + + + + Gets the self reference layout. + + + The self reference layout. + + + + + Gets the expander. + + + The expander. + + + + + Gets a value indicating whether this instance is first cell. + + + true if this instance is first cell; otherwise, false. + + + + + Gets a value indicating whether this instance is last cell. + + + true if this instance is last cell; otherwise, false. + + + + + Gets a value indicating whether this instance can update info. + + + true if this instance can update info; otherwise, false. + + + + + Gets a value indicating whether this instance is in edit mode. + + + true if this instance is in edit mode; otherwise, false. + + + + + Gets the editor. + + + The editor. + + + + + Privedes cell elements for the item elements of + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates a new element for the given data and context. + + The data. + The context. + + + + + Gets the size of the element. + + The item. + + + + + Gets the owner. + + + The owner. + + + + + Represents a container in which columns can be displayed. + + + + + Initializes the fields. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The owner. + + + + Gets or sets the owner. + + + The owner. + + + + + Gets or sets a value indicating whether [scroll columns]. + + + true if [scroll columns]; otherwise, false. + + + + + Represetns a scroller for the columns. + + + + + Represents a traverser which can traverse the columns of a + + + + + Initializes a new instance of the class. + + The columns. + + + + Called when [items navigating]. + + The current. + + + + + Represents the element that displayes the grid part of a + + + + + Creates the child elements. + + + + + Initializes a new instance of the class. + + The gantt view. + + + + Gets the first visible column. + + The first visible column. If there are no visible columns returns null. + + + + Gets the last visible column. + + The first visible column. If there are no visible columns returns null. + + + + Columnses the collection changed. + + The instance containing the event data. + + + + Updates the specified update action. + + The update action. + + + + Synchronizes the item elements. + + + + + Gets the first visible column. + + + The first visible column. + + + + + Gets the last visible column. + + + The last visible column. + + + + + Gets the column container. + + + The column container. + + + + + Gets the column scroller. + + + The column scroller. + + + + + Gets the columns. + + + The columns. + + + + + Gets or sets the indent of the hierarchy rows. + + + The indent. + + + + + Represents a header cell element of a column in a + + + + + Initializes a new instance of the class. + + The owner. + The column. + + + + Synchronizes this instance. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Determines whether this instance [can be resized]. + + + true if this instance [can be resized]; otherwise, false. + + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Gets or sets a value indicating whether this instance is mouse over resize rectangle. + + + true if this instance is mouse over resize rectangle; otherwise, false. + + + + + Privedes header cell elements for the item elements of + + + + + Creates a new element for the given data and context. + + The data. + The context. + + + + + Gets the size of the element. + + The item. + + + + + Represents the expander item of a row in a . + + + + + Represents an expander that is drawn in expander cells + + + + + This event fires when the expanded state is changed. + + + + + Initializes a new instance of the class. + + + + + Paints the sign's fill + + The IGraphics to use for painting the sign's fill + Rectangle containing sign bounds + + + + Paint the sign's border + + The IGraphics to use for painting the sign's border + Rectangle containing sign bounds + + + + Paints the sign + + The IGraphics to use fo painting the sign + Rectangle containing sign bounds + + + + Gets or sets the padding sizes of the sign. + + + + + Gets or sets the width of the sign. + + + + + Gets or sets the border width of the sign. + + + + + Gets or sets the padding sizes of the border around the sign. + + + + + Gets or sets a value indicating that the sign's border must be drawn + + + + + Gets or sets a value indicating that the sign's fill must be drawn + + + + + Gets or sets the sign's border color + + + + + Gets or sets sign's back color + + + + + Gets or sets sign's second back color + + + + + Gets or sets sign's third back color + + + + + Gets or sets sign's fourth back color + + + + + Gets or sets the number of colors used for drawing sign's background + + + + + Gets or sets the gradient style of sign's background + + + + + Gets or sets the gradient angle of sign's background + + + + + Gets or sets the gradient percentage of sign's background + + + + + Gets or sets the second gradient percentage of sign's background + + + + + Gets or sets the sign's style + + + + + Gets or sets a value indicating that the sign must maintain square size + + + + + Gets or sets the sign's size + + + + + Gets or sets a value indicating whether the sign is in expanded or collapsed state + + + + + Gets or sets the sign image. + + + + + Gets or sets a value detemining the link lines that be rendered around the expander sign + + + + + Gets or sets a value determining the style of the link lines + + + + + Gets or sets a value determining the color of the link lines + + + + + Defines a lines that will be render around the primitive + + + + + Initializes a new instance of the class. + + The item element. + + + + Gets or sets a value indicating whether the sign is in expanded or collapsed state + + + + + Gets the item element. + + + The item element. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets the main element of the editor. + + + + + Gets or sets the current bitmap. If you want to open an image for edit use one of the OpenImage methods. + + + + + Gets or sets the path that will be used for save operations. + + + + + Gets or sets the zoom factor of the editor. + + + + + Occurs after an image is loaded in the editor. + + + + + Occurs when the progress of an async load operation changes. + + + + + Occurs when an operation results in an error or an exception. + + + + + Closes the open dialog. + + + + + Fires the event. + + + + + + Fires the event. + + + + + + Fires the event. + + + + + + Gets the element containing the buttons with commands. + + + + + Gets the element that is responsible for drawing the image. + + + + + Gets the element continaing the zooming controls. + + + + + Gets the scroll viewer controller. + + + + + Gets or sets the current bitmap. If you want to open an image for edit use one of the OpenImage methods. + + + + + Gets or sets the original image when performing editing operations. + + + + + Gets or sets the path that will be used for save operations. + + + + + Gets or sets the zoom factor of the editor. + + + + + Gets or sets a factory used for creating dialogs. + + + + + Gets or sets the width of the . + + + + + Gets or sets the height of the + + + + + Gets the undo operations stack. + + + + + Gets the redo operations stack. + + + + + Occurs after an image is loaded in the editor. + + + + + Occurs when the progress of an async load operation changes. + + + + + Occurs when an operation results in an error or an exception. + + + + + Represents a draggable, selectable, and resize-able item which displays a snapshot + of its associated . This item is used in + when the + is in customize mode. + + + + + Invalidates the preview of the associated item. + + + + + Gets or sets the overlay color which is displayed when the item is selected. + + + + + Gets or sets the border color which is displayed when the item is selected. + + + + + Gets the associated . + + + + + Gets the inner container of the current item. Such will exist if this item represents a + + + + + + Gets the inner item of the current item. Such will exist if this item represents a + . + + + + + Gets or sets a value indicating whether the item is currently selected. + + + + + An element which hosts . + The main element of . Also used + as a child in when the represented item + is . + + + + + A responsible for the drag operations in . + + + + + Represents a control which overlays the when the last is put in customize mode. + + + + + Updates the preview of the underlying items. + + + + + Updates the preview of the underlying items. + + If [true], child elements will be reinitialized, + if [false], only the snapshot of existing elements will be updated. + + + + Selects the specified item. + + The item to select. + + + + Selects the specified item. + + The item to select. + If [true], item will be added to the current selection, + otherwise only the specified item will be selected + + + + Gets the items from all levels in the control. + + An enumeration to the items. + + + + Gets all items which are descendants of the specified parent element. + + The parent element. + An enumeration to the items. + + + + Sets the bounds of the drag preview rectangle. + + The bounds. + + + + Finds the associated of the specified . + + The specified item. + The associated draggable item. + + + + Starts the with the specified item as a drag context. + + The item to drag. + + + + Gets the owning + + + + + Gets the main element of the control. + + + + + The responsible for the drag operations in the control. + + + + + Gets a collection of the selected items. + + + + + Provides access to the default icons and images used in . + + + + + The image displayed next to in the customize dialog. + + + + + The Customize context menu icon. + + + + + The image displayed next to an empty in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + The icon of the LoadLayout button in the customize dialog. + + + + + The icon of the SaveLayout button in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + Provides options for sizing the text part of the + + + + + Text will be sized proportionally to the whole size of the item. + + + + + Text will have a fixed size in pixels. + + + + + Provides options for arranging the text part of the + + + + + The text will appear above the control. + + + + + The text will appear below the control. + + + + + The text will appear on the left side of the control. + + + + + The text will appear on the right side of the control. + + + + + Represents a item which can display text. + + + + + Represents a item which displays a separator line. + Stands for visually separating logical groups of controls. + + + + + Gets or sets the thickness of the item. + + + + + Gets the current orientation of the item. The orientation is automatically + determined depending on the item's position. + + + + + Represents a item which displays a splitter line. + The splitter stands for visually separating logical groups of controls. In addition, + it allows the end user to resize the groups on both sides of it by dragging the splitter + with the mouse. + + + + + Gets or sets the image used by the splitter when in horizontal orientation. + + + + + Gets or sets the image used by the splitter when in vertical orientation. + + + + + A items which displays s + in a tabbed interface. + + + + + Gets the index at which a group should be inserted if dropped at the specified point. + + The specified point. + The index at which the group should be inserted. + + + + Gets the drag preview rectangle which is used when dropping over the tab items. + + The desired insert index + The bounds of the drag preview rectangle. + + + + Gets the main tab strip element. + + + + + Gets a collection of s which will be displayed + in the tabbed interface of this item. + + + + + Gets the of the selected . + + + + + Gets the selected . + + + + + A inheritor used to display the tab strip + inside s in . + + + + + Encapsulates the UI representation of a RadPageView instance. Different views will be described by different instances of this class. + + + + + Base element for all visual elements across RadPageView. + + + + + Adds padding and border size to the provided measured size. + + + + + + + Applies the Min/Max size constraints to the already measured size. + + + + + + + Gets the content orientation for this item. + + + + + Gets the content orientation for this item. + + + + + Gets or sets the padding that defines the offset of element's fill. + This does not affect element's layout logic such as size and location but has only appearance impact. + + + + + Gets or sets the padding that defines the offset of the border. + This does not affect element's layout logic such as size and location but has only appearance impact. + + + + + Gets an instance of the class that + represents the content area associated with the given item. By default, this method + returns the main content area of the control. + + + + + + + Gets the area, where the currently active page may be displayed. + + + + + Gets the rectangle where items reside. + + + + + + Displays the item list menu, using the provided element as menu's owner. + + + + + + Displays the item list menu, using the provided element as menu's owner and the specified horizontal and vertical alignment. + + + + + + + + + + + + + + Gets the item that contains the porvided point (in control's client coordinates). + + + + + + + Arranges the items and returns the available rectangle where the content area should be positioned. + + + + + + + Gets the default (automatic) item orientation, which may depend on some settings in inheritors such as RadPageViewStripElement. + + True to indicate that content orientation is to be retrieved, false to get orientation for border and fill. + + + + + Puts the current node in edit mode. + + + + + + Commits any changes and ends the edit operation on the current cell. + + + + + + Close the currently active editor and discard changes. + + + + + + Gets the RadElement instance that parents all the items. + + + + + Determines CloseButton will be displayed in each item, allowing that item to be closed. + + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where an item will be dropped after a drag operation. + + + + + Gets or sets the RadDragDropService instance which handles item drag requests. + + + + + Gets or sets the mode that controls item drag operation within the element. + + + + + Determines whether the currently selected item will be automatically scrolled into view. + + + + + Gets or sets the spacing between two items within the element. + + + + + Gets or sets the text orientation of the item within the owning RadPageViewElement instance. + + + + + Gets or sets the text orientation of the item within the owning RadPageViewElement instance. + + + + + Defines how each item's border and fill is oriented within this instance. + + + + + Gets the RadPageView instance that owns this element. May be null if element is hosted on another RadControl instance. + + + + + Gets the element which represents the content area of the tab view. + + + + + Gets the header element of the view. + + + + + Gets the footer element of the view. + + + + + Gets or sets the currently selected item in the view. + + + + + Gets or sets the mouse button that will be used to select items. Equals to MouseButtons.Left by default. + + + + + Gets all the items currently present within this element. + + + + + Gets or sets whether the pages will be wrapped around when performing selection using the arrow keys. + If the property is set to true, pressing the right arrow key when the last page is selected will result in selecting the first page. + + true if [wrapped around]; otherwise, false. + + + + Determines whether selecting an item will update the element's ContentArea. + + + + + Gets or sets the active editor. + + The active editor. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets a value indicating whether there is an open editor in the tree view. + + + + + Gets the RadPageViewStripItem which stands for adding + new pages on click. + + + + + Gets or sets the item of the page which is opened for preview on the far side of the + regular items. + + + + + Determines if the PinButton will be displayed in each item, allowing that item to be pinned. + + + + + Gets or sets the visibility of the internal NewItem. + + + + + Determines whether strip scrolling will be animated. + + + + + Gets or sets the easing type of the strip scroll animation. + + + + + Gets the container that holds item layout and strip buttons panel. + + + + + Determines scroll buttons' visibility. + + + + + Determines the alignment of items within the strip layout. + + + + + Determines the fit mode to be applied when measuring child items. + + + + + Gets or sets the alignment of item strip within the view. + + + + + Selects the specified . + + The group item to select. + + + + Gets the currently selected . + + + + + An inheritor of used in . + Stands for displaying the tabs of s inside a . + Keeps track of its associated . + + + + + Indicates whether the item is pinned. Pinned items appear in from of the others. + + + + + Indicates whether the item is opened for preview. + + + + + Gets or sets the length of the associated + with this . By default, this property returns -1; + + + + + Determines whether the content of the current item is visible. This property is equivalent + to the IsSelected property, however its semantics can be changed in scenarios where multiple + content areas can be visible as in the . + + + + + Determines whether the current instance is internally created by the ViewElement and represents some built-in functionality. + + + + + Gets the RadPageViewItemButtonsPanel that contains all the buttons, associated with the item. + + + + + Gets or sets the alignment of item's associated buttons. + + + + + Gets or sets a boolean value that determines whether the item margin will be automatically + flipped according to the orientation of the items in the control. + + + + + Gets or sets the title of the item. Title is visualized in the Header area of the owning view element. + + + + + Gets or sets the description of the item. Description is visualized in the Footer area of the owning view element. + + + + + Gets or sets the RadElement instance that represents the content of this item. + The content is used when item is not bound to a RadPageViewPage instance. + + + + + Gets the size that is forced by the layout element for this item. It may differ from the DesiredSize one. + + + + + Gets the current size of the item. This may differ from Bounds.Size as it reflects internal changes within the item itself. + + + + + Determines whether the item is currently selected (associated with the SelectedPage of the owning RadPageView). + + + + + Gets the RadPageViewPage instance associated with this item. + + + + + Gets the RadPageViewElement that owns this item. + + + + + Gets or sets the use mnemonic. + + The use mnemonic. + + + + Gets or sets the show keyboard cues. + + The show keyboard cues. + + + + Gets or sets a property which determines whether to consider the ItemBorderAndFillOrientation of RadPageViewElement. + + + + + The associated with this tab strip item. + + + + + Represents a visual element, which contains set of common buttons for a instance. + + + + + Gets or sets the size to be applied to each of the embedded buttons. + + + + + Gets or sets the spacing between each two buttons. + + + + + Gets the RadPageViewButtonElement instance which represents the CloseButton for the owning item. + + + + + Gets the RadPageViewPinButtonElement instance which represents the PinButton for the owning item. + + + + + Provides localization settings for . + + + + + String IDs for the localizable strings in . + + + + + Provides the resize functionality for . + + + + + Begins the resize operation given a starting point and resize orientation. + + The starting point. + The resize direction. + [true] if successful, [false] otherwise. + + + + Begins the resize operation given a . + + The splitter item. + [true] if successful, [false] otherwise. + + + + If the behavior is active, moves the resize position to the specified point. + + The point in coordinates relative to the owning . + + + + Ends the resize operation. + + + + + Gets the mouse cursor that should be displayed at the specified position. + + The point in coordinates relative to the owning . + The cursor. + + + + Indicates whether the behavior is currently active. + + + + + Provides the XML serialization functionality for . + + + + + A container control which keeps its child controls arranged in a consistent way and scales their layout as the control size changes. + Allows runtime customization and serializing the layout. + + + + + Initializes the items of the default context menu. + + + + + Puts the control in an initialization state where it will not update until EndUpdate is called. + + + + + Puts the control out of the initialization state caused by calling BeginUpdate and updates it. + + + + + Adds a control at a specified position next to a specified control. + + The control to add. + An existing control next to which the new control will be added. + The position at which the new control will be added. + + + + Adds a control at a specified position next to a specified item. + + The control to add. + An existing item next to which the new control will be added. + The position at which the new control will be added. + + + + Adds a control to the specified container. + + The control to add. + The container. + + + + Adds an item at a specified position next to a specified existing control. + + The item to add. + An existing control next to which the new control will be added. + The position at which the new control will be added. + + + + Adds an item at a specified position next to a specified existing item. + + The item to add. + An existing item next to which the new control will be added. + The position at which the new control will be added. + + + + Adds an item at the root level of the control and rebuilds the layout. + + The item to add. + + + + Adds an item to the specified container and rebuilds its layout. + + The item to add. + The container to add the item to. + + + + Removes the specified control from the RadLayoutControl. + + The control to remove. + + + + Removes the specified item from the RadLayoutControl. + + The item to remove. + + + + Resizes the specified item with a specified amount. Resize direction depends + on the position of item. + + The item to resize. + The amount to resize with. + + + + Resizes the specified control with a specified amount. Resize direction depends + on the position of item. + + The control to resize. + The amount to resize with. + + + + Hides an item from the RadLayoutPanel and places it in the HiddenItems collection. + + The item to hide. + + + + Hides a control from the RadLayoutPanel and places it in the HiddenItems collection. + + The control to hide. + + + + Shows the control which allows reordering + and resizing the items. + + + + + Hides the . + + + + + Shows the and puts the control in customize mode. + + + + + Gets the initial location of the . + + The location. + + + + Closes the and puts the control out of customize mode. + + + + + Finds the item associated with a given control. + + The control. + The control's associated item. + + + + Finds the item associated with a given control. + + The control. + [true] if the HiddenItems collection should be searched, + [false] otherwise. + The control's associated item. + + + + Gets the items from all levels which are nested in the control. + + An enumeration of the items. + + + + Gets the items from all levels which are nested in the control. + + + + + + + Updates the scrollbar metrics. + + + + + Updates the bounds of nested controls. + + + + + Gets the mouse cursor which should be shown at a given point. + + The point. + The cursor to be shown at that point. + + + + Gets the that should be activated at a given point. + + The point. + The resizing behavior at that point. + + + + Gets all child items iterated recursively. + + The items. + + + + Stores RadLayoutControl's layout state in XML format, using the serialization + information provided by the property. + + XmlWriter to use by the built-in serializer + + + + Stores RadLayoutControl's layout state in XML format, using the serialization + information provided by the property. + + The stream to write to. + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores RadLayoutControl's layout state in XML format, using the serialization + information provided by the property. + + The file to write to. + + + + Loads RadLayoutControl's layout state from XML file, using the serialization + information provided by the property. + + The file to read from. + + + + Loads RadLayoutControl's layout state from XML file, using the serialization + information provided by the property. + + The stream to read from. + + + + Loads RadLayoutControl's layout state from XML file, using the serialization + information provided by the property. + + The XmlReader to read the XML from. + + + + Called after load layout to ensure the visibility of the controls is the same + as the visibility of the items. + + + + + Gets the default serialization info for RadLayoutControl used by Save/Load loyout methods to persist the layout to/from XML. + + The default serialization info. + + + + Fired when the items of the control or the items of the inner containers + (such as groups and tabbed groups) have changed. + + + + + Gets or sets a value indicating whether the control should draw its border. + + + + + Gets or sets the Customize Dialog form which is shown via the context menu. + + + + + Gets or sets a value indicating whether resizing is enabled when the Customize Dialog is not shown. + + + + + Gets or sets a value indicating whether the end-user is allowed to hide and show existing items. + + + + + Gets or sets a value indicating whether the end-user is allowed show the Customize Dialog and modify the existing layout. + + + + + Gets or sets the context menu. + + + + + Gets the vertical . + + + + + Gets the horizontal . + + + + + Gets the main which hosts the items on the root level. + + + + + Gets a collection containing the items on the root level. + + + + + Gets a collection containing the hidden items. + + + + + Gets the control which appears when the Customize Dialog is shown. + + + + + Indicates whether the DragOverlay control is visible. + + + + + Indicates whether the user is currently resizing the items. + + + + + If the user is currently resizing, returns the active , otherwise returns null. + + + + + This property is not relevant for this class. + + + + + Gets the serialization info for RadLayoutControl used by Save/Load loyout methods to persist the layout to/from XML. + By default or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + Gets the margin around the client area of the control. + In the default case, this should be the border thickness. + + + + + Adds the control to the underlying collection without creating a for it. + + The control to add. + + + + Removes the control from the underlying collection without destroying its associated item. + + + + + + Finds the item associated with a given control. + + The control. + The associated item. + + + + This class represents data in a list layout similar to the ListBox control provided by Microsoft. + + + + + Initializes all event key objects and performs other static initialization. + + + + + Subscribes to the relevant events of the underlaying RadListElement. + + + + + Unsubscribes from the relevant events of the underlaying RadListElement. + + + + + + + + Forces re-evaluation of the current data source (if any). + + + + + Suspends internal notifications and processing in order to improve performance. + This method is cumulative, that is, if BeginUpdate is called N times, EndUpdate must also be called N times. + Calling BeginUpdate will cause the ItemsChanged event to stop firing until EndUpdate is called. + + + + + Resumes the internal notifications and processing previously suspended by BeginUpdate. + + + + + Defers the refresh. + + + + + + Selects all items if the SelectionMode allows it. + This method throws an InvalidOperationException if SelectionMode is One or None. + + + + + Clears the currently selected items and selects all items in the closed range [startIndex, endIndex]. + + The first index at which to start selecting items. + The index of one item past the last one to be selected. + + + + Scrolls to the provided item so that the item will appear at the top of the view if it is before the currently visible items + and at the bottom of the view if it is after the currently visible items. + + The item to scroll to. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default this relation is the System.String.StartsWith(). + This method starts searching from the beginning of the items. + + The string with which every item will be compared. + The index of the found item or -1 if no item is found. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default this relation is the System.String.StartsWith(). + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Raises the event. + + + An instance that contains the event data. + + + + + + Gets or sets value indicating if the user can reorder items via drag and drop. + + + + + Gets or sets a value indicating whether alternating item color is enabled. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Indicates whether the items should be displayed in groups. + + + + + Gets the collection of groups that items are grouped into + + + + + Gets or sets a value that indicates whether text case will be taken into account when sorting. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + + + + + Gets or sets a value that determines whether the user can search for an item by typing characters when RadListControl is focused. + + + + + The ListElement responsible for the majority of the control logic. The RadListControl is a wrapper of the RadListElement. + + + + + Gets the Items collection. Items can not be modified in data bound mode, and a DataSource can not be assigned while there + are items in this collection. + + + + + Provides a read only interface to the selected items. In order to select an item, use its Selected property. + + + + + Gets or sets the SelectionMode of RadListControl. This property has a similar effect to the SelectionMode of the + standard Microsoft ListBox control. + + + + + Gets or sets the SelectedValue. A linear search is performed to find a data item that has the same value + in its Value property and SelectedItem and SelectedIndex are updated to it and its index respectively. + + + + + Gets or sets the active item. The Active item is relevant only in MultiSimple SelectionMode or MultiExtended in combination with + the control keyboard key. + + + + + Gets or sets the currently selected item. + + + + + Gets or sets the currently selected index. + + + + + Gets or sets an object which will provide the data to be visualized as a list. + + + + + Gets or sets a property name which will be used to extract a string value from the data items in order to provide + a meaningful display value. + + + + + Gets or sets a property name which will be used to extract a value from the data items. The value of the property with + this name will be available via the Value property of every RadListDataItem in the Items collection. + + + + + Gets or sets a property name which will be used to extract a text for description text from the data items. The value of the property with + this name will be available via the Value property of every RadListDataItem in the Items collection. + + + + + Gets or sets the sort style. + + + + + Gets or set the scroll mode. + + + + + Gets or sets a format string which will be used for visual formatting of the items text. + + + + + Gets or sets a value that indicates whether the FormatString and FormatInfo properties will be used to format + the items text. Setting this property to false may improve performance. + + + + + Gets or sets a value that indicates whether items will be sized according to + their content. If this property is true the user can set the Height property of each + individual RadListDataItem in the Items collection in order to override the automatic + sizing. + + + + + Gets or sets a predicate which filters which items can be visible. + + + + + Gets or sets a filter expression which determines which items will be visible. + + + + + Gets a value indicating whether there is a Filter or FilterExpression set. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the FindString() method when searching for an item. + + + + + Gets or sets a value that determines whether the FindString() method searches via the text property + set by the user or by the text provided by the data binding logic, that is, by DisplayMember. + + + + + Gets or sets a value that indicates if this RadListControl will stop firing the ItemsChanging and ItemsChanged events. + + + + + Gets or sets a value that determines whether to stop the selection events from firing. These are SelectedIndexChanged, + SelectedIndexChanging and SelectedValueChanged. + + + + + This property is not relevant for this class. + + + + + Fires after data binding operation has finished. + + 1 + + + + + + This event fires when the selected index property changes. + + + + + This event fires before SelectedIndex changes. This event allows the operation to be cancelled. + + + + + This event fires only if the SelectedValue has really changed. For example it will not fire if the previously selected item + has the same value as the newly selected item. + + + + + This event fires before a RadListDataItem is data bound. This happens + when the DataSource property is assigned and the event fires for every item provided by the data source. + This event allows a custom RadListDataItem to be provided by the user. + + + + + This event fires after a RadListDataItem is data bound. This happens + when the DataSource property is assigned and the event is fired for every item provided by the data source. + + + + + This event allows the user to create custom visual items. + It is fired initially for all the visible items and when the control is resized afterwards. + + + + + This event fires when the SortStyle property changes. + + + + + The VisualItemFormatting event fires whenever a property of a visible data item changes + and whenever a visual item is associated with a new data item. During scrolling for example. + + + + + This event fires when the SelectedItems collection changes. + + + + + This event fires before the SelectedItems collection changes. + + + + + RadListControl consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadListControl consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Defines the alignment of checkbox within a . + + + + + Checkbox is aligned next to the near edge. + + + + + Checkbox is centered within the layout. + + + + + Checkbox is aligned next to the far edge. + + + + + ListViewSpreadExport is a powerful exporting API, allowing to export RadListView to XLSX, PDF, CSV, and TXT format, utilizing the Document Processing Libraries. + + + + + Initializes a new instance of the class. + + The ListView to export. + + + + Initializes a new instance of the class. + + The ListView to export. + The export format. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Starts an export operation. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadListView will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadListView will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadListView will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadListView will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Cancels an asynchronous export operation. + + + + + Check if date is supported from MS Excel + + + True if value is supported + + + + Gets or sets the name of the sheet. + + + The name of the sheet. + + + + + Specifies whether a file will be exported as a new file, or if a file with the same name already exists at the specified path, a new sheet will be added to it. + + + ExportAsNewSheetInExistingFile - will add a new sheet to the specified file, if it exists + ExportInNewFile - will create/override the specified file + + + + + Gets or sets a value indicating whether to export images. + + + + + Gets or sets a value indicating whether to export hierarchy and group child rows grouped. + + + + + Gets or sets the format of the exported file - XLSX, PDF, CSV or TXT. + + + The file extension. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets the maximum number of rows per sheet. + + + The sheet max rows. + + + + + Gets or sets a value indicating how children of collapsed items are exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when the export process completes. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents the method that will handle the CellFormatting event. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the CellFormatting event + + + + + Initializes a new instance of the class. + + Export cell for further formatting. + The exporting item of RadListView. + The row index in the worksheet. + + + + Gets the row index in worksheet. + + + + + Gets export cell for further formatting. + + + + + Gets the exporting item. + + + + + Defines values for specifying how the width of a column is adjusted. + + + + + The column width does not automatically adjust. + + + + + The column width adjusts to fit the contents of the header cell. + + + + + The column width adjusts to fit the contents of the data cells. + + + + + The column width adjusts to fit the contents of all cells + + + + + A helper class that process best fitting of columns + + + + + Initializes a new instance of the class. + + The detail list view. + + + + Performs best fit for specified column + + An instance of that will be best fitted + + + + Performs best fit for all columns + + + + + Bests the fit columns. + + The mode. + + + + Process all best fit column requests + + + + + Performs best fit for all columns + + + + + Performs best fit for specified column + + An instance of that will be best fitted + The mode. + + + + Determines whether the instance of can be best fitted. + + The item. + + true if the instance of can be best fitted ; otherwise, false. + + + + + Gets the desired cell's width + + An instance of + Returns the desired cell's with + + + + Sets 's width + + An instance of . + The desired width + + + + Gets the table element. + + The table element. + + + + Gets the best fit requests. + + The best fit requests. + + + + Best Fit All Columns Request + + + + + Requests the best fit columns. + + + + + Enqueues the best fit columns. + + The mode. + + + + Requests the best fit column. + + The column. + + + + Removes and returns the object at the beginning of the queue + + Returns BestFitRequest + + + + Dequeues the specified column's request from the queue + + The column's request that should be removed + Returns BestFitReques + + + + Represents BestFitRequest type + + + + + BestFit Operation for specified column + + + + + BestFit Operation for all columns + + + + + Represent best fit request + + + + + Initializes a new instance of the class. + + The operation. + The column. + + + + Initializes a new instance of the class. + + The operation. + + + + Initializes a new instance of the class. + + The operation. + The mode. + + + + Compares the current instance to the specified request. + + The request. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the operation. + + The operation. + + + + Gets the auto size mode. + + + + + Gets the column. + + The column. + + + + Gets the related with the page. + + + + + Gets the editor value. + + + + + Gets the element which hosts and arranges all the items within the strip. + + + + + Gets the element which hosts and arranges all the items within the strip. + + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Gets or sets a value indicating whether to use animation when collapsing and expanding the menu. + + + + + Gets or sets the animation interval. + + + + + Gets or sets the animation frames. + + + + + Occurs before the hamburger menu is collapsed. + + + + + Occurs before the hamburger menu is expanded. + + + + + Occurs after the hamburger menu is collapsed. + + + + + Occurs after the hamburger menu is expanded. + + + + + Creates Star like shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Creates Heart like shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Initializes a new instance of the RadRating class + + + + + CreateChildItems + + + + + + Set the default control size. + + + + + Gets or sets whether the edit control is auto-sized. + + + + + Gets or sets the direction of rating element paint (Standard, Reversed). + + + + + Gets or sets the orientation of the rating control. + + + + + Gets or sets the selection mode of the rating control. + + + + + Gets the rating items collection. + + + The items. + + + + + Gets or sets the average value of rating element. + + + + + Gets or sets the minimum value of rating element. + + + + + Gets or sets the maximum value of rating element. + + + + + Gets or sets the text of the Caption label. + + + + + Gets or sets the text of the Sub Caption label. + + + + + Gets or sets the text of the description label. + + + + + Gets the instance of RadRatingElement wrapped by this control. RadRatingElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRatingControl. + + + + + Gets or sets whether the rating is ReadOnly. + The Value of the element can still be set in ReadOnly mode, nothing else. + + + + + This property is not relevant for this class. + + + + + Occurs before the value of the RatingElement is changed. + + + + + Occurs when the value is being changed. Cancelable event. + + + + + Gets the rating items collection. + + + The items. + + + + + Gets or sets the text of the Caption label. + + + The caption. + + + + + Gets or sets the text of the Sub Caption label. + + + The sub caption. + + + + + Gets the caption element. + + + The caption element. + + + + + Gets the sub caption element. + + + The sub caption element. + + + + + Gets the description element. + + + The description element. + + + + + Gets the elements layout. + + + The elements layout. + + + + + Gets or sets the tool tip format string. + + + The tool tip format string. + + + + + Gets or sets the selected value. + + + The selected value. + + + + + Gets or sets the current value. + + + The current value. + + + + + Gets or sets the hover value. + + + The hover value. + + + + + Gets or sets whether the Hover layer should be applied. + + + + + Gets or sets the value of the rating. + + + + + Gets or sets the minimum value of rating element. + + + The minimum. + + The Minimum should be lower than the Maximum + + + + Gets or sets the maximum value of rating element. + + + The maximum. + + The Maximum should be bigger than the Minimum + + + + Gets or sets the orientation of the rating control (Horizontal, Vertical). + + + + + Gets or sets the selection mode of the rating control (full item, half item, precise selection). + + + + + Gets or sets a value indicating whether the element is read-only. + + + + + Gets or sets the text of the description label. + + + + + GGets or sets the direction of rating element paint (Standard, Reversed). + + + The direction. + + + + + Gets or sets the tool tip precision. + + + The tool tip precision. + + + + + Gets or sets the percentage rounding. + + + The percentage rounding. + + + + + Gets or sets the tool tip offset. + + + The tool tip offset. + + + + + Gets or sets the duration of the tool tip. + + + + + Occurs before the value of the RatingElement is changed. + + + + + Occurs when the value is being changed. Cancelable event. + + + + + Represents a state manager for + + + + + Creates the specific states. + + + + + + Creates the state manager. + + + + + + Creates a new star shape with the specified number of arms and inner radius. + + + + + Creates a new star shape with the specified number of arms and inner radius. + + The number of arms the star will have. + The ratio between the inner and out ration of the star. + + + + Creates Star like shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Gets or sets the number of arms. + + + + + Gets or sets the ration between the inner and out radius. + + + + + Represents a logical data item that contains the tokenzied text and its value + + + + + Initializes a new instance of the class. + + The text. + The value. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Raises the event. + + Name of the property. + + + + Raises the event. + + The instance containing the event data. + + + + Gets the text. + + + + + Gets the value. + + + + + Occurs when a property value changes. + + + + + Represents a collection of + + + + + Initializes a new instance of the class. + + The text box. + + + + Initializes a new instance of the class. + + The text box. + The list. + + + + Raises the event. + + The instance containing the event data. + + + + Finds the specified text in the collection + + The text. + + + + + Fins all tokenized item that contains this text. + + The text. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Occurs when the collection is changed. + + + + + Represents the method that handles validation of tokens in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The text. + + + + Initializes a new instance of the class. + + The text. + if set to true [is valid token]. + + + + Gets the text of the token. + + + + + Gets or sets a value indicating whether the text is valid token. + + + true if the text is token; otherwise, false. + + + + + The AccessibleObject of + + + + + Initializes a new instance of the class. + + The text box control. + + + + Gets the associated text box. + + + + + Represents a close event arguments when closed + + + + + Represents event data of the RadPopupClosed event. + + + + + Initializes a new instance of the RadPopupClosedEventArgs class using + the closing reason. + + + closing reason + + + + + Initializes a new instance of the class. + + The reason. + The instance containing the event data. + + + + Gets the input arguments. + + + + + Represents the method that is called when is formatted. + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The text block. + + + + Gets the text block to be formatted + + + + + X-coordinate comparer of + + + + + Initializes a new instance of the class. + + The x coordinate. + + + + Compares the specified x value. + + The x value. + The y value. + + + + + Edit operation in + + + + + Insert text operation + + + + + Replace text operation + + + + + Delete text operation + + + + + The autocomplete drop down of + + + + + Initializes a new instance of the class. + + The owner. + + + + Gets the associated text box. + + + + + Gets the associated list element. + + + + + Represents a tokenized text block in + + + + + Represents a single word in + + + + + Gets a rectangle of character by index. + + The index. + if set to true [trail edge]. + + + + + Gets the character index at X-position. + + The x. + + + + + Measures the textblock available size. + + Size of the available. + + + + Arranges the textblock final rectangle. + + The final rectangle. + + + + Gets or sets the index of the block + + + The index. + + + + + Gets or sets the block according to the previous one + + + The offset. + + + + + Gets the length of the word. It can be different than the exact text length. + + + + + Gets or sets the block's text + + + The text. + + + + + Gets the desired size of the block + + + The size of the desired. + + + + + Gets the control bounding rectangle. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Creates the tokenized text item. + + The text. + The value. + + + + + Creates the text content element. + + + + + + Creates the remove button element. + + + + + + Called when the remove button is clicked. + + + + + Gets a rectangle of character by index. + + The index. + if set to true [trail edge]. + + + + + Gets the character index at X-position. + + The x. + + + + + Gets the associated tokenized text item. + + + + + Gets the content element that contains the text + + + + + Gets the remove button. + + + + + Gets or sets a value indicating whether the block can be remove by clicking the Remove button. + + + true if [allow remove]; otherwise, false. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the index of the block + + + The index. + + + + + Gets a value indicating the offset. + + + + + Gets the length of the word. It can be different than the exact text length. + + + + + An view port element of + + + + + An editable and selectable + + + + + The wrap layout of + + + + + Initializes a new instance of the class. + + + + + Called when text block is formatting. + + The text block. + + + + Raises the event. + + The instance containing the event data. + + + + Called when a property is changing. + + Name of the property. + The old value. + The new value. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Notifies the text changing. + + The start position. + The length. + The old text. + The new text. + The action. + + + + + Notifies the text changed. + + The text. + The caret position. + The action. + + + + Performs measurement and arrangement of child elements. + + + + + Clamps the desired size in the valid available size bounds. + + The available size. + The desired size. + + + + + Merge and measure block. + + The text block. + The available size. + + + + Measures and perfroms wrapping for blocks in WordWrap mode + + The available size. + Index of the current block. + Document desired size. + Index of the current line. + The current block offset. + + + + + Adds the desired size of the line to document desired size. + + The line. + Size of the desired. + + + + Adds the desired size of the block to desired size of line. + + Size of the block desired. + The line. + + + + Gets the baseline offset. + + The line. + The text block. + + + + + Checks that tow block are splitted block + + The first block. + The second block. + + + + + Gets the next block for this index + + The index. + + + + + Gets the previous block for this index + + The index. + + + + + Determines whether this panel has text. + + + true if this panel has text; otherwise, false. + + + + + Gets the line info by its index + + Index of the line. + + + + + Creates the block for concrete and instance. + + The text + The type. + + + + + Clears the presented text + + + + + Gets the text between start and end position + + The start position. + The end position. + + + + + Gets the block's text. + + The block. + The start. + The length. + + + + + Search a text block by X coordinate. + + The line. + The x. + + + + + Search a text block by offset. + + The line. + The offset. + + + + + Search a line by using concrete comparer + + The line. + The comparer. + + + + + Determines whether the text is tab, whitespace, line feed or carriage return symbol. + + The text. + + true if [is special text] [the specified text]; otherwise, false. + + + + + Determines whether the text contains a new line + + The text + + true if [contains new line] [the specified text]; otherwise, false. + + + + + Determines whether the specified text is whitespace. + + The text. + + true if the specified text is whitespace; otherwise, false. + + + + + Determines whether the specified text is tab. + + The text. + + true if the specified text is tab; otherwise, false. + + + + + Determines whether the text is tab or whitespace. + + The text. + + true if the text is tab or whitespace; otherwise, false. + + + + + Determines whether the text is line feed symbol. + + The text. + + true if the text is line feed symbol; otherwise, false. + + + + + Determines whether the text is carriage return symbol. + + The text. + + true if the text is carriage return symbol; otherwise, false. + + + + + Gets the bounds of the Viewport + + + + + Gets or sets the spacing between lines when the is in multiline mode. + + + The line spacing. + + + + + Gets the logical lines of . + + + + + Gets the length of the text. + + + The length of the text. + + + + + Gets or sets how the text is horizontally aligned in the element. + + The horizontal text alignment. + + + + Gets or sets a value indicating whether [word wrap]. + + + true if [word wrap]; otherwise, false. + + + + + Gets or sets a value indicating whether this is multiline. + + + true if multiline; otherwise, false. + + + + + Occurs when text block is formatting. + + + + + Occurs when a property value is changing. + + + + + Occurs when an instance of is created + + + + + Suspends notifcations when text is editing. + + + + + Resumes notifcations when text is editing. + + + + + Resumes notifcations when text is editing. + + if set to true the event is fired. + The new text. + The caret position. + The action. + + + + Convert point to absolute point according to the current scroll offset + + The point. + + + + + Gets the location of instance + + The position. + + + + + Deletes the text range + + The start position. + The end position. + + + + + Inserts the specified text in concerte position. + + The position. + The text. + + + + + Replaces the text ranged with a new text + + The start position. + The end position. + The text. + + + + + Replaces the text ranged with a new text + + The start position. + The end position. + The text. + + + + + Replaces the text range in + + The target block. + The start char position. + The end char position. + The text. + + + + Replaces the text range in concrete special + + The target block. + The start char position. + The end char position. + The text. + + + + Replaces the text range in concrete non-special + + The target block. + The start char position. + The end char position. + The text. + + + + Gets or sets a value indicating whether the text in view + should appear as the default password character. + + + + + Gets or sets the character used to mask characters of a password in a single-line + + + + + Gets or sets a value indicating whether text in the text box is read-only. + + + true if this is in read only mode; otherwise, false. + + + + + Gets or sets the scroller for Vertical Scrollbar + + + The Vertical Scroller + + + + + Gets or sets the scroller for Horizontal Scrollbar + + + The Horizontal Scroller + + + + + Gets or sets the selection primitive that renders the selection + + + The selection primitive. + + + + + Gets or sets the scroll offset. + + + The scroll offset. + + + + + Gets a value indicating whether this textbox is editing mode. + + + true if this textbox is editing; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Determines whether the specified text block is delimiter. + + The text block. + + true if the specified text block is delimiter; otherwise, false. + + + + + Removes range of the editable block. + + The block. + The start char position. + The text. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The token text. + + + + + Gets or sets the delimiter used to tokenize the text + + + The delimiter. + + + + + Gets or sets a value indicating whether the remove button of should appear. + Notice that the text box should not be in read only mode + + + true if [show remove button]; otherwise, false. + + + + + Gets or sets the height of the min line. + + + The height of the min line. + + + + + Occurs when text is validating as token + + + + + Represents a keyboard and mouse input handler + + + + + Represents a keyboard and mouse input handler + + + + + Represents a keyboard and mouse input handler + + + + + Processes the key down. + + The instance containing the event data. + + + + + Processes the key up. + + The instance containing the event data. + + + + + Processes the key press. + + The instance containing the event data. + + + + + Processes the mouse down. + + The instance containing the event data. + + + + + Processes the mouse up. + + The instance containing the event data. + + + + + Processes the mouse move. + + The instance containing the event data. + + + + + Processes the mouse wheel. + + The instance containing the event data. + + + + + Processes the double click. + + The instance containing the event data. + + + + + Processes the mouse leave. + + The instance containing the event data. + + + + Prcesses the mouse enter. + + The instance containing the event data. + + + + Initializes a new instance of the class. + + The text box element. + + + + Determines whether the mouse input should be handled + + The mouse position. + + + + + Processes the mouse down. + + The instance containing the event data. + + + + + Processes the mouse up. + + The instance containing the event data. + + + + + Processes the mouse move. + + The instance containing the event data. + + + + + Processes the mouse leave. + + The instance containing the event data. + + + + Prcesses the mouse enter. + + The instance containing the event data. + + + + Processes the mouse selection. + + The location. + + + + + Sets the current cursor position + + The location. + + + + Processes the mouse wheel. + + The instance containing the event data. + + + + + Processes the context menu. + + The location. + + + + + Processes the double click. + + The instance containing the event data. + + + + + Processes the key down. + + The instance containing the event data. + + + + + Processes delete of + + if set to true [move next]. + + + + + Processes the select of all + + + + + + Processes the copy operation of + + + + + + Processes the paste operation of text + + + + + + Processes the cut. + + + + + + Processes the tab key. + + The instance containing the event data. + + + + + Selects the next or previous control. + + if set to true [forward]. + + + + + Processes the navigation key. + + The instance containing the event data. + + + + + Processes the list navigation. + + The instance containing the event data. + + + + + Processes the enter key. + + The instance containing the event data. + + + + + Processes the page key. + + The instance containing the event data. + + + + + Processes the key press. + + The instance containing the event data. + + + + + Processes the insert. + + The text. + + + + + Processes the key up. + + The instance containing the event data. + + + + + Initializes a new instance of the class. + + The text box element. + + + + Gets the text block at point. + + The location. + + + + + Represent a navigator in + + + + + Represent a navigator in + + + + + Represent a navigator in + + + + + Suspends the notifications. + + + + + Resumes the notifications. + + + + + Navigates by specified keys. + + The instance containing the event data. + + + + + Saves the current selection position. + + + + + Restores the saved selection position. + + + + + Scrolls to caret position. + + + + + + Selects the specified range. + + The start. + The end. + + + + + Gets the position from point. + + The point. + + + + + Gets the position from offset. + + The offset. + + + + + Gets the previous position. + + The position. + + + + + Gets the next position. + + The position. + + + + + Gets or sets the selection start. + + + The selection start. + + + + + Gets or sets the selection end. + + + The selection end. + + + + + Gets or sets the caret position. + + + The caret position. + + + + + Gets the length of the selection. + + + The length of the selection. + + + + + Occurs when selection is changing. + + + + + Occurs when selection is changed. + + + + + Initializes a new instance of the class. + + The text box element. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Saves the current selection position. + + + + + Restores the saved selection position. + + + + + Suspends the notifications. + + + + + Resumes the notifications. + + + + + Gets the position from offset. + + The offset. + + + + + Gets the position from point. + + The point. + + + + + Gets the text position from line. + + The line. + The x. + + + + + Scrolls to caret position. + + + + + + Navigates by specified keys. + + The instance containing the event data. + + + + + Navigates at line. + + The instance containing the event data. + The position. + + + + + Gets the previous position. + + The position. + + + + + Gets the previous position resursively. + + The position. + + + + + Gets the next position. + + The position. + + + + + Gets the next position recursively. + + The position. + + + + + Navigates to line. + + The instance containing the event data. + The position. + + + + + Selects the specified range. + + The start. + The end. + + + + + Selects the override. + + if set to true [notify]. + + + + Sets the caret position. + + + + + Gets the associated text box element. + + + + + Gets or sets the selection start. + + + The selection start. + + + + + Gets or sets the selection end. + + + The selection end. + + + + + Gets the length of the selection. + + + The length of the selection. + + + + + Gets or sets the caret position. + + + The caret position. + + + + + Occurs when selection is changing. + + + + + Occurs when selection is changed. + + + + + Initializes a new instance of the class. + + The owner. + + + + Gets the editable position. + + The position. + if set to true [next]. + + + + + Represents a text box control that tokenized a text by specified delimiter + + + + + Enables the user to enter text, and provides multiline editing + + + + + Initializes a new instance of the class. + + + + + Creates the associated text box element. + + + + + + Appends text to the current text of a text box. + + The text. + + + + Clears all text from the text box element. + + + + + Specifies that the value of the SelectionLength property is zero so that no characters are selected in the element. + + + + + + Scrolls the contents of the control to the current caret position. + + + + + Selects a range of text in the text box. + + The selection start + The selection length + + + + Selects all text in the text box. + + + + + Moves the current selection in the text box to the Clipboard. + + + + + + Copies the current selection in the text box to the Clipboard. + + + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + + Inserts the specified text to the textbox + + The text. + + + + + Deletes the text at current position + + + + + + Deletes the text at the next current position + + if set to true deletes next character. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets the size of the drop down max. + + + The size of the drop down max. + + + + + Gets or sets the size of the drop down min. + + + The size of the drop down min. + + + + + Gets or sets the max count of visible items in auto-complete drop down + + + The max drop down item count. + + + + + Gets the associated text box element. + + + + + Gets the auto-complete list element. + + + + + Gets or sets an option that controls how automatic completion works for the TextBox. + + + The auto complete mode. + + + + + Gets or sets a value indicating whether the text in view + should appear as the default password character. + + + + + Gets or sets the character used to mask characters of a password in a single-line + + + + + Gets or sets when the vertical scroll bar should appear in a multiline TextBox. + + + The state of the vertical scroll bar. + + + + + Gets or sets when the horizontal scroll bar should appear in a multiline TextBox. + + + The state of the horizontal scroll bar. + + + + + Gets or sets the auto complete display member. + + + The auto complete display member. + + + + + Gets or sets a value specifying the source of complete items used for automatic completion. + + + The auto complete data source. + + + + + Gets a value specifying the complete items used for automatic completion. + + + + + Gets or sets a value indicating whether the selected text in the text box control remains highlighted when the element loses focus. + + + true if [hide selection]; otherwise, false. + + + + + Gets or sets the caret position. + + + The index of the caret. + + + + + Gets or sets the starting point of text selected in the text box. + + + The selection start. + + + + + Gets or sets the number of characters selected in the text box. + + + The length of the selection. + + + + + Gets the length of text in the element. + + + The length of the text. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box element. + + + The length of the max. + + + + + Gets or sets the current text in the text box element. + + + + + Gets or sets the prompt text that is displayed when the text box contains no text. + + + The null text. + + + + + Gets or sets the color of the null text. + + + The color of the null text. + + + + + Gets or sets a value indicating whether the null text will be shown when the control is focused and the text is empty. + + + + + Gets or sets how the text is horizontally aligned in the element. + + The horizontal text alignment. + + + + Gets or sets the lines of text in a text box control. + + + The lines. + + + + + Gets or sets a value indicating the currently selected text in the text box. + + + The selected text. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text box element types a TAB character in the element instead of moving the focus to the next element in the tab order. + + + true if [accepts tab]; otherwise, false. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline TextBox control creates a new line of text in the control or activates the default button for the form. + + + true if [accepts return]; otherwise, false. + + + + + Gets or sets a value indicating whether this is a multiline text box. + + + true if multiline; otherwise, false. + + + + + Indicates whether a multiline text box control automatically wraps words to the beginning of the next line when necessary. + + + true if [word wrap]; otherwise, false. + + + + + Gets or sets the color of the selection. + + + The color of the selection. + + + + + Gets or sets the selection opacity. + + + The selection opacity. + + + + + Gets or sets whether the TextBox control modifies the case of characters as they are typed. + + + The character casing. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + + + true if this is in read only mode; otherwise, false. + + + + + Gets or sets a value indicating whether the caret is visible in read only mode. + + + true if the caret is visible; otherwise, false. + + + + + Gets or sets the shortcut menu associated with the control. + + + + A that represents the shortcut menu associated with the control. + + + + + Gets or sets a value indicating whether the clear button is shown. + + + + + Occurs when text selection is changing. + + + + + Occurs when text selection is changed. + + + + + Occurs when the text is changing. + + + + + Occurs when text block is formatting. + + + + + Occurs when an instance of is created + + + + + Occurs when opening the context menu. + + + + + Fired when the Input Method Editor starts the composition. + + + + + Fired when the Input Method Editor completes the composition. + + + + + Fired when the Input Method Editor has a result ready. For languages like Korean + this might happen before the composition has ended. + + + + + Initializes a new instance of the class. + + + + + Gets the associated auto complete text box element. + + + + + Gets or sets the delimiter used to tokenize the text. + + + The delimiter. + + + + + Gets or sets a value indicating whether the remove button of should appear. + Notice that the text box should not be in read only mode + + + true if [show remove button]; otherwise, false. + + + + + Gets the tokenized items. + + + + + Gets or sets an option that controls how automatic completion works for the TextBox. + + + The auto complete mode. + + + + + Gets or sets a property name which will be used to extract a value from the data items + + + + + Occurs when text is validating as token + + + + + Creates a new instance of the . + + + + + Fires right after the editor value is changed. + + The event arguments. + + + + Fires right before the editor value is changed. + + The event arguments. + + + + Fires after the dialog is closed. + + The event arguments. + + + + Fires when the is clicked. + + The event arguments. + + + + Sets the value of the editor. + + The new value to set. + + + + Creates the that will be opened when the browse button is clicked. + + A . + + + + Creates the that will be opened when the browse button is clicked. + + A . + + + + Creates the that will be opened when the browse button is clicked. + + A . + + + + Creates the that will be placed in the browse editor and will be used to open + the . + + + + + + Gets the value of the editor. + + + + + Gets or sets the type of dialog to be opened when the browse button is pressed. + + + + + Gets the that opens the . + + + + + Gets the that will open upon pressing the browse button. + + + + + Determines if users can input text directly into the text field. + + + + + Fires after the dialog window is closed. + + + + + Fires right before the value is changed. Cancelable event. + + + + + Fires after the editor value is changed. + + + + + Represents a browser control box. The RadBrowseEditor class is a simple wrapper for the + RadBrowseEditorElement class. The RadBrowseEditor acts + to transfer events to and from its corresponding + RadBrowseEditorElement. The + RadBrowseEditorElement which is essentially the + RadBrowseEditor control may be nested in other telerik controls. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the RadBrowseEditorElement of this control. + + + + + Gets the OpenFileDialog of this control. + + + + + Gets or sets the type of dialog to be opened when the browse button is pressed. + + + + + Gets or sets the value of the editor. + + + + + Determines if users can input text directly into the text field.. + + + + + This property is not relevant for this class. + + + + + Fires after the dialog window is closed. + + + + + Fires right before the value is changed + + + + + Fires after the editor value is changed. + + + + + Fires when the ReadOnly property value is changed. + + + + + Creates a RadTimePicker instance. + + + + + Determines whether the Clock will show the system time. + + + + + Determines whether the Clock will show the system time. + + + + + Determines whether control's height will be determined automatically, depending on the current Font. + + + + + Gets the RadTimePickerElement which encapsulates the UI representation and functionality of the control. + + + + + RadClock consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Shows the UITypeEditor + + + + + Occurs when the button of the editor is clicked. + + + + + Determines if the editor should be closed after the value has been changed. + + The current value of the editor. + The new value of the editor. + True if editor should be closed other wise false. + + + + Selects the whole text inside the editor tex box. + + + + + Validates if the text input in the text box is a valid value for the edited item + + True if the value is valid otherwise false. + + + + Gets the that is opening. + + + + + Gets or sets a value indicating whether the editor will loop through its values when double clicked. + + + true if the editor will loop through its values when double clicked; otherwise, false. + + + + + Provides information about the type of the editor required by the + GridTableViewManager when instantiating the requested type of column. + + + + + Initializes with editor type defined. + + + + + Initializes setting the required editor type. + + The type of the editor required. + + + + Initializes setting the required editor type. + The IInputEditor property is initialized by GridViewEditManager prior to event call, + if default implementation is available. + + The type of the editor required. + IInputEditor instance if available. + + + + Gets or sets the type of the editor required by the edited control if no default editor is available. + + + + + Gets or sets the ICellEditor instance if created outside the GridViewEditorManager. + Also if a default editor is provided by the RadGridView, it is available for post-initialization + or substitution. + + + + + Provides information about the new value that is edited inside the active + cell editor. + + + + + Gets the new value that is edited by the active editor. + + + + + Gets the new value that is edited by the active editor. + + + + + Sets the visibility of the sort/group items depending on whether the functionality is enabled. + + + + + Gets the Expand/Collapse menu item. + + + + + Gets the Edit menu item + + + + + Gets the Reset menu item. + + + + + Gets the Sort menu item. + + + + + Gets the Show description menu item. + + + + + Gets the Show toolbar menu item. + + + + + Represents a property descriptor for properties. + + + + + Creates a new instance of the class. + + The collection of objects whose properties will be exposed. + The original property descriptors for the objects. + + + + Gets a value indicating whether a property cam be reseted. + + Always returns true. + + + + Gets a common value of all objects or returns null if object's values differ. + + Returns a common value or null + + + + Resets the values of all objects for this property. + + + + + Sets a value to all objects. + + The value to set. + + + + + Gets a value indicating whether value should be serialized. + + Always returns true. + + + + Returns the type of component this property descriptor is for. + + + + + Gets a value indicating whether this property is read only. Always returns false. + + + + + Returns the type of the property. + + + + + Represents a for the + used in the . + + + + + Returns an instance of the . + + + + + Represents a for the . + + + + + Creates a new instance of the . + + The collection of objects. + + + + Returns a with the common properties of the objects in the + . + + The common properties of the objects in the . + + + + Returns a with the common properties of the objects in the + to which the specified attributes have been applied. + + The attributes by which to filter the properties. + The common properties of the objects in the . + + + + Represents a collection of objects. It can be used in a property grid to edit the common properties of the objects. + + + + + Creates a new empty . + + + + + Creates a new with the specified objects. + + The objects to fill the collection with. + + + + Gets the index of a given object. + + The object to look for. + The index of the object or -1 if the object is not present in the collection. + + + + Inserts an object in the given index. + + The index to insert on. + The object to insert. + + + + Removes an object from the specified index. + + The index to remove from. + + + + Adds an object to the collection. + + The object to add. + + + + Clears the entire collection. + + + + + Checks whether the collection contains the given object. + + The object to check for. + True if the object is present in the collection, otherwise false. + + + + Copies the objects from the collection to a specified array starting at the given index. + + The destination array. + The index to start at in the destination array. + + + + Removes a specified object from the collection. + + The object to remove. + True if the object was removed otherwise false. + + + + Gets or sets the object on the specified index. + + The index of the object + + + + Gets the number of items currently in the collection. + + + + + Gets a value indicating whether the collection si read only. Always returns false. + + + + + Creates a new instance of the which can be added to a . + + The type of the item. + The name to be displayed for the item. + The initial value for the item. + + + + Creates a new instance of the which can be added to a . + + The type of the item. + The name to be displayed for the item. + The initial value for the item. + The description to be displayed for the item. + + + + Creates a new instance of the which can be added to a . + + The type of the item. + The name to be displayed for the item. + The initial value for the item. + The description to be displayed for the item. + The category the item would be grouped in. + + + + Creates a new instance of the which can be added to a . + + The type of the item. + The name to be displayed for the item. + The initial value for the item. + The description to be displayed for the item. + The category the item would be grouped in. + Determines if the property would be editable. + + + + Resets the value to the initial state. + + + + + Called when the PropertyChanged event is fired. + + + + + Gets or sets the Type of the property. + + + + + Gets or sets the name that would be displayed in the RadPropertyGrid + + + + + Gets or sets the value of the item. + + + + + Gets or sets the description to be displayed in the RadPropertyGrid for this item. + Same as setting a to a property. + + + + + Gets or sets a value indication whether this property item would be read only in the RadPropertyGrid. + Same as setting a to a property. + + + + + Gets or sets the category of this item. + Same as setting a to a property. + + + + + Gets or sets the text to be displayed instead of the property name. + Same as setting a to a property. + + + + + Gets or sets a collection of attributes to be applied to the item in the property grid. + If an attribute covered by property of the is added the + attribute in this collection will be ignored. will always be ignored. + + + + + Gets or sets the that contains this item. + + + + + Occurs when any of the properties is changed. + + + + + A descriptor for the used in the . + + + + + Creates a new instance of the . + + The item this descriptor would represent. + + + + Returns a value indicating if Reset can be performed for this item. + + Always returns true. + + + + Resets the value of the current item to its initial value. + + + + + Gets the value of the current item. + + The value of the item. + + + + Sets a new value to the current item. + + The value to be set to the current item. + + + + + Gets a value indicating whether the value should be serialized. + + Always returns true. + + + + Gets the type of component this descriptor is used for. + + + + + Gets a value indicating whether the current item is read only. + + + + + Gets the type of the current item. + + + + + Type descriptor provider for the . + + + + + Gets a type descriptor for the given instance. + + + The instance to get a type descriptor for. + The type descriptor. + + + + Custom type descriptor for the . + + + + + Creates a new instace of the + + The this descriptor is used for. + + + + Returns a collection of property descriptors corresponding to the items in the current . + + A collection of . + + + + Returns a collection of property descriptors corresponding to the items in the current . + + A collection of . + + + + Collection of items which can be set as a property grid selected object. + It's items would be displayed in the property grid as properties of an object. + + + + + Creates a new instace of the + + + + + Adds an item to the collection. + + The item to add. + + + + Adds an item to the collection. + + Type of the item. + Name to be displayed in the RadPropertyGrid. + Value for the item. + + + + Adds a collection of items to this collection. + + The collection of items to add. + + + + Inserts the item on the specified index. + + The index to insert on. + The item to insert. + + + + Gets the index of the item. + + The item which index to return + The index of the item if found and -1 if item is not in the collection. + + + + Checks whether a specific item is present in the collection. + + The item to check. + True if the item is contained in the collection otherwise false. + + + + Removes the specified item form the collection. + + The item to remove from the collection. + True if the removal was successful otherwise false. + + + + Removes the item with the specified name form the collection. + + The name of the item to remove. + True if the removal was successfull otherwise false. + + + + Removes an item from the specified index. + + The index to remove on. + + + + Clears the entire collection. + + + + + Copies the items of the collection to the specified array starting from the provided index. + + The destination array. + The index in the destination array. + + + + Gets the generic enumerator for this collection. + + The generic enumerator. + + + + Gets the enumerator for this collection. + + The enumerator. + + + + Gets the number of items in the collection. + + + + + Gets a value indicating whether the collection is read only. + + + + + Gets or sets the item at the specified index. + + The index. + The item on the specified index. + + + + Gets or sets the item with the specified name. + + The property name. + Returns the item if its present in the collection otherwise returns null + + + + Gets a value indicating whether the item is selected. + + + + + Gets a value indicating whether the item is expanded. + + + + + Gets a value indicating whether the control contains the focus. + + + + + Gets the that is parent to this item. + + + + + Gets a value indicating whether a given point is in a location where resize should be initialized when the left mouse button is pressed. + + The point to check for. + true if point is in location for resize otherwise false. + + + + Attaches a logical item to this visual element. + + The logical item. + The context. + + + + Detaches the currently attached logical item. + + + + + Syncronizes changes with other elements. + + + + + Determines if a logical item is compatible with this visual element. + + The logical item to be checked for compatibility. + The context. + + + + + Gets or sets a value indicating whether this item has a parent or not. + + + + + Gets or sets a value indicating whether this item has changed its value or not. + + + + + Gets or sets a value indicating whether this property can be edited. + + + + + Gets the header element of the . + + + + + Gets the property grid item indent element + + + + + Gets the property grid item expander element. + + + + + Gets the property grid item text element. + + + + + Gets the property grid item value element + + + + + Gets the logical item attached to this visual element. + + + + + Synchronizes changes with other elements. + + + + + Determines if a logical item is compatible with this visual element. + + The logical item to be checked for compatibility. + The context. + + + + + Gets the property grid item check box element + + + + + Determines if a logical item is compatible with this visual element. + + The logical item to be checked for compatibility. + The context. + + + + + Syncronizes changes with other elements. + + + + + Editing begins when the cell receives focus. + + + + + Editing begins when a focused cell is clicked again. + + + + + Editing begins only when the method is called. + + + + + Represents a toggle button element. The toggle button supports two or three + states depending on the IsThreeState property. + + The RadToggleButton class is a simple wrapper + for the RadToggleButtonElement class. All UI and logic functionality is + implemented in the RadToggleButtonElement class. The + RadToggleButton acts to transfer events to + and from its corresponding RadToggleButtonElement instance. The latter can be + nested in other telerik controls. + + + + + Initializes a new instance of the RadToggleButtonElement class. + + + + Raises the StateChanging event. + + + + + Raises the CheckStateChanging event. + + + + + Raises the StateChanged event. + + + + + Raises the StateChanged event. + + + + + Raises the IsCheckedChanged event. + + + + + Occurs before the elements's state changes. + + + + + Occurs when the elements's state changes. + + + + + Occurs before the elements's check state changes. + + + + + Occurs when the elements's check state changes. + + + + + Gets or sets the CheckState + . CheckState enumeration defines the following values: Unchecked, Checked, and Indeterminate. + + + + + Gets or sets the toggle + state. Toggle state enumeration defines the following values: Off, + Indeterminate, and On. + + + + Gets or sets a value indicating whether the button is checked. + + + + Gets or sets a value indicating whether the toggle button has three or two + states. + + + + + Gets or sets a value indicating whether the toggle button element is read only. + + + true if the toggle button element is read only; otherwise, false. + + + + + Executes a search with the current state of the filter. + + + + + Synchronizes the default toggle buttons in the + with the PropertySort property of the . + + + + + Executed when one of the toggle buttons changes. + + The button that triggered the event. + The event arguments. + + + + Gets the parent . + + + + + Gets the that enables CategorizedAlphabetical view in the + + + + + Gets the that enables Alphabetical view in the + + + + + Gets the . + + + + + Gets or sets the property name by which the search will be performed. + + + + + Gets or sets the filter operator which will be used for the search. + + + + + Gets or sets the value by which the search will be performed. + + + + + Gets or sets the height of the . + + + + + Begins the resize of the description element. + + The offset used to resize the description element. + + + + Gets the . + + + + + Gets the . + + + + + Gets the . + + + + + Gets or sets the height of the . + + + + + Gets or sets a value indicating whether the is visible. + + + + + Uses a mechanism to maximize the visible strings in both columns of RadPropertyGrid. + + + + + Best fits the column(s) of RadPropertyGrid using the given mode. + + The mode that determines the mechanism used for best fitting. + + + + Expands all the categories in the . + + + + + Collapses all the categories in the . + + + + + Resets the selected property to its default value. + + + + + Gets the . + + + + + Gets the . + + + + + Gets the + + + + + Gets or sets the height of the . + + + + + Gets or sets a value indicating whether the should be visible. + + + + + Gets or sets a value indicating whether sorting is enabled. + + + + + Gets or sets a value indicating whether grouping is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets or sets a value indicating whether the data can be grouped programatically. + + + + + Displays the properties of an object in a grid with two columns with a property name in the first column and value in the second. + + + + + Uses a mechanism to maximize the visible strings in both columns of RadPropertyGrid. + + + + + Best fits the column(s) of RadPropertyGrid using the given mode. + + The mode that determines the mechanism used for best fitting. + + + + Expands all the categories in the . + + + + + Collapses all the categories in the . + + + + + Resets the selected property to its default value. + + + + + Puts the current item in edit mode. + + true if successful. + + + + Commits any changes and ends the edit operation on the current item. + + true if successful. + + + + Close the currently active editor and discard changes. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets a value indicating whether the data can be grouped programmatically. + + + + + Gets a value indicating whether there are currently open editors. + + + + + Gets or sets a value indicating whether the user is allowed to edit the values of the properties. + + + + + Gets the active editor. + + + + + Gets or sets a value indicating how user begins editing a cell. + + + + + Gets or sets a value indicating whether the groups will be expanded or collapsed upon creation. + + + + + Gets or sets the shortcut menu associated with the control. + + + + A that represents the shortcut menu associated with the control. + + + + + Gets or sets a value indicating whether the default context menu is enabled. + + The default value is false. + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when RadPropertyGrid is focused. + + The default value is false. + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + + The default value is 300. + + + + Gets or sets the string comparer used by the keyboard navigation functionality. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the selected item. + + + + + Gets or sets the object which properties the is displaying. + + + + + Gets or sets the objects which properties the is displaying. + + + + + Gets the Items collection. + + + + + Gets the Groups collection. + + + + + Gets or sets a value indicating whether grouping is enabled. + + + + + Gets or sets a value indicating whether sorting is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets the group descriptors. + + + + + Gets the filter descriptors. + + + + + Gets the sort descriptors. + + + + + Gets or sets the sort order of items. + + + + + Gets or sets the mode in which the properties will be displayed in the . + + + + + Gets or sets a value indicating whether the is visible. + + + + + Gets or sets the height of the . + + + + + Gets or sets a value indicating whether the search box of the should be visible + + + + + Gets the of this control. + + + + + Gets or sets the height of the items. + + The height of the item. + + + + Gets or sets the distance between items of the RadPropertyGridElement. + + + + + Gets or sets the width of the indentation of subitems. + + + + + RadPropertyGrid consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadPropertyGrid consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs before the selected object is changed. + + + + + Occurs after the selected object is changed. + + + + + Occurs before a property grid item is selected. + + + + + Occurs after the property item is selected. + + For more information about handling events, see also SelectedItemChanging. + + + + + + Occurs when opening the context menu. + + + + + Fires for custom grouping operation. + + + + + Occurs when the user presses a mouse button over a property grid item. + + + + + Occurs when the user moves the mouse in the area of a property grid item. + + + + + Occurs when a mouse button is clicked inside a + + + + + Occurs when a mouse button is double clicked inside a + + + + + Occurs before the value of the Expanded property of a property grid item is changed. + + + + + Occurs after the value of the Expanded property of a property grid item is changed. + + + + + Occurs when the item changes its state and needs to be formatted. + + + + + Occurs when a new item element is going to be created. + + + + + Occurs when a new item element is going to be created. + + + + + Occurs when editor is required. + + + + + Occurs when editing is started. + + + + + Occurs when editor is initialized. + + + + + Occurs when editing has been finished. + + + + + Occurs when item's value is changing. + + + + + Occurs when a property value changes. + + + + + Fires when a property value is validating. + + + + + Fires when a property has finished validating. + + + + + Fires before the value in an editor is being changed. The action can be canceled. + + + + + Fires when the value of an editor changes. + + + + + This property determines whether the traverser will traverse only via expanded items or through all items + true to traverse all items, false to traverse expanded items only + + + + + Represents the method that will handle events in . + + + + + + + Provides data for all events used in + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets a value indicating whether the instance to be processed by . + + true if [process PropertyGridItemBase]; otherwise, false. + + + + Gets the item. + + The item. + + + + Gets or sets the text of the title. + + + + + Gets or sets the text of the content. + + + + + Gets the . + + + + + Gets the . + + + + + Gets or sets the height of the . + + + + + Gets the parent of this element. + + + + + Attaches a logical item to this visual element. + + The logical item. + The context. + + + + Detaches the currently attached logical item. + + + + + Syncronizes changes with other elements. + + + + + Determines if a logical item is compatible with this visual element. + + The logical item to be checked for compatibility. + The context. + + + + + Gets the property grid group item expander element. + + + + + Gets the property grid group item text element. + + + + + Gets the logical item currently attached to this visual element. + + + + + Syncronizes element with data item. + + + + + Allows you to raise ValueChanged event when using custom editor. + + + + + Allows you to raise ValueChanging event when using custom editor. + + + + + Uses a mechanism to maximize the visible strings in both columns of RadPropertyGrid. + + + + + Best fits the column(s) of RadPropertyGrid using the given mode. + + The mode that determines the mechanism used for best fitting. + + + + Begins the update. + + + + + Ends the update. + + + + + Ends the update. + + Tells the view whether an update is required or not. + Indicates the update action + + + + Updates the visual items in the property grid + + Indicated the update action + + + + Gets the element at specified coordinates. + + The x coordinate. + The y coordinate. + An instance of if successful. + + + + Ensures the item is visible within the RadPropertygridElement and scrolls the element if needed. + + The item to visualize. + + + + Scrolls the scrollbar to bring the specified into view. + + The item to visualize. + + + + Initializes and returns the context menu associated with the specified . + + The element. + An instance of if successfull. + + + + Makes the property grid columns even. + + + + + Sorts the sub items of all expanded items. + + + + + Ensures the item is visible within the RadPropertygridElement and scrolls the element if needed. + + The item to visualize. + + + + Performs the needed operations on the data layer when the mode is changed. + + + + + + Gets the default property for the selected object + + The that is the default property. + + + + Updates the scroll bars visibility. + Specifies the action which caused the update. + + + + + Syncronizes all visual elements. + + + + + This method traverses through the visible items of RadPropetyGrid and returns an item matching the . + + + + + + + Gets the type of editor used for a editing the given item. + + The item to get editor type for. + The type of the editor + + + + Puts the current item in edit mode. + + + + + + Commits any changes and ends the edit operation on the current item. + + + + + + Close the currently active editor and discard changes. + + + + + + Ends the editing of an item and commits or discards the changes. + + Determines if the changes are commited [true] or discarded [false]. + + + + + Gets an editor depending on the type of the value to be edited. + + The type of the value. + + + + + Returns a value indicating whether the is editable + + The item to check. + True if item can be edited. Otherwise false. + + + + Gets or sets a value indicating whether the data can be grouped programmatically. + + + + + Gets or sets a value indicating whether the values of the items should be invalidated the next time a grouping and/or sorting is performed. + + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets the that is a parent to this element. + + + + + Gets the active editor. + + + + + Gets or sets the mode in which the properties will be displayed in the . + + + + + Gets or sets the minimum width columns can have. + + + + + Gets a value indicating whether there are currently open editors. + + + + + Gets or sets a value indicating whether the user is allowed to edit the values of the properties. + + + + + Gets or sets a value that indicates whether editors specified with an EditorAttribute will be used without considering built-in editors. + + + + + Gets or sets the width of the "column" that holds the values. + + + + + Gets or sets a value indicating whether the groups will be expanded or collapse upon creation. + + + + + Gets the group descriptors. + + The group descriptors. + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets the sort descriptors. + + The sort descriptors. + + + + Gets or sets the sort order of Nodes. + + The sort order. + + + + Gets or sets the height of the items. + + The height of the item. + + + + Gets or sets the width of the indentation of subitems. + + + + + Gets or sets the object which properties the RadPropertyGrid is displaying. + + + + + Gets or sets the objects which properties the RadPropertyGrid is displaying. + + + + + Gets the collection to which the RadPropertyGrid is bound to. + + + + + Gets the selected item. + + + + + Gets or sets the context menu. + + The context menu. + + + + Gets or sets a value indicating how user begins editing a cell. + + + + + Gets or sets the distance between property grid items. + + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when RadPropertyGrid is focused. + The default value is false. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + The default value is 300. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the keyboard search functionality. + + + + + Fires for custom grouping operation. + + + + + Occurs before the selected object is changed. + + + + + Occurs after the property grid selected object has been changed. + + + + + Occurs when is formatting + + + + + Occurs when a mouse button is pressed on the . + + + + + Occurs when a mouse button is clicked inside a + + + + + Occurs when a mouse button is double clicked inside a + + + + + Occurs when mouse moves over a . + + + + + Occurs when item is expanding. + + + + + Occurs when item has been expanded. + + + + + Occurs when the selected item is changing + + + + + Occurs when selected item has been changed. + + + + + Occurs when editor is required. + + + + + Occurs when editing is started. + + + + + Occurs when editor is initialized. + + + + + Occurs when editing has been finished. + + + + + Occurs when item's value is changing. + + + + + Occurs when item's value has been changed. + + + + + Fires when a property value is validating. + + + + + Fires when a peoperty has finished validating. + + + + + Fires before the value in an editor is being changed. The action can be canceled. + + + + + Fires when the value of an editor changes. + + + + + Occurs when [binding context changed]. + + + + + Docks the search button on the left or right side of the search text box depending on the RightToLeft state. + + + + + Gets the search button. + + + + + Represents base class for button elements used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorButton. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorOperationButtonElement. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorCommandButtonElement. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorDeleteButtonElement. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorEqualsButtonElement. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorMemoryButtonElement. + + Button text. + + + + Represents arrow button used in RadCalculatorDropDown. + + + + + Represents memory element used in RadCalculatorContentElement. + + + + + Represents a control with calculator functionality. + + + + + Creates a RadCalculatorDropDown instance. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the RadCalculatorElement which encapsulates the UI representation and functionality of the control. + + + + + Gets or sets the calculator value. + + + + + Gets or sets a value indicating whether the calculator drop down is read only. + + + true if the calculator drop down is read only; otherwise, false. + + + + + This property is not relevant for this class. + + + + + Fires when the value of the calculator is changing. + + + + + Fires when the value of the calculator is changing. + + + + + Event needed by the engine behind simple data binding so that it can work two way. In order to receive notifications for changes in the calculator value subscribe to the CalculatorValueChanged event. + + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorDigitButtonElement. + + Button text. + + + + Represents the content element of RadCalculatorDropDown. + + + + + Creates new instance of RadCalculatorContentElement. + + + + + + Gets the owner RadCalculatorElement. + + + + + Gets or sets the memory value. + + + + + Gets the grid layout. + + + The grid layout. + + + + + Gets the button add. + + + The button add. + + + + + Gets the button substract. + + + The button substract. + + + + + Gets the button multiply. + + + The button multiply. + + + + + Gets the button divide. + + The button divide. + + + + Gets the button SQRT. + + The button SQRT. + + + + Gets the button percent. + + The button percent. + + + + Gets the button reciprocal. + + The button reciprocal. + + + + Gets the button sign. + + The button sign. + + + + Gets the button equals. + + The button equals. + + + + Gets the button C. + + The button C. + + + + Gets the button CE. + + The button CE. + + + + Gets the button delete. + + The button delete. + + + + Gets the button mplus. + + The button mplus. + + + + Gets the button mminus. + + The button mminus. + + + + Gets the button MS. + + The button MS. + + + + Gets the button MR. + + The button MR. + + + + Gets the button MC. + + The button MC. + + + + Gets the button 0. + + The button 0. + + + + Gets the button 1. + + The button 1. + + + + Gets the button 2. + + The button 2. + + + + Gets the button 3. + + The button 3. + + + + Gets the button 4. + + The button 4. + + + + Gets the button 5. + + The button 5. + + + + Gets the button 6. + + The button 6. + + + + Gets the button 7. + + The button 7. + + + + Gets the button 8. + + The button 8. + + + + Gets the button 9. + + The button 9. + + + + Gets the button point. + + The button point. + + + + RadCalculatorDropDown arithmetic operations. + + + + + Represents the editor content element of RadCalculatorDropDown. + + + + + Creates new instance of RadCalculatorEditorContentElement. + + + + + Indicates whether the fast navigation buttons were used. + + + + + Gets the direction of the navigation. + + + + + Arguments class used when the SelectionChanging event is fired. + + + + + Gets a refference to the Dates which will be selected + + + + + Gets a refference to the SelectedDates collection, represented by the Telerik RadCalendar component + that rise the SelectionChanging event. + + + + + The public delegate for the SelectionChanging event. + + + + + Arguments class used with the ElementRender event. + + + + + Gets a refference to the LightVisualElement object that represents visually the specified day to render. + + + + + Gets a refference to the RadCalendarDay logical object that represents the specified day to render. + + + + + Gets a refference to the CalendarView object currently displayed by RadCalendar, + that contains the specified day to render. + + + + + The public delegate for ElementRender event. + + + + + Indicates whether the fast navigation buttons were used. + + + + + Gets the direction of the navigation. + + + + + Gets or sets the start date of the new view. + + + + + Arguments class used when the ViewChangingEvent event is fired. + + + + + Gets the new CalendarView instance that will substitute the view currently displayed by RadCalendar. + + + + + The public delegate for the ViewChanging event. + + + + + RadCalendarDay represents a object that maps date value to corresponding visual settings. + Also the object implements Boolean properties that represent the nature of the selected date - + whether it is a weekend, disabled or selected in the context of the calendar. Mostly the values + of those properties are set at runtime when a RadCalendarDay instance is constructed and passed + to the DayRender event. + + + + + Sets whether RadCalendarDay object is associated with a DateTime equal to today's date. + + True if RadCalendarDay object is associated with today's date. + + + + Sets whether RadCalendarDay object is associated with a DateTime that represents a weekend day. + + True if RadCalendarDay object is associated with a DateTime that represents a weekend day. + + + + Checks whether RadCalendarDay object is associated with a DateTime that represents a recurring event. + + the DateTime to compare. + the System.Globalization.Calendar object used to check whether the DateTime + represents a recurring event. + + + + + Removes the time component of a DateTime object, thus leaving only the date part. + + the DateTime object to be processed. + the DateTime object containing only the date part of the original DateTime object. + + + + + + the DateTime object associated with this particular RadCalendarDay. + + + + + + + the DateTime object associated with this particular RadCalendarDay. + the CalendarDayCollection that contains this particular RadCalendarDay. + + + + + Raises the PropertyChanged event. + + The name of the property. + + + + Raises the PropertyChanged event. + + PropertyChangedEventArgs instance containing the name of the property. + + + + Gets or sets the image associated with a particular RadCalendarDay object. + + + + + Gets or sets the template associated with a particular RadCalendarDay object. + The template must inherit from RadHostItem. + + + + + Gets or sets the date represented by this RadCalendarDay. + + + + + Gets or sets a value indicating whether the RadCalendarDay is qualified as available for selection. + + + + + Gets or sets a value indicating whether the RadCalendarDay is selected + + + + + Gets or sets a value indicating whether the RadCalendarDay is disabled + + + + + Gets or sets a value indicating whether the RadCalendarDay represents the current date. + + + + + Gets or sets a value indicating whether the RadCalendarDay settings are repeated/recurring through out the valid + date range displayed by the calendar. + + + The RecurringEvents enumeration determines which part of the date is handled (day or day and month). + + + + + Gets or sets a value indicating whether the RadCalendarDay is mapped to a date that represents a non working + day/weekend. + + + + + Gets or sets the text displayed when the mouse pointer hovers over the calendar day. + + + + + The owner of RadCalendarDay object. + + + + + Used to handle all requests for layout invalidation through a single place + + + + + Used to handle all requests for repainting through a single place + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Summary description for CalendarDayCollection. + + + + + Finds the RadCalendarDay with specified key, optionally searching child days. + + The date bound to a particular RadCalendarDay object to search for. + An array of RadCalendarDay objects whose Date property matches the specified key. + + + + Returns the index of the specified RadCalendarDay object in the collection. + + The RadCalendarDay object to locate in the collection. + The zero-based index of the item found in the CalendarDayCollection; otherwise, -1. + + + + Adds an collection of previously created RadCalendarDay objects to the collection. + + An array of RadCalendarDay objects representing the views to add to the collection. + + + + Adds a previously created RadCalendarDay object to the end of the CalendarDayCollection. + + The RadCalendarDay object to add to the collection. + + + + Adds a DateTime object to the end of the CalendarDayCollection. + + The DateTime object to add to the collection. + + + + Adds a collection of date time values to the collection. + + An IEnumerable of DateTime objects to add to the collection. + + + + Returns an enumerator that can be used to iterate through the RadCalendarDay collection. + + An IEnumerator that represents the RadCalendarDay collection. + + + + Inserts an existing RadCalendarDay object into the CalendarDayCollection at the specified location. + + The indexed location within the collection to insert the RadCalendarDay object. + The RadCalendarDay object to insert into the collection. + + + + Removes the specified RadCalendarDay object from the CalendarDayCollection. + + The RadCalendarDay object to remove. + + + + Returns an enumerator that can be used to iterate through the RadCalendarDay collection. + + An IEnumerator that represents the RadCalendarDay collection. + + + + Removes all RadCalendarDay objects in the collection of CalendarDays. + + + + + Copies the elements of CalendarDayCollection to a new + of elements. + + A one-dimensional of + elements containing copies of the elements of the . + Please refer to for details. + + + + Copies the elements of the CalendarDayCollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from CalendarDayCollection. + The Array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + + Adds a RadCalendarDay object to the collection of CalendarDays. + + The RadCalendarDay object to add to the collection. + + + + Removes all RadCalendarDay objects in the collection of CalendarDays. + + + + + Checks whether a specific RadCalendarDay object is in the collection of CalendarDays. + + The RadCalendarDay object to search. + True if the RadCalendarDay is found, false otherwise. + + + + Returns a zero based index of a RadCalendarDay object depending on the passed index. + + The zero-based index, RadCalendarDay object or the date represented by the searched RadCalendarDay object. + A zero based index of the RadCalendarDay object in the collection, or -1 if the RadCalendarDay object is not found. + + + + Adds a RadCalendarDay object in the collection at the specified index. + + The index after which the RadCalendarDay object is inserted. + The RadCalendarDay object to insert. + + + + Deletes a RadCalendarDay object from the collection. + + The RadCalendarDay object to remove. + + + + Deletes the RadCalendarDay object from the collection at the specified index. + + The index in collection at which the RadCalendarDay object will be deleted. + + + + Creates a new CalendarDayCollection object that is a copy of the current instance. + + A new CalendarDayCollection object that is a copy of this instance. + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + + + + Gets a value indicating whether access to the CalendarDayCollection is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the CalendarDayCollection. + + + + + Gets a value indicating whether the CalendarDayCollection has a fixed size. + + + + + Gets a value indicating whether the CalendarDayCollection is read-only. + + + + + Gets or sets the RadCalendarDay at the specified indexed location in the collection. + + The indexed location of the RadCalendarDay in the collection. + The RadCalendarDay at the specified indexed location in the collection. + + + + Gets the total number of RadCalendarDay objects in the collection. + + + + + Gets or sets the RadCalendarDay at the specified indexed location in the collection. + + The indexed location of the RadCalendarDay in the collection. + The RadCalendarDay at the specified indexed location in the collection. + + + + Gets or sets a RadCalendarDay object depending on the passed key. + Only integer and string indexes are valid. + + + + + Summary description for CalendarView. + + + + + Determines if a DateTime object belongs to the dates range managed by a particular CalendarView. + + The DateTime object to be tested. + True if the DateTime object belongs to the dates range managed by a particular CalendarView; False otherwise. + + + + Adds the specified date to the SelectedDates collection of RadCalendar. + + The DateTime object to add. + + + + Adds the specified range of dates to the SelectedDates collection of RadCalendar. + + array of DateTime objects to add. + + + + Adds the specified range of dates to the SelectedDates collection of RadCalendar. + + A System.DateTime that specifies the initial date to add to the SelectedDates collection. + A System.DateTime that specifies the end date to add to the SelectedDates collection. + + + + Gets a DateTime object that is part of the date range handled by the previous calendar view. + Used for traversal of the calendar. + + The DateTime object + + + + Gets a DateTime object that is part of the date range handled by the next calendar view. + Used for traversal of the calendar. + + The DateTime object + + + + + + + + + + + + Ensures that the child views collection is created. + + + + + Initializes properly the ViewStartDate, ViewEndDate, ViewRenderStartDate, ViewRenderEndDate properties + + + + + handles the page down key. + + The key data to be processed. + + + + handles the page up key. + + The key data to be processed. + + + + handles the down arrow key. + + The key data to be processed. + + + + handles the up arrow key. + + The key data to be processed. + + + + handles the End key. + + The key data to be processed. + + + + handles the Home key. + + The key data to be processed. + + + + handles the left arrow key. + + The key data to be processed. + + + + handles the right arrow key. + + The key data to be processed. + + + + Toogles the date selection (Enter key). + + The key data to be processed. + + + + Verifies CalendarView settings required for correct presentation of calendrical information. + + + + + Returns the DateTime object that is used by the CalendarView to initialize. + + DateTime object that is used by the CalendarView to initialize. + + + + handles key events that require processing from CalendarView. + + The key data to be processed. + + + + Creates a CalendarView object based on the logic implemented by the CalendarView instance + that implements the method. + + DateTime object that is used to create the CalendarView. + The created CalendarView object. + + + + Raises the PropertyChanged event + + The name of the property + + + + Gets the parent calendar that the current view is assigned to. + + + + + Gets the parent tree node of the current tree node. + + + + + Gets the collection of nodes that are assigned to the tree view control. + + + + + Gets or sets the name of the node. + + + + Gets or sets the format string that is applied to the days cells tooltip. + + The property should contain either a format specifier character or a + custom format pattern. For more information, see the summary page for + System.Globalization.DateTimeFormatInfo. + By default this property uses formatting string of + 'dddd, MMMM dd, yyyy'. Valid formats are all supported by the .NET + Framework. + Example: +
    +
  • "d" is the standard short date pattern.
  • +
  • "%d" returns the day of the month; "%d" is a custom pattern.
  • +
  • "d " returns the day of the month followed by a white-space character; "d " + is a custom pattern.
  • +
+
+
+ + + Gets or sets the orientation (rendering direction) of the calendar component. + Default value is Horizontal. + + + + + Member + Description + + + Horizontal + Renders the calendar data row after row. + + + Vertical + Renders the calendar data column after + column. + + + + + + + Gets or sets the horizontal alignment of the view title. + The ContentAlignment enumeration is defined in + System.Windows.Forms.VisualStyles + + + + + + Member name + + + Description + + + + + Center + + The contents of a container are centered. + + + Left + The contents of a container are left justified. + + + Right + The contents of a container are right justified. + + + + + + + Gets or sets a value indicating whether the tree node is visible or partially visible. + + + + + Gets the root parent node for this instance. + + + + + Gets a value indicating whether the CalendarView is the top most view displayed by RadCalendar. + + + + + Gets the zero-based depth of the tree node in the RadTreeView tree. + Returns -1 if the node is outside of a tree view. + + + + + Gets or sets a value indicating whether the calendar view is in read-only mode. + + + + + Gets or sets the text displayed for the complete CalendarView + selection element in the view selector cell. + + + The text displayed for the CalendarView selection element in the + selector cell. The default value is "". + + + Use the ViewSelectorText property to provide custom text for + the CalendarView complete selection element in the selector + cell. +
+ + + + This property does not automatically encode to HTML. You need + to convert special characters to the appropriate HTML value, unless + you want the characters to be treated as HTML. For example, to + explicitly display the greater than symbol (>), you must use the + value &gt;. + + + +
+ Because this property does not automatically encode to HTML, it is possible + to specify an HTML tag for the ViewSelectorText property. For + example, if you want to display an image for the next month navigation control, you + can set this property to an expression that contains an + <img> element. + This property applies only if the EnableViewSelector + property is set to true. +
+
+ + + Use the RowHeaderText property to provide custom text for + the CalendarView complete row header element. +
+ + + + + This property does not automatically encode to HTML. You need + to convert special characters to the appropriate HTML value, unless + you want the characters to be treated as HTML. For example, to + explicitly display the greater than symbol (>), you must use the + value &gt;. + + + +
+ Because this property does not automatically encode to HTML, it is possible + to specify an HTML tag for the RowHeaderText property. For + example, if you want to display an image for the next month navigation control, you + can set this property to an expression that contains an + <img> element. + This property applies only if the ShowRowsHeaders + property is set to true. +
+ + The text displayed for the CalendarView header element. The default value is "". + + + Gets or sets the text displayed for the row header element. + +
+ + + Use the ColumnHeaderText property to provide custom text + for the CalendarView complete column header element. +
+ + + + + This property does not automatically encode to HTML. You need + to convert special characters to the appropriate HTML value, unless + you want the characters to be treated as HTML. For example, to + explicitly display the greater than symbol (>), you must use the + value &gt;. + + + +
+ Because this property does not automatically encode to HTML, it is possible + to specify an HTML tag for the ColumnHeaderText property. For + example, if you want to display an image for the next month navigation control, you + can set this property to an expression that contains an + <img> element. + This property applies only if the ShowColumnHeaders + property is set to true. +
+ + The text displayed for the CalendarView column header element. The default value is "". + + + Gets or sets the text displayed for the column header element. + +
+ + + The image displayed for the CalendarView column header element in the + header cells. The default value is "". + + + Gets or sets the image displayed for the column header element. + + + This property applies only if the ShowColumnHeaders property + is set to true. If ColumnHeaderText is set too, + its value is set as an alternative text to the image of the column header. + When using this property, the whole image URL is generated using also the + value. + Example: + ShowColumnHeaders="true"
+ ImagesBaseDir = "Img/"
+ ColumnHeaderImage = "selector.gif"
+ complete image URL : "Img/selector.gif"
+
+
+ + + The image displayed for the CalendarView row header element. The default value is "". + + + Gets or sets the image displayed for the row header element. + + + This property applies only if the ShowRowHeaders property is + set to true. If RowHeaderText is set too, its + value is set as an alternative text to the image of the row header. + When using this property, the whole image URL is generated using also the + value. + Example:
+ ShowRowHeaders = "true"
+ ImagesBaseDir = "Img/"
+ RowHeaderImage = "selector.gif"
+ complete image URL : "Img/selector.gif"
+
+
+ + + Gets or sets the margin of the view cells + + + + + Gets or sets the margin of the view cells + + + + + Gets or sets the image displayed for the complete + selection element in the view selector cell. + + + The image displayed for the CalendarView selection element in + the selector cell. The default value is "". + + + When using this property, the whole image URL is generated using also the + value. + Example:
+ ImagesBaseDir = "Img/"
+ ViewSelectorImage = "selector.gif"
+ complete image URL : "Img/selector.gif"
+
+
+ + + Gets or sets whether the month matrix, when rendered will show days from other (previous or next) + months or will render only blank cells. + + + + Gets or sets whether the fish eye functionality is enabled. + + + Gets or sets the zooming factor of a cell which is handled by the fish eye functionality. + + + + Gets or sets the predefined pairs of rows and columns, so that the product of + the two values is exactly 42, which guarantees valid calendar layout. It is applied + on a single view level to every + + + + + + The Width applied to a Header + + + + + The Height applied to a Header + + + + Gets or sets whether a single CalendarView object will display a selector. + + + + Gets or sets the the count of rows to be displayed by a multi month CalendarView. + + + + + Gets or sets the the count of columns to be displayed by a multi month CalendarView. + + + + Gets or sets whether a single CalendarView object will display a title row. + + + Gets or sets the format string used to format the text inside the header row. + + + Gets or sets whether a CalendarView object will display a header row. + + + Gets or sets whether a CalendarView object will display a header column. + + + + Gets or sets whether row headers ( if displayed by a MonthView object) + will act as row selectors. + + + + + Gets or sets whether column headers ( if displayed by a MonthView object) + will act as column selectors. + + + + + Gets or sets whether a selector for the entire CalendarView ( + MonthView ) will appear on the calendar. + + + + + Gets a value indicating whether the CalendarView has child views. + + + + + Gets the DateTime object that is the first date to be rendered by CalendarView. + While ViewStartDate is the start date that is handled by a particular CalendarView instance, + the ViewRenderStartDate might belong to a different (previous) CalendarView object. + + + + + Gets the DateTime object that is the last date to be rendered by CalendarView. + While ViewEndDate is the start date that is handled by a particular CalendarView instance, + the ViewRenderEndDate might belong to a different (next) CalendarView object. + + + + + Gets or sets a DateTime value specifying the starting date for the period handled by a CalendarView instance. + + + + + Gets or sets a DateTime value specifying the ending date for the period handled by a CalendarView instance. + + + + + Gets or sets the size and location of the tree node in pixels, relative to the parent layout. + + + + + Gets or sets the the count of rows to be displayed by a CalendarView. + + + + + Gets or sets the the count of columns to be displayed by a CalendarView. + + + + + Gets the previous available view. Used for traversal of the calendar. + + + + + Gets the next available view. Used for traversal of the calendar. + + + + + Gets the default System.Globalization.Calendar instance as + specified by the default culture. + + + A calendar divides time into measures, such as weeks, months, and years. The + number, length, and start of the divisions vary in each calendar. + Any moment in time can be represented as a set of numeric values using a + particular calendar. For example, the last vernal equinox occurred at (0.0, 0, 46, + 8, 20, 3, 1999) in the Gregorian calendar. An implementation of Calendar can + map any DateTime value to a similar set of numeric values, and + DateTime can map such sets of numeric values to a textual representation + using information from Calendar and DateTimeFormatInfo. The + textual representation can be culture-sensitive (for example, "8:46 AM March 20th + 1999 AD" for the en-US culture) or culture-insensitive (for example, + "1999-03-20T08:46:00" in ISO 8601 format). + A Calendar implementation can define one or more eras. The + Calendar class identifies the eras as enumerated integers where the current + era (CurrentEra) has the value 0. + In order to make up for the difference between the calendar year and the + actual time that the earth rotates around the sun or the actual time that the moon + rotates around the earth, a leap year has a different number of days than a + standard calendar year. Each Calendar implementation defines leap years + differently. + For consistency, the first unit in each interval (for example, the first + month) is assigned the value 1. + The System.Globalization namespace includes the following + Calendar implementations: GregorianCalendar, + HebrewCalendar, HijriCalendar, + JapaneseCalendar, JulianCalendar, + KoreanCalendar, TaiwanCalendar, and + ThaiBuddhistCalendar. + + + + + Gets or sets the vertical spacing between the calendar cells + + + + + Gets or sets the horizontal spacing between the calendar cells + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Updates correctly the visual appearance of RadCalendar. Updates the parential + dependencies (parent and Calendar properties) also. + + the CalendarView that will be updated + + + + Finds the calendar views with specified key, optionally searching child views. + + The name of the calendar view to search for. + true to search child views; otherwise, false. + An array of CalendarView objects whose Name property matches the specified key. + + + + Returns the index of the specified calendar view in the collection. + + The CalendarView to locate in the collection. + The zero-based index of the item found in the calendar view collection; otherwise, -1. + + + + Adds an collection of previously created CalendarView objects to the collection. + + An array of CalendarView objects representing the views to add to the collection. + + + + Adds a previously created CalendarView object to the end of the CalendarViewCollection. + + The CalendarView object to add to the collection. + The zero-based index value of the CalendarView object added to the CalendarViewCollection. + + + + Returns an enumerator that can be used to iterate through the CalendarView collection. + + An IEnumerator that represents the CalendarView collection. + + + + Inserts an existing CalendarView object into the CalendarViewCollection at the specified location. + + The indexed location within the collection to insert the CalendarView object. + The CalendarView object to insert into the collection. + + + + Removes the specified CalendarView object from the CalendarViewCollection. + + The CalendarView object to remove. + + + + Returns an enumerator that can be used to iterate through the CalendarView collection. + + An IEnumerator that represents the CalendarView collection. + + + + Removes all CalendarView objects from the collection. + + + + + Copies the elements of the CalendarViewCollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from CalendarViewCollection. + The Array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + + Adds a previously created CalendarView object to the end of the CalendarViewCollection. + + The CalendarView object to add to the collection. + The zero-based index value of the CalendarView object added to the CalendarViewCollection. + + + + Removes all CalendarView objects from the collection. + + + + + Determines whether the specified CalendarView object is a member of the collection. + + The CalendarView to locate in the collection. + true if the CalendarView is a member of the collection; otherwise, false. + + + + Returns the index of the specified calendar view in the collection. + + The CalendarView to locate in the collection. + The zero-based index of the item found in the calendar view collection; otherwise, -1. + + + + Inserts an existing CalendarView object into the CalendarViewCollection at the specified location. + + The indexed location within the collection to insert the CalendarView object. + The CalendarView object to insert into the collection. + + + + Removes the specified CalendarView object from the CalendarViewCollection. + + The CalendarView object to remove. + + + + Removes the element at the specified index of the CalendarViewCollection. + + The zero-based index of the element to remove. + + + + Gets the total number of CalendarView objects in the collection. + + + + + Gets or sets the CalendarView at the specified indexed location in the collection. + + The indexed location of the CalendarView in the collection. + The CalendarView at the specified indexed location in the collection. + + + + Gets or sets by name the CalendarView instance in the collection. + + The name of the CalendarView in the collection. + The CalendarView with a specified name in the collection. + + + + Gets a value indicating whether access to the CalendarViewCollection is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the CalendarViewCollection. + + + + + Gets a value indicating whether the CalendarViewCollection has a fixed size. + + + + + Gets a value indicating whether the CalendarViewCollection is read-only. + + + + + Gets or sets the CalendarView at the specified indexed location in the collection. + + The indexed location of the CalendarView in the collection. + The CalendarView at the specified indexed location in the collection. + + + + Specifies the display formats for the days of the week used as selectors by + RadCalendar.You can specify whether the days of the week are displayed as + the full name, short (abbreviated) name, first letter of the day, or first two letters of the day. + + + + + The days of the week displayed in full format. For example, Tuesday. + + + + + The days of the week displayed in abbreviated format. For example, Tues. + + + + + The days of the week displayed with just the first letter. For example, T. + + + + + The days of the week displayed with just the first two letters. For example, Tu. + + + + + The shortest unique abbreviated day names associated with the current DateTimeFormatInfo object. + + + + + Indicates the first day of the week to use when calling date-related functions. + + + + + Sunday + + + + + Monday + + + + + Tuesday + + + + + Wednesday + + + + + Thursday + + + + + Friday + + + + + Saturday + + + + + Handled by the current System.Globalization.Calendar object. + + + + + Summary description for MonthLayout. + Layout_7columns_x_6rows - horizontal layout + Layout_14columns_x_3rows - horizontal layout + Layout_21columns_x_2rows - horizontal layout + Layout_7rows_x_6columns - vertical layout, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + Layout_14rows_x_3columns - vertical layout, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + Layout_21rows_x_2columns - vertical layout, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + + + + + Allows the calendar to display the days in a 7 by 6 matrix. + + 1 + + + + Alows the calendar to display the days in a 14 by 3 matrix. + + 2 + + + + Allows the calendar to display the days in a 21 by 2 matrix. + + 4 + + + + Allows the calendar to display the days in a 7 by 6 matrix, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + + 8 + + + + Allows the calendar to display the days in a 14 by 3 matrix, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + + 16 + + + + Allows the calendar to display the days in a 21 by 2 matrix, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + + 32 + + + + Summary description for RecurringEvents. + DayInMonth - Only the day part of the date is taken into account. That gives the ability to serve events repeated every month on the same day. + DayAndMonth - The month and the day part of the date is taken into account. That gives the ability to serve events repeated in a specific month on the same day. + Today - gives the ability to control the visual appearace of today's date. + None - Default value, means that the day in question is a single point event, no recurrences. + + + + + Only the day part of the date is taken into account. That gives the ability to serve events repeated every month on the same day. + + 1 + + + + The month and the day part of the date are taken into account. That gives the ability to serve events repeated in a specific month on the same day. + + 2 + + + + The week day is taken into account. That gives the ability to serve events repeated in a specific day of the week. + + 4 + + + + The week day and the month are taken into account. That gives the ability to serve events repeated in a specific week day in a specific month. + + 8 + + + + Gives the ability to control the visual appearace of today's date. + + 16 + + + + Default value, means that the day in question is a single point event, no recurrence. + + 32 + + + + Summary description for CalendarView. + + + + + Gets the string representation for a particular day in the week. + + Specifies the day of the week. + the string representation for the specified day. + + + + Retrieves the ToolTip text associated with a particular RadCalendarDay object. + + RadCalendarDay object + The retrieved ToolTip text associated with a particular RadCalendarDay object + + + + Gets the RadCalendarDay object associated with a particular DateTime object if any. + + DateTime object to be tested. + The retrieved RadCalendarDay object. + + + + Gets the month name. + + + + + Returns the number of months displayed by a particular MonthView (in this case 1). + + + + + Summary description for CalendarView. + + + + + Calculates the correct position of the CalendarView + + + + + Returns the index of the specified DateTime object in the collection. + + The DateTime object to locate in the collection. + The zero-based index of the item found in the DateTimeCollection; otherwise, -1. + + + + Adds a previously created DateTime object to the end of the DateTimeCollection. + + The DateTime object to add to the collection. + The zero-based index value of the DateTime object added to the DateTimeCollection. + + + + Returns an enumerator that can be used to iterate through the DateTime collection. + + An IEnumerator that represents the DateTime collection. + + + + Inserts an existing DateTime object into the DateTimeCollection at the specified location. + + The indexed location within the collection to insert the DateTime object. + The DateTime object to insert into the collection. + + + + CanAdd method verify whether the date can be add to the collection. + + The DateTime object to insert into the collection. + + + + Removes the specified DateTime object from the DateTimeCollection. + + The DateTime object to remove. + + + + Removes all DateTime objects from the collection. + + + + + Removes a range of DateTime elements from the DateTimeCollection. + + The zero-based starting index of the range of elements to remove. + The number of elements to remove. + + + + Adds an array of previously created DateTime objects to the collection. + + An array of DateTime objects representing the dates to add to the collection. + + + + Determines whether the specified DateTime object is a member of the collection. + + The DateTime to locate in the collection. + true if the DateTime is a member of the collection; otherwise, false. + + + + Copies the elements of the DateTime collection to a new DateTime array. + + A DateTime array + + + + Returns an enumerator that can be used to iterate through the DateTime collection. + + An IEnumerator that represents the DateTime collection. + + + + Copies the elements of the DateTimeCollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from DateTimeCollection. + The Array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + + Adds a previously created DateTime object to the end of the DateTimeCollection. + + The DateTime object to add to the collection. + The zero-based index value of the DateTime object added to the DateTimeCollection. + + + + Removes all DateTime objects from the collection. + + + + + Determines whether the specified DateTime object is a member of the collection. + + The DateTime to locate in the collection. + true if the DateTime is a member of the collection; otherwise, false. + + + + Returns the index of the specified DateTime object in the collection. + + The DateTime object to locate in the collection. + The zero-based index of the item found in the DateTimeCollection + + + + Inserts an existing DateTime object into the DateTimeCollection at the specified location. + + The indexed location within the collection to insert the DateTime object. + The DateTime object to insert into the collection. + + + + Removes the specified DateTime object from the DateTimeCollection. + + The DateTime object to remove. + + + + Removes the element at the specified index of the DateTimeCollection. + + The zero-based index of the element to remove. + + + + Creates a new DateTimeCollection object that is a copy of the current instance. + + A new DateTimeCollection object that is a copy of this instance. + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + + + + Gets the total number of DateTime objects in the collection. + + + + + Gets or sets the DateTime at the specified indexed location in the collection. + + The indexed location of the DateTime in the collection. + The DateTime at the specified indexed location in the collection. + + + + Gets a value indicating whether access to the DateTimeCollection is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the DateTimeCollection. + + + + + Gets a value indicating whether the DateTimeCollection has a fixed size. + + + + + Gets a value indicating whether the DateTimeCollection is read-only. + + + + + Gets or sets the DateTime at the specified indexed location in the collection. + + The indexed location of the DateTime in the collection. + The DateTime at the specified indexed location in the collection. + + + + The RadCalendar main class. + + + + + Raises the SelectionChanging event. + + A DateTimeCollection collection used by SelectionEventArgs. + A List with Dates which will be selected + SelectionEventArgs instance. + + + + Raises the SelectionChanged event. + + + + + Raises the ElementRender event of the RadCalendar control and allows you to provide a custom + handler for the ElementRender event. + + A LightVisualElement object that contains information about the cell to render. + A RadCalendarDay that contains information about the day to render. + A CalendarView that contains the day to render. + + + + Raises the ViewChanging event. + + A CalendarView collection used by ViewChangingEventArgs. + ViewChangingEventArgs instance. + + + + Raises the ViewChanged event. + + + + + Remove focused date and change the current view to today + + Indicates that all selected dates will be cleared as well. + + + + Removes the time component of a DateTime object, thus leaving only the date part. + + the DateTime object to be processed. + the DateTime object containing only the date part of the original DateTime object. + + + + Ensures that a valid CalendarView object is instantiated and used by RadCalendar as default view. + + The CalendarView object to be used as default view. + + + + Explicitely invalidates RadCalendar layout. Can be used when batch updates to calendar properties are made + outside of the control that require control invalidation. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the row in the multi-view table where the focused date is positioned. + + + + + The column in the multi-view table where the focused date is positioned. + + + + + Gets the instance of RadCalendarElement wrapped by this control. RadCalendarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadCalendar. + + + + + This property is not relevant for this class. + + + + + Specifies the navigation mode that will be used when user click on header element.Zoom navigation mode is not supporting in MultipleView of RadCalendar + + + + + Occurs when the view is about to be changed by the navigation elements. + + + + + Occurs when the view is changed by the navigation elements. + + + + + SlectionChanged event is fired when a new date is added or removed from + the SelectedDates collection. + + + + + SlectionChanged event is fired when a new date is added or removed from the + SelectedDates collection. + + + + + ElementRender event is fired after the generation of every calendar cell + object and just before it gets rendered. It is the last place where + changes to the already constructed calendar cells can be made. + + + + + ViewChanging event is fired when a navigation to a different date range is required. + + + + + ViewChanged event is fired when a navigation to a different date + range occurred. Generally this is done by using the normal navigation buttons. + + + + + Specifies the display formats for the days of the week used as selectors by RadCalendar. + + + Use the DayNameFormat property to specify the name format for the days + of the week. This property is set with one of the DayNameFormat + enumeration values. You can specify whether the days of the week are displayed as + the full name, short (abbreviated) name, first letter of the day, or first two + letters of the day. + The DayNameFormat enumeration represents the display formats for the + days of the week used as selectors by RadCalendar. + + + Member name + Description + + + FirstLetter + The days of the week displayed with just the first letter. For + example, T. + + + FirstTwoLetters + The days of the week displayed with just the first two + letters. For example, Tu. + + + Full + The days of the week displayed in full format. For example, + Tuesday. + + + Short + The days of the week displayed in abbreviated format. For + example, Tues. + + + Shortest + The shortest unique abbreviated day names associated with the current DateTimeFormatInfo + object. + + + + + + + Gets or sets a DateTimeFormatInfo instance that defines the + culturally appropriate format of displaying dates and times as specified by the default + culture. + + + A DateTimeFormatInfo can be created only for the invariant + culture or for specific cultures, not for neutral cultures. + The cultures are generally grouped into three sets: the invariant culture, + the neutral cultures, and the specific cultures. + The invariant culture is culture-insensitive. You can specify the invariant + culture by name using an empty string ("") or by its culture identifier 0x007F. + InvariantCulture retrieves an instance of the invariant culture. + It is associated with the English language but not with any country/region. It can + be used in almost any method in the Globalization namespace that requires a + culture. If a security decision depends on a string comparison or a case-change + operation, use the InvariantCulture to ensure that the behavior will be + consistent regardless of the culture settings of the system. However, the invariant + culture must be used only by processes that require culture-independent results, + such as system services; otherwise, it produces results that might be + linguistically incorrect or culturally inappropriate. + A neutral culture is a culture that is associated with a language but not + with a country/region. A specific culture is a culture that is associated with a + language and a country/region. For example, "fr" is a neutral culture and "fr-FR" + is a specific culture. Note that "zh-CHS" (Simplified Chinese) and "zh-CHT" + (Traditional Chinese) are neutral cultures. + The user might choose to override some of the values associated with the + current culture of Windows through Regional and Language Options (or Regional + Options or Regional Settings) in Control Panel. For example, the user might choose + to display the date in a different format or to use a currency other than the + default for the culture. + If UseUserOverride is true and the specified culture + matches the current culture of Windows, the CultureInfo uses those + overrides, including user settings for the properties of the + DateTimeFormatInfo instance returned by the DateTimeFormat property, + the properties of the NumberFormatInfo instance returned by the + NumberFormat property, and the properties of the + CompareInfo instance returned by the CompareInfo + property. If the user settings are incompatible with the culture associated with + the CultureInfo (for example, if the selected calendar is not one of the + OptionalCalendars ), the results of the methods and the values of + the properties are undefined.
+
+ Note: In this version of RadCalendar the + NumberFormatInfo instance returned by the + NumberFormat property is not taken into account.
+
+
+ + + Gets or sets the CultureInfo supported by this RadCalendar object. + Describes the names of the culture, the writing system, and + the calendar used, as well as access to culture-specific objects that provide + methods for common operations, such as formatting dates and sorting strings. + + + The culture names follow the RFC 1766 standard in the format + "<languagecode2>-<country/regioncode2>", where <languagecode2> is + a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> + is an uppercase two-letter code derived from ISO 3166. For example, U.S. English is + "en-US". In cases where a two-letter language code is not available, the + three-letter code derived from ISO 639-2 is used; for example, the three-letter + code "div" is used for cultures that use the Dhivehi language. Some culture names + have suffixes that specify the script; for example, "-Cyrl" specifies the Cyrillic + script, "-Latn" specifies the Latin script. + The following predefined CultureInfo names and identifiers are + accepted and used by this class and other classes in the System.Globalization + namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Culture NameCulture IdentifierLanguage-Country/Region
"" (empty string)0x007Finvariant culture
af0x0036Afrikaans
af-ZA0x0436Afrikaans - South Africa
sq0x001CAlbanian
sq-AL0x041CAlbanian - Albania
ar0x0001Arabic
ar-DZ0x1401Arabic - Algeria
ar-BH0x3C01Arabic - Bahrain
ar-EG0x0C01Arabic - Egypt
ar-IQ0x0801Arabic - Iraq
ar-JO0x2C01Arabic - Jordan
ar-KW0x3401Arabic - Kuwait
ar-LB0x3001Arabic - Lebanon
ar-LY0x1001Arabic - Libya
ar-MA0x1801Arabic - Morocco
ar-OM0x2001Arabic - Oman
ar-QA0x4001Arabic - Qatar
ar-SA0x0401Arabic - Saudi Arabia
ar-SY0x2801Arabic - Syria
ar-TN0x1C01Arabic - Tunisia
ar-AE0x3801Arabic - United Arab Emirates
ar-YE0x2401Arabic - Yemen
hy0x002BArmenian
hy-AM0x042BArmenian - Armenia
az0x002CAzeri
az-AZ-Cyrl0x082CAzeri (Cyrillic) - Azerbaijan
az-AZ-Latn0x042CAzeri (Latin) - Azerbaijan
eu0x002DBasque
eu-ES0x042DBasque - Basque
be0x0023Belarusian
be-BY0x0423Belarusian - Belarus
bg0x0002Bulgarian
bg-BG0x0402Bulgarian - Bulgaria
ca0x0003Catalan
ca-ES0x0403Catalan - Catalan
zh-HK0x0C04Chinese - Hong Kong SAR
zh-MO0x1404Chinese - Macau SAR
zh-CN0x0804Chinese - China
zh-CHS0x0004Chinese (Simplified)
zh-SG0x1004Chinese - Singapore
zh-TW0x0404Chinese - Taiwan
zh-CHT0x7C04Chinese (Traditional)
hr0x001ACroatian
hr-HR0x041ACroatian - Croatia
cs0x0005Czech
cs-CZ0x0405Czech - Czech Republic
da0x0006Danish
da-DK0x0406Danish - Denmark
div0x0065Dhivehi
div-MV0x0465Dhivehi - Maldives
nl0x0013Dutch
nl-BE0x0813Dutch - Belgium
nl-NL0x0413Dutch - The Netherlands
en0x0009English
en-AU0x0C09English - Australia
en-BZ0x2809English - Belize
en-CA0x1009English - Canada
en-CB0x2409English - Caribbean
en-IE0x1809English - Ireland
en-JM0x2009English - Jamaica
en-NZ0x1409English - New Zealand
en-PH0x3409English - Philippines
en-ZA0x1C09English - South Africa
en-TT0x2C09English - Trinidad and Tobago
en-GB0x0809English - United Kingdom
en-US0x0409English - United States
en-ZW0x3009English - Zimbabwe
et0x0025Estonian
et-EE0x0425Estonian - Estonia
fo0x0038Faroese
fo-FO0x0438Faroese - Faroe Islands
fa0x0029Farsi
fa-IR0x0429Farsi - Iran
fi0x000BFinnish
fi-FI0x040BFinnish - Finland
fr0x000CFrench
fr-BE0x080CFrench - Belgium
fr-CA0x0C0CFrench - Canada
fr-FR0x040CFrench - France
fr-LU0x140CFrench - Luxembourg
fr-MC0x180CFrench - Monaco
fr-CH0x100CFrench - Switzerland
gl0x0056Galician
gl-ES0x0456Galician - Galician
ka0x0037Georgian
ka-GE0x0437Georgian - Georgia
de0x0007German
de-AT0x0C07German - Austria
de-DE0x0407German - Germany
de-LI0x1407German - Liechtenstein
de-LU0x1007German - Luxembourg
de-CH0x0807German - Switzerland
el0x0008Greek
el-GR0x0408Greek - Greece
gu0x0047Gujarati
gu-IN0x0447Gujarati - India
he0x000DHebrew
he-IL0x040DHebrew - Israel
hi0x0039Hindi
hi-IN0x0439Hindi - India
hu0x000EHungarian
hu-HU0x040EHungarian - Hungary
is0x000FIcelandic
is-IS0x040FIcelandic - Iceland
id0x0021Indonesian
id-ID0x0421Indonesian - Indonesia
it0x0010Italian
it-IT0x0410Italian - Italy
it-CH0x0810Italian - Switzerland
ja0x0011Japanese
ja-JP0x0411Japanese - Japan
kn0x004BKannada
kn-IN0x044BKannada - India
kk0x003FKazakh
kk-KZ0x043FKazakh - Kazakhstan
kok0x0057Konkani
kok-IN0x0457Konkani - India
ko0x0012Korean
ko-KR0x0412Korean - Korea
ky0x0040Kyrgyz
ky-KZ0x0440Kyrgyz - Kazakhstan
lv0x0026Latvian
lv-LV0x0426Latvian - Latvia
lt0x0027Lithuanian
lt-LT0x0427Lithuanian - Lithuania
mk0x002FMacedonian
mk-MK0x042FMacedonian - FYROM
ms0x003EMalay
ms-BN0x083EMalay - Brunei
ms-MY0x043EMalay - Malaysia
mr0x004EMarathi
mr-IN0x044EMarathi - India
mn0x0050Mongolian
mn-MN0x0450Mongolian - Mongolia
no0x0014Norwegian
nb-NO0x0414Norwegian (Bokmål) - Norway
nn-NO0x0814Norwegian (Nynorsk) - Norway
pl0x0015Polish
pl-PL0x0415Polish - Poland
pt0x0016Portuguese
pt-BR0x0416Portuguese - Brazil
pt-PT0x0816Portuguese - Portugal
pa0x0046Punjabi
pa-IN0x0446Punjabi - India
ro0x0018Romanian
ro-RO0x0418Romanian - Romania
ru0x0019Russian
ru-RU0x0419Russian - Russia
sa0x004FSanskrit
sa-IN0x044FSanskrit - India
sr-SP-Cyrl0x0C1ASerbian (Cyrillic) - Serbia
sr-SP-Latn0x081ASerbian (Latin) - Serbia
sk0x001BSlovak
sk-SK0x041BSlovak - Slovakia
sl0x0024Slovenian
sl-SI0x0424Slovenian - Slovenia
es0x000ASpanish
es-AR0x2C0ASpanish - Argentina
es-BO0x400ASpanish - Bolivia
es-CL0x340ASpanish - Chile
es-CO0x240ASpanish - Colombia
es-CR0x140ASpanish - Costa Rica
es-DO0x1C0ASpanish - Dominican Republic
es-EC0x300ASpanish - Ecuador
es-SV0x440ASpanish - El Salvador
es-GT0x100ASpanish - Guatemala
es-HN0x480ASpanish - Honduras
es-MX0x080ASpanish - Mexico
es-NI0x4C0ASpanish - Nicaragua
es-PA0x180ASpanish - Panama
es-PY0x3C0ASpanish - Paraguay
es-PE0x280ASpanish - Peru
es-PR0x500ASpanish - Puerto Rico
es-ES0x0C0ASpanish - Spain
es-UY0x380ASpanish - Uruguay
es-VE0x200ASpanish - Venezuela
sw0x0041Swahili
sw-KE0x0441Swahili - Kenya
sv0x001DSwedish
sv-FI0x081DSwedish - Finland
sv-SE0x041DSwedish - Sweden
syr0x005ASyriac
syr-SY0x045ASyriac - Syria
ta0x0049Tamil
ta-IN0x0449Tamil - India
tt0x0044Tatar
tt-RU0x0444Tatar - Russia
te0x004ATelugu
te-IN0x044ATelugu - India
th0x001EThai
th-TH0x041EThai - Thailand
tr0x001FTurkish
tr-TR0x041FTurkish - Turkey
uk0x0022Ukrainian
uk-UA0x0422Ukrainian - Ukraine
ur0x0020Urdu
ur-PK0x0420Urdu - Pakistan
uz0x0043Uzbek
uz-UZ-Cyrl0x0843Uzbek (Cyrillic) - Uzbekistan
uz-UZ-Latn0x0443Uzbek (Latin) - Uzbekistan
vi0x002AVietnamese
vi-VN0x042AVietnamese - Vietnam
+
+
+ + + Gets the default System.Globalization.Calendar instance as + specified by the default culture. + + + A calendar divides time into measures, such as weeks, months, and years. The + number, length, and start of the divisions vary in each calendar. + Any moment in time can be represented as a set of numeric values using a + particular calendar. For example, the last vernal equinox occurred at (0.0, 0, 46, + 8, 20, 3, 1999) in the Gregorian calendar. An implementation of Calendar can + map any DateTime value to a similar set of numeric values, and + DateTime can map such sets of numeric values to a textual representation + using information from Calendar and DateTimeFormatInfo. The + textual representation can be culture-sensitive (for example, "8:46 AM March 20th + 1999 AD" for the en-US culture) or culture-insensitive (for example, + "1999-03-20T08:46:00" in ISO 8601 format). + A Calendar implementation can define one or more eras. The + Calendar class identifies the eras as enumerated integers where the current + era (CurrentEra) has the value 0. + In order to make up for the difference between the calendar year and the + actual time that the earth rotates around the sun or the actual time that the moon + rotates around the earth, a leap year has a different number of days than a + standard calendar year. Each Calendar implementation defines leap years + differently. + For consistency, the first unit in each interval (for example, the first + month) is assigned the value 1. + The System.Globalization namespace includes the following + Calendar implementations: GregorianCalendar, + HebrewCalendar, HijriCalendar, + JapaneseCalendar, JulianCalendar, + KoreanCalendar, TaiwanCalendar, and + ThaiBuddhistCalendar. + + + + + Gets or sets the format string that will be applied to the dates presented in the + calendar area. + + + For additional details see Date Format Pattern + topic + + + + + Specifies the day to display as the first day of the week on the + RadCalendar control. + + + The FirstDayOfWeek enumeration represents the values that specify + which day to display as the first day of the week on the RadCalendar control. + + + Member name + Description + + + Default + The first day of the week is specified by the system + settings. + + + Friday + The first day of the week is Friday. + + + Monday + The first day of the week is Monday. + + + Saturday + The first day of the week is Saturday. + + + Sunday + The first day of the week is Sunday. + + + Thursday + The first day of the week is Thursday. + + + Tuesday + The first day of the week is Tuesday. + + + Wednesday + The first day of the week is Wednesday. + + + + + + Gets or sets the format string that is applied to the calendar title. + + The property should contain either a format specifier character or a + custom format pattern. For more information, see the summary page for + System.Globalization.DateTimeFormatInfo. + By default this property uses formatting string of + 'MMMM yyyy'. Valid formats are all supported by the .NET + Framework. + Example: +
    +
  • "d" is the standard short date pattern.
  • +
  • "%d" returns the day of the month; "%d" is a custom pattern.
  • +
  • "d " returns the day of the month followed by a white-space character; "d " + is a custom pattern.
  • +
+
+
+ + Gets or sets the format string that is applied to the days cells tooltip. + + The property should contain either a format specifier character or a + custom format pattern. For more information, see the summary page for + System.Globalization.DateTimeFormatInfo. + By default this property uses formatting string of + 'dddd, MMMM dd, yyyy'. Valid formats are all supported by the .NET + Framework. + Example: +
    +
  • "d" is the standard short date pattern.
  • +
  • "%d" returns the day of the month; "%d" is a custom pattern.
  • +
  • "d " returns the day of the month followed by a white-space character; "d " + is a custom pattern.
  • +
+
+
+ + + Gets or sets the separator string that will be put between start and end months in a multi view title. + + + + + Gets or sets the the count of rows to be displayed by a single CalendarView. + + + If the calendar represents a multi view, this property applies to the child views + inside the multi view. + + + + + Gets or sets the the count of columns to be displayed by a single CalendarView. + + + If the calendar represents a multi view, this property applies to the child views + inside the multi view. + + + + + Gets the today button of the footer element + + + + + Gets the clear button of the footer element + + + + + The Width applied to a Header + + + + + The Height applied to a Header + + + + + Gets or sets the horizontal alignment of the date cells content inside the + calendar area. + + + + + + Member name + + + Description + + + + + Center + + The contents of a container are centered. + + + Left + The contents of a container are left justified. + + + Right + The contents of a container are right justified. + + + + + + + Gets or sets the the count of rows to be displayed by a multi month CalendarView. + + + + + Gets or sets the the count of columns to be displayed by a multi month CalendarView. + + + + + Gets or sets the maximum date valid for selection by + Telerik RadCalendar. Must be interpreted as the higher bound of the valid + dates range available for selection. Telerik RadCalendar will not allow + navigation or selection past this date. + + + This property has a default value of 12/30/2099 + (Gregorian calendar date). + + + + + Gets or sets the minimal date valid for selection by + Telerik RadCalendar. Must be interpreted as the lower bound of the valid + dates range available for selection. Telerik RadCalendar will not allow + navigation or selection prior to this date. + + + This property has a default value of 1/1/1980 + (Gregorian calendar date). + + + + + Gets or sets a value indicating whether the calendar is in read-only mode. + + + + + Sets or returns the currently selected date. The default value is the value of + System.DateTime.MinValue. + + + Use the SelectedDate property to determine the selected date on the >RadCalendar control. + The SelectedDate property and the SelectedDates collection are closely related. + When the AllowMultipleSelect property is set to false, a mode that allows only a single date selection, + SelectedDate and SelectedDates[0] have the same value and SelectedDates.Count equals 1. + When the AllowMultipleSelect property is set to true, mode that allows multiple date + selections, SelectedDate and SelectedDates[0] have the same value. + The SelectedDate property is set using a System.DateTime object. + When the user selects a date on the RadCalendar control, the SelectionChanged + event is raised. The SelectedDate property is updated to the selected date. + The SelectedDates collection is also updated to contain just this + date. +
+ Note Both the SelectedDate property and the + SelectedDates collection are updated before the SelectionChanged + event is raised. You can override the date selection by using the + OnSelectionChanged event handler to manually set the + SelectedDate property. The SelectionChanged event does not get + raised when this property is programmatically set. +
+
+
+ + + Gets or sets the value that is used by RadCalendar to determine + the viewable area displayed . + + + By default, the FocusedDate property returns the current + system date when in runtime, and in design mode defaults to + System.DateTime.MinValue. When the FocusedDate is + set, from that point, the value returned by the FocusedDate + property is the one the user sets. + + + + + Gets a collection of DateTime objects that represent the + selected dates on the RadCalendar control. + + + A DateTimeCollection that contains a collection of System.DateTime objects representing the selected + dates on the RadCalendar control. The default value is an empty DateTimeCollection. + + + Use the SelectedDates collection to determine the currently selected + dates on the control. + The SelectedDate property and the SelectedDates collection are closely related. When the AllowMultipleSelect + property is set to false, a mode that allows only a single date selection, + SelectedDate and SelectedDates[0] have the same value and + SelectedDates.Count equals 1. When the AllowMultipleSelect + property is set to true, mode that allows multiple date selections, + SelectedDate and SelectedDates[0] have the same value. + The SelectedDates property stores a collection of DateTime objects. + When the user selects a date or date range (for example with the column or + rows selectors) on the RadCalendar control, the SelectionChanged + event is raised. The selected dates are added to the SelectedDates + collection, accumulating with previously selected dates. The range of dates are not + sorted by default. The SelectedDate property is also updated to + contain the first date in the SelectedDates collection. + You can also use the SelectedDates collection to programmatically + select dates on the Calendar control. Use the Add, Remove, Clear, and SelectRange + methods to programmatically manipulate the selected dates in the SelectedDates collection. +
+ Note Both the SelectedDate property and the + SelectedDates collection are updated before the SelectionChanged + event is raised.You can override the dates selection by using the + OnSelectionChanged event handler to manually set the + SelectedDates collection. The SelectionChanged event is not + raised when this collection is programmatically set. +
+
+
+ + + Gets or sets whether navigating RadCalendar is allowed. + + + + + Gets or sets whether the fast navigation in RadCalendar is allowed. + + + + + Gets or sets the text displayed for the previous month navigation control. Will be + applied only if there is no image set (see + NavigationPrevImage). + + + Use the NavigationPrevText property to provide custom text for the + previous month navigation element in the title section of + RadCalendar. + + + The text displayed for the CalendarView previous month + navigation cell. The default value is "&lt;". + + + + + Gets or sets the text displayed for the next month navigation control. Will be + applied if there is no image set (see + NavigationNextImage). + + + The text displayed for the CalendarView next month navigation + cell. The default value is "&gt;". + + + Use the NavigationNextText property to provide custom text for the + next month navigation element in the title section of + RadCalendar. + + + + + Gets or sets the text displayed for the fast navigation previous month control. + + + The text displayed for the CalendarView selection element in the + fast navigation previous month cell. The default value is + "&lt;&lt;". + + + Use the FastNavigationPrevText property to provide custom text for + the next month navigation element in the title section of + RadCalendar. + + + + + Gets or sets the text displayed for the fast navigation next month control. + + + The text displayed for the CalendarView selection element in the + fast navigation next month cell. The default value is "&gt;&gt;". + + + Use the FastNavigationNextText property to provide custom text for + the next month navigation element in the title section of RadCalendar. + + + + + Gets or sets the image that is displayed for the previous month navigation control. + + + + + Gets or sets the image that is displayed for the next month navigation control. + + + + + Gets or sets the image that is displayed for the previous month fast navigation control. + + + + + Gets or sets the image that is displayed for the next month fast navigation control. + + + + + Gets or sets the text displayed as a tooltip for the previous month navigation control. + + + Use the NavigationPrevToolTip property to provide custom text for the + tooltip of the previous month navigation element in the title section of + RadCalendar. + + + The tooltip text displayed for the CalendarView previous month + navigation cell. The default value is "&lt;". + + + + + Gets or sets the text displayed as a tooltip for the next month navigation control. + + + The tooltip text displayed for the CalendarView next month + navigation cell. The default value is "&gt;". + + + Use the NavigationNextToolTip property to provide custom text for the + tooltip of the next month navigation element in the title section of + RadCalendar. + + + + + Gets or sets the text displayed as a tooltip for the fast navigation previous + month control. + + + Use the FastNavigationPrevToolTip property to provide custom text for + the tooltip of the fast navigation previous month element in the title section of + RadCalendar. + + + The tooltip text displayed for the CalendarView fast navigation + previous month cell. The default value is "&lt;&lt;". + + + + + Gets or sets the text displayed as a tooltip for the fast navigation previous + month control. + + + Use the FastNavigationPrevToolTip property to provide custom text for + the tooltip of the fast navigation previous month element in the title section of + RadCalendar. + + + The tooltip text displayed for the CalendarView fast navigation + previous month cell. The default value is "&lt;&lt;". + + + + + Gets or sets the horizontal alignment of the view title. + The ContentAlignment enumeration is defined in + System.Windows.Forms.VisualStyles + + + + + + Member name + + + Description + + + + + Center + + The contents of a container are centered. + + + Left + The contents of a container are left justified. + + + Right + The contents of a container are right justified. + + + + + + + Allows RadCalendar to render multiple months in a single view. + + + + + Allows the selection of dates. If not set, selection is forbidden, and if any dates are all ready selected, they are cleared. + + + + + Allows the selection of multiple dates. If not set, only a single date is selected, and if any dates + are all ready selected, they are cleared. + + + + Gets or sets whether the navigation buttons should be visible. + + + Gets or sets whether the fast navigation buttons should be visible. + + + Gets or sets whether RadCalendar will display a footer row. + + + Gets or sets whether RadCalendar will display a header/navigation row. + + + Gets or sets whether the column headers will appear on the calendar. + + + Gets or sets whether the row headers will appear on the calendar. + + + Gets or sets whether a single CalendarView object will display a header . + + + Gets or sets whether a single CalendarView object will display a selector. + + + + Gets or sets whether the view selector will be allowed to select all dates presented by the CalendarView. + + + + Gets or sets the zooming factor of a cell which is handled by the zooming (fish eye) functionality. + + + Gets or sets whether the zooming functionality is enabled. + + + + Gets or sets whether row headers ( if displayed by a MonthView object) + will act as row selectors. + + + + + Gets or sets whether column headers ( if displayed by a MonthView object) + will act as column selectors. + + + + + Gets or sets whether the month matrix, when rendered will show days from other (previous or next) + months or will render only blank cells. + + + + + Gets or sets the predefined pairs of rows and columns, so that the product of + the two values is exactly 42, which guarantees valid calendar layout. It is applied + on a single view level to every MonthView instance in the calendar. + + + The following values are applicable and defined in the MonthLayout + enumeration:
+
+ Layout_7columns_x_6rows - horizontal layout
+
+ Layout_14columns_x_3rows - horizontal layout
+
+ Layout_21columns_x_2rows - horizontal layout
+
+ Layout_7rows_x_6columns - vertical layout, required when AllowColumnHeaderSelectors is true and + Orientation is set to Vertical.
+
+ Layout_14rows_x_3columns - vertical layout, required when AllowColumnHeaderSelectors + is true and Orientation is set to Vertical.
+
+ Layout_21rows_x_2columns - vertical layout, required when AllowColumnHeaderSelectors is true and Orientation + is set to Vertical.
+
+
+ + + RadCalendar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadCalendar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Use the RowHeaderText property to provide custom text for + all row header elements. + + + The text displayed for all CalendarView row header elements. The default value is "". + + + Gets or sets the text displayed for all row header elements. + + + + + The image displayed for all CalendarView row header elements. The default value is "". + + + Gets or sets the image displayed for all row header elements. + + + + + Use the ColumnHeaderText property to provide custom text + for all CalendarView column header elements. + + + The text displayed for all CalendarView column header elements. The default value is "". + + + Gets or sets the text displayed for all column header elements. + + + + + The image displayed for all CalendarView column header elements. The default value is null. + + + Gets or sets the image displayed for all column header elements. + + + + + Gets or sets the text displayed for the view selector. + + + The text displayed for the view selector. The default value is "x". + + + Use the ViewSelectorText property to provide custom text for + the CalendarView selector element. + + + + + Gets or sets the image displayed for the view selector element. + + + The image displayed for the CalendarView selector element. The default value is null. + + + + + Gets or sets the orientation (rendering direction) of the calendar component. + Default value is Horizontal. + + + + + Member + Description + + + Horizontal + Renders the calendar data row after row. + + + Vertical + Renders the calendar data column after + column. + + + + + + + Gets or sets an integer value representing the number of CalendarView + views that will be scrolled when the user clicks on a fast navigation button. + + + + + A collection of special days in the calendar to which may be applied specific formatting. + + + + + Gets or sets the padding of the calendar cells. + + + + + Gets or sets the vertical spacing between the calendar cells. + + + + + Gets or sets the horizontal spacing between the calendar cells. + + + + + Gets or sets the margin of the calendar cells. + + + + + Exposes the top instance of CalendarView or its derived types. + Every CalendarView class handles the real calculation and + rendering of RadCalendar's calendric information. The + CalendarView has the ChildViews collection which contains all the sub views in case of a multi view + setup. + + + + Indicates the fish eye feature factor of a cell. + + + Gets or sets the zooming factor of a cell. + + + Gets or sets the week end cell. + + + Gets or sets the date which that cell is representing. + + + Gets or sets a cell representing a special day. + + + Gets or sets the today cell. + + + Gets or sets the today cell. + + + Gets or sets the out of range cell. + + + Gets or sets the cell which is from other month. + + + Gets or sets the selected cell. + + + + enable or disable animation on mouse click + + + + Specifies the type of a selector sell. + + + + Rendered as the first cell in a row. When clicked if UseRowHeadersAsSelectors is true, + it will select the entire row. + + + + + Rendered as the first cell in a column. When clicked if UseColumnHeadersAsSelectors is true, + it will select the entire column. + + + + + Rendered in the top left corner of the calendar view. When clicked if EnableViewSelector is true, + it will select the entire view. + + + + + Gets or sets the count of the items in the fast navigation drop down + + + + + first button + + + + + Last button + + + + + previuos button + + + + + next button + + + + + today button + + + + + label element + + + + + Gets or sets date time format + + + + + Gets or sets a value whether drop down fast navigation is enabled. + + + + Gets or sets whether the fish eye functionality is enabled + + + Gets or sets the zooming factor of a cell which is handled by the fish eye functionality.. + + + Gets or sets the width of header cells. + + + Gets or sets the height of header cells. + + + + first button + + + + + Last button + + + + + previuos button + + + + + next button + + + + + Sets the way opacity is applied to carousel items + + + + + Opacity is not modified + + + + + Selected item is with opacity 1.0. Opacity decreases corresponding to the distance from the selected item. + + + + + Opacity increases relatively to items' ZIndex. The Item with greatest ZIndex has opacity of 1.0 + + + + + CreateNewCarouselItem delegate usined by RadCarousel control + + + + + Arguments of CreateNewCarouselItem event + + + + + Initializes a new instance of the class. + + The new carousel item. + + + + Gets or sets the newly created item that will be added in RadCarousel + + + + + Represents a custom made ellipse path which will be used to specify the path travelled by carousel items when animated + + + + + Gets or sets the angle where itms new items will first appear in the carousel view. + + + + + RadCarouselContentItem with CarouselElement and Reflection primitive + + + + + create element with HostedItem + + + + + + Custom implementation for RadCarouselItem + + + + + + + Represent the HostedItem + + + + + Gets the owner RadCarouselElement. + + The owner. + + + Represents a RadCarouselReflectionItem primitive that is drawn on the screen. + + + + Default cstor for RadCarouselReflectionPrimitive + + which element will be draw + + + + repaint Reflection Image + + + + + ElementInvalidated + + + + + + + Represent ItemReflectionPercentage + + + + + Represents a color editor box. The RadColorBox class is a simple wrapper for the + RadColorBoxElement class. The RadColorBox acts + to transfer events to and from its corresponding + RadColorBoxElement. The + RadColorBoxElement which is essentially the + RadColorBox control may be nested in other telerik controls. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the RadColorDialog of this control. + + + + + Gets the RadColorBoxElement of this control. + + + + + Gets or sets the value of the editor. + + + + + Determines if users can input text directly into the text field.. + + + + + This property is not relevant for this class. + + + + + Fires after the color dialog is closed. + + + + + Fires right before the value is changed. Cancelable event. + + + + + Fires after the editor value is changed. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + Initializes a new instance of the RadItemCollectionBase class. + + + + + Initializes a new instance of RadItemCollection based on another RadItemCollection. + + + + A RadItemCollection from which the contents are copied. + + + + + + Initializes a new instance of RadItemCollection containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Returns an enumerator that can iterate through + the RadItemCollection . + + None. + + + + Adds a with the specified value to the + Telerik.WinControls.RadItemCollection . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the RadItemCollection. + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another RadItemCollection to the end of the collection. + + + + A RadItemCollection containing the objects to add to the collection. + + + None. + + + + + Inserts a into the RadItemCollection at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + RadItemCollection . + + The to remove from the RadItemCollection . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Gets a value indicating whether the + RadItemCollection contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Returns the index of a in + the RadItemCollection . + + The to locate. + + The index of the of in the + RadItemCollection, if found; otherwise, -1. + + + + + Copies the RadItemCollection values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from RadItemCollection . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the RadItemCollection is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + Retrieves an array of the items in the collection. + + + + Fires when item is changed. + + + + + Gets or sets the owner of the collection. + + + + + Gets or sets an array of the items' types in the collection. + + + + + Gets or sets an array of the excluded items' types for this collection. + + + + + Gets or sets an array of the sealed items' types for this collection. + That are types that are allowed but not their descendants. + + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Gets the first found item, with Name property equal to itemName specified, case-sensitive. + + item Name + RadItem if found, null (Nothing in VB.NET) otherwise + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + Initializes a new instance of the RadItemCollectionBase class. + + + + + Initializes a new instance of RadItemCollection based on another RadItemCollection. + + + + A RadItemCollection from which the contents are copied. + + + + + + Initializes a new instance of RadItemCollection containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Returns an enumerator that can iterate through + the RadItemCollection . + + None. + + + + Adds a with the specified value to the + Telerik.WinControls.RadItemCollection . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the RadItemCollection. + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another RadItemCollection to the end of the collection. + + + + A RadItemCollection containing the objects to add to the collection. + + + None. + + + + + Inserts a into the RadItemCollection at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + RadItemCollection . + + The to remove from the RadItemCollection . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Gets a value indicating whether the + RadItemCollection contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Returns the index of a in + the RadItemCollection . + + The to locate. + + The index of the of in the + RadItemCollection, if found; otherwise, -1. + + + + + Copies the RadItemCollection values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from RadItemCollection . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the RadItemCollection is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + Retrieves an array of the items in the collection. + + + + Fires when item is changed. + + + + + Gets or sets the owner of the collection. + + + + + Gets or sets an array of the items' types in the collection. + + + + + Gets or sets an array of the excluded items' types for this collection. + + + + + Gets or sets an array of the sealed items' types for this collection. + That are types that are allowed but not their descendants. + + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Gets the first found item, with Name property equal to itemName specified, case-sensitive. + + item Name + RadItem if found, null (Nothing in VB.NET) otherwise + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + Initializes a new instance of the RadItemCollectionBase class. + + + + + Initializes a new instance of RadItemCollection based on another RadItemCollection. + + + + A RadItemCollection from which the contents are copied. + + + + + + Initializes a new instance of RadItemCollection containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Returns an enumerator that can iterate through + the RadItemCollection . + + None. + + + + Adds a with the specified value to the + Telerik.WinControls.RadItemCollection . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the RadItemCollection. + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another RadItemCollection to the end of the collection. + + + + A RadItemCollection containing the objects to add to the collection. + + + None. + + + + + Inserts a into the RadItemCollection at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + RadItemCollection . + + The to remove from the RadItemCollection . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Gets a value indicating whether the + RadItemCollection contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Returns the index of a in + the RadItemCollection . + + The to locate. + + The index of the of in the + RadItemCollection, if found; otherwise, -1. + + + + + Copies the RadItemCollection values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from RadItemCollection . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the RadItemCollection is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + Retrieves an array of the items in the collection. + + + + Fires when item is changed. + + + + + Gets or sets the owner of the collection. + + + + + Gets or sets an array of the items' types in the collection. + + + + + Gets or sets an array of the excluded items' types for this collection. + + + + + Gets or sets an array of the sealed items' types for this collection. + That are types that are allowed but not their descendants. + + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Gets the first found item, with Name property equal to itemName specified, case-sensitive. + + item Name + RadItem if found, null (Nothing in VB.NET) otherwise + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + Represents data item for the list of strips in the customize dialog of the . + + + + + Represents visual item for the list of strips in the customize dialog of the . + + + + + Represents data item for the list of strip items in the customize dialog of the . + + + + + Represents visual item for the list of strip items in the customize dialog of the . + + + + + Provides customization dialogs for the customization of a . + + + + + Creates an instance of a dialog form. + + + object that contains information about strips. + A refference to the created form. + + + + Creates a default localization provider. + + A new instance of the default localization provider. + + + + Fires when the current dialog provider has changed. + + + + + Fires when a customize dialog is shown + + + + + Fires before a customize dialog is shown + + + + + Gets or sets the current localization provider. + + + + + Represents a simple dialog that provides customization options for the element. + + + + + Creates a customize dialog that provides customization options for the strips in the specified . + + The from which the information for the strips will be taken. + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Sets the strings values depending on the current localization provider. + + + + + Represents a form that holds the items of a that has been undocked and is floating. + + + + + Tries to dock the floating strip in a specified . + + The control into which the strip should be docked. + + + + Tries to dock the floating strip on a specified point of screen. The docking will be completed only if + the control under that point is . + + The location in screen coordinates where the strip should try to dock. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the control that hosts the floating items. + + + + + Gets or sets the parent of the control to which the floating strip belongs. + + + + + Gets the which contains information about the floating strip. + + + + + Gets or sets the which the floating form is hosting. + + + + + Provides localization services for . + + + + + Represents localization strings for . + + + + + Holds information about the strips in a + + + + + Adds information about a specific strip to the + + The object to add info about. + + + + Removes information about a specific strip from the + + The object to remove info about. + + + + Gets a list of elements for which the is storing info. + + + + + Represents a menu item on the context menu opened by right click on the RadCommandBar control. + Has a coresponding element and controls its VisibleInCommandBar property. + + + + + This create the default layout + + + + + + Represent Layout that holds elements over the menu + + + + + Represents an arrow button element. Each telerik control has a + corresponding tree of RadElements; the RadArrowButtonElement can be nested + in other telerik controls. + + + + Gets or sets the + %arrow direction:Telerik.WinControls.Primitives.ArrowPrimitive.ArrowDirection%. + + + Gets the ArrowPrimitive object. + + + + Represents a drop down list in . + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the DropDownList box. + + + + + selects the hosted control + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the hosted . + + + + + Gets the collection of data-binding objects for this IBindableComponent. + + + + + Gets or sets the BindingContext for the object. + + + + + Gets the items collection of the . + + + + + Gets a reference to the drop down form associated with this RadDropDownList. + + + + + Determines whether control's height will be determined automatically, depending on the current Font. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the RadDropDownList. + + + + + Gets or sets a value that indicates whether items will be sized according to + their content. If this property is true the user can set the Height property of each + individual RadListDataItem in the Items collection in order to override the automatic + sizing. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + + + + Gets or sets a value of the enumeration. + This value determines how the pop-up form can be resized: vertically, horizontally or both. + + + + + Gets or sets a value indicating whether string comparisons are case-sensitive. + + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + + Rotate items on double click in the edit box part + + + + + + Gets or sets an object that implements the IFormatProvider interface. This object is used when formatting items. The default object is + CultureInfo.CurrentCulture. + + + + + + Gets or sets a format string that will be used for visual item formatting if FormattingEnabled is set to true. + + + + + + Gets or sets a value that determines whether text formatting is enabled for the visual items. + + + + + + /// + Gets or sets the easing type of the animation. + + + + + Gets or sets a value indicating whether the RadDropDownList will be animated when displaying. + + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + + + Gets or sets the height in pixels of the drop-down portion of the RadDropDownList. + + + + + Gets or sets a value specifying the style of the DropDownList + + + + + DefaultItems count in drop-down portion of the RadDropDownList. + + + + + Gets or sets the drop down maximum size. + + + + Represent the DropDownListElement element + + + + + Represent the List element + + + + + Provides a readonly interface to the currently selected items. + + + + + Gets or sets the currently selected value. Setting the SelectedValue to a value that is shared between many items causes the first item to be selected. + This property triggers the selection events. + + + + + Gets or sets the selected logical list item. + Setting this property will cause the selection events to fire. + + + + + Gets or sets the position of the selection. + Setting this property will cause the SelectedIndexChanging and SelectedIndexChanged events to fire. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Enable or disable Mouse Wheel Scrolling. + + + + + Indicating whether the Popup part of the control + are displayed. + + + + + Gets or sets a predicate which filters which items can be visible. + + + + + Gets or sets a filter expression which determines which items will be visible. + + + + + Gets a value indicating whether there is a Filter or FilterExpression set. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + Gets or sets the text that is selected in the editable portion of the DropDownList. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Show or hide item from the strip + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Occurs when the popup is about to be opened. + + + + + Occurs when the popup is opened. + + + + + Occurs when the popup is about to be closed. + + + + + Occurs when the popup is closed. + + + + + Occurs when the CommandBarTextBox has focus and the user presses a key + + + + + Occurs when the CommandBarTextBox has focus and the user releases the pressed key up + + + + + Occurs when the CommandBarTextBox has focus and the user presses a key down + + + + + Occurs when the Text property value is about to be changed. + + + + + Occurs when the Text property value changes. + + + + + Represents a button in . + + + + + Represents a drop down button in . + + + + + Gets the arrow part of the button. + + + + + Gets or sets the drop down menu, opened on click. + + + + + Gets menu items collection + + + + + Represents a host for elements in . + + + + + Gets or sets the hosted . + + + + + Gets or sets the hosted . + + + + + Show or hide item from the strip + + + + + Represents a label in . + + + + + Represents a separator for the items in . + + + + + Gets or sets the thickness of the separator item. + + + + + Represents a split button in . + + + + + Raises the event. + + true if the event should be canceled, false otherwise. + + + + Raises the event. + + + + + Occurs when the default item is changed. + + + + + Occurs before the default item is changed. + + + + + Gets or sets the default item of the split button. + + + + + Represetns a text box in . + + + + + Appends the given text + + + + + + Clears the editing control's text + + + + + Clears and undoes the text + + + + + Copies the selected text + + + + + Cuts the selected text + + + + + clears the selection + + + + + Gets a character from a given point + + + + + + + Gets the index of a character at a given point + + + + + + + gets the index of the first char in a given line + + + + + + + gets the first char index at the current line + + + + + + Gets a line number from a char index + + + + + + + Gets the position from a char index + + + + + + + pastes the text in the clipboard + + + + + Pasted a given text + + + + + + scrolls the textbox to the caret position + + + + + Makes a selection in a given range specified by a start position and selection length + + + + + + + selects the whole text + + + + + selects the hosted control + + + + + Show or hide item from the strip + + + + + Gets or sets the hosted . + + + + + Gets or sets the prompt text that is displayed when the TextBox contains no text + + + + + Gets or sets the color of prompt text that is displayed when the TextBox contains no text + + + + + Gets or sets the number of characters selected in the editable portion of the textbox. + + + + + Gets or sets the starting index of text selected in the textbox. + + + + + Occurs when the CommandBarTextBox has focus and the user pressees a key + + + + + Occurs when the CommandBarTextBox has focus and the user releases the pressed key up + + + + + Occurs when the CommandBarTextBox has focus and the user pressees a key down + + + + + Occurs when the Text property value is about to be changed. + + + + + Occurs when the Text property value changes. + + + + + Occurs when the element recieves focus. + + + + + Occurs when the element loses focus. + + + + + Represents a toggle button in . + + + + + Raises the StateChanging event. + + + + + Raises the StateChanged event. + + + + + Raises the StateChanged event. + + + + + Raises the IsCheckedChanged event. + + + + + Occurs when the IsChecked property is changed. + + + + + Occurs before the toggle state is changed. + + + + + Occurs when the toggle state is changed. + + + + + Occurs when the elements's check state changes. + + + + + Gets or sets the CheckState + . CheckState enumeration defines the following values: Unchecked, Checked, and Indeterminate. + + + + + Gets or sets the toggle + state. Toggle state enumeration defines the following values: Off, + Indeterminate, and On. + + + + + Gets or sets a value indicating whether the toggle button has three or two + states. + + + + + + Represents a RadCommandBar control - a flexible component for implementation of tool and + button bars featuring docking behavior, toggling buttons, shrinkable toolbars. The RadCommandBar is responsible for managing + RadCommandBarBaseItem items which are positioned on some + of the CommandBarStripElement elements /// + + + Only items that inherit the RadCommandBarBaseItem class + can be placed inside the strip elements. You han use the special CommandBarHostItem + to host any other RadElement. + + + + + + Raises the event. + + A that contains the + event data. + True if the change of orientation should be canceled, false otherwise. + + + + Raises the event. + + A that contains the + event data. + + + + Propagete ThemeName to child bar's menu + + + + + Apllies the orientation to the control and its child elements. + + The orientation to apply + Indicates whether events should be fired + + + + Gets or sets which RadCommandBar borders are docked to its parent control and determines + how a control is resized with its parent. + + + One of the values. The default + is . + + + The value assigned is not one of the + values. + + 1 + + + + Gets the menu opened upon rightclick on the control. + + + + + Gets or sets the size in pixels when current strip is being Drag and Drop in next or previous row. + + + + + Gets or sets the RadCommandBarElement of the RadCommandBar control. + + + + + Gets or sets the orientation of the commandbar - could be horizontal or vertical. + This property is controlled by the Dock property of the RadCommandBar control. + + + + + RadCommandBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadCommandBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs before the orientation is changed. + + + + + Occurs after the orientation is changed. + + + + + Occurs before a floating form is created. + + + + + Occurs before a floating strip is docked. + + + + + Occurs when a floating strip is created. + + + + + Occurs when a floating strip is docked. + + + + + Gets the rows of the commandbar. + + + + + Represents the RootElement of the RadCommandBar control. + + + + + Raises a bubble event to notify its parents about the beginning of a drag. + + A that contains the + event data. + true if the drag should be canceled, false otherwise. + + + + Raises a bubble event to notify its parents about the end of a drag. + + A that contains the + event data. + + + + Raises a bubble event to notify its parents about the drag. + + A that contains the + event data. + + + + Paints the dots of the grip element. + + The IGraphics object where the element should be painted. + The angle under which the element should be painted. + The factor of scaling the element. + + + + Gets the delta of the drag. + + + + + Gets whether the item is being dragged. + + + + + Gets or sets the orientation of the grip element. + + + + + Gets or sets the that owns the grip element. + + + + + Gets or sets the size of the painted dots. + + + + + Gets or sets the space between dots. + + + + + Gets or sets the shadow offset of the dots. + + + + + Gets or sets the number of dots. + + + + + Gets or sets the elements orientation inside the stacklayout. + Possible values are horizontal and vertical. + + + + + Represent a single strip with controls inside + + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The collection that is changed. + The targeted element of the collection. + The type of the operation. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + true if the event should be canceled, false otherwise. + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + true if the event should be canceled, false otherwise. + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + true if the event should be canceled, false otherwise. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + true if the event should be canceled, false otherwise. + + + + Forces the drag to end. + + + + + Measures the items with the size given and calculates the expected size of the strip + including the and . + + The size to measure the items with. + The calculated size of the strip. + + + + Subscribes to the children's events. + + + + + Unsubscribe from the children's events. + + + + + Applies an orientation to the strip and its children. + + The orientation to apply. + + + + Occurs before dragging is started. + + + + + Occurs when item is being dragged. + + + + + Occurs when item is released and dragging is stopped. + + + + + Occurs when Items collection is changed. + + + + + Occurs when item is clicked. + + + + + Occurs when item is moved to the overflow panel. + + + + + Occurs when item is moved out from the overflow panel. + + + + + Occurs before oferflow menu is opened. + + + + + Occurs when overflow menu is opened. + + + + + Occurs before oferflow menu is opened. + + + + + Occurs when overflow menu is opened. + + + + + Occurs before VisibleInCommandBar property is changed. + + + + + Occurs when VisibleInCommandBar property is changed. + + + + + Occurs before item is moved in or out of the UncheckedItems collection. + + + + + Occurs when item is moved in or out of the UncheckedItems collection. + + + + + Occurs before VisibleInCommandBar property is changed. + + + + + Occurs when VisibleInCommandBar property is changed. + + + + + Occurs when Orientation property is changed. + + + + + Occurs before Orientation property is changed. + + + + + Gets the form in which the items are placed where the strip is floating. + + + + + Gets the layout panel in which the items are arranged. + + + + + Gets or sets Overflow menu single strip minimum size. + + + + + Gets or sets Overflow menu single strip maximum size. + + + + + Gets or sets the desired location of the strip element. + + + + + + Gets or sets if the strip can be dragged. + + + + + + Gets or sets if the strip can be floating. + + + + + + Gets the delta of the drag. + + + + + + Gets or sets whether the strip is beeing dragged. + + + + + Gets or sets whether the strip is visible in the command bar. + This property is changed by the context menu which is opened on right click on the control. + + + + + + Gets or sets the elements orientation inside the line element. + Possible values are horizontal and vertical. + + + + + Gets whether the strip has items in its overflow panel. + + + + + Gets or sets the element of the strip. + + + + + Gets or sets the element of the strip. + + + + + Gets the items contained in the strip. + + + + + Represent a layout for the items contained in a strip + + + + + Represent the overflow button at the end of each strip + + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + The element that is reponsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is reponsible for firing the event. + A that contains the + event data. + + + + Gets the "Add or Remove Items" menu item from overflow menu + + + + + Gets the menu item from overflow menu which opens the Customize Dialog + + + + + Gets the overflow panel which contains the overflowed items + + + + + Gets the RadDropDownMenu that is shown on click. + + + + + Gets whether there are items in the overflow panel. + + + + + Gets or sets the orientation of the overflow button. + + + + + Gets or sets the dropdown menu element theme name. + + + + + Gets or sets the panel in which overflowed items are arranged. + + + + + Gets or sets the ArrowPrimitive element of the button. + + + + + This event fires before oferflow menu is opened. + + + + + This event fires when overflow menu is opened. + + + + + This event fires before oferflow menu is opened. + + + + + This event fires when overflow menu is opened. + + + + + Represents a menu item from drop down menu opened by the . + Has a coresponding item from the Items collection and + controls its VisibleInStrip property. + + + + + Create RadCommandBarOverflowMenuItem instance + + Which item will be show in menu + Menu that should be updated on representedItem visibility is changed + + + + Gets or sets the image that is displayed on menu item element. + + + + + Gets or sets the text that is displayed on menu item element. + + + + + Gets or sets whether the item is in checked state. + This property affects the VisibleInStrip property of the coresponding item in . + + + + + Represents a row of the . + Contains a collection of elements. + + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + True if the change of orientation should be canceled, false otherwise. + + + + Moves specified in coresponding row + if its property points to a location in other row. + + The to move. + + + + Applies the new orientation to the element and its children. + + The orientation to apply. + + + + Gets or sets the that owns this row. + + + + + Occurs before dragging is started. + + + + + Occurs when item is being dragged. + + + + + Occurs when item is released and dragging is stopped. + + + + + Occurs when Orientation property is changed. + + + + + Occurs before Orientation property is changed. + + + + + Gets the elements contained in this row. + + + + + This class provides API for managing components. + + + + + Gets an instance of the struct + that represents the location of the current alert + according to its screen position setting and + the currently opened alerts. + + An instance of the + class that represents the alert which position to define. + The evaluated position in screen coordinates. + + + + Sets the active screen. The active screen is used + to calculate the positioning of all desktop alerts. + + An instance of the + class that is the active screen to set. + + + + Gets an enumerator for the currently shown dekstop alerts. + + + + + + Recalculates the location of all opened alerts + based on their screen position. + + + + + Registers an instance of the and + displays it on the screen according to its + + + + + + Unregisters a desktop alert from the manager. + + The alert to unregister. + + + + Evaluates whether a given + is registered with the . + + The to check. + + + + + Fires when an instance of the class + is registered with this . + + + + + Fires when an instance of the class + is removed from this . + + + + + Gets the only instance of the + class. + + + + + Gets an instance of the class + that represents the screen onto which the + positions the alert popups. + + + + + This class encapsulates information relevant to the events of the . + + + + + Creates an instance of the class + with a specified . + + + + + + Gets an instance of the class + associated with the event context. + + + + + This class represents the popup of a component. + This popup hosts an instance of the class which + represents the element hierarchy of the alert. + + + + + Creates an instance of the class. + + An instance of the class that + represents the owner alert of the + + + + Creates an instance of the class + with specified owner. + + An instance of the class that + represents the owner element of the + An instance of the class that + represents the owner alert of the + + + + Stops the auto-close timer. + + + + + Restarts the auto-close timer. + + + + + Gets a sets a boolean value determining whether the alert popup will be automatically + closed after a given amount of time. + + + + + Gets or sets the amount of time in seconds after + which the alert will be automatically closed. + + + + + Gets or sets a boolean value determining whether the options button is shown. + + + + + Gets or sets a boolean value determining whether the pin button is shown. + + + + + Gets or sets a boolean value determining whether the close button is shown. + + + + + Gets or sets a boolean value determining whether the popup is pinned on the screen. + + + + + Gets or sets a boolean value determining whether the popup + can be moved by dragging it by the grip. + + + + + Gets an instance of the which + represents the main alert element. + + + + + Gets or sets the caption text of the alert. + + + + + Gets or sets the content text of the alert. + + + + + Gets or sets the content image of the alert. + + + + + Gets an instance of the that + holds the buttons items added to the alert component. + + + + + This class represents the element which holds the buttons + that can be added in a window. + + + + + Gets an instance of the that + represents the buttons collection of the window. + + + + + Gets an instance of the + that represents the layout panel which holds the added buttons. + + + + + This class represents the caption of a . + It contains caption grip which is used to move the alert window, close + button and options drop-down button. + + + + + Gets an instance of the class + that represents the part of a that + can be used to move the component on the screen. + + + + + Gets an instance of the class + that represents the part of a that contains + the text and the system buttons. + + + + + This class represents the caption grip of a window. + + + + + This class represents the content of a component. + The content usually is built of an image and HTML enabled text. + + + + + This element represents the text and system buttons part of a component. + + + + + Gets an instance of the that + represents the layout panel which holds the alert window's + text and system buttons elements. + + + + + Gets an instance of the that + represents the layout panel which holds the alert window's caption + buttons. + + + + + Gets an instance of the class + that represents the text of the text + caption. + + + + + Gets an instance of the class + that represents the close button of a component. + + + + + Gets an instance of the class + that represents the pin button of a component. + + + + + Gets an instance of the class + that represents the options button of a component. + + + + + This class represents the main element of a window. + + + + + Gets or sets a value indicating whether the control is automatically resized by Height + to display its entire contents. + + + + + Gets or sets a boolean value determining whether the options button is shown. + + + + + Gets or sets a boolean value determining whether the pin button is shown. + + + + + Gets or sets a boolean value determining whether the close button is shown. + + + + + Gets or sets an instance of the class + that represents the alert's content image. + + + + + Gets or sets the text of the caption. + + + + + Gets or sets the content text of the . + This is the actual text displayed in a . + + + + + Gets an instance of the class + that represents the caption of a component. + The caption contains moving grip and system buttons. + + + + + Gets an instance of the class + that represents the main content element of a component. + This element contains an image and a text element. + + + + + Gets an instance of the class + that represents the panel which holds the buttons added to the + component. + + + + + This class encapsulates information needed for displaying a . + The class contains caption text, content text, content image and a collection of buttons. + + + + + Creates an instance of the class + with specified content text. + + The text which will be displayed as a content of the + + + + Creates an instance of the class + with specified content text and caption text. + + The text which will be displayed as a content of the + The text which will be displayed as a caption of the + + + + Creates an instance of the class + with specified content text, caption text and content image. + + The text which will be displayed as a content of the + The text which will be displayed as a caption of the + An instance of the class that will be displayed as a content image of the + + + + Creates an instance of the class + with specified content text, caption text, content image and a collection of buttons. + + The text which will be displayed as a content of the + The text which will be displayed as a caption of the + An instance of the class that will be displayed as a content image of the + An instance of the class that holds the buttons which will be displayed in the + + + + Represents a set of possible screen positions for a + windows. + + + + + The window is shown + at the position that is set to the Location property. + + + + + The window is shown + at the bottom right part of the working area + of the current screen. + + + + + The window is shown + centered at the bottom part of the working area + of the current screen. + + + + + The window is shown + at the bottom left part of the working area + of the current screen. + + + + + The window is shown + at the top right part of the working area + of the current screen. + + + + + The window is shown + centered at the top part of the working area + of the current screen. + + + + + The window is shown + at the top left part of the working area + of the current screen. + + + + + This class represents a Desktop Alert component which can be used to + display a small window on the screen to notify the user that an + event occurred. The location of the window and the way it appears + can be customized. + + + + + Creates an instance of the class. + + + + + Creates an instance of the class. + + An implementation of the interface + that holds this instance. + + + + Returns an instance of the class + that represents the alert's popup + + + + + Displays the alert popup on the screen at the specified location. + + + + + Hides the alert popup from the screen. + + + + + Resets the explicit location modifier. In other words, if the user + has modified the location of the alert's popup, the + will not consider it when rearranging the visible alerts. This method + will reset the explicit location modifier and thus the + will continue managing the location of the alert according to its location settings. + + + + + Gets or sets a value indicating whether the control is automatically resized by Height + to display its entire contents. + + + + Gets or sets a value indicating whether control's elements are aligned + to support locales using right-to-left fonts. + One of the values. + The default is . + The assigned + value is not one of the values. + + + + + Gets or sets a boolean value determining whether a sound is played + when the alert's popup is shown. + + + + + Gets or sets the sound which is played when the alert's popup is shown + and the PlaySound property is set to true. + + + + + Gets or sets the initial opacity of the alert's popup. + + + + + Gets or sets a boolean value determining whether the options button is shown. + + + + + Gets or sets a boolean value determining whether the pin button is shown. + + + + + Gets or sets a boolean value determining whether the close button is shown. + + + + + Gets or sets a boolean value determining whether the alert's + popup will be pinned on the screen. If pinned, the alert's popup + will not be automatically closed upon mouse click outside its bounds + or if the AutoClose property is set to true. + + + + + Gets or sets a boolean value determining whether the popup + can be moved by dragging the caption grip. + + + + + Gets or sets a boolean value determining whether the alert's popup + will be animated. + + + + + Gets or sets a value determining the direction of the alert's popup animation. + + + + + Gets or sets the count of the alert's drop-down animation frames. + + + + + Gets or sets the type of the drop-down animation easing. + + + + + Gets or sets a value from the + enumerator that determines the type of fade animation performed + when the alert's popup is opened/closed. + + + + + Gets or sets the interval in milliseconds between two animation frames. + + + + + Gets or sets the count of animation frames for the fade animation. + + + + + Gets a sets a boolean value determining whether the alert popup will be automatically + closed after a given amount of time. + + + + + Gets or sets the amount of time in seconds after + which the alert will be automatically closed. + + + + + Gets or sets a value of the + enum which defines the position of the alert popup + on the working area of the active screen. + + + + + Gets or sets an instance of the struct + which defines fixed size for the alert's popup. The default + value is an empty size. In this case the popup adjusts its + size according to its content. Otherwise the value of this property is + considered. + + + + + Gets or sets the content image of the . + + + + + Gets or sets the text displayed in the alert popup. This text + can be additionally HTML formatted to achieve better appearance. + + + + + Gets or sets the alert's caption text. + The caption text is displayed below the moving grip of the alert's popup. + + + + + Gets or sets the items collection containing the button items shown at the bottom + part of the desktop alert's popup. + + + + + Gets the items collection containing the items added to the options drop-down button + of the desktop alert's popup. + + + + + Gets an instance of the class + that represents the popup of the desktop alert. + + + + + This element is used for the sole purpose of storing the current DPI scale. + + + + + Fires when the alert's popup is about to be opened. The opening + action can be canceled by modifying the arguments of this event. + + + + + Fires when the alert's popup was opened. + + + + + Fires when the alert's popup is about to be closed. + The closing action can be canceled by modifying the + arguments of this event.. + + + + + Fires when the alert's popup was closed. + + + + + IsItemsDirty Property + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + DropDownList Property + + + + + represent Navigation Button position + + + + + RadCarouses is a control that animates a group of items in Carousel-style + rotation. + + + You can add item to RadCarousel control using Items collection, or through binding + to data by assigning its DataSource properties. In order to manage the display of + great number of items you may need to set the + property to true. In this case you should specify the maximum + visible number of item, using the property. + Item path can be specified through property. Each + carousel path instance contains properties to adjust various aspects of the path + curve, including "start" and "end" position, selected items position. If you use a + RadCarousel bound to a data, you would need to handle the + ItemDataBound event to change each carouselItem's + properties according to items in the data source. You may also need to handle the + CreateNewCarouselItem event, to change the default type of items + RadCarousel will produce when data binding. + + + + + Enable or disable the re-animation of RadCarousel on form maximize, minimize or resize + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the default size of the control. + + + + + Gets a reference to the Carousel element, which encapsulates the most of the + functionality of RadCarousel + + + + + Gets ot sets the number of animation frames between two positions + + + + + Gets or sets the delay in ms. between two frames of animation + + + + + Gets or sets a value indicating that the Carousel will loop items automatically + + + + + Gets or sets a value indicating whether carousel will increment or decrement item indexes when in auto-loop mode. + + + + + Gets or sets a value indicating when carousel will pause looping if in auto-loop mode. + + + + + Gets or sets a value indicating the interval (in seconds) after which the carousel will resume looping when in auto-loop mode. + + + + + + + + + + + + + Gets or sets the item in the carousel that is currently selected. + + + + + + + Gets or sets the field from the data source to use as the actual value for the + carousel items. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMember property. + + + + + Gets or sets the number of items that carousel displays when is set to true. + + + + + Get or sets value indicating the maximum number of items that will be displayed in + the carousel, even when there are more Items in the + collection. Virtualizing the carousel would significantly improve its performance. + + + False indicates that all items be displayed. + It depends on SelectedIndex, which items are displayed in this case. + + + + + Gets or sets value indicating that when item position goes beyond the carousel + path, it will be displayed again in the beginning of the carousel path. + + + + + + + + Sets the way opacity is applied to carousel items + + + + + Gets or sets value indicating the minimum value of the opacity applied to items + + + + + + + + Gets or sets value indicating which of the predefined animations will be applied to carousel items + + + + + Gets or sets the default action when item is clicked as member. + + The item click default action. + + + + Gets or sets value indicating the height (in percentage - values from 0.0. to 1.0) of reflection that will be painted bellow each carousel item. + + The item reflection percentage. + + 0.0 indicates no reflection and 1.0 indicates 100% of the height of the original item + + + + + Present the Previous button + + + + + Pressent the Next button + + + + + Get or sets the minimum size to apply on an element when layout is calculated. + + + + + Represent the Navigation buttons Positions + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether the keyboard navigation is enabled. + + + + + Provides values for ItemClickDefaultAction property + + + + + Indicates that item click will not be handeled by default + + + + + Indicates that item will be set selected when clicked. + + + + + RadElement that animates a list of items using Carousel-style view, used by control + + + + + Fires the ItemLeaving event + + Event specific arguemtns + + + + Fires the ItemEntering event + + Event specific arguemtns + + + + Raises the CreateNewCarouselItem event. + + + + + Raises the ItemDataBound event. + + + + + Raises the SelectedItemChanged event. + + + + + Raises the SelectedValueChanged event. + + + + + Raises the SelectedIndexChanged event. + + + + + Finds the first item in the list box that matches the specified string. + + The string to search for. + The zero-based index of the first item found; returns null if no match is found. + + + Initiates batch update of the items. + + + Ends batch update of the items. + + + Gets the value of the given item. + + + + Finds the first item in the list with Text that starts with the specified string. + + The string to search for. + The zero-based index of the first item found; returns null if no match is found. + + + + Finds the first item in the list with Text containing the specified string. + + The string to search for. + The zero-based index of the first item found; returns null if no match is found. + + + + Occurs when an Item is about to leave carousel view + + + + + Occurs when an Item is about to enter carousel view + + + + + Occurs before a new databound carousel item is created. You can use this event to + replace the default item. + + + + Occurs after an Item is databound. + + + Occurs when the selected items is changed. + + + Fires when the selected value is changed. + + + Fires when the selected index is changed. + + + Gets a collection of RadItem objects managed by RadCarousel. + + Items are populated automatically when RadCarousel is data-bound. When using , carousel displays only number of items at a time. + + + + Gets the element, which contains all visible carousel items + + + + Gets or sets a value indicating whether sorting of carousel items is + case-sensitive. + + + + + Gets or sets a value indicating whether the keyboard navigation is enabled. + + + + Gets or sets the item in the carousel that is currently selected. + + + Gets or sets the index the currently selected item. + + + Gets or sets a value defining the currently selected item. + + + + Gets or sets the field from the data source to use as the actual value for the + carousel items. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMember property. + + + + Gets or sets the data source that the carousel will bind to. + + + + Gets or sets the default action when item is clicked as member. + + The item click default action. + + + + Gets or sets value indicating the height (in percentage - values from 0.0. to 1.0) of reflection that will be painted bellow each carousel item. + + The item reflection percentage. + + 0.0 indicates no reflection and 1.0 indicates 100% of the height of the original item + + + + + Set ot get the Carousel animation frames + + + + + Set ot get the Carousel animation frames delay + + + + + Gets or sets a value indicating the interval (in seconds) after which the carousel will resume looping when in auto-loop mode. + + + + + Present the Previous button + + + + + Pressent the Next button + + + + + Get or sets the minimum size to apply on an element when layout is calculated. + + + + + Represent the Navigation buttons Possitions + + + + + Type of animation to be applied on carousel items + + + + + Enable or disable the re-animation of RadCarousel on form maximize, minimeze or resize + + + + + Sets the way opacity is applied to carousel items + + + + + Gets the owner RadCarouselElement. + + The owner. + + + + Gets or sets CarouselPath object that defines the curve which carousel items will animate through + + + + + Gets or sets carousel items' animation easing. + + + + + + + + Gets or sets the set of animations to be applied on carousel items + + + + + Set ot get the Carousel animation frames + + + + + Set ot get the Carousel animation frames + + + + + Gets or sets a value indicating whether carousel will increnment or decrement item indexes when in auto-loop mode. + + + + + Gets or sets a value indicating that the Carousel will loop items automatically + + + + + Gets or sets a value indicating when carousel will pause looping if in auto-loop mode. + + + + + Gets or sets the font for this RadListDataItem instance. + + + + Represents the method that will handle the DataBindingComplete event of a RadListView and RadDropDownList + 2 + + + Provides data for the ListBindingCompleteEventHandler event. + 2 + + + Initializes a new instance of the ListBindingCompleteEventArgs class. + One of the values. + + + Gets a value specifying how the list changed. + One of the values. + 1 + + + + Gets or sets the font. Font type defines a particular format for text, including + font face, size, and style attributes. + + + + + Contains the visual list item which is to be formatted in the VisualItemFormatting event of RadListControl. + + + + + Gets the visual list item which is to be formatted. + + + + + Allows setting custom instances of the visual list items in RadListControl. + + + + + Gets or sets the custom visual list item that will be used as visual representation + of the data items. + + + + + Allows setting custom instances of the data items in RadListControl. + + + + + Gets or sets a data item that will be used to store logical information + to represent data records. + + + + + Provides a data item that was just bound during RadListControls data binding. + + + + + Gets the data item that was just associated with a data record. + The data record can be accessed through the DataBoundItem property. + + + + + Provides the new sort style after the same property of RadListControl changes. + + + + + Gets the new sort style value. + + + + + This interface is used to provide alternative ways to compare strings. + Users can assign their custom comparer to the FindStringComparer property of the respective control. + + + + + This class is used to create the initial instance of the IFindStringComparer. + It uses the string StartsWith method. + + + + + This class is used to precisely compare strings. It searches for an item whose text is exactly equal to the provided string. + + + + + This class is used to determine whether a string contains another string. + + + + + This enum is used in RadListControl.FindString() to determine whether an item is searched via the text property + set by the user or the text provided by the data binding logic. + + + + + Clears this instance. + + + + + Gets a value for the Value property in unbound mode. + + Returns an object reference pointing to the value of the Value property in unbound mode. + + + + This method is called when setting the Value property of a RadListDataItem when it is in unbound mode. + + The value to set the Value property to. + + + + Key object that is used by the FindByKey method of RadListView. + By default this property holds a reference to the . + + + + + Gets or sets the key for the left image associated with this list view item. + + Image Property + ImageIndex Property + + + + Gets or sets the left image list index value of the image displayed. + + Image Property + ImageKey Property + + + + Gets or sets a value that indicates if this item is current. + + + + + Gets a value indicating whether this instance has style. + + true if this instance has style; otherwise, false. + + + + Gets or sets a value for the property indicated by ValueMember if in bound mode, and private value in unbound mode. + Trying to explicitly set this property in bound mode will result in an InvalidOperationException. + + + + + Gets or sets the text. + + The text. + + + + Gets a value that indicates if this item is selected. + + + + + Gets a value that indicates if this item is currently visible. + + + + + Gets a value that indicating the current check state of the item. + + + + + This collection is used for adding items at design time. It should not be used in runtime. + + + + + Gets or sets the backcolor of the list node. Color type represents an ARGB color. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the list item. This property is applicable to radial, glass, + office glass, gel, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the list item. This property is applicable to radial, glass, + office glass, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the list item. This property is applicable to radial, glass, + office glass, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the border color of the list item. + + + + + Gets or sets gradient angle for linear gradient. + + GradientStyle Property + GradientPercentage Property + GradientPercentage2 Property + NumberOfColors Property + The default value is 90.0. + + + + Gets or sets GradientPercentage for linear, glass, office glass, gel, vista, and + radial gradients. + + GradientStyle Property + GradientPercentage2 Property + GradientAngle Property + NumberOfColors Property + The default value is 0.5. + + + + Gets or sets GradientPercentage for office glass, vista, and radial + gradients. + + GradientStyle Property + GradientPercentage Property + GradientAngle Property + NumberOfColors Property + The default value is 0.5. + + + + Gets and sets the gradient style. The possible values are defined in the gradient + style enumeration: solid, linear, radial, glass, office glass, gel, and vista. + + + The default value is + GradientStyles.Linear. + + GradientStyles Enumeration + GradientPercentage Property + GradientPercentage2 Property + GradientAngle Property + NumberOfColors Property + + + + Gets or sets the number of used colors in the gradient effect. + + BackColor Property + BackColor2 Property + BackColor3 Property + BackColor4 Property + GradientStyle Property + The default value is 4. + + + + Gets or sets the relation between the image and the text. + + + + + Gets or sets the font. + + The font. + + + + Gets or sets the color of the fore. + + The color of the fore. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the back color4. + + The back color4. + + + + Gets or sets the back color3. + + The back color3. + + + + Gets or sets the back color2. + + The back color2. + + + + Gets or sets the color of the back. + + The color of the back. + + + + Gets or sets the number of colors. + + The number of colors. + + + + Gets or sets the gradient percentage2. + + The gradient percentage2. + + + + Gets or sets the gradient percentage. + + The gradient percentage. + + + + Gets or sets the gradient angle. + + The gradient angle. + + + + Gets or sets the gradient style. + + The gradient style. + + + + Gets or sets the text alignment. + + The text alignment. + + + + Gets or sets the image alignment. + + The image alignment. + + + + Sets the owner for this column. This method is used internally, never call it directly. + + The owner element. + + + + Adjusts the column width to fit the contents of all cells in the column, including the header cell. + + + + + Gets the that owns this column. + + + + + Gets the maximum width that the column can be resized to. + + + + + Gets the minimum width that the column can be resized to. + + + + + Gets the current width of the column. + + + + + Gets the name of the field of the bound item corresponding to this column. + + + + + Gets the name of the column. Must be unique for each column in the same . + + + + + Gets or sets the text that will be displayed in the header cells. + + + + + Gets a value indicating whether the column is in bound mode. + + + + + Gets or sets a value indicating whether this column is current. + + + + + Gets or sets a value indicating whether this column will be visible in DetailsView. + + + + + Gets or sets the mode by which the column automatically adjusts its width after BestFit is executed. + + + + + Gets or sets a value indicating whether the group's items should be displayed. + + + + + Gets the items in this group. + + + + + Gets the data group that is assigned to this group. + + + + + Clears this instance. + + + + + Used by the best fit columns mechanism so the cell measure would ignore the column width. + + + + + Represents the method that will handle events in . + + + + + + + Provides data for all events used in + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets a value indicating whether the instance to be processed by . + + + + + Defines the check on click mode. Check on click states are used in RadListView and RadCheckedListBox. + + + + + Item CheckState is not toggled on click. + + + + + Item is selected and CheckState is toggled on first click. + + + + + Item is selected on first click. On second click the CheckState is toggled. + + + + + Determines whether this instance can execute a best fit columns operation. + + + true if this instance can execute a best fit columns operation; otherwise, false. + + + + + Widens / shrinks a column based on the space required by the text in the columns. + + The column. + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + The mode. + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where a column will be dropped after a drag operation. + + + + + Represents the view type of . + + + + + Represents a simple list view type. + + + + + Represents an icon view type. + + + + + Represents a detailed view type. + + + + + Represents a check box element. The RadCheckBox + class is a simple wrapper for the RadCheckBoxElement class. The + RadCheckBox acts to transfer events to and from its + corresponding RadCheckBoxElement instance. The radCheckBoxElement which is + essentially the RadCheckBox control may be nested in + other telerik controls. + + + + Gets or sets a value indicating the alignment of the check box. + + + + Gets an instance of the class + that represents the check box part of the . + + + + + Gets the item that is being dropped. + + + + + Gets the item that the DraggedItem is being dropped on. + + + + + Gets the item that is being dropped. + + + + + Gets the item that the DraggedItem is being dropped on. + + + + + Provides data for the RadPageViewItemsChanged event. + + + + + Gets the changed item. + + + + + Gets the change operation. + + + + + Initializes a new instance of the RadPageViewItemsChangedEventArgs class. + + The changed item. + The change operation. + + + + Provides data for the RadPageViewItemSelected event. + + + + + Gets the previous selected item of RadPageView. + + + + + Gets the selected item of RadPageView. + + + + + Initializes a new instance of the RadPageViewItemSelectedEventArgs class. + + The previous selected item of RadPageView. + The selected item of RadPageView. + + + + Provides data for the RadPageViewItemSelecting event. + + + + + Gets the selected item of RadPageView. + + + + + Gets the item to be selected. + + + + + Initializes a new instance of the RadPageViewItemSelectingEventArgs class. + The selected item of RadPageView. + The item to be selected. + + + + + Gets or sets the rectangle (in screen coordinates) which will be used to align the menu. + + + + + Gets a list with all the items that will be displayed. + + + + + Gets or sets the horizontal alignment of the menu that will display the items. + + + + + Gets or sets the vertical alignment of the menu that will display the items. + + + + + Gets the view mode associated with the event. + + + + + Determines whether the event may continue or it should be canceled. + + + + + Gets the string corresponding to the given ID. + + String ID + The string corresponding to the given ID. + + + + Gets or sets the width of the items area. + + + + + Represents a page in a RadPageView instance. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the image to be displayed by the associated RadPageViewItem instance. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the length of the current . The length + represents the fixed amount of space the page will take when the layout of the control is performed. + Note: This property is only functional when the control + is in ExplorerBar mode and its content size mode is set to FixedLength. + + + + + Gets or sets a boolean value determining whether the content of the current + is visible. This property is only functional in the + when the control is in ExplorerBar view mode. + + + + + Gets or sets the tooltip to be displayed when the item hovers page's associated item. + + + + + Gets or sets the text to be displayed in the associated item. + + + + + Gets the RadPageView instance that owns this page. + + + + + Gets the RadPageViewItem instance which is the UI representation of this page. + + + + + Gets or sets the size of the item of RadPageView.This size will be used in is PageViewItemSizeMode.Individual mode. + + + + + This enumerator defines the possible size modes for the content areas in a . + The size modes define how the content areas are calculated according to their content or the size of the + control. + + + + + The length of the content area is fixed and is defined by the PageLength value for each . + + + + + The length of the content area is automatically calculated to fit the length of the content. + + + + + The length of all visible content areas is equal. This usually implies that no scrollbars are shown. + + + + + This class contains layout information about a and + performs base layout operations over an item like measuring. + + + + + This class represents the element that implements the ExplorerBar view of the control. + This view allows for multiple visible pages, whereby items can be expanded/collapsed to show their content in an associated page. + + + + + Gets or sets a value from the enum + which determines the location of the items in relation to the content area. + + + + + Gets or sets a value from the enum + that determines how items in the stack view are selected and positioned. + + + + + Scroll in RadPageViewExplorerBar mode to control. + Control will be focused + + control to scroll + + + + Gets an instance of the that represents + the scrollbar of the . + + + + + Gets or sets a value from the enum + that defines how the content areas for each item are sized. + + + + + This class represents a single item in the 's explorer bar view mode. + + + + + Creates an instance of the . + + + + + Creates an instance of the . + + + + + Creates an instance of the . + + + + + Gets or sets a boolean value that determines whether the content of the + is expanded. + + + + + Gets or sets an instance of the that + represents the content holder of this . + + + + + Gets an instance of the class which is + the layout panel that holds instances of the + class representing items currently collapsed by using the overflow grip. + + + + + Gets the overflow menu button. + + + + + Gets the overflow drop-down menu. + + + + + Gets the overflow menu item used to show fewer items in the stack. + + + + + Gets the overflow menu item used to show more buttons in the stack. + + + + + Gets the overflow menu item used to add/remove items in the stack. + + + + + Represents a simple button within a RadPageViewElement. + + + + + Determines whether the RadPageViewItem is currently selected (associated with the SelectedPage of the owning RadPageView). + + + + + Gets an array containing the items that are currently hidden by using the + overflow grip. + + + + + Gets an array containing the items that are currently unchecked by using the + overflow menu. + + + + + This method returns the count of the items which are currently + visible to the user. + + + + + + Makes an item invisible. The item will appear as unchecked in the + overflow menu. + + The item to make invisible. + + + + Makes an item visible. The item will appear as checked in the + overflow menu. + + The item to make visible. + + + + Drags the overflow grip down to hide the first possible visible item. + + True if the drag operation succeeds, otherwise false. + + + + Drags the overflow grip up to show the first possible hidden item. + + True if the drag operation succeeds, otherwise false. + + + + Shows a given amount of items from the hidden items + in the starting from the + bottom part of the stack. + + The count of the items to be shown. + + + + Hides a given amount of items from the visible items + in the starting from the + bottom part of the stack. + + The count of the items to be hidden. + + + + Gets the element that represents the container which holds + the buttons shown when items in the stack are hidden by using + the overflow grip. + + + + + Gets the element which represents the grip which can be dragged + to adjust the count of visible items in the stack. + + + + + Gets or sets the image that is shown on the + item in the overflow drop-down menu that is used to + show more buttons in the control. + + + + + Gets or sets the image that is shown on the + item in the overflow drop-down menu that is used to + show fewer buttons in the control. + + + + + Gets the collection containing the unchecked items. + + + + + Fires when the user clicks on a button associated with a instance. + This buttons is shown when the item is collapsed by using the overflow grip. + + + + + Fires when an item is shown in the . + + + + + Fires when an item is collapsed in the . + + + + + Fires when an item is checked in the overflow drop-down menu of the . + + + + + Fires when an item is unchecked in the overflow drop-down menu of the . + + + + + Gets or sets the associated overflow button with the current page view item. + This button is displayed below all items in the overflow items panel when the item + is collapsed by using the outlook grip. + When setting this property, the previously set item is disposed. + + + + + Defines possible alignment of buttons within RadPageViewItem instance. + + + + + Buttons overlay item's content. + + + + + Buttons are before item's content. + + + + + Buttons are after item's content. + + + + + Buttons are above item's content. + + + + + Buttons are below item's content. + + + + + Defines possible modes for dragging items within a RadPageView instance + + + + + Item dragging is disabled. + + + + + A preview is generated, indicating where the item will be inserted when dropped. This mode is cancelable. + + + + + The item is immediately reordered when moved to a different position. + + + + + Determines whether the RadPageViewItem is currently selected (associated with the SelectedPage of the owning RadPageView). + + + + + Determines whether the RadPageViewItem is currently set as preview. + + + + + Represents a Label(static) element - such as Header and Footer - within a RadPageViewElement instance. + + + + + This enumerator defines the possible selection modes for items + in a . + + + + + The selected item is highlighted and its content is displayed in the content area. + + + + + The selected item is highlighted and its content is displayed before it according to the stack orientation. + + + + + The selected item is highlighted and its content is displayed after it according to the + stack orientation. + + + + + This enumerator defines the possible positioning + options for the items of a . + + + + + Positions the items to the left side of the content area. + + + + + Positions the items to the top of the content area. + + + + + Positions the items to the right of the content area. + + + + + Positions the items to the bottom of the content area. + + + + + Defines the visibility of the New item in a RadPageViewStripElement instance. + + + + + Represents a separator which is just a line separating one group of + controls from another. The RadSeparator is a simple wrapper of the + RadSeparatorElement class. + + + + + Gets or sets whether the edit control is auto-sized + + + + + + + + + + + + + + + + + + + + Gets the instance of RadSeparatorElement wrapped by this control. RadSeparatorElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadSeparator. + + + + + RadSeparator consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Represents an enumration of the possible transitions which a uses to change its content. + + + + + Represent a live tile that can change dinamically its content by using animations. + + + + + Represents a tile that can be arranged in a control. + + + + + Gets the zero-based index of the column in which the tile should be arranged. + + + + + Gets the zero-based index of the row in which the tile should be arranged. + + + + + Gets or sets the number of cells that the tile should occupy in a column. + + + + + Gets or sets the number of cells that the tile should occupy in a row. + + + + + Gets or sets the padding according to the currently occupied cell. + + + + + Cancels the currently running animations. + + + + + Pauses the change of the content. + + + + + Continues the change of the content. + + + + + Moves to the next frame. + + + + + Changes the content of the tile by setting the CurrentItem property. Called on an interval specified by the ContentChangeInterval property. + + + + + Gets or sets the interval at which the content of changes. + + + + + Gets or sets a value indicating whether the animations are enabled. + + + + + Gets or sets the number of frames of the transition animation. + + + + + Gets or sets the interval between each frame of the transition animation. + + + + + Gets a collection of objects that represent the content items of the . + + + + + Gets or sets the type of the transition animation. + + + + + Gets or sets the currently displayed item. + + + + + Represent a panoramic view control that can display and arrange tiles in grouped or ungrouped manner. + + + + + Creates the main element of the control. + + The created element. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the way that RadPanorama should handle mouse wheel input. + + + + + Gets or sets a value that indicates whether the newly added tiles should be automatically arranged. + + + + + Enables or Disables the build in zoom functionality + + + + + Gets or sets the minimum number of columns that the view can be reduced to. + + + + + Gets or sets a value indicating whether reordering of tiles via drag and drop is allowed. + + + + + Gets or sets a value indicating whether the groups or the items should be displayed. + + + + + Gets or sets a value indicating whether the background image should be scrolled along with the tiles. + + + + + Gets or sets the position on which the scrollbar should be aligned. + + + + + Gets or sets the thickness of the scrollbar. + + + + + Gets the that represents the main element of the control. + + + + + Gets or sets the image that is displayed in the background. + + + + + Gets or sets the size of the image that is displayed in the background. + + + + + Gets or sets the current number of columns. + + + + + Gets or sets the number of rows. + + + + + Gets or sets the size of a single cell. + + + + + Gets a collection of objects that represent the tiles that are displayed. + + + + + Gets a collection of objects that represent the tiles that are displayed. + + + + + RadPanorama consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Enumerates the possible alignments of a horizontal scrollbar. + + + + + Provides options for the way that the MouseWheel should be handled. + + + + + Do not handle mouse wheel. + + + + + Zoom the view on mouse wheel. + + + + + Scroll the view on mouse wheel. + + + + + Scroll the view on mouse wheel, zoom the view on Control + mouse wheel. + + + + + Represents the main element of control. + + + + + Scrolls the view with a specified offset. + + The offset. + + + + Scrolls the view with a specified offset. + + The offset. + If the method is called too often, set this to [true] to improve performance. + + + + Updates the view according to the current value of the scrollbar. + + + + + Zooms the view out. + + + + + Zooms the view in towards the specified location. + + The location. + + + + Gets or sets the way that RadPanorama should handle mouse wheel input. + + + + + Gets or sets a value that indicates whether the newly added tiles should be automatically arranged. + + + + + Enables or Disables the build in zoom functionality + + + + + Indicates whether the view is zoomed out. + + + + + Gets or sets the minimum number of columns that the view can be reduced to. + + + + + Gets or sets a value indicating whether reordering of tiles via drag and drop is allowed. + + + + + Gets or sets a value indicating whether the groups or the items should be displayed. + + + + + Gets or sets a value indicating whether the background image should be scrolled along with the tiles. + + + + + Gets or sets the position on which the scrollbar should be aligned. + + + + + Gets or sets the thickness of the scrollbar. + + + + + Gets or sets the image that is displayed in the background. + + + + + Gets or sets the size of the image that is displayed in the background. + + + + + Gets or sets the current number of columns. + + + + + Gets or sets the number of rows. + + + + + Gets or sets the size of a single cell. + + + + + Gets the scrollbar of the view. + + + + + Gets the image primitive that represents tha image in the background. + + + + + Gets the layout that arranges the tiles in ungrouped mode. + + + + + Gets the layout that arranges the tile groups. + + + + + Gets or sets the that is responsible for the drag-drop reorder of tiles. + + + + + Gets the that is responsible for kinetic scrolling behavior with the mouse pointer. + + + + + Gets a collection of items that should be displayed in grouped mode. + + + + + Gets a collection of items that should be displayed in ungrouped mode. + + + + + Gets or sets the offset from the edges of the control at which automatic + scrolling starts. + + + + + Represent a container for grouped tiles that is displayed in control. + + + + + Updates the number of rows and columns before each layout update. + + + + + Gets or sets the minimum number of columns that the view can be reduced to. + + + + + Gets or sets the height of the group title. + + + + + Gets the layout panel that arranges the tiles. + + + + + Gets or sets the current number of columns. + + + + + Gets or sets the number of rows. + + + + + Gets or sets the size of a single cell. + + + + + Represents the caret of + + + + + Initializes a new instance of the class. + + + + + Shows this caret. + + + + + Hides this caret. + + + + + Suspends the blinking of this caret. + + + + + Resumes the blinking of this caret + + + + + Gets or sets the caret position. + + + The position. + + + + + Gets or sets the height of the caret + + + The height. + + + + + Gets or sets the width of the caret + + + The width. + + + + + Represent the selection paiting primitive + + + + + Initializes a new instance of the class. + + The text box. + + + + Invalidates the specified selection start. + + The selection start. + The selection end. + if set to true [repaint]. + + + + Gets the rectangle of + + The current line. + + + + + Draws the primitive on the screen. + + + + + + + + Gets or sets a value indicating whether the primitive should be painted + be painted. + + + + + Gets or sets a value indicating whether the selection should be hidden if focused is lost + + + true if [hide selection]; otherwise, false. + + + + + Gets or sets the color of the selection. + + + The color of the selection. + + + + + Gets or sets the selection opacity. + + + The selection opacity. + + + + + Gets the associated text box element. + + + + + Represents a single word in + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Gets a rectangle of character by index. + + The index. + if set to true [trail edge]. + + + + + Gets the character index at X-position. + + The x. + + + + + Gets or sets the word's text + + + The text. + + + + + Gets the length of the word. It can be different than the exact text length. + + + + + Gets or sets the word according to the previous one + + + The offset. + + + + + Gets or sets the index of the word + + + The index. + + + + + Gets or sets a value indicating whether the word's background can be painted. + + + true if paint the background; otherwise, false. + + + + + Represents text measurer of . + + + + + Measures a text. + + The text. + The font. + + + + + Search the index position where the text should be wrapped for the available width. + + The text. + The font. + The available width. + + + + + Searches the text's index where the caret should be positioned + + The text. + The font. + The available width. + + + + + Represents an action when auto-complete performs + + + + + No action + + + + + Append action + + + + + Replace action + + + + + Represents the method that will handle the create text block in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Gets the text for which the block is created. + + + + + Gets or sets the text block. + + + The text block. + + + + + Represents the method that will handle when the selection is changed in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The selection start. + Length of the selection. + + + + Gets the selection start. + + + + + Gets the length of the selection. + + + The length of the selection. + + + + + Represents the method that will handle when the selection is changing in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The old selection start. + Old length of the selection. + The new selection start. + New length of the selection. + + + + Gets the old selection start. + + + + + Gets the old length of the selection. + + + The old length of the selection. + + + + + Gets the new selection start. + + + + + Gets the new length of the selection. + + + The new length of the selection. + + + + + Represents the method that suggested text is changed in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The text. + The suggested text. + The start position. + The end position. + The action. + + + + Gets the text. + + + + + Gets the suggested text. + + + + + Gets the auto-complete action. + + + + + Gets or sets the start position. + + + The start position. + + + + + Gets or sets the end position. + + + The end position. + + + + + Represents text changed action + + + + + Text editing + + + + + Text property change + + + + + Represents text changed event arguments + + + + + Initializes a new instance of the class. + + The text. + The caret position. + The action. + + + + Gets the text. + + + + + Gets the caret position. + + + + + Gets the text change action. + + + + + Represents text changing event arguments + + + + + Initializes a new instance of the class. + + The start position. + The length. + The old text. + The new text. + The action. + + + + Gets the text change action. + + + + + Gets the start position. + + + + + Gets the selection length. + + + + + Represent a method that handles menu opening in + + The sender. + The instance containing the event data. + + + + Event arguments of + + + + + Initializes a new instance of the class. + + The context menu. + + + + Gets the context menu. + + + + + Represents a logical line in + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The start block. + The end block. + The size. + + + + Gets or sets the start block. + + + The start block. + + + + + Gets or sets the end block. + + + The end block. + + + + + Gets or sets the location. + + + The location. + + + + + Gets or sets the size. + + + The size. + + + + + Gets the control bounding rectangle. + + + + + Index comparer of + + + + + Initializes a new instance of the class. + + Index of the block. + + + + Compares the specified line. + + The line. + The null line. + + + + + Represents collection of + + + + + Adds the specified line. + + The line. + + + + Removes the range. + + The index. + The count. + + + + Removes all items from the . + + The is read-only. + + + + Binaries the search by Y coordinate. + + The y. + + + + + Binaries the search by offset. + + The offset. + + + + + Binaries the index of the search by block. + + The index. + + + + + Binaries the search. + + The comparer. + + + + + Offset comparer of + + + + + Initializes a new instance of the class. + + The offset. + + + + Compares the specified line. + + The line. + The null line. + + + + + Y-coordinate comparer of + + + + + Initializes a new instance of the class. + + The y coorditante. + + + + Compares the specified line X. + + The line X. + The line Y. + + + + + Offset comparer of + + + + + Initializes a new instance of the class. + + The offset. + + + + Compares the specified x. + + The x. + The null object. + + + + + Represents a localizable provider of + + + + + Gets the localized string by identifier + + The id. + + + + + Contains identifiers of the localizable strings in + + + + + Represent a text position in + + + + + Initializes a new instance of the class. + + The line. + The text block. + The char position. + + + + Compares to + + The position. + + + + + Equalses the specified position. + + The position. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Performs an implicit conversion from to . + + The start. + + The result of the conversion. + + + + + Implements the operator >. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator >=. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator <. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator <=. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator ==. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator !=. + + The start. + The end. + + The result of the operator. + + + + + Gets the length. + + The start. + The end. + + + + + Gets the first position. + + The layout panel. + + + + + Gets the last position. + + The layout panel. + + + + + Swaps two positions + + The start position. + The end position. + + + + Gets the line. + + + + + Gets the text block. + + + + + Gets the char position in + + + + + Represents a context menu of + + + + + Initializes a new instance of the class. + + The text box. + + + + Adds the menu item by localizable string identifier + + The string id. + + + + + Gets the associated text box. + + + + + Represents a scroller in + + + + + Initializes a new instance of the class. + + The scroll bar. + + + + Raises the event. + + The instance containing the event data. + + + + Suspends the notifications of event. + + + + + Resumes the notifications of event. + + + + + Updates the scroll range. + + Size of the client. + Size of the desired. + + + + Updates the scroll bar + + + + + Sets the scroll bar visibility. + + + + + Gets the max value of the scrollbar + + + + + Gets or sets the value of the scrollbar + + + The value. + + + + + Gets the associated scroll bar. + + + + + Gets or sets the state of the scrollbar. + + + The state of the scrollbar. + + + + + Gets the size of the client area. + + + The size of the client. + + + + + Gets the desired size of the document + + + The size of the desired. + + + + + Gets or sets the large change of the scrollbar. + + + The large change. + + + + + Gets or sets the small change of the scrollbar. + + + The small change. + + + + + Occurs when the scroller is updated. + + + + + Gets or sets the amount of time, in milliseconds, the Repeat button element waits while it is pressed before it starts repeating. The value must be non-negative. + + + + + Gets or sets the amount of time, in milliseconds, between repeats once repeating starts. The value must be non-negative. + + + + + Provides localization services for RadTimePicker. + + + + + Gets the string corresponding to the given ID. + + String ID. + The string corresponding to the given ID. + + + + RadWizard localization strings. + + + + + Creates a RadTimePicker instance. + + + + + Fires the ValueChanging event + + + + + + + Fires the ValueChanged event + + + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the Text associated to the Button below TimeTables + + + + + Gets or sets the current culture associated to the RadTimePicker + + + + + Gets or sets the row height in time picker popup. + + + + + Gets or sets the columns count. + + + + + Gets or sets headers height. + + + + + Gets or sets button panel height. + + + + + Gets or sets the table width. + + + + + Set the Clock position Before Time Tables or Above Time Tables + + + + + Gets or sets a value which determines how to represent the times in time picker popup. + + + + + Gets or sets a value indicating the time interval. + + + + + Gets or sets a value indicating whether the contents of the TextBox control can be changed. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + Gets the RadTimePickerElement which encapsulates the UI representation and functionality of the control. + + + + + Gets or sets the time value assigned to the control. + + + + + Gets or sets the Minimal time value assigned to the control. + + + + + Gets or sets the Maximal time value assigned to the control. + + + + + This property is not relevant for this class. + + + + + Occurs when the editing value is changing. + + + + + Occurs when the editing value has been changed + + + + + Occurs when a cell changes its state. + + + + + Occurs when the RadItem has focus and the user pressees a key down + + + + + Occurs when the RadItem has focus and the user pressees a key + + + + + Occurs when the RadItem has focus and the user releases the pressed key up + + + + + Occurs when + the value of the Multiline property has changed. + + + + + Occurs when + the value of the TextAlign property has changed. + + + + + Fires the ValueChanged event + + + + + + + Fires the ValueChanging event + + + + + + + Gets the culture to be used when displaying the time. + + + + + Determines whether control's height will be determined automatically, depending on the current Font. + + + + + Gets the RadTimePickerElement which encapsulates the UI representation and functionality of the control. + + + + + Gets or sets a value indicating whether the contents of the time picker control can be changed. + + + + + Occurs when the editing value has been changed + + + + + Occurs when the editing value is changing. + + + + + This property is used internally. + + + + + Creates the button element for the increment button. + + A to be placed in the . + + + + Creates the button element for the decrement button. + + A to be placed in the . + + + + Enables or disables the ReadOnly mode of RadTimeBox. The default value is false. + + + + + Gets or sets a value indicating whether the RadDropDownList will be animated when displaying. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + This property is used internally. + + + + + Occurs when the editing value is changing. + + + + + Occurs when the editing value has been changed + + + + + Represents a command area of RadWizard in Wizard97 mode. + + + + + Represents a command area of RadWizard. + + + + + Base class for RadWizard elements. + + + + + Updates the current state of the element. + + The WizardPage the element currently refers to. + + + + Gets or sets a value indicating that the element currently refers to a WizardWelcomePage. + + + + + Gets or sets a value indicating that the element currently refers to a WizardCompletionPage. + + + + + Gets the owner RadWizardElement of the element. + + + + + Creates a WizardCommandArea instance. + + + + + Creates a WizardCommandArea element. + + Owner of the element. + + + + Gets the CommandArea elements. + + + + + Gets the CommandArea Next button element. + + + + + Gets the CommandArea Cancel button element. + + + + + Gets the CommandArea Finish button element. + + + + + Gets the CommandArea Help button element. + + + + + Creates a Wizard97CommandArea instance. + + + + + Creates a Wizard97CommandArea element. + + >Owner of the element. + + + + Gets the CommandArea Back button element. + + + + + Represents a command area button element of RadWizard. + + + + + Gets or sets a value indication wether the button is focused. + + + + + Represents a button element of RadWizard in Aero mode. + + + + + Represents a top element of RadWizard in Aero mode. + + + + + Creates a WizardAeroTopElement instance. + + + + + Creates a WizardAeroTopElement. + + Owner of the element. + + + + Gets the AeroTopElement Back button element. + + + + + Represents a page header of RadWizard. + + + + + Creates a WizardPageHeaderElement instance. + + + + + Updates the current state of the element. + + + + + + Gets the element containing the WizardPageHeader title text. + + + + + Gets or sets the text of TitleElement. + + + + + Gets or sets the TitleElement visibility. + + + + + Gets the element containing the WizardPageHeader header text. + + + + + Gets or sets the text of HeaderElement. + + + + + Gets or sets the HeaderElement visibility. + + + + + Gets the element containing the WizardPageHeader icon image. + + + + + Gets or sets the WizardPageHeader icon image. + + + + + Gets or set the alignment of the WizardPageHeader icon image. + + + + + Represents an element of RadWizard which paints its text on glass. + + + + + Represents the method that will handle the ModeChanged events of RadWizard. + + The event sender. + Instance of ModeChangedEventArgs. + + + + Provides data for the ModeChanged event. + + + + + Gets the previous mode of the wizard. + + + + + Gets the current mode of the wizard. + + + + + Initializes a new instance of the ModeChangedEventArgs class. + + The previous mode of the wizard. + The current mode of the wizard. + + + + Represents the method that will handle the ModeChanging events of RadWizard. + + The event sender. + Instance of ModeChangingEventArgs. + + + + Provides data for the ModeChanging event. + + + + + Gets the current mode of the wizard. + + + + + Gets the next mode of the wizard. + + + + + Initializes a new instance of the ModeChangingEventArgs class. + + The current mode of the wizard. + The next mode of the wizard. + + + + Represents the method that will handle cancelable events of RadWizard. + + The event sender. + Instance of WizardCancelEventArgs. + + + + Provides data for cancelable events of RadWizard. + + + + + Initializes a new instance of the WizardCancelEventArgs class. + + + + + Determines whether the event is canceled or may continue. + + + + + Represents the method that will handle the SelectedPageChanged events of RadWizard. + + The event sender. + Instance of SelectedPageChangedEventArgs. + + + + Provides data for the SelectedPageChanged event. + + + + + Gets the previous selected page of the wizard. + + + + + Gets the selected page of the wizard. + + + + + Initializes a new instance of the SelectedPageChangedEventArgs class. + + The previous selected page of the wizard. + The selected page of the wizard. + + + + Represents the method that will handle the SelectedPageChanging events of RadWizard. + + The event sender. + Instance of SelectedPageChangingEventArgs. + + + + Provides data for the SelectedPageChanging event. + + + + + Gets the selected page of the wizard. + + + + + Gets the wizard page to be selected. + + + + + Initializes a new instance of the SelectedPageChangingEventArgs class. + The selected page of the wizard. + The wizard page to be selected. + + + + + Provides localization services for RadWizard. + + + + + Gets the string corresponding to the given ID. + + String ID. + The string corresponding to the given ID. + + + + RadWizard localization strings. + + + + + Represents a completion page of RadWizard. + + + + + Represents a page of RadWizard. + + + + + Creates a WizardPage instance. + + + + + Returns a string representation of the page. + + The string representation of the page. + + + + Gets the owner RadWizardElement of the page. + + + + + Gets or sets the panel presenting the content area of the page. + + + + + Gets or sets the page title text. + + + + + Gets or sets the page header text. + + + + + Gets or sets a value indicating whether the page customizes its header. + + + + + Gets or sets the page's TitleElement visibility. Applies if CustomizePageHeader has value 'true'. + + + + + Gets or sets the page's HeaderElement visibility. Applies if CustomizePageHeader has value 'true'. + + + + + Gets or sets the page's IconElement image. Applies if CustomizePageHeader has value 'true'. + + + + + Gets a value indicating whether the page is selected. + + + + + Creates a WizardCompletionPage instance. + + + + + Gets or sets the Completion page image. + + + + + Represents a collection of WizardPage objects. + + + + + Creates a WizardPageCollection instance. + + Owner of the element. + + + + Inserts a WizardPage before the RadWizard CompletionPage in the collection. + + + + + + Gets the owner RadWizardElement of the collection. + + + + + Represents a welcome page of RadWizard. + + + + + Creates a WizardWelcomePage instance. + + + + + Gets or sets the Welcome page image. + + + + + RadWizard is a control which helps you to break a complex process into separate steps. + + + + + Creates a RadWizard instance. + + + + + Returns true if the focus should go the navigation buttons when the user presses Shift and Tab + + + + + Returns true if the focus should go the navigation buttons when the user presses Left arrow + + + + + Returns true if the focus should go the navigation buttons when the user presses Right arrow + + + + + Returns true if the focus should go the navigation buttons when the user presses Tab + + + + + Selects next wizard page. + + + + + Selects previous wizard page. + + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of . + + + + Raises the event. + + An instance of . + + + + Raises the event. + + An instance of . + + + + Raises the event. + + The owner. + An instance of containing event data. + + + + Raises the event. + + The owner. + An instance of containing event data. + + + + Gets the RadWizardElement which encapsulates the UI representation and functionality of the control. + + + + + Gets or sets the mode of the control. + + + + + Gets or sets a value indication wether the Aero style should apply when the control is in Wizard Aero mode. + + + + + Gets the pages collection. + + + + + Gets or sets the welcome page. + + + + + Gets or sets the completion page. + + + + + Gets or sets the selected page. + + + + + Gets the command area element. + + + + + Gets or sets the height of the command area. Negative value makes the command area autosize. + + + + + Gets the page header element. + + + + + Gets or sets the height of the page header. Negative value makes the page header autosize. + + + + + Gets the element containing the image of the welcome pages. + + + + + Gets the element containing the image of the completion pages. + + + + + Gets or sets the image of the welcome pages. + + + + + Gets or sets a value indicating whether the image of the welcome pages should be visible. + + + + + Gets or sets the layout of the welcome pages image. + + + + + Gets or sets the background image shape of the welcome pages. + + + + + Gets or sets the image of the completion pages. + + + + + Gets or sets a value indicating whether the image of the completion pages should be visible. + + + + + Gets or sets the layout of the completion pages image. + + + + + Gets or sets the background image shape of the completion pages. + + + + + Gets or sets the visibility of the page header's title element. + + + + + Gets or sets the visibility of the page header's header element. + + + + + Gets or sets the icon of the page header. + + + + + Gets or sets the alignment of the page header's icon. + + + + + Gets the command area's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + RadWizard consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadWizard consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Fires before the mode of RadWizard is changed. + + + + + Fires after the mode of RadWizard is changed. + + + + + Fires when the next command button is clicked. + + + + + Fires when the back command button is clicked. + + + + + Fires when the finish command button is clicked. + + + + + Fires when the cancel command button is clicked. + + + + + Fires when the help command button is clicked. + + + + + Fires before the selected page of RadWizard is changed. + + + + + Fires after the selected page of RadWizard is changed. + + + + + Encapsulates the UI representation and functionality of RadWizard. + + + + + Creates a RadWizardElement instance. + + + + + Refreshes the element's view. + + + + + Selects next wizard page. + + + + + Selects previous wizard page. + + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + The owner. + An instance of containing event data. + + + + Raises the event. + + The owner. + An instance of containing event data. + + + + Gets or sets the mode of RadWizard. + + + + + Gets the view of RadWizard. + + + + + Gets the Owner RadWizard control. + + + + + Gets or sets a value indication wether the Aero style should apply when RadWizard is in Wizard Aero mode. + + + + + Gets the pages collection. + + + + + Gets or sets the welcome page. + + + + + Gets or sets the completion page. + + + + + Gets or sets the selected page. + + + + + Gets the command area element. + + + + + Gets or sets the height of the command area. Negative value makes the command area autosize. + + + + + Gets the page header element. + + + + + Gets or sets the height of the page header. Negative value makes the page header autosize. + + + + + Gets the element containing the image of the welcome pages. + + + + + Gets the element containing the image of the completion pages. + + + + + Gets or sets the image of the welcome pages. + + + + + Gets or sets a value indicating whether the image of the welcome pages should be visible. + + + + + Gets or sets the layout of the welcome pages image. + + + + + Gets or sets the background image shape of the welcome pages. + + + + + Gets or sets the image of the completion pages. + + + + + Gets or sets a value indicating whether the image of the completion pages should be visible. + + + + + Gets or sets the layout of the completion pages image. + + + + + Gets or sets the background image shape of the completion pages. + + + + + Gets or sets the visibility of the page header's title element. + + + + + Gets or sets the visibility of the page header's header element. + + + + + Gets or sets the icon of the page header. + + + + + Gets or sets the alignment of the page header's icon. + + + + + Gets the command area's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + Fires before the mode of RadWizard is changed. + + + + + Fires after the mode of RadWizard is changed. + + + + + Fires when the next command button is clicked. + + + + + Fires when the back command button is clicked. + + + + + Fires before the selected page of RadWizard is changed. + + + + + Fires after the selected page of RadWizard is changed. + + + + + Represents a view element of RadWizard in Wizard97 mode. + + + + + Base class for RadWizard view elements. + + + + + Creates a WizardView instance. + + + + + Gets the owner RadWizardElement of the view. + + + + + Gets the pages collection of the Owner RadWizardElement. + + + + + Gets the welcome page of the Owner RadWizardElement. + + + + + Gets the completion page of the Owner RadWizardElement. + + + + + Gets the selected page of the Owner RadWizardElement. + + + + + Gets the command area of the view. + + + + + Gets or sets the height of the command area. Negative value makes the command area autosize. + + + + + Gets the page header of the view. + + + + + Gets or sets the height of the page header. Negative value makes the page header autosize. + + + + + Gets the element containing the image of the welcome pages. + + + + + Gets or sets the image of the welcome pages. + + + + + Gets or sets a value indicating whether the image of the welcome pages should be visible. + + + + + Gets or sets the layout of the welcome pages image. + + + + + Gets or sets the background image shape of the welcome pages. + + + + + Gets the element containing the image of the welcome pages. + + + + + Gets or sets the image of the completion pages. + + + + + Gets or sets a value indicating whether the image of the completion pages should be visible. + + + + + Gets or sets the layout of the completion pages image. + + + + + Gets or sets the background image shape of the completion pages. + + + + + Gets or sets the visibility of the page header's title element. + + + + + Gets or sets the visibility of the page header's header element. + + + + + Gets or sets the icon of the page header. + + + + + Gets or sets the alignment of the page header's icon. + + + + + Gets the command area's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + Creates a Wizard97View instance. + + + + + Creates a Wizard97View instance. + + Owner of the element. + + + + Gets the command area's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + Represents a view element of RadWizard in Wizard Aero mode. + + + + + Creates a WizardAeroView instance. + + + + + Creates a WizardAeroView instance. + + Owner of the element. + + + + Gets the top element of RadWizard in Wizard Aero mode. + + + + + Gets the top element's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + Mode of RadWizard. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the default size of the control. + + + The default of the control. + + + + + Gets the range selector element. + + + The range selector element. + + + + + Gets or Sets the orientation of the RangeSelector + + + + + Gets or sets the start of the selected range. + + + The start range. + + + + + Gets or sets the end of the selected range. + + + The end range. + + + + + Gets or sets the range selector view zoom start. + + + The range selector view zoom start. + + + + + Gets or sets the range selector view zoom end. + + + The range selector view zoom end. + + + + + Gets or Sets whether the RangeSelector's handles should be drawn + + + + + Gets or sets how the associated chart will be updated. + + + Immediate, the chart will be updated while moving the thumb or the tracking element. Deferred, the chart will be updated upon releasing the thumb or the tracking element. + + + + + Gets or sets the associated control. + + + The associated control. + + + + + Gets or sets a value indicating whether ToolTips are shown for the RadItem objects contained in + the RadControl. + + + + + RadRangeSelector consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadRangeSelector consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs when the value of left thumb is changing. + + + + + Occurs when the value of left thumb is changed. + + + + + Occurs when the value of right thumb is changing. + + + + + Occurs when the value of left thumb is changed. + + + + + Occurs when the whole selection of the controls is about to change. + + + + + Occurs when the whole selection of the controls is changed. + + + + + Occurs when scale of the controls is Initializing. + + + + + Gets the body element. + + + The body element. + + + + + Gets the scroll selector element. + + + The scroll selector element. + + + + + Gets the top left scales. + + + The top left scales. + + + + + Gets the bottom right scales. + + + The bottom right scales. + + + + + Gets or sets a value indicating whether [show scroll]. + + + true if [show scroll]; otherwise, false. + + + + + Gets or sets the scroll view position. + + + The scroll view position. + + + + + Gets or sets the orientation. + + + The orientation. + + + + + Gets or sets how the associated chart will be updated. + + + Immediate, the chart will be updated while moving the thumb or the tracking element. Deferred, the chart will be updated upon releasing the thumb or the tracking element. + + + + + Gets or sets the associated element. + + + The associated element. + + + + + Gets or sets the start range. + + + The start range. + + + + + Gets or sets the end range. + + + The end range. + + + + + Gets or sets the range selector view zoom start. + + + The range selector view zoom start. + + + + + Gets or sets the range selector view zoom end. + + + The range selector view zoom end. + + + + + Gets or sets the selection rectangle start. + + + The selection rectangle start. + + + + + Gets or sets the selection rectangle end. + + + The selection rectangle end. + + + + + Gets or Sets whether the RangeSelector's handles should be drawn + + + + + Gets or sets the minimum selection length. + + + The minimum selection length. + + + + + Gets or sets the zoom factor. + + + The zoom factor. + + + + + Gets the total zoom factor. + + + The total zoom factor. + + + + + Gets or sets a value indicating whether [enable fast scrolling]. + + + true if [enable fast scrolling]; otherwise, false. + + + + + Occurs when the value of left thumb is changing. + + + + + Occurs when the value of left thumb is changed. + + + + + Occurs when the value of right thumb is changing. + + + + + Occurs when the value of left thumb is changed. + + + + + Occurs when the whole selection of the controls is about to change. + + + + + Occurs when the whole selection of the controls is changed. + + + + + Occurs when scale of the controls is Initializing + + + + Represents a repeat button element, and like all elements can be nested + in other telerik controls. RadRepeatButton is essentially a simple wrapper for + RadRepeatButtonElement. All UI and logic functionality is implemented in the + RadRepeatButtonElement class. RadRepeatButton acts to transfer events to and from + the RadRepeatButton class. + + + + Gets or sets the amount of time, in milliseconds, the Repeat button element waits while it is pressed before it starts repeating. The value must be non-negative. + + + + + Gets or sets the amount of time, in milliseconds, between repeats once repeating starts. The value must be non-negative. + + + + + Gets or Sets whether the RangeSelector's handles should be drawn + + + + + Represents a button on the . + + + + + Represents a base class + + + + + Represents the area where backstage pages are arranged. + + + + + Represents the area where backstage items are arranged. + + + + + Gets the that owns this element. + + + + + Gets a collection representing the items contained in this BackstageView. + + + + + Gets the back button element. + + + The back button element. + + + + + Represents a page on the on which you can add any type of controls. + + + + + Gets the that this page is attached to. + + + + + Represents a tab on the which has a page associated with it. + + + + + Indicates whether this tab is selected. + + + + + Gets or sets the page that is associated with this tab item. + + + + + Occurs when the selected state of this item has changed. + + + + + Occurs when the page associated with this item has changed. + + + + + + Represents a BackstageView control - the Office 2010 replacement of ApplicationMenu. + + + It can contain tabs, pages, buttons and all other RadItems as well. + + + + + + Shows the backstage view mimicking popup. + + The location on which the backstage will be shown. + The RadRibbonBarElement that the backstage view is attached to. + + + + Shows the backstage view mimicking popup. + + + + + + Hides the backstage view. + + + + + Raises the BackstageViewClosed event. + + + + + Raises the BackstageViewClosing event. + + + + + Raises the BackstageViewOpened event. + + + + + Raises the BackstageViewOpening event. + + + + + Fires when the backstage view is closed. + + + + + Fires when the backstage view is about to close. + + + + + Fires when the backstage view is opened. + + + + + Fires when the backstage view is about to open. + + + + + Fires when an item from the items panel is clicked. + + + + + Fires when the selected tab is about to change. + + + + + Fires when the selected tab is changed. + + + + + Gets or sets a value that indicates whether the position of the BackstageView should be + automatically adjusted to the bottom of the application button of the owner . + + + + + Gets or sets the selected tab. + + + + + Indicates whether the backstage view is opened. + + + + + Gets the backstage element. + + + + + Gets the RadRibbonBar element that the backstage view is attached to. + + + + + Represents the main visual element of the . + + + + + Raises the event. + + The backstage item. + + + + Raises the event. + + The backstage tab item. + + + + + Raises the event. + + The new item. + The old item. + + + + Raises the event. + + The instance containing the event data. + + + + Gets the on which the backstage items are arranged. + + + + + Gets the on which the backstage pages are arranged. + + + + + Gets the caption element. + + + The caption element. + + + + + Gets or sets the selected tab. + + + + + Gets a collection representing the items contained in this backstage view. + + + + + Gets or sets a value indicating whether this backstage view should be opened is full screen. + + + true if full screen; otherwise, false. + + + + + Fires when an item from the items panel is clicked. + + + + + Fires when the selected tab is about to change. + + + + + Fires when the selected tab is changed. + + + + + Represents event data for the following events: OnTabSelecting + + + + + Creats a new instance of the class. + + The tab which is currently selected + The tab that is being selected. + + + + Gets the tab which is currently selected. + + + + + Gets the tab that is being selected. + + + + + Creates an instance of the + class. + + + + + Gets or sets an instance of the + struct containing the coordinates which will be used + to position the key tip. + + + + + Gets or sets an instance of the + class containing the font which will be used + to paint the text of the key tip. + + + + + Gets or sets an instance of the + struct containing the color which will be used + to paint the background of the key tip. + + + + + Gets or sets an instance of the + struct containing the color which will be used + to paint the borders of the key tip. + + + + + Gets or sets an instance of the + struct containing the color which will be used + to paint the text forecolor of the key tip. + + + + + Represents a toolstrip overflow button element. + + + + + Creates child elements. + + + + + Shows small arrows. + + + + + + Gets the drop down button arrow position. + + + + + Gets the overflow primitive. + + + + + Represents the method that will handle the PageViewInstanceCreated events of RadDock. + + The event sender. + Instance of PageViewInstanceCreatedEventArgs. + + + + Provides data for the PageViewInstanceCreated event. + + + + + Gets the created RadPageViewElement. + + + + + Initializes a new instance of the PageViewInstanceCreatedEventArgs class. + + The created RadPageViewElement. + + + + Gets the index at which the page was before the change. + + + + + Gets the index at which the page is currently at. + + + + + Determines whether the event is canceled or may continue. + + + + + Gets the index the page is currently at. + + + + + Gets or sets the new index to be applied to the associated page. + + + + + Represents a control that has a collection of pages and displays one page at a time. + + + + + Temporary suspends event raising. + + + + + Resumes event raising, previously suspended by a SuspendEvents call. + + + + + Occurs when an item is about to be dropped over another item. + + + + + Occurs when an item was dropped over another item. + + + + + Raised when page item is about to be created. + + + + + Raised when the current mode of the view is about to change. Cancelable. + + + + + Raised when the current mode of the view is about to change. Cancelable. + + + + + Raised when the current mode of the view has changed. + + + + + Raised when the built-in ItemsList menu is about to be displayed. Cancelable. + + + + + Raised when the built-in ItemsList menu is displayed. + + + + + Raised when a new page is about to be added to the view. Cancelable. + + + + + Raised when a new page has been successfully added to the view. + + + + + Raised when a page is about to be removed from the view. Cancelable. + + + + + Raised when a page has been successfully removed from the view. + + + + + Raised when a page is about to change its index. Cancelable. + + + + + Raised when a page's index has been successfully changed. + + + + + Raised when all pages are about to be removed from the view. Cancelable. + + + + + Raised when all pages have been successfully removed from the view. + + + + + Raised when the content of a is expanding. + This event is only raised when the view mode of the control is set + to ExplorerBar. + + + + + Raised when the content of a is expanded. + This event is only raised when the view mode of the control is set + to ExplorerBar. + + + + + Raised when the content of a is collapsing. + This event is only raised when the view mode of the control is set + to ExplorerBar. + + + + + Raised when the content of a is collapsed. + This event is only raised when the view mode of the control is set + to ExplorerBar. + + + + + Raised when currently selected page has changed. + + + + + Raised when currently selected page has changed. + + + + + Determines whether event raising is currently enabled. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the BackColor of all pages. + + + + + Gets or sets the current mode of the view. + + + + + Gets or sets the RadPageViewPage instance that is currently selected within the view. + + + + + Gets the collection of pages for this view. + + + + + Gets the current RadPageViewElement instance that represents the UI of the view. + + + + + Gets or sets the default RadPageViewPage that will be loaded after EndInit of the control. + If the DefaultPage is null the currently selected page will be loaded. + + + + + Gets or sets the text orientation of the item within the owning RadPageViewElement instance. + + + + + Gets or sets the size of the items when ItemSizeMode of RadPageView is PageViewItemSizeMode.EqualSize. + + + + + RadPageView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadPageView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Gets or sets whether the pages will be wrapped around when performing selection using the arrow keys. + If the property is set to true, pressing the right arrow key when the last page is selected will result in selecting the first page. + + true if [wrapped around]; otherwise, false. + + + + Determines whether ampersand character will be treated as mnemonic or not. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + + This property is not relevant for this class. + + + + + Gets the instance that this object is associated with. + + + + + Gets the RadPageViewPage instance that matches the specified name. + + + + + + + Gets the RadPageViewElement instance that owns this instance. + + + + + Gets the scroll offset applied to the strip. + + + + + Gets or sets the MultiLineItemFitMode.This mode determines how the multiLine layout will behave when control is resizing. + + + + + Defines the possible alignment of the strip in a RadPageViewStripElement. + + + + + Defines the alignment of items within a strip item layout. + + + + + Items are aligned starting from the near edge. This is Left for Left-to-right layout and Right for Right-to-left layout. + + + + + Items are centered within the layout. + + + + + Items are aligned starting from the far edge. This is Right for Left-to-right layout and Left for Right-to-left layout. + + + + + Defines possible modes to fit items within a RadPageViewStripElement instance. + + + + + Each item uses its desired size. + + + + + Items are shrinked if their size exceeds the available one. + + + + + Items are expanded if their size is less than the available one. + + + + + Items are either shrinked or expanded when needed. + + + + + Items are stretched in the available height of their parent container. + + + + + Items are arranged in multiLine layout. + + + + + Defines which internal buttons will be present for a RadPageViewStripElement instance. + + + + + No buttons are available. + + + + + Buttons are automatically displayed when needed. + + + + + Allows strip to be scrolled left when not enough space is available. + + + + + Allows strip to be scrolled right when not enough space is available. + + + + + Allows currently selected item to be closed. + + + + + Displays all available items in a drop-down manner. + + + + + Both left and right scroll buttons are present. + + + + + Both scroll buttons and Close button are present. + + + + + ItemList and Close buttons are present. + + + + + All buttons are present. + + + + + Defines how an item is sized within a RadPageViewElement instance. + + + + + Each item's desired size is applied. + + + + + All items are with equal width. + + + + + All items are with equal height. + + + + + All items are with equal size. + + + + + Defines the content orientation of in RadPageViewItem. + + + + + Orientation is automatically selected depending on the item alignment within the owning RadPageViewElement. + + + + + Item's content is horizontally oriented. + + + + + Item's content is rotated by 180 degrees. + + + + + Item's content is rotated by 90 degrees. + + + + + Item's content is rotated 270 degrees. + + + + + Defines methods and properties for a collapsible element. For example, + RadRibonBarChunk is a collapsible element. + + + + + Create a Adapter if possible for Item + + + The wrapper for Item + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets a boolean value determining whether the layout panel + will collapse its content according to its size. + + + + + This class represents the drop down button which is shown when + a is collapsed. This drop down button + holds the content of the collapsed group in its popup. + + + + + This class represents the popup of a . + The contents of the group are placed in this popup when the group is collapsed. + + + + + This class represents a separator line which can be put between + items in a or . + This separator is built of two instances which are layout + together to allow two-coloured separator appearance. + + + + + Gets or sets the orientation of the separator. A separator + can be positioned vertical or horizontal. + + + + + Gets an instance of the class + which represents the primitive that is used to paint the separator. + + + + + This class represents the popup which is displayed when a collapsed tab + is selected in the RadRibbonBar control. + + + + + Creates an instance of the RibbonBarPopup class. + + + + + + Close the popup upon mouse click unless + the user has clicked on a RadElement + that opens another popup. + + + + + + Gets a boolean value indicating + whether the ribbon popup is shown. + + + + + Gets the owner RadRibbonBarElement. + + + + + Represents a ribbon tab. Ribbon tabs are used to manage between different + groups of related operations, for example, in a text editor application between + write and insert functionality. + + + + + Initializes a new instance of the RadRibbonBarCommandTab class. + + + + + This method paints the left RibbonTab shadow that appears on the right of the tab. + The method paints two 1 pixel wide vertical linear gradient lines that + create a shadow effect. The colors of the shadow can be styled by + the Visual Style Builder. + + + + + This method paints the right RibbonTab shadow that appears on the right of the tab. + The method paints two 1 pixel wide vertical linear gradient lines that + create a shadow effect. The colors of the shadow can be styled by + the Visual Style Builder. + + + + + Gets or sets the first right inner color of the RibbonTab's shadow. + + + + + Gets or sets the second right inner color of the RibbonTab's shadow. + + + + + Gets or sets the first right outer color of the RibbonTab's shadow. + + + + + Gets or sets the second right outer color of the RibbonTab's shadow. + + + + + Gets or sets the first left inner color of the RibbonTab's shadow. + + + + + Gets or sets the second left inner color of the RibbonTab's shadow. + + + + + Gets or sets the first left outer color of the RibbonTab's shadow. + + + + + Gets or sets the second left outer color of the RibbonTab's shadow. + + + + + The RibbonTab tab item + + + + + Gets an instance of the class + that represents the content layout of the tab. In this layout all + chunks visible to the end user are put. + + + + + Gets or sets the ContextualTabGroup of this CommandTab. + + + + + Gets the nested items. + + + + + Exposes the + scroll button direction. + + + + + Indicates left scroll button direction. + + + + + Indicates up scroll button direction. + + + + + Indicates right scroll button direction. + + + + + Indicates down scroll button direction. + + + + Defines the scrolling types of the RadScrollBar control. + + + + Indicates horizontal scroll type. + + + + + Indicates vertical scroll type. + + + + + Defines the possible alignment of the TabStripElement in a TabStripPanel. + + + + + The panel itself decides where the element is positioned. + + + + + The element is positioned vertically on the left edge. + + + + + The element is positioned horizontally on the top edge. + + + + + The element is positioned vertically on the right edge. + + + + + The element is positioned horizontally on the bottom edge. + + + + + Defines the possible orientation of text within a TabStripPanel. + + + + + Default orientation is used, depending on the alignment of the TabStrip. + + + + + Text is oriented horizontally. + + + + + Text is oriented vertically. + + + + Creates the main panel element and adds it in the root element. + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this speciffic control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets the object that encapsulates sizing information for this panel. + + + + + Gets the instance of RadPanelElement wrapped by this control. RadPanelElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadPanel. + + + + + Applies the desired splitter width across all splitters and delegates the event to all descendant RadSplitContainer instances. + This method is used internally. + + + + + + Applies theme to all SplitterElements. + + + + + Provides a routine which merges a container with its parent (if appropriate). + The purpose of this logic is to remove internally created containers when they are not needed. + This method is used internally. + + + + + this method is used internally. + + + + + Gets SplitterElement which rectangle conttains the specified Point. + + Point to test, in SplitContainer client coordinates + SplitterElement if found, null otherwise + + + + Determines whether the container can be selected at design-time. This method is used internally. + + + + + + Updates the splitter, associated with the specified index of a child SplitPanel. + + The layout info, containing information about the operation. + The index of the panel for which the splitter should be updated. + The bounding rectangle of the splitter. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets a value indicating the splitter distance. Never set the value of this property directly. + + + + + Gets a value indicating whether the bounds of the split panels should be updated immediately on drag. + + + + + Gets the split container element. + + + + + Determines whether the container is a target of automatic defragment operation. + This property is internally used by the framework and is not intended to be directly used in code. + + + + + Gets or sets a value indicating the horizontal or vertical orientation of + the Telerik.WinControls.UI.RadSplitContainer panels. + + + + + Gets or sets the width of a single splitter on the container. + Specify zero to prevent displaying any splitters at all. + + + + + Gets or sets the layout strategy that arranges all the visible SplitPanel children. + + + + + Enable and Disable navigation buttons. + + + + + Determines whether the panels can be collapsed when clicking twice on splitter or click once on navigation button. + + + + + This property is not relevant for this class. + + + + + This property is not relevant for this class. + + + + + Occurs when any of the splitters is moving. + + + + + Occurs when any of the splitters is moved. + + + + + Occurs when some panel is collapsing. + + + + + Occurs when some panel collapsed. + + + + + Gets or sets the width of each splitter within the container. + + + + + Encapsulates the layout information for a layout pass of a RadSplitContainer. + + + + + Gets a list with all the panels that are target of a layout operation. + + + + + Gets a list with all the panels that are target of an auto-size logic. + + + + + Gets or sets the auto-size factor which depends on the auto-sizable targets per container. + + + + + Gets or sets the length (width or height, depending on the orientation) that is avilable for layout. + + + + + Gets or sets the length vailable for all panels with AutoSize mode. + + + + + Gets or sets the length of all panels which are with Absolute size mode. + + + + + Gets or sets the total length, reserved for splitters. + + + + + Gets or sets the total length, reserved for splitters. + + + + + Gets or sets the content rectangle that represents the layoutable area of the container. + + + + + Gets or sets the orientation of the associated container. + + + + + Defines the layout strategy for a RadSplitContainer. + + + + + Entry point for the entire layout operation. + Called in the OnLayout override of RadSplitContainer. + + + + + + Applies a correction in both of the specified panels, after a successful spliter drag operation. + + The panel left (top) on the splitter. + The panel right (bottom) on the splitter. + The dragged distance. + + + + Updates the layout info for a pending layout operation. + + + + + + Performs the core measure logic. + This is the pass which determines the desired size for each panel. + + + + + Performs the core layout logic. Updates each panel's bounds, keeping in mind restrictions like Minimum and Maximum size. + + + + + + Gets an integer value for the specified size (depending on the orientation of the current laid-out container). + + + + + + + Gets a single-precision value from the provides SizeF struct. + + + + + + + Gets the available length left for the panel at the specified index. + + + + + + + + + Gets the minimum size for the specified split panel. + If it is a container, the sum of minimum sizes of all child panels is calculated. + + + + + + + Special measure logic, used when there is at least one fill panel in the layout info. + + + + + Default measure logic. + + + + + Apply constraints on measured length for each layout target, + having in mind MinSize, MaxSize, available size and other conditions. + + + + + Final pass that determines whether we have less + or more measured length than the currently available one and performs the needed corrections. + + + + + Updates the provides panel after a splitter drag operation. + + + + + + + + Propagates a splitter change down to all children of the specified container. + + + + + + Gets the viewport origin for the current layout operation. + + + + + + Gets a list with all the descendant panels which SizeMode is SplitPanelSizeMode.Fill + + + + + + Gets the layout info associated with this layout strategy. + + + + + Gets or sets the Type that is treated as Root for the layout strategy. + Allows for defining how deep the search for a Fill panel should be. + + + + The main element of the RadPanel control. + + + Create the elements in the hierarchy. + + + + Gets the SplitPanel instance associated with the event. + + + + + Gets the Control instance, which Controls collection has changed. + + + + + Gets the child Control instance, inserted or removed in the Parent's collection. + + + + + Gets the action of the notification. + + + + + Defines the possible actions for a ControlTreeChanged event. + + + + + A control has been added. + + + + + A control has been removed. + + + + + Encapsulates all size-related properties for a SplitPanel instance residing on a RadSplitContainer. + + + + + Gets or sets the minimum size for the associated SplitPanel. + + + + + Gets or sets the maximum size for the associated SplitPanel. + + + + + Gets or sets the amount (in pixels) applied to the size of the panel by a splitter. + + + + + Gets or sets the scale factor for relatively-sized panels. + + + + + Gets or sets the scale factor to be used by auto-sized panels. + Usually this is internally updated by a splitter resize. + + + + + Gets or sets the size mode for the owning panel. + + + + + Gets or sets the size used when size mode is Absolute. + + + + + Gets or sets the desired (measured) size for the owning panel. + This field is internally updated by a SplitContainerLayoutStrategy upon a layout operation. + + + + + Gets the current DPI scaling. + + + + + Defines the posiible size modes for a split panel residing on a RadSplitContainer. + + + + + The panel is auto-sized. Its size depends on the size of its container + as well as the number of all auto-sizable panels within the container. + + + + + The panel has fixed size, regardless of the size of its container. + + + + + The panel occupies a relative amount of its container's available size. + + + + + A special mode, used to specify that a certain panel should fill all the available auto-sizable area. + + + + + Notifies for a change in the Image member of this panel. + + + + + + Determines whether the ToolTip property should be serialized. + + + + + + Gets or sets the Image associated with the panel. + + + + + Gets or sets the tooltip to be displayed when the mouse hovers the tabitem of this panel. + + + + + Represents an image button. + + + + + Gets or sets the image that is displayed on a button element when it is hovered. + + + + + Gets or sets the image list index value of the image displayed on the button control when it is hovered. + + + + + Gets or sets the key accessor for the image for hovered state in the ImageList. + + + + + Gets or sets the image that is displayed on a button element when it is clicked. + + + + + Gets or sets the image list index value of the image displayed on the button control when it is clicked. + + + + + Gets or sets the key accessor for the image for clicked state in the ImageList. + + + + + Determines whether the RadPageViewItem is currently selected (associated with the SelectedPage of the owning RadPageView). + + + + + Determines whether the RadPageViewItem is currently pinned (associated with the SelectedPage of the owning RadPageView). + + + + + Determines whether the RadPageViewItem is currently set as preview. + + + + + Gets the TabStripButtonItem that represents the CloseButton in this TabItem. May return null if ShowCloseButton is false. + + + + + Gets the TabStripButtonItem that represents the CloseButton in this TabItem. May return null if ShowCloseButton is false. + + + + + Determines whether the CloseButton of the item will be displayed or not. + + + + + Determines whether the CloseButton of the item will be displayed or not. + + + + + Gets or sets the offset of the close button from the item's ImageAndTextLayout panel. + + + + + Disables the selection in the strip panel. + + + + + Handles the click of a CloseButton on a child TabStripItem. + Closes the corresponding TabPanel by default. + + + + + + Temporary suspends notifications like TabSelecting and TabSelected from the parented RadTabStripElement. This method is used internally. + + + + + Callback to notify the panel that a control has been successfully removed, tab strip has been updated and any additional update is allowed. + + + + + + Resumes previously suspended notifications like TabSelecting and TabSelected from the parented RadTabStripElement. This method is used internally. + + + + + Determines whether the tabstrip element is visible. + + + + + + Forces layout update by explicitly re-setting the current bounds and performing a layout pass. + + + + + Suspends the focus change in the strip panel. + + + + + Gets the default alignment of the TabStripElement. + + + + + Gets the default text orientation. + + + + + Gets or sets the text orientation of the tab used to switch among child panels. + + + + + Determines whether each TabStripItem will display a CloseButton, which allows for explicit close of its corresponding panel. + + + + + Determines whether each TabStripItem will display a CloseButton, which allows for explicit close of its corresponding panel. + + + + + Gets the point where the mouse was pressed and a drag operation has been instanciated. + + + + + Determines whether the tab used to navigate among child panels is displayed. + + + + + Gets or sets the alignment of the tab used to switch among child panels. + + + + + Determines whether the child panels' Index update is currently locked. This property is used internally. + + + + Represents a Panel that is capalbe to host standard Windows Forms controls. + + + Initializes a new instance of the RadTabStripContentPanel class. + + + + Gets the item associated with the panel. + + + + Gets or sets the background color of the tabstrip layout. + + + + Defines the possible positions of the tab items + relatively to the base area. + + + + + The tab items will appear on the left of the base area. + + + + + The tab items will appear on the right of the base area. + + + + + The tab items will appear on the top of the base area. + + + + + The tab items will appear on the bottom of the base area. + + + + + Gets or sets SliderArea's first background color. + + + + + Gets or sets SliderArea's second background color. + + + + Gets or sets RadTrackBar's ticks color. + + + Gets or sets the gradient angle of the SliderArea. + + + Gets or sets whether the TrackBar should fit to available size. + + + Gets or sets whether the SlideArea should be visible. + + + Gets or sets Ticks Visibility. + + + + The number of positions the slider moves in response to mouse clicks. + + + + + The number of positions the slider moves in response to mouse clicks. + + + + + The number of positions between tick marks. + + + + + Gets or sets TrackBar's orientation. + + + + + Gets or sets the width of TrackBar's SlideArea. + + + + + Indicates the tick style of the progress bar. Possible values are members of + %TickStyles enumeration:Telerik.WinControls.Enumerations.TickStyles%: none, + topleft, BottomRight, and both. + + + + Gets or sets a minimum int value for the trackbar position. + + + Gets or sets a maximum int value for the trackbar position. + + + + Gets or sets the position of the Slider. + + + + Initializes a new instance of the TrackbarThumb class. + + + + CreateChildElements + + + + + GetPreferredSizeCore + + + + + + + + gets or sets Thumb's width + + + + + + gets or sets whether the trackbar's thumb should use its default shape + + + + + gets ParentTrackBarElement + + + + + Represents a track bar. The trackbar class is essentially a simple wrapper + for the RadTrackBarElement. All UI and + logic functionality is implemented in the + RadTrackBarElement class. The RadTrackBar acts + to transfer the events to and from its corresponding + RadTrackBarElement instance. The + RadTrackBarElement may be nested in other + telerik controls. + + + + + Creates the associated TrackBar element. + + RadTrackBarElement + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the instance of RadTrackBarElement wrapped by this control. RadTrackBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadTrackBar. + + + + + Gets or sets a minimum value for the trackbar position + + + + + Gets or sets a maximum value for the trackbar position + + + + + Gets or Sets TrackBar's value + + + + + Gets or Sets whether the TrackBar's ticks should be drawn + + + + + Gets or Sets the orientation of the TrackBar + + + + + Gets or Sets the number of positions that the trackbar moves in response to mouse clicks. + + + + + Gets or Sets the number of positions that the trackbar moves in response to keyboard arrow keys and the trackbar buttons. + + + + + Gets or Sets the orientation of the text associated with TrackBar. Whether it should appear horizontal or vertical. + + + + + Gets or Sets whether the TrackBar's labels should be drawn + + + + + Gets or Sets whether the TrackBar's handles should be drawn + + + + + Gets or Sets the number of positions between large tick marks + + + + + Gets or Sets the number of positions between small tick marks + + + + + Gets or Sets the Mode of the TrackBar + + + + + Gets the Range collection. + + + + + Gets or Sets the Snap mode of the TrackBar + + + + + Gets or Sets TrackBar's Size + + + + + Gets or Sets whether the SlideArea should be visible + + + + + Gets or Sets whether the selected thumb should move on arrow key press. + + + + + This property is not relevant for this class. + + + + + Occurs when the value of the controls changes + + + + + Occurs when a Label needs to be formatted. + + + + + Occurs when a Tick needs to be formatted. + + + + Represents a trackbar element. RadTrackBarElement can be nested in other + telerik controls. Essentially, the RadTrackBar is a simple wrapper for the + RadTrackBarElement. The former transfers events to and from its corresponding + RadTrackBarElement instance. + + + + Gets the instance of TrackBarBodyElement. TrackBarBodyElement + is the core element in the hierarchy tree and encapsulates the Scale and indicators functionality. + + + + + Gets instance of TrackBarArrowButton + + + + + Gets instance of TrackBarArrowButton + + + + + Gets or sets a minimum value for the trackbar position + + + + + Gets or sets a maximum value for the trackbar position + + + + + Gets or Sets TrackBar's value + + + + + Gets or Sets whether the TrackBar's ticks should be drawn + + + + + Gets or Sets TrackBar's Orientation + + + + + Gets or Sets whether the SlideArea should be visible + + + + + Gets or Sets the number of positions that the trackbar moves in response to mouse clicks. + + + + + Gets or Sets the number of positions that the trackbar moves in response to keyboard arrow keys and the trackbar buttons. + + + + + Gets or Sets Ticks Visibility + + + + + Gets or Sets TrackBar's sliders area color + + + + + Gets or Sets TrackBar's ticks color + + + + + Gets or Sets TrackBar's sliders area color + + + + + Gets or Sets the gradient angle of the SliderArea + + + + + Gets or Sets TrackBar's thumbWidth + + + + + Gets or Sets the number of positions between small tick marks + + + + + Gets or Sets the width of TrackBar's SlideArea + + + + + Gets or Sets whether the TrackBar's labels should be drawn + + + + + Gets or Sets whether the TrackBar's handles should be drawn + + + + + Gets or Sets the number of positions between large tick marks + + + + + Gets or Sets the number of positions between small tick marks + + + + + Gets or Sets TrackBar's Size + + + + + Gets or Sets the Snap mode of the TrackBar + + + + + Gets or Sets the Mode of the TrackBar + + + + + Gets the Range collection. + + + + + Gets or Sets the selected thumb + + + + + Gets or Sets whether the selcted thumb should move on arrow key press. + + + + + Occurs when the value of the controls changes + + + + + Occurs when the trackBar slider moves + + + + + Occurs when a Label needs to be formatted. + + + + + Occurs when a Tick needs to be formatted. + + + + + Represents a core range object that contains the start and end. + + + + + Creates a new object that is a copy of the current instance. + + + + + + Gets or Sets the start of the range. + + + + + Gets or Sets the end of the range. + + + + + Gets whether the range contains selected thumb" + + + + + Gets the Owner Collection + + + + + Gets or Sets the Name. + + + + + Gets or Sets the ToolTipText + + + + + Gets or Sets the Tag. + + + + + Occurs when a property value changes. + + + + + Represents a collection of + + + + + Check thumb move. + + value + isStart + range + bool + + + + Perform Thumb Move in SingleThumb Mode. + + Value + bool + + + + Returns an enumerator that iterates through the collection. + + IEnumerator + + + + Determines the index of a specific item in the Collection + + item + int + + + + Inserts an item to the Collections at the specified + index. + + index + item + + + + Removes the TrackBarRange item at the specified index. + + index + + + + Add range to the System.Collections.Generic.ICollection + + item + + + + Removes all items except the first from the System.Collections.Generic.ICollection + + + + + Determines whether the System.Collections.Generic.ICollection contains a specific value. + + + bool + + + + Copies the elements of the System.Collections.Generic.ICollection to an System.Array, starting at a particular System.Array index. + + array + arrayIndex + + + + Removes the first occurrence of a specific object from the Collection. + + item + bool + + + + Adds an item to the System.Collections.Generic.ICollection. + + value + int + + + + Determines whether the System.Collections.Generic.ICollection contains a specific value. + + value + bool + + + + Determines the index of a specific item in the System.Collections.IList. + + value + int + + + + Inserts an item to the System.Collections.IList at the specified index. + + index + value + + + + Removes the first occurrence of a specific object from the System.Collections.IList. + + value + + + + Copies the elements of the System.Collections.ICollection to an System.Array, + starting at a particular System.Array index. + + array + index + + + + Suspends all property and collection notifications. + + + + + Resumes property and collection notifications. + + + + + Gets or Sets a maximum value for the trackbar position + + + + + Gets or Sets a minimum value for the trackbar position + + + + + Gets or Sets the Mode of the TrackBar + + + + + Gets the RadTrackBarElement which owns this collection + + + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + Occurs when a property value changes. + + + + + Gets or sets the Range at the specified index. + + index + TrackBarRange + + + + Gets or sets the Range at the specified name. + + text + TrackBarRange + + + + Gets the number of elements contained in the Collection + + + + + Gets a value indicating whether the Collection is read-only. + + + + + Gets a value indicating whether the System.Collections.IList has a fixed + size. + + + + + Gets or sets the element at the specified index. + + index + object + + + + Gets a value indicating whether access to the System.Collections.ICollection + is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the System.Collections.ICollection. + + + + + Gets the nodes. + + + + + + Sets the current. + + The node. + + + + Resets this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Suspends the update. + + + + + Resumes the update. + + + + + Gets or sets a value indicating weather the changes in the child collections + in Object Relational Binding mode will be reflected automatically. + + + + + Gets the tree view. + + The tree view. + + + + Gets a value indicating whether this instance is suspended. + + + true if this instance is suspended; otherwise, false. + + + + + Initializes a new instance of the class. + + The data source. + The data member. + The display member. + The parent member. + The child member. + The value member. + The checked member. + + + + Initializes a new instance of the class. + + The data source. + The data member. + The display member. + The parent member. + The child member. + The value member. + + + + Initializes a new instance of the class. + + The data source. + The display member. + The parent member. + The child member. + The value member. + + + + Initializes a new instance of the class. + + The data source. + The display member. + The parent member. + The child member. + + + + Initializes a new instance of the class. + + The data source. + The display member. + The parent child member. + + + + Gets or sets the name of the relation. + + The name of the relation. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets the data member. + + The data member. + + + + Gets or sets the display member. + + The display member. + + + + Gets or sets the parent member. + + The parent member. + + + + + Gets or sets the child member. + + The child member. + + + + + Gets or sets the value member. + + The value member. + + + + Gets or sets the checked member. + + The checked member. + + + + Adds the specified data source. + + The data source. + The display member. + The parent child member. + + + + Adds the specified data source. + + The data source. + The display member. + The parent member. + The child member. + + + + Adds the specified data source. + + The data source. + The display member. + The parent member. + The child member. + The value member. + + + + Adds the specified data source. + + The data source. + The data member. + The display member. + The parent member. + The child member. + The value member. + + + + Adds the specified data source. + + The data source. + The data member. + The display member. + The parent member. + The child member. + The value member. + The checked member. + + + + Clears this instance. + + + + + Refreshes this instance. + + + + + Adds the tree node with specified text. + + The text. + + + + + Adds the specified text. + + The text. + Index of the image. + + + + + Adds the specified text. + + The text. + The image key. + + + + + Adds the specified key. + + The key. + The text. + Index of the image. + + + + + Adds the specified key. + + The key. + The text. + The image key. + + + + + Removes the specified name. + + The name. + + + + Determines whether [contains] [the specified name]. + + The name. + + true if [contains] [the specified name]; otherwise, false. + + + + + Indexes the of. + + The name. + + + + + Gets the owner. + + The owner. + + + + Gets the tree view. + + The tree view. + + + + Gets the with the specified name. + + + + + + Defines the expanding animation style of nodes in a + RadTreeView Class. + + + + + Indicates animation style changing the opacity of the expanding nodes. + + + + + Indicates no animation. + + + + + Specifies the type of option list formed by child nodes. + + + + + All children have a check box. + + + + + All children have a radio button. + + + + + Every child can specify whether it has a check box or a radio button. + + + + + Defines the style of the lines between the nodes in a + RadTreeView Class. + + + + Specifies a solid line. + + + Specifies a line consisting of dashes. + + + Specifies a line consisting of dots. + + + Specifies a line consisting of a repeating pattern of dash-dot. + + + Specifies a line consisting of a repeating pattern of dash-dot-dot. + + + + Gets the error text. + + The error text. + + + + Show expander + + + + + Gets the checked mode. + + + The checked mode. + + + + + TreeViewSpreadExport is a powerful exporting API, allowing to export RadTreeView to XLSX, PDF, CSV, and TXT format, utilizing the Document Processing Libraries. + + + + + Initializes a new instance of the class. + + The RadTreeView to export. + + + + Initializes a new instance of the class. + + The RadTreeView to export. + The export format. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Starts an export operation. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadTreeView will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadTreeView will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadTreeView will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadTreeView will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Cancels an asynchronous export operation. + + + + + Check if date is supported from MS Excel + + + True if value is supported + + + + Gets or sets the name of the sheet. + + + The name of the sheet. + + + + + Specifies whether a file will be exported as a new file, or if a file with the same name already exists at the specified path, a new sheet will be added to it. + + + ExportAsNewSheetInExistingFile - will add a new sheet to the specified file, if it exists + ExportInNewFile - will create/override the specified file + + + + + Gets or sets a value indicating whether to export images. + + + + + Gets or sets a value indicating whether to export child nodes grouped. + + + + + Gets or sets the format of the exported file - XLSX, PDF, CSV or TXT. + + + The file extension. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets the maximum number of rows per sheet. + + + The sheet max rows. + + + + + Gets or sets the indent of child nodes. + + + + + Gets or sets a value indicating how children of collapsed nodes are exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when the export process completes. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents the method that will handle the CellFormatting event. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the CellFormatting event + + + + + Initializes a new instance of the class. + + Export cell for further formatting. + The exporting tree node of RadTreeView. + The row index in the worksheet. + + + + Gets the row index in worksheet. + + + + + Gets export cell for further formatting. + + + + + Gets the exporting tree node. + + + + + Determines whether a tree node will be selected upon clicking on the action part of the split button element. The default value is false and click on the action part will result in opening the popup with the menu items. + + + + + Gets the breadCrumb element. + + + + + RadbreadCrumb consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Gets a collection of items which are children of the TabStrip element. + + + + + Initializes a new instance of the TreeViewCheckboxEditor class. + + + + + Begins the edit. + + + + + Toggles the checkbox state. + + + + + Translates system key down events to the owner element. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the editor value. + + + + + + Gets the is modified. + + The is modified. + + + + Gets the type of the editor value + + System.Boolean + + + + Initializes a new instance of the DataFilterCheckboxEditorElement class. + + A instance. + + + + Get the checkmark element. + + + + + Gets or sets the checkmark state. + + + + + Represents a date time editor in RadTreeView. + + + + + Represents a DropDownList editor in RadTreeView. + + + + + Represents a spin editor in RadTreeView. + + + + + Represents the method that will handle events in the hierarchy traverser. + + + + + + + Provides data for all events used in the hierarchy traverser. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets a value indicating whether the object instance to be processed by the hierarchy traverser. + + true if [process hierarchy object]; otherwise, false. + + + + Gets the node. + + The node. + + + + + + + + + Gets or sets the font. + + The font. + + + + Gets or sets the color of the fore. + + The color of the fore. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the back color4. + + The back color4. + + + + Gets or sets the back color3. + + The back color3. + + + + Gets or sets the back color2. + + The back color2. + + + + Gets or sets the color of the back. + + The color of the back. + + + + Gets or sets the number of colors. + + The number of colors. + + + + Gets or sets the gradient percentage2. + + The gradient percentage2. + + + + Gets or sets the gradient percentage. + + The gradient percentage. + + + + Gets or sets the gradient angle. + + The gradient angle. + + + + Gets or sets the gradient style. + + The gradient style. + + + + Gets or sets the text alignment. + + The text alignment. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The table element. + + + + Gets or sets the size of the arrow. Used to calculate pixel-perfect results. + + + + + Gets or sets a value determining the shape of the link + + + + + Gets or sets a value determining the style of the link lines + + + + + Defines the differen link styles + + + + + + + + This constant is used internally. + + + + + Initializes a new instance of + + + + + + Initializes a new instance of + + + + + Raises the ModifiedChanged event. + + + + + Appends the given text + + + + + + Clears the editing control's text + + + + + Clears and undoes the text + + + + + Copies the selected text + + + + + Cuts the selected text + + + + + clears the selection + + + + + Gets a character from a given point + + + + + + + Gets the index of a character at a given point + + + + + + + gets the index of the first char in a given line + + + + + + + gets the first char index at the current line + + + + + + Gets a line number from a char index + + + + + + + Gets the position from a char index + + + + + + + pastes the text in the clipboard + + + + + Pasted a given text + + + + + + scrolls the textbox to the caret position + + + + + Makes a selection in a given range specified by a start position and selection length + + + + + + + selects the whole text + + + + + Undoes the last edit operation in the text box. + + + + + Raises the AcceptsTabChanged event. + + + + + Raises the HideSelectionChanged event. + + + + + Raises the MultilineChanged event. + + + + + Raises the PreviewKeyDown event. + + + + + Raises the ReadOnlyChanged event. + + + + + Raises the TextAlignChanged event. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets whether the control can receives the focus when tab is pressed + + + + + Gets or sets whether the text box accepts the return key + + + + + Gets or sets whether the text box accepts the tab key + + + + + Gets if the text box could undo its value + + + + + Indicates if all characters should be left alone or converted + to upper or lower case + + + + + Gets or sets the selection in the text box + + + + + The lines of the text in a multi-line edit, as an array of string values + + + + + Specifies the maximum length of characters which could be entered + + + + + Indicates the visibility level of the object + + + + + The text could span more than a line when the value is true + + + + + Gets or sets the char used for entering passwords + + + + + Gets the preferred height + + + + + Indicates whether the text could be changed or not + + + + + The scrollbars which will appear if the editing control is in multiline mode + + + + + the text which is in selection + + + + + the length of the selection + + + + + Gets or sets the start selection position + + + + + Indicates whether the shortcuts are enabled. + + + + + Gets or sets the alignment of the text in the editing control + + + + + Indicates the text length + + + + + Indicates if lines are automatically word-wrapped for + multiline editing controls + + + + + Gets or sets the prompt text that is displayed when the TextBox contains no text + + + + + Gets or sets the color of prompt text that is displayed when the TextBox contains no text + + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Gets the TextBox control hosted in this item. + + + + + Gets or sets the vertical stretch value + + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + + This property is used internally. + + + + + Occurs when the TabStop property has changed. + + + + + Occurs when the AcceptsTab property has changed. + + + + + Occurs when the HideSelection property has changed. + + + + + Occurs when the Modified property has changed. + + + + + Occurs when the Multiline property has changed. + + + + + Occurs when a key is pressed while focus is on text box. + + + + + Occurs when the ReadOnly property has changed. + + + + + Occurs when the TextAlign property has changed. + + + + + Represents a base button control. The button control serves as a + RadButtonElement Class wrapper. All logic and + presentation features are implemented in a parallel hierarchy of objects. For this + reason, RadButtonElement Class may be nested in + any other telerik control, item, or element. + + + + + Initializes a new instance of the RadButtonBase class. + + + + + Override this method to create custom main element. By default the main element is an instance of + RadButtonElement. + + Instance of the one-and-only child of the root element of RadButton. + + + + Gets or sets the text associated with this item. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets the instance of RadButtonElement wrapped by this control. RadButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadButton. + + + + + Includes the trailing space at the end of each line. By default the boundary rectangle returned by the Overload:System.Drawing.Graphics.MeasureString method excludes the space at the end of each line. Set this flag to include that space in measurement. + + + + + + + + + + + + + + Specifies the options for display of image and text primitives in the element. + + + + + Gets or sets the position of text and image relative to each other. + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + Determines whether the button can be clicked by using mnemonic characters. + + + + + Toggles the value of RadToggleSwitch + + + + + Toggles the value of RadToggleSwitch + + Indicates whether to use animation. + + + + Sets the value of RadToggleSwitch. + + The new value. + + + + Sets the value of RadToggleSwitch. + + The new value. + Indicates whether to use animation. + + + + Gets the instance of RadToggleSwitchElement wrapped by this control. RadToggleSwitchElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadToggleSwitch. + + + + + Gets the on element of RadToggleSwitch. + + + + + Gets the off element of RadToggleSwitch. + + + + + Gets the thumb of RadToggleSwitch. + + + + + Gets or sets the text displayed when the state is On. + + + + + Gets or sets the text displayed when the state is Off. + + + + + Gets or sets width of the thumb. + + + + + Determines how far the switch needs to be dragged before it snaps to the opposite side. + + + + + Gets or sets the value. + + + + + Gets or sets a value indicating whether to use animation when changing its state. + + + + + Gets or sets the animation interval. + + + + + Gets or sets the animation frames. + + + + + Gets a value indicating whether the control is currently animating. + + + + + Determines how ToggleSwitch button should handle mouse click and drag. + + + + + Gets or sets a value indicating whether the value could be changed. + + + + + RadToggleSwitch consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadToggleSwitch consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs when the Value is about to change. Cancelable. + + + + + Occurs when the Value has changed. + + + + + Occurs when the animation starts. + + + + + Occurs when the animation finishes. + + + + + Toggles the value of RadToggleSwitch + + + + + Toggles the value of RadToggleSwitch + + Indicates whether to use animation. + + + + Sets the value of RadToggleSwitch. + + The new value. + + + + Sets the value of RadToggleSwitch. + + The new value. + Indicates whether to use animation. + + + + Cancels the currently running animation. + + + + + Gets or sets a value indicating whether to use animation when changing its state. + + + + + Gets or sets the animation interval. + + + + + Gets or sets the animation frames. + + + + + Gets a value indicating whether the control is currently animating. + + + + + Gets the on element + + + + + Gets the off element. + + + + + Gets the thumb element. + + + + + Gets or sets the value. + + + + + Gets or sets width of the thumb. + + + + + Determines how far the switch needs to be dragged before it snaps to the opposite side. + + + + + Gets or sets the text displayed when the state is On. + + + + + Gets or sets the text displayed when the state is Off. + + + + + Determines how ToggleSwitch button should handle mouse click and drag. + + + + + Gets or sets a value indicating whether the value could be changed. + + + + + + + + + + + + + + + Get or set thumb size + + + + + Gets or sets the image used by the splitter when in horizontal orientation. + + + + + Gets or sets the image used by the splitter when in vertical orientation. + + + + + This class represents the drop-down + of the RadGalleryElement. + + + + + Creates an instance of the + class. + + An instance of the + class that represents the gallery that owns this drop-down. + + + + Represents the groupbox content. + + + + + Gets the FillPrimitive contained in the Content area + + + + + Gets the BorderPrimitive contained in the Content area. + + + + + Creates child elements. Please refer to TPF documentation for more information. + + + + + Returns class name. + + class name + + + + Represents the groupbox footer. + + + + + Creates child elements. Please refer to TPF documentation for more information. + + + + + Performs layout measure. Please refer to TPF documentation for more information. + + + desired size + + + + Returns class name. + + class name + + + + Represents a groupbox. The group box major purpose is to define a radio buttons group. The RadGroupBox does not support scrolling. + The control is highly customizable using themes. + + + + + Parameterless contstructor. + + + + + Gets or sets the header text. + + + + + Gets the groupbox element. + + + + + Gets or sets the groupbox style - Standard or Office. + + + + + Gets or sets the header position - Top, Right, Bottom, Left + + + + + Gets or sets the header alignment - Near, Center, Far. + + + + + Gets or sets the header margin. + + + + + Gets or sets footer visibility. + + + + + Gets or sets the header text. + + + + + Gets or sets the footer text. + + + + + Gets or sets the header image. + + + + + Gets or sets the footer image. + + + + + Gets or sets the header image key. + + + + + Gets or sets the header image index. + + + + + Gets or sets the footer image key. + + + + + Gets or sets the footer image index. + + + + + Gets or sets the header text image relation. + + + + + Gets or sets the footer text image relation. + + + + + Gets or sets the header text alignment. + + + + + Gets or sets the footer text alignment. + + + + + Gets or sets the header image alignment. + + + + + Gets or sets the footer image alignment. + + + + + If true, the first character preceded by an ampersand will be used as mnemonic key + + + + + Gets or sets the header margin. + + + + + Gets or sets the header text. + + + + + Gets or sets the footer text. + + + + + Gets or sets the header image. + + + + + Gets or sets the footer image. + + + + + Gets or sets the header text image relation. + + + + + Gets or sets the footer text image relation. + + + + + Gets or sets the header text alignment. + + + + + Gets or sets the footer text alignment. + + + + + Gets or sets the header image alignment. + + + + + Gets or sets the footer image alignment. + + + + + Gets or sets the header image key. + + + + + Gets or sets the header image index. + + + + + Gets or sets the footer image key. + + + + + Gets or sets the footer image index. + + + + + Gets or sets the group box style - Standard, or Office. + + + + + Defines group box styles. + + + + + Prevent Design time serilizaltion for Image from theme + + + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets or sets the position of text and image relative to each other. + + + + + true if the text should wrap to the available layout rectangle otherwise, false. The default is true + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + + + + + + + + + + If true, the first character preceded by an ampersand will be used as the label's mnemonic key + + + + + Gets or sets a value indicating whether the border is visible + + + + + Gets the instance of RadLabelElement wrapped by this control. RadLabelElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadLabel. + + + + + A light element that inherits from , adds the base states for theming and sets the default event to Click. + + + + + IsDirty Property + + + + + Takes as parameters the that is binding + and the that is being bound to the RadItem. + + The that is binding. + The object that is being bound to the . + + + + Gets the that is bound. + + + + + Gets the that was swapped with a new RadItem. + + + + + Gets the object that is being bound to the . + + + + + Takes as parameters the that is bound + and the that is being bound to the RadItem. + + The that is bound. + The object that is being bound to the . + + + + Gets the that is bound. + + + + + Gets the object that is being bound to the . + + + + + Returns the type supported by the class implementing the ICellEditor interface. + The supported type is the data type that can be handled and edited by the editor. + + + + + Defines how the editor will be positioned relatively to the edited container + + + + + Editor is positioned inline, inside of the editor container, and logically resides in container's children + hierarchy. Usually it is recommended to use this option for compact-sized editors, + like textboxes, comboboxes, mask editors, checkboxes, etc. + + + + + Editor is positioned inside a popup control which is positioned vertically under the edited + container. Usually it is recommended to use this + option for medium to large-sized editors, like calendars, custom controls and panels, + radiobutton lists, checkbox groups, etc. + + + + + Usually this means that the editor is positioned explicitly by the edited containers's logic. + Also it is used as a default initialization value. + + + + + Provides functionality for managing editors + + + + + Returns an editor instance of the default type for the editor provider. + + An object that implements interface. + + + + Gets the default editor type for the editor provider. + + The default type. + + + + Initializes a specified editor. + + An object that implements interface. + + + + Establishes the common events and also the event-related properties and methods for basic input processing by + Telerik Presentation Foundation (TPF) elements. + + + + + This interface defines all necessary methods for custom scrolling. Performing each + scroll operation via the method (thus allowing custom + logic to be used) is called logical scrolling. The only way to enable logical + scrolling in is via implementation of this + interface. + + + + + Gets the real size of the content that the viewport must visualize. + + + + + Invalidates the viewport. + + + + + Calculate scroll value. This method is used while resizing the scroll panel. + + + + + + + + + + + + + + + Calculates the necessary offset in order to make the given child visible. + + + + Retrieves the scroll parameters. + + + + + + Returns the number of items that are visible when the viewport is scrolled to its + maximum value (the bottom for vertical stack and the right-most place for left-to-right + horizontal stack). The last item must always be fully visible. + If there are children the result will be at least 1. + + Number of full visible items in the viewport. If the items are with different sizes, + the last items are used in the calculations. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the captured color + + + + + Fires when the color is changed. + + + + + + + + Fires when the selected color has changed + + + + + Represents a color palette + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the number of columns in the palette + + + + + Gets or sets the margin of the palette + + + + + Gets or sets the color in the palette + + + + + Gets or sets the selected color + + + + + Fires when the selected color has changed + + + + + + + + Provides different sets of colors + + + + + Gets the color correspoding to a hex value + + + + + + + Gets the hex value for the color + + + + + + + Gets the rounded value + + + + + + + Gets the set of basic colors + + + + + Gets the set of system colors + + + + + Gets the set of named colors + + + + + Provides common services for color transformations + + + + + Gets a color from RGB ratios + + + + + + + + + Gets a color quotient + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the RgbValue value + + + + + Gets or sets the HSL value + + + + + Fires when the selected color changes + + + + + Represents a hexagon of discrete colors + + + + + Fires when the selected color has changed + + + + + Gets the selected color + + + + + Paints the hexagon + + + + + + Gets or sets the hexagon color + + + + + Gets a rectangle containing the hexagon + + + + + Gets or sets a value indicating whether the hexagon is hovered + + + + + Gets or sets a value indicating whether the hexagon is selected + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the color mode + + + + + Gets or sets the color in HSL format + + + + + Gets or sets the color in RgbValue format + + + + + Fires when the selected color has changed + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the color mode of the slider + + + + + Gets or sets the color in HSL format + + + + + Gets or sets the color in RgbValue format + + + + + Gets or sets the position of the slider arrow + + + + + Fires when the selected color has changed + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the color in RgbValue format + + + + + Fires when the selected color changes + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the color shown in RGB format + + + + + Gets or sets the color shown in HSL format + + + + + Fires when the selected color has changed + + + + + Represents a color selector control + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Fires when custom colors configuration is about to be saved or loaded. + Can be used to change the default location of the configuration file. + + + + + Fires when the selected color changes + + + + + Fires when the OK button is clicked + + + + + Fires when the Cancel button is clicked + + + + + Gets or sets a value indicating whether the Analytics functionality is enable or disable for this control. + + + + + Gets or sets the selected color + + + + + Gets or sets the selected color + + + + + Gets or sets the selected HSL color + + + + + Gets or sets the old color + + + + + Gets the list of custom colors + + + + + Shows or hides the web colors tab + + + + + Shows or hides the basic colors tab + + + + + Shows or hides the system colors tab + + + + + Shows or hides the professional colors tab + + + + + Shows or hides the system colors tab + + + + + Shows or hides the hex color textbox + + + + + Gets or sets the value indicating whether the user can edit the hexadecimal color value + + + + + Gets or sets the value indicating whether the user can pick a color from the screen + + + + + Gets or sets the value indicating whether the user can save colors + + + + + Gets or sets the text of the add new color button + + + + + Sets or gets the active mode of the RadColorPicker + + + + + Gets or sets the heading of the basic colors tab + + + + + Gets or sets the heading of the system colors tab + + + + + Gets or sets the heading of the web colors tab + + + + + Gets or sets the heading of the professional colors tab + + + + + Gets or sets the heading of the new color label + + + + + Gets or sets the heading of the old color label + + + + + Gets the DiscreteColorHexagon control + + + + + Gets or sets a value indicating whether custom colors should be save upon exiting the color picker. + + + + + A panel holding a collection of saved colors + + + + + Safely tries to find the path to the local app data folder. + If no path is found, tries to find the path to the common app data folder. + + + + + Serializes the custom colors. + + + Deserializes the custom colors. + + + + Save the color to the next color slot + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Fires when the selected color has changed + + + + + Fires when custom colors configuration is about to be saved or loaded. + Can be used to change the default location of the configuration file. + + + + + Gets or sets a value indicatign whether custom colors should be save upon exiting the color picker. + + + + + Gets or sets the custom directory path which will be used + when the custom colors XML file is stored on the hard drive. + + + + + Gets or sets the index of the currently selected color + + + + + Gets the currently selected color + + + + + Gets all the colors in the saved colors collection + + + + + A transparent color box where semi-transparent colors can be shown + + + + + Gets or sets the color shown in the box + + + + + A transparent color box where semi-transparent colors can be shown + + + + + Gets or set the color shown in the box + + + + + Represents the RadDateTimePicker class + + + + + Represents the RadDateTimePicker constructor + + + + + creates and initializes the RadDateTimePickerElement + + + + + + Sets the current value to behave as a null value + + + + + Raises the FormatChanged event + + + + + + Raises the ValueChanged event + + + + + + Raises the ValueChanged event + + + + + + Raises the ValueChanging event + + + + + + Gets the control's default size + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the culture supported by this calendar. + + + + + Gets the instance of RadDateTimePickerElement wrapped by this control. RadDateTimePickerElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadDateTimePicker. + + + + + Gets or sets the date/time value assigned to the control. + + + + + Gets or sets the date/time value assigned to the control. + + + + + Gets or sets the format of the date and time displayed in the control. + + + + + Indicates whether a check box is displayed in the control. When the check box is unchecked no value is selected + + + + + Gets or sets the custom date/time format string. + + + + + When ShowCheckBox is true, determines that the user has selected a value + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Gets or sets the location of the drop down showing the calendar + + + + + Gets or sets the size of the calendar in the drop down + + + + + The DateTime value assigned to the date picker when the Value is null + + + + + Indicates whether a spin box rather than a drop down calendar is displayed for editing the control's value + + + + + Gets or sets the text that is displayed when the DateTimePicker contains a null + reference. + + + + Gets or sets a value indicating whether RadDateTimePicker is read-only. + + true if the RadDateTimePicker is read-only; otherwise, false. The default is + false. + 1 + + + + Gets the maximum date value allowed for the DateTimePicker control. + + + + + Occurs when MaskProvider has been created + This event will be fired multiple times because + the provider is created when some properties changed + Properties are: Mask, Culture, MaskType and more. + + + + + Occurs when the format of the control has changed + + + + + Occurs when the value of the control has changed + + + + + Occurs when the value of the control is changing + + + + + Occurs when the value of the control is changing + + + + + Occurs when the drop down is opened + + + + + Occurs when the drop down is opening + + + + + Occurs when the drop down is closing + + + + + Occurs when the drop down is closed + + + + + Occurs when the RadItem has focus and the user presses a key down + + + + + Occurs when the RadItem has focus and the user presses a key + + + + + Occurs when the RadItem has focus and the user releases the pressed key up + + + + + Occurs before the CheckBox's state changes. + + + + + Occurs when the CheckBox's state changes. + + + + + Occurs when the value of the checkbox in the editor is changed + + + + + Represents the RadDateTimePickerCalendar class + + + + + Represents the RadDateTimePickerCalendar constructor + + + + + + Creates dateTimePicker's children + + + + + Shows the drop-down window part of the combo box + + + + + Sets the date shown in the textbox by a given value and format type. + + + + + + + Gets the instance of RadDateTimePickerElement associated to the control + + + + + Gets the RadArrowButtonElement instance + that represents the Date Time Picker's arrow + button. + + + + + Gets or sets the calendar control which is shown when the pop up control is shown + + + + + Gets or sets the drop down control which is shown when the user clicks on the arrow button + + + + + Gets or sets the drop down sizing mode. The mode can be: horizontal, vertical or a combination of them. + + + + + Gets or sets the drop down minimum size. + + + + + Gets or sets the drop down maximum size. + + + + + Gets a value representing whether the drop down is shown + + + + + The owner control of the popup + + + + + Shows the popup control with a specified popup direction and offset by the owner + + + + + + + Hides the popup + + + + + Occurs when the drop down is opened + + + + + Occurs when the drop down is opening + + + + + Occurs when the drop down is closing + + + + + Occurs when the drop down is closed + + + + + Gets or sets the hosted control in the popup. + + + + + Get/Set minimum value allowed for size + + + + + Get/Set maximum value allowed for size + + + + + Represents the RadDateTimePickerSpinEdit class + + + + + Represents the RadDateTimePickerSpinEdit constructor + + + + + + Sets the date shown in the textbox by a given value and format type. + + + + + + + Creates dateTimePicker's children + + + + + Gets the instance of RadDateTimePickerElement associated to the control + + + + + RadRotator BeginRotate Event Arguments + + + + + Delegate for the BeginRotate event + + The RadRotator that rotates + + + + + This control is transfers the web-based rotators' functionality to the Windows forms work space. + + + + + Initializes the RadRotator control + + + + + Initializes the Childs Items + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /// + + + + + + + /// + + + + + + + + Gets or sets whether the edit control is auto-sized + + + + + + + + Gets the instance of RadRotatorElement wrapped by this control. RadRotatorElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRotator. + + + + + Gets or sets whether RadRotator should stop rotating on MouseOver + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The RadItem containing , Border and Fill primitives + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the collection of s that will be rotated. + + + + + Gets or Sets the that is to be displayed while loading the rest items. It is not cycled through when rotation starts. + If you want to have initial item that will be cycled through, add it to the collection + and advance to it using + + + + + + + Gets or Sets the interval between consequetive rotation animations. + + + + + Gets or Sets the swap animation's frames number + + + + + Gets or sets whether RadRotator should stop rotating on MouseOver + + + + + Gets or Sets value indicating whether opacity will be animated when switching frames + + + + + Gets or Sets value defining the initial position of the incomming item + and the final position of the outgoing item. + Note: The position is relative, in the range [-1, 1] for each of the components (X, Y). + Value of positive or negative 1 means that the object will not be in the visible area + before the animation begins (for the incomming item) or after it ends (for the outgoing item) + + + + + Gets or Sets the index of the current item. + Note: When setting the current item, the old and the new item will be swapped. + + + + + + Gets the current item. + + + + + + Gets or Sets value indicating whether the is started/stopped. + + + + + + + + Gets the in the current + + + + + + + + + + + + + + + + + + + + Represents TPF controls container + + + + + Gets the collection of s contained in the + + + + + The RadItem that implements the actual 's functionality. + + + + + Starts cycling through the elements in the collection + + set to true to initiate rotation immediately, or set to false to rotate after the time + there are no elements to rotate (Items collection is empty) + + + + Stops the rotation process. If swap is under way, it will be completed. + + + + + Initiates swap between the current item and the one whose index is supplied. + + the index of the item in the collection. The index of the home element is -1. + true on successful swap + + + + Makes transition to the default element. + + + + + Advances to the next item + + + + + Advances to the previous item + + + + + + + + + + + + + + Gets the collection of s that will be rotated. + + + + + Gets or Sets the that is to be displayed while loading the rest items. It is not cycled through when rotation starts. + If you want to have initial item that will be cycled through, add it to the collection + and advance to it using + + + + + + + Gets or Sets the interval between consequetive rotation animations. + + + + + Gets or sets whether RadRotator should stop rotating on MouseOver + + + + + Gets or Sets the swap animation's frames number + + + + + Gets or Sets value indicating whether opacity will be animated when switching frames + + + + + Gets or Sets value defining the initial position of the incomming item + and the final position of the outgoing item. + Note: The position is relative, in the range [-1, 1] for each of the components (X, Y). + Value of positive or negative 1 means that the object will not be in the visible area + before the animation begins (for the incomming item) or after it ends (for the outgoing item) + + + + + Gets or Sets the index of the current item. + Note: When setting the current item, the old and the new item will be swapped. + + + + + + Gets the current item. + + + + + + Gets or Sets value indicating whether the is started/stopped. + + + + + + + + Fires when an Item is clicked + + + + + Fires when is started. + + + + + Fires when is stopped. + + + + + Fires before s' swap begins. + + + + + Fires when s' swap has finished. + + + + + Provides information about the validation process. + + + + + Gets the exception that is caused by the validation of the edited value. Generally + the exception is populated by the validation logic and is available for rising by the editor. + + + + + Gets the edited value that fails to be validated + + + + + Represents the method that handles the Validating event. + + The source of the event. + A ValidationErrorEventArgs that contains the event data. + + + + Represents the method that handles the ValueChanging event. + + The source of the event. + A ValueChangingEventArgs that contains the event data. + + + + Adds the RadContextMenu dynamic property and enables using RadContextMenu in all controls. + + + + + Provides a menu-like interface within a button. + + + + + Create main button element that is specific for RadSplitButton. + + The element that encapsulates the functionality of RadSplitButton + + + + + + + Gets the instance of RadSplitButtonElement wrapped by this control. RadSplitButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadSplitButton. + + + + + + + + + + + Raises the DropDownItemClicked event. + + + + + Get or sets the item that is activated when the button portion of the + RadSplitButtonElement is clicked or selected and Enter is pressed. + + + + + Get or sets the item that is separating the action part and the arrow part of the button. + + + + + Occurs when the default item is changed. + + + + + + Represents a checkmark element in a menu item. + + + + + Represents checkmark. + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Gets the instance of BorderPrimitive wrapped by this element. + + + + + Gets the instance of FillPrimitive wrapped by this element. + + + + + Gets the instance of ImagePrimitive wrapped by this element. + + + + + Gets the instance of CheckPrimitive wrapped by this element. + + + + + Gets or sets the image that is displayed on a button element. + + + + + Gets or sets the image list index value of the image displayed as a checkmark. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets value indicating RadCheckmark checkstate. + + + + + Determines whether the item will be used as a separate item in another element. + + + + Gets or sets value indicating whether border must be shown. + + + Gets or sets value indicating whether background must be shown. + + + + Represents a menu item which has a combobox placed inside. + + + + + Provides a reference to the ComboBox element in the menu item. + + + + + Represents a generic menu item which could have any descendant of RadElement placed inside. + Such element could be placed in the menu by setting the ContentElement property. + + + + + Gets or sets if the image column offset is shown along with content element or not. + + + + + Provides a reference to the content element in the menu item. + + + + Defines scrolling states. + + + + + + + Represents event data of the Scroll event defined in all controls providing + scrolling functionality(e.g. RadScrollBar). + + + + + Initializes a new instance of the ScrollPanelEventArgs class. + + + + + + Gets the old thumb position (point). + + + Gets the new thumb position (point). + + + + Represents event data for the + ScrollParametersChanged event. + + + + + Indicates whether the scroll parameters are for the horizontal or for the vertical scroll bar. + + + + + Scroll bar parameters taken from the scroll bar that caused the event. + All parameters are filled correctly, not only the chagned one. + + + + + Indicates whether the need for horizontal or vertical srcolling has changed + + + + + Indicates whether horizontal scrolling was necessary + + + + + Indicates whether horizontal scrolling is necessary + + + + + Represents the method that will handle the + Scroll event. + Represents the event sender. + Represents the event arguments. + + + + + Represents the method that will handle the + Scroll event. + + Represents the event sender. + Represents the event arguments. + + + + Represents the method that will handle the + ScrollNeedsChanged event. + + + + + + + Represents parameters of the scroll panel such as values for the small and + large changes while scrolling. + + + + + Represents horizonatal scroll parameters data: horizontal minimum and maximum + positions, and horizontal small and large change. + + + + + Represents vertical scroll parameters data: vertical minimum and maximum + positions, and vertical small and large change. + + + + + Initializes a new ScrollPanelParameters struct. + + + ScrollPanelParameters(int,int,int,int,int,int,int,int) + + + Initializes the parameters pertaining to the horizontal scrolling - small and + large horizontal changes, and minimum and maximum scrolling positions. + + + Initializes the parameters pertaining to the vertical scrolling - small and large + vertical changes, and minimum and maximum scrolling positions. + + + + + Initializes a new ScrollPanelParameters structure. + + + ScrollPanelParameters(ScrollBarParameters,ScrollBarParameters) + + Initializes the minimum horizontal scrolling position. + Initializes the maximum horizontal scrolling position. + + Initializes the small horizontal change value; the value added or substracted + from the current position when small horizontal change is initiated. + + + Initializes the large horizontal change value; the value added or substracted + from the current position when large horizontal change is initiated. + + Initializes the vertical minimum scrolling position. + Initializes the vertical maximum scrolling position. + + Initializes the small change vertical value; the value added or substracted from + the current position when small vertical change is initiated. + + + Initializes the large vertical change value; the value added or substracted from + the current position when large vertical change is initiated. + + + + + Represents a menu. It may be nested in other telerik controls. RadMenu can be + horizontal or vertical. You can add, remove, and disable menu items at run-time. It + offers full support for the Telerik RadControls + for WinForm theming engine, allowing you to easily construct a variety of stunning + visual effects. You can nest any other RadControl within a RadMenu + . For example, you can create a menu with an embedded + textbox or combobox. + + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Occurs when the menu Orientation property value changes. + + + + + Occurs when the menu AllItemsEqualHeight property value changes. + + + + Gets or sets the context items. + + + + Gets an instance of the class + that represents the layout panel in which the menu items reside. + + + + + + Gets all root menu items (see for more + information about menu items). + + + + Root menu items are these menu items that can be displayed in the menu when + nothing is dropped down. + + Menu items are hierarchical items - they have a parent item and a list of children + items. Children items are menu items that can be dropped down as submenu of + their parent. The difference between the root and the non-root menu items is that + root items have no parent item (the property + can be used to check if an item is a + root one). + + Note that Items contains all root menu items, not just the + items that are displayed. An item remains in the Items collection even if it is an + overflow item and is therefore not currently visible. + + RadMenuItemBase Class + + + + Gets or sets the + orientation of menu + items - Horizontal or Vertical. + + + + + Gets or sets whether all items will appear with the same size (the size of the highest item in the collection). + + + + + Gets or sets a value indicating whether the DropDown animation will be enabled when it shows. + + + + + Gets or sets the type of the DropDown animation. + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + Gets an instance of the class + that represents the menu background fill. + + + + + Gets an instance of the class + that represents the border of the menu. + + + + + Represents the method that will handle the RadPopupClosing event. + + Represents the event sender. + Represents the event arguments. + + + + Represents the method that will handle the + Represents the event arguments. + Represents the sender of the event. + + + + + Represents a method which will handle the PopupOpening event. + + Repretents the event sender. + Represents the event arguments + + + + Represents a method which will handle the FadeAnimationFinished event. + + Repretents the event sender. + Represents the event arguments + + + + Represents a method which will handle the PopupOpened event. + + Repretents the event sender. + Represents the event arguments + + + Defines the closing reasons for the popup. + + + + Specifies that the popup was closed because + another application has received the + focus. + + + + + Specifies that the popup was closed because the + mouse was clicked outside the + popup. + + + + + Specifies that popup was closed because of + keyboard activity, such as the ESC key being + pressed. + + + + + Specifies that the popup was closed because + ClosePopup() method had been called. + + + + + Specifies that the popup was closed because its parent was closed. + + + + + Instances of this class contain information + about the fade animation finished event of a popup control. + + + + + Gets a boolean value determining the type + of the fade animation. + + + + + Instances of this class contain information + about the opening event of a popup control. + + + + + Creates an instance of the + class. + + + + + Gets an instance of the + struct which contains the coordinates which will be used + to position the popup. + + + + + Represents event data of the RadPopupClosingEvent. + + + + + Initializes a new instance of the RadPopupClosingEventArgs class using the close reason. + + + + + + Defines the direction in which the drop-down window will be shown relative to its parent. + + + This enumeration is used in such controls like menus, combo boxes, etc. for example. + + + + + Indicates that the drop-down will be shown on the left side of the parent. + + + + + Indicates that the drop-down will be shown on the right side of the parent. + + + + + Indicates that the drop-down will be shown on the top side of the parent. + + + + + Indicates that the drop-down will be shown on the bottom side of the parent. + + + + + + + + Gets the screen rectangle of the provided screen. + + The screen. + Determines whether the taskbar is included in the result. + A Rectangle struct that contains the data about the bounds of the screen. + + + + Gets the valid location for a context menu + + + + + + + + + + Gets the valid location for a drop-down (for menus, combo boxes, + etc.). + + + This method calculates: + 1. The rectangle of the screen where the drop down should be shown + 2. The rectangle (in screen coordinates) of the owner element. Owner element + is the element that shows the drop-down and is connected to it - like a menu item + that shows its sub menus or a combobox element that shows its drop-down. + After calculating the screen and the element rectangles this method calls the + basic method. + + + + + + + Offset in pixels from the owner element. When this is zero there is no space + between the owner and the drop-down. + + + + + Gets the valid location for a drop-down (for menus, combo boxes, etc.). + + The popup is not allowed to be outside the screen rectangle and to be shown over + the ownerRect. + + + + + + + Offset in pixels from the owner element. When this is zero there is no space + between the owner and the drop-down. + + + + + Gets a screen from a point on the desktop. + + A Screen object that contains the given point or the PrimaryScreen on + error. + + The point on the desktop that must be in the returned screen. + + + + Gets the rectangle of the screen that contains the biggest part of a given + element. + + The rectangle of the primary screen on error. + + If the element is not added in a control or is not visible the rectangle of the + primary screen is returned. + + + + Gets the rectangle of the screen that contains given point on the desktop. + The rectangle of the primary screen on error. + The point on the desktop that must be in the returned screen rectangle. + + + + Ensures a drop-down rectangle is entirely visible in a given screen + rectangle. + + + + + Represents a progress bar. You can set progress bar appearance in numerous ways. + For example, you can use dash or dash integral style, set separator color and width, set a + background image, etc. The RadProgressBar class is a simple wrapper for the + RadProgressBarElement class. The latter may + be nested in other telerik controls. All UI and logic functionality is + implemented by the RadProgressBarElement + class. RadProgressBar acts to transfer the events to and from the + RadProgressBarElement class. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the text associated with this control. + + + The text. + + + + + Gets or sets the background image of the RadProgressBar. + + + + + Gets or sets the layout of the background image of the RadProgressBar. + + + + + Gets the instance of RadProgressBarElement wrapped by this control. RadProgressBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadProgressBar. + + + + + Gets or sets the value of the first progress line. There could be two progress + lines in the progress bar. + + + + + Gets or sets the value of the second progress line. There could be two progress + lines in the progress bar. + + + + + Gets or sets the minimum value for the progress. + + + The minimum. + + + + + Gets or sets the maximum value for the progress. + + + The maximum. + + + + + Gets or sets a value indicating the amount to increment the current value with. + + + The step. + + + + + Gets or sets the StepWidth between different separators. + + + The width of the step. + + + + + Indicates whether the progress bar style is dash. When style is dash + the progress line is broken into segments with separators in between them. + + + + + Indicates whether the progress bar style is hatch. When style is hatch + the progress line is covered with a hatch. You will have to change the SweepAngle + in order to see the style. + + + + + When style is dash indicates if the progress indicators will progress on steps or smoothly. + + + + + Gets or sets the first gradient color for separators + + + The separator color1. + + + + + Gets or sets the second gradient color for separators. + + + The separator color2. + + + + + Gets or sets the third gradient color for separators. + + + The separator color3. + + + + + Gets or sets the fourth gradient color for separators. + + + The separator color4. + + + + + Gets or sets the fourth gradient color for separators. + + + The separator gradient angle. + + + + + Gets or sets the first color stop in the separator gradient. + + + The separator gradient percentage1. + + + + + Gets or sets the second color stop in the separator gradient. + + + The separator gradient percentage2. + + + + + Gets or sets the number of colors used in the separator gradient. + + + The separator number of colors. + + + + + Gets or sets the separators width in pixels. + + + The width of the separator. + + + + + + + + + + + + + + + + + Gets or sets the alignment of the image of the progress line. + + + + + Gets or sets the text orientation in the progress bar. + + + + + Gets or sets the alignment of the text content on the drawing surface. + + + + + Gets or sets the progress + orientation: Bottom, Left, Right, Top. + + + + + Indicates whether the progress bar style is hatch. When true, the style is Hatch. + When both dash and hatch are true the style is hatch. + + + + + Gets or sets the angle at which the dash or hatch lines are tilted. + + + + + Fires when value is changed. + + + + + Fires when step is changed. + + + + + Fires when step width is changed. + + + + + Fires when the separator width is changed. + + + + + Fires when the minimum property is changed. + + + + + Fires when the maximum property is changed. + + + + + Fires when the dash property is changed. + + + + + Fires when the hatch property is changed. + + + + + Fires when the integral dash property is changed. + + + + + Fires when the text orientation is changed. + + + + + Fires when the text alignment is changed. + + + + + Fires when the progress orientation is changed. + + + + + Fires when show progress indicators is changed. + + + + + Fires when the separator color is changed. + + + + + Represents the method that will handle some of the following events: + ValueChanged, + StepChanged, + StepWidthChanged, + SeparatorWidthChanged, + MinimumChanged, + MaximumChanged, + DashChanged, + TextOrientationChanged, + Represents the event sender. + Represents the event arguments. + + + + + Represents a progress bar element. RadProgressBar + is a simple wrapper for RadProgressBarElement. The latter may be included in other + telerik controls. All graphical and logic functionality is implemented by + RadProgressBarElement. The RadProgressBar acts to + transfer the events to and from its RadProgressBarElement instance. + + + + + Creates the child elements and sets their locally applied values as Default + + + + + Initializes the fields. + + + + + Gets the final size of the progress indicator. + + The element. + The client rect. + The value. + + + + + Gets the final size of a vertical progress indicator. + + The client rect. + The value. + The step. + + + + + Gets the final size of a horizontal progress indicator. + + The client rect. + The value. + The step. + + + + + Gets the final size of the separators. + + The progress bar1 rectangle. + The progress bar2 rectangle. + + + + + Raises the event. + + The instance containing the event data. + + + + Advances the + current position of the progress bar by the amount of the Step property + + + + + Reverses the + advance of the current position of the second progress bar by the amount of the Step + property. + + + + + Increments Value1 with the given argument value. + + The value. + + + + Decrements Value1 with the given argument value. + + The value. + + + + Advances the + current position of the first progress bar by the amount of the Step + property. + + + + + Advances the + current position of the first progress bar by the amount of the Step + property. + + + + + Increments Value2 with the given argument value. + + The value. + + + + Decrements Value2 with the given argument value. + + The value. + + + + Gets or sets the value for the first progress indicator. + + + + + Gets or sets the value for the second progress indicator. + + + + + Gets or sets the minimum possible value for the progress bar Value1(2). + + + + + Gets or sets the maximum possible value for the progress bar Value1(2). + + + + + Gets or sets the value with which the progress bar Value1(2) will + increments/decrements. + + + + + Gets or sets the step width in pixels with which the progress bar + indicator will move if style is dash. + + + + + Gets or sets the progress orientation of the progress bar indicator. + Bottom, Left, Right, Top + + + + + Gets or sets if the progress should be show with percentages. + + + + + Gets or sets the style to dash. + + + + + Gets or sets the style to hatch. + + + + + Gets or sets the style to integral dash. To set IntegralDash you need + to first set dash to true. + + + + + Gets or sets the progress bar indicator image. + + + + + Gets or sets the layout of the image in the progress indicator. + + + + + Gets or sets the image index of the progress bar indicator image. + + + + + Gets or sets the image key for the progress bar indicator image. + + + + + Gets or sets the alignment of the image in the progress line. + + + + + Gets an instance of the class + that represents the progress indicator of the progress bar. + + + + + Gets an instance of the class + that represents the progress bar indicator. + + + + + Gets an instance of the class + that represents the separators on the progress bar indicator. + + + + + Gets or sets the separators width in pixels. + + + The width of the separator. + + + + + Gets or sets the first gradient color for separators + + + The separator color1. + + + + + Gets or sets the second gradient color for separators + + + The separator color2. + + + + + Gets or sets the third gradient color for separators + + + The separator color3. + + + + + Gets or sets the fourth gradient color for separators + + + The separator color4. + + + + + Gets or sets the angle of the separators gradient + + + + + Gets or sets the first color percentage in the separator gradient. + + + + + Gets or sets the second color percentage in the separator gradient. + + + + + Gets or sets the number of colors used in the separator gradient. + + + + + Gets an instance of the class + that represents the text of the progress bar. + + + + + Gets or sets the text associated with this element. + + + + + Gets or sets the angle at which the dash or hatch lines are tilted. + + + + + Gets the instance of RadScreenTipElement wrapped by this control. RadScreenTipElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadScreenTip. + + + + + Gets the element that displays the caption + + + + + Gets the element that displays the footer line + + + + + Gets the element that displays the Text + + + + + Gets the element that displays the Footer + + + + + Gets the FillPrimitive instance that represents + the screen tip fill. + + + + + Gets the BorderPrimitive instance that represents + the screen tip border. + + + + + Represents event data for the following events: OnTabSelected, OnTabHovered, + OnTabDragStarted, OnTabDragStarting, OnTabDragEnding, and OnTabDragEnded. + + + + + Initializes a new instance of the CommandTabEventArgs class using the + affected command tab. + + + + + + Gets the affected command tab. + + + + + Represents the method that will handle the following event: + CommandTabSelected. + + + + + ContextualTabGroups are used to organize RibbonBar Tabs in + groups which are visible depending on certain context. + + + + + Collection containing references to the TabItems in the group. + + + + Gets or sets the displayed text. + + + + + A collection that stores objects. + + + + + + + + Initializes a new instance of the + . + + + + + + + Initializes a new instance of the + . + + + + + + + Initializes a new instance of the + + based on another + . + + + + A from which the contents are copied + + + + + + Initializes a new instance of the + + containing any array of + objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space to the end of . + is . + + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + + Returns an enumerator that can iterate through + the . + + None. + + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + Gets or sets a value indicating the owner. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + + + + + + Initializes a new instance of the ContextualTabGroupEnumerator class + using a collection of ribbon bar command tabs. + + + + + + Moves to the next element in the collection. When invoked for the first time, + moves to the first element of the collection. + + + + Resets the iterator. + + + Gets the current element of the collection. + + + + Find main form and save it in member variable + + + + + Main method for internal logic + + + + + Gets the Minimize button + + + + + Gets the Maximize button + + + + + Gets the Close button + + + + + This method defines whether a Quick Access Toolbar item is visible or not. + If the method is called to hide an item, its Visibility property is set to Collapsed + and the corresponding menu item in the overflow button is unchecked. + The method throws an InvalidOperationException if the item does not below + to the current QAT collection. + + The item which visibility will be modified. + True to show an item, false to collapse it. + + + Gets the items in the tabstrip. + + + + + + + Determines whether the parent form can be moved by dragging the title bar. + + + + + Gets or sets the value of the caption + + + + + Gets the caption layout + + + + + Gets the Help button. + + + + + Gets the Minimize button + + + + + Gets the Maximize button + + + + + Gets the Close button + + + + + Fires when the close button is clicked + + + + + Fires when the minimize button is clicked + + + + + Fires when the maximize button is clicked + + + + + + + + Transforms the given point's X coordinate from world coordinates to local coordinates. + + The point to transform + The transformed point + + + + This method calculates the available space for the + ribbon caption text at the left side of the + contextual tab groups + The total available size for the elements + managed by this layout panel. + The width available. + + + + This method calculates the available space for the + ribbon caption text at the right side of the + contextual tab groups + The total available size for the elements + managed by this layout panel. + The width available. + + + + Determines whether the tab strip items should be reordered so that they match + the requirements for associated tab strip items. + + True if a reset is needed. Otherwise false. + + + + Checks whether the Add New Tab item is in the tab strip. + + True or false + + + + Gets the count of the empty contextual tab groups. + + The count of the empty groups. + + + + Resets the layout context variables which are used to determine the position + of the caption text, the contextual tabs and the design-time + contextual tab groups which are empty. + + + + + Gets the left most contextual tab group. + + Determines whether empty contextual groups are considered when + calculating the left most group + A reference to the left most group. Null if no groups are found. + + + + Gets the right most contextual tab group. + + Determines whether empty contextual groups are considered when + calculating the right most group + A reference to the right most contextual group. Null if no groups are found. + + + + This method reorders the TabStrip items so that they are positioned under the + ContextualTabGroup they are associated with. All tab items that are + associated with a tab groups should be positioned on the right side of the tab strip. + This algorithm begins iterating from the first to the last contextual tab group as they + appear in the collection of the ribbon bar. The associated tab items are always inserted + at the end of the tab strip. In this way the effect of positioning the last associated + tab item at the end of the corresponding contextual group is achieved. + + + + + This method calculates the size of a contextual group base on the associated tabs. + + The tab group which size is to be calculated + The calculated size of the group. + + + + This method is responsible for measuring the rightmost visible contextual group with associated tabs. + This is a private case method which is called only for the right most group, + since it has to be shrinked when the system buttons panel has to 'step' over it while resizing. + + The available size for measuring + The tab group which is to be shrinked + + + + This method is responsible for arranging the rightmost visible contextual group with associated tabs. + This is a private case method which is called only for the right most group, + since it has to be shrinked when the system buttons panel has to 'step' over it while resizing. + + The final size for arranging + The tab group which is to be arranged + + + Represents parameters of the scroll bar such as small change and + large change in the scrolling position. + + + + Represents the minimum value of the scrolling position. + + + + + Represents the maximum value of the scrolling position. + + + + + Represents a small change in the scrolling position; the value which will be + added or substracted from the current position in case of small change. + + + + + Represents a large change in the scrolling position; the value which will be + added or substracted from the current position in case of large change. + + + + Initializes a new ScrollBarParameters structure. + + Initializes the minimum value of the scrolling. + Initializes the maximum value of the scrolling. + Initializes the small change value. + Initializes the large change value. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Allow form's resize + + + + + Gets or sets the form's border color + + + + + Gets or sets the form's border width + + + + + Gets or sets an instance of the Shape object of a form. The shape of the + form is responsible for providing its' border(s) with custom shape. + + + Some predefined shapes are available, like or . + offers a way to specify element's shape with a sequance of points and curves using code + or the design time + . + + + + Gets or sets theme name. + + + Enables or disables transparent background on Vista + + + + Gets or sets the FormBorderStyle of the Form. + + + + + Represents a title bar. This control helps in creation of borderless forms by + substituting the system title bar. Subscribe for radTitleBar events to implement + the actual action for the the corresponding event. For example, on Close event + close the form of your application. + Use the Visual Style Builder to change the default appearance and the visible + elements. For example the system menu is not visible by default. + + + + + Initializes a new instance of the RadTitleBar class. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets a boolean value that determines whether the title bar + can manage the owner form. + + + + + Allow form's resize + + + + + An Icon that represents the icon for the form. + + + + + Gets the instance of RadTitleBarElement wrapped by this control. RadTitleBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadTitleBar. + + + + + Fires when a minimize action is performed by the user (the minimize button is + pressed). + + + + + Fires when a maximize/restore action is performed by the user (maximizes button + is pressed or the title bar is double clicked). + + + + + Fires when the minimize in the tray button is pressed. It is hidden by default. + Use the Visual Style Builder to set which elements are visible and design their visual + appearance. + + + + + Represents the method that will handle some of the following events: Close, + MaximizeRestore, Minimize, and MinimizeInTheTray. + + + + + Represents a button control. The button control serves as a + RadButtonElement Class wrapper. All logic and + presentation features are implemented in a parallel hierarchy of objects. For this + reason, RadButtonElement Class may be nested in + any other telerik control, item, or element. + + + + + Gets or sets the DialogResult for this button. + + + + + Rec editors. It is used in + RadComboboxElement, DropDownButton, etc. + + + + + Note: this property is supposed to be used only when this.Parent.AutoSizeMode==WrapAroundChildren + + + + Represents a menu separation item. + Use it to separate logically unrelated items in the menu. + + + Initializes a new instance of the RadMenuSeparatorItem class. + + + Gets or set the sweep angle in degrees. + + + + Gets or sets the separator + orientation. Possible values are members of SepOrientation enumeration. + + + + Gets or sets separators width in pixels. + + + + Gets or sets the offset of the location where the draw of the line should start + + + + Gets a value indicating whether the RadMenuSeparator can be selected. + + + + Gets or sets a value indicating whether the text should be visible. + + + + + Represents the RadRadioButton control + + + + + Represents a RadToggleButton. A ToggleButton may have the following states: + On, Off, and Indeterminate. The button may have only the first two states if the + IsThreeState property is set to false. + + The RadToggleButton class is a simple wrapper for the + RadToggleButtonElement. All UI and + logic functionality is implemented in the + RadToggleButtonElement class. The + latter can be nested in other telerik controls. RadToggleButton acts to + transfer events to and from the its corresponding + RadToggleButtonElement instance. + + + + + Initializes a new instance of the RadToggleButton class. + + + + Initializes a new instance of the class. + + + + + Create main button element that is specific for RadToggleButton. + + The element that encapsulates the functionality of RadToggleButton + + + + Raises the StateChanging event. + + + + + Raises the StateChanged event. + + + + + Raises the CheckStateChanging event. + + + + + Raises the CheckStateChanged event. + + + + + Gets the instance of RadToggleButtonElement wrapped by this control. RadToggleButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadToggleButton. + + + + + + + Gets or sets a boolean value indicating where the button is checked. + + + + Gets or sets the CheckState + . CheckState enumeration defines the following values: Unchecked, Checked, and Indeterminate. + + + + Gets or sets a boolean value indicating where the button is checked. + + + + Gets or sets a value indicating whether the toggle button is read only. + + + true if the toggle button is read only; otherwise, false. + + + + Occurs when the elements's state is changing. + + + + Occurs when the element's state changes. + + + + Occurs when the elements's check state is changing. + + + + Occurs when the element's check state changed. + + + + + Create main button element that is specific for RadRadioButton. + + The element that encapsulates the funtionality of RadRadioButton + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets the default size of RadRadioButton + + + + + Gets the instance of RadRadioButtonElement wrapped by this control. RadRadioButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRadioButton. + + + + Gets or sets a value indicating the alignment of the radio button. + + + + Represents a radio button element. The RadRadioButton + class is a simple wrapper for the RadRadioButtonElement class. The + RadRadioButton acts to transfer events to and from its + corresponding RadRadioButtonElement instance. The RadRadioButtonElement which is + essentially the RadRadioButton control may be nested in + other telerik controls. + + + + + Registers the RadioCheckAlignment dependency property + + + + + initializes and adds the child elements + + + + + Fires te Click event and handles the toggle logic + + + + + Gets or sets a value indicating the alignment of the radio-mark according to the text of the button. + + + + Represents checkmark. + + + + Registers the CheckState dependency property + + + + + Registers the IsImage dependency property + + + + + Registers the IsCheckMark dependency property + + + + + Initializes the newly added children if needed. + + + + + + + handles the properties behavior when a property value is changed. + + + + + + Sets the toggle state of the RadioMark + + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Gets an instance of the check element + + + + + Gets an instance of Image element + + + + Gets or sets value indicating RadRadiomark checkstate. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Raises the GalleryItemHover event. + + + + + Raises the DropDownOpening event. + + + + + Raises the DropDownOpened event. + + + + + Raises the DropDownClosing event. + + + + + Raises the DropDownClosed event. + + + + + Gets an instance of the class + that represents the popup control which hosts the + displayed to the user when he/she clicks on the drop-down button of the gallery. + + + + + Gets an instance of the class + that represents the main element put in the + when it is shown to the user. This element holds the content of the gallery, + as well as some additional elements like sizing grip etc. + + + + + Gets the instance + that represents the Gallery Element's fill. + + + + + Gets the instance + that represents the Gallery Element's border. + + + + + Gets tne that + represents the up button in the gallery element. + + + + + Gets tne that + represents the down button in the gallery element. + + + + + Gets tne that + represents the show popup button in the gallery element. + + + + + Gets or sets a value indicating whether group filtering is enbled when filters are defined. + + + + + Gets a collection representing the group filters defined in this gallery. + + + + + Gets a collection representing the groups contained in this gallery. + + + + + Returns whether the gallery is currently dropped down. + + + + + Gets a collection representing the items contained in this gallery. + + + + + Gets or sets a value indicating whether the selection of the gallery items is enabled or not. + + + + + Gets or sets the maximum number of columns to be shown in the in-ribbon portion of the gallery. + + + + + Gets or sets the maximum number of columns to be shown in the drop-down portion of the gallery. + + + + + Gets or sets the maximum number of rows to be shown in the in-ribbon portion of the gallery. + + + + + Gets or sets the minimum number of columns to be shown in the drop-down portion of the gallery. + + + + + Gets or sets the currently selected item. + + + + + Gets the Tools menu items collection where you can add and remove items from the + Tools part of the gallery + + + + + Gets or sets a value indicating whether a gallery item is zoomed-in when mouse over it. + + + + + Occurs when the mouse pointer rests on the gallery item. + + + + + Occurs when the drop-down is opening. + + + + + Occurs when the drop-down has opened. + + + + + Occurs when the drop-down is about to be closed. + + + + + Occurs when the drop-down window has closed. + + + + + Gets or sets value indicating whether DropDownMenu will have the same class name as the owner control or its own. + True means that the same class name will be used as the control that opened the dropdown. + + + + + Gets a collection representing the group items contained in this gallery filter. + + + + + Returns whether the filter is currently selected. + + + + + Gets or sets a value indicating whether the caption of the group is shown. + + + + + Gets or sets the description text associated with this item. + + + + + Angle of rotation for the button image. + Unlike AngleTransform the property ImagePrimitiveAngleTransform rotates the image only. + AngleTransform rotates the whole item + + + + + Gets or sets the font of the description text of the RadGalleryItem. + + + + + Returns whether the gallery item is currently selected. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + + + + Gets or sets the image that is displayed on a button element. + + + + + Gets or sets the image list index value of the image displayed on the button control. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the position of text and image relative to each other. + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets the element responsible for painting the background of the label + + + + + Gets the element responsible for painting the text of the label + + + + + Gets the image element responsible for painting the image part of the label. + + + + + Gets the responsible for painting the image part of the label. + + + + + Represents a check box. The RadCheckBox class is a simple wrapper for the + RadCheckBoxElement class. The RadCheckBox acts + to transfer events to and from its corresponding + RadCheckBoxElement. The + RadCheckBoxElement which is essentially the + RadCheckBox control may be nested in other telerik controls. + + + + + Create main button element that is specific for RadCheckBox. + + The element that encapsulates the functionality of RadCheckBox + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets the instance of RadCheckBoxElement wrapped by this control. RadCheckBoxElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadCheckBox. + + + + Gets or sets value indicating the checked state of the checkbox. + + Since RadCheckBox is tri-state based (ToggleState property) the Checked property is provided for compatibility only. + Checked=true corresponds to ToggleState.On and Checked=false corresponds to ToggleState.Off. + If value of ToggleState property equals , + value of Checked property is 'false'. + + + + + Gets or sets a value indication whether mnemonics are used. + + + + Gets or sets a value indicating the alignment of the check box. + + + + Represents a RadRepeatButton. If the button is continuously held pressed, it + generates clicks. The RadRepeatButton class is a simple wrapper for the + RadRepeatButtonElement class. The + RadRepeatButton acts to transfer events to and from its corresponding + RadRepeatButtonElement instance. The + RadRepeatButtonElement which is + essentially the RadRepeatButtonElement + control may be nested in other telerik controls. All graphical and logical + functionality is implemented in + RadRepeatButtonElement class. + + + + + Raises the ButtonClick event. + + + + + Gets the instance of RadRepeatButtonElement wrapped by this control. RadRepeatButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRepeatButton. + + + + + Determines whether the button can be clicked by using mnemonic characters. + + + + + Gets or sets the amount of time, in milliseconds, the Repeat button element waits while it is pressed before it starts repeating. The value must be non-negative. + + + + + Gets or sets the amount of time, in milliseconds, between repeats once repeating starts. The value must be non-negative. + + + + + Propagates internal element click. + + + + + Represents the method that will handle the + ToggleStateChanging + event. + + Represents the event sender. + Represents the event arguments. + + + + Represents the method that will handle the + CheckStateChanging + event. + + Represents the event sender. + Represents the event arguments. + + + + Represents event data of the + CheckStateChanging + event. + + + + + Initializes a new instance of the StateChangingEventArgs class using the old toggle state, the new toggle state and + + + + + + + + Gets or sets the old toggle state. + + + + + Gets or sets the new toggle state. + + + + + Represents event data of the + ToggleStateChanging + event. + + + + + Initializes a new instance of the StateChangingEventArgs class using the old toggle state, the new toggle state and + + + + + + + + Gets or sets the old toggle state. + + + + + Gets or sets the new toggle state. + + + + + Represents event data of the + ToggleStateChanged. + + + + + Initializes a new instance of the StateChangedEventArgs class. + + + + + + Gets the toggle state Off, On, or Indeterminate + + + + + Represents the method that will handle the + ToggleStateChanged + event. + + Represents the event sender. + Represents the event arguments. + + + + Represents the method that will handle the SelectedIndexChanged event. + A SelectedIndexChangedEventArgs that contains the event data. + The source of the event. + + + + + Represents event data of the SelectedIndexChanged event. + + + + + Initializes a new instance of the SelectedIndexChangedEventArgs class. + + + + + Gets the instance of previously selected item. + + + + + Gets the instance of currently selected item. + + + + Used to group collections of controls. + + A RadPanel is a control that contains other controls. You + can use a RadPanel to group collections of controls such as a + group control of radio buttons. If the RadPanel control's + Enabled property is set to false, the controls + contained within the RadPanel will also be disabled. + You can use the AutoScroll property to enable scroll bars in + the RadPanel control. When the AutoScroll + property is set to true, any controls located within the + RadPanel (but outside of its visible region), can be scrolled to + with the scroll bars provided. + The RadPanel control is displayed by default with border and + a text (using TextPrimitive). There is a + FillPrimitive which is transparent by default. It allows gradients + to be used for background of the RadPanel. + + + + Initializes new RadPanel + + + Creates the main panel element and adds it in the root element. + + + + Gets the instance of RadPanelElement wrapped by this control. RadPanelElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadPanel. + + + + + Gets or set a value indicating whether panel will scroll automatically to show + the currently focused control inside it. + + + + + Gets or sets the alignment of the text within Panel's bounds. + + + + Gets the default size of the control. + The default System.Drawing.Size of the control. + The default Size of the control. + + + + This property is not relevant for this class. + + + + + Gets or sets a value indicating whether the control causes validation to be + performed on any controls that require validation when it receives focus. + + + true if the control causes validation to be performed on any controls requiring + validation when it receives focus; otherwise, false. + + + + The main element of the RadPanel control. + + + Create the elements in the hierarchy. + + + + Gets the of the + panel element. + + + + + Gets the of the + panel element. + + + + + Gets the of the + panel element. + + + + + This class represents the root element + of a control. + + + + + Represents a dialog containing a color picker + + + + + Creates instance of RadColorDialog class + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the color selector + + + + + Gets or sets the selected color + + + + + Gets or sets the selected color + + + + + Gets or sets the old color + + + + + Gets or sets the active mode of the color tabstrip + + + + + Shows or hides the basic colors tab + + + + + Shows or hides the system colors tab + + + + + Shows or hides the web colors tab + + + + + Shows or hides whe professional colors tab + + + + + Shows or hides the custom colors tab + + + + + Shows or hides the hex color value + + + + + Allows or disallows editing the HEX value + + + + + Allows or disallows color picking from the screen + + + + + Allows or disallows color saving + + + + + Gets the custom colors + + + + + Gets or sets the heading of the basic colors tab + + + + + Gets or sets the heading of the system colors tab + + + + + Gets or sets the heading of the web colors tab + + + + + Gets or sets the heading of the professional colors tab + + + + + Gets or sets the heading of the selected color label + + + + + Gets or sets the heading of the old color label + + + + + Fires when the selected color has changed + + + + + Instance of this class contain information about the control to which + a container of the RadScrollablePanel is scrolled. + + + + + Gets an instance of the + class that represents the scrollable panel that holds + the gallery items when the popup is shown. + + + + + Gets an instance of the class + that represents the element holding the buttons that represent + the different filters and groups. + + + + + Gets an instance of the class + that represents the sizing grip of the dropdown. + + + + + Set theme name for the whole RadMessageBox + + + + + + Displays RadMessageBox with specified text. + + The text to display in the RadMessageBox. + One of the values + + + + Displays RadMessageBox with specified text and caption. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, and buttons. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, and buttons. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, buttons, and icon. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, buttons, and icon. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, buttons, icon and default button. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, buttons, icon and default button. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text and caption. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, and buttons. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, and buttons. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, and icon. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, and icon. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + that displays in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, icon, and default button. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, icon, and default button. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values that specifies right to left settings. + One of the values + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, icon, and default button. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values that specifies right to left settings. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, icon, and default button. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + that displays in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values. + + + + Gets the RadMessageBoxForm instance + + + + + Gets or set theme name for the whole RadMessageBox + + + + + Set the cursor that is displayed when the mouse pointer is over the control. + + + + + Set the message to be shown in windows taskbar. Default is false + + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Set label text and size according to text string measure + + + + + + Calculate form size according to title text size + + width + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Gets or sets a value indicating whether a beep is played when the message box is shown. + + + true if a beep is played; otherwise, false. + + + + + Sets the RadMessageBox Text + + + + + Sets the RadMessageBox caption text + + + + + RadMessageBox Icon + + + + + Gets ot sets the size of the buttons shown in the message box. + + + + + Provides Localization service for RadMessageBox + + + + + Gets the string corresponding to the given ID. + + String ID + The string corresponding to the given ID. + + + + present RadGripElement + + + + + creacte child elements + + + + + OnMouseDown + + + + + + OnMouseUp + + + + + + OnMouseMove + + + + + + Grip image + + + + + Represents a RadStatusStrip. The RadStatusStrip class is a simple wrapper for the + RadStatusBarElement class. The RadStatusStrip acts + to transfer events to and from its corresponding + + + + + create RadStatusStrip instance + + + + + create child items + + + + + + fire the StatusBarClick event + + + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + implement default Dock style + + + + + This property is not relevant for this class. + + + + + Gets or sets the visibility of the grip used to reposition the control. + + + + + Gets all the items that belong to a RadStatusStrip. + + + + + Set the RadStatusStrip's layout style + + + + + Gets the instance of RadStatusBarElement wrapped by this control. RadStatusBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadStatusStrip. + + + + + RadStatusStrip consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadStatusStrip consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + status bar click events + + + + + this event fired before Layout Style Changing + + + + + this event fired after LayoutStyle Changed + + + + + custom event handle for the click event + + + + + + + represent the RadStatusBarClickEventArgs object + + + + + create a instance of + + + + + + + present the clicked element + + + + + Represents a RadStatusBarElement. + + + + + create elements in the RadStatusBarElement + + + + + this event fired before Layout Style Changing + + + + + this event fired after LayoutStyle Changed + + + + + Gets a collection representing the "View changing" items contained in this statusbar. + + + + + get or set RadStatusBarElement orienatation + + + + + show or hide the Grip element in RadStatusStrip + + + + + Set the RadStatusStrip's layout style + + + + + enumerate RadStatusStrip LayoutStyles + + + + + represent the RadStatusBarPanelElement + + + + + create child items + + + + + Represents the StatusBarBoxLayout class + + + + + Registers the Proportion dependancy property of StatusBarBoxLayout + + + + + Registers the Orientation dependancy proeprty of StatusBarBoxLayout + + + + + Registers the StripPosition dependancy property of StatusBarBoxLayout + + + + + Gets the proportion based on a given element + + + + + + + arranges the children by a given criteria + + + + + + + Gets or sets strip orientation - it could be horizontal or vertical. + + + + + represents StripPosition enumeration + + + + Gets or sets the line width in pixels. + + + + Gets or sets the line orientation. Possible values are defined in the SepOrientation + enumeration. + + + + Gets or sets the line angle in degrees. + + + + Represents a numeric up/down control box. The RadSpinEditor class is a simple wrapper for the + RadSpinElement class. The RadSpinEditor acts + to transfer events to and from its corresponding + RadSpinElement. The + RadSpinElement which is essentially the + RadSpinEditor control may be nested in other telerik controls. + + + + + Initializes a new instance of the RadSpinEditor class + + + + + CreateChildItems + + + + + + increase or decrease value in the numeric up/dowm with step value + + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + + + True if the user can give the focus to the control using the TAB key, otherwise false. The default is true. + + + + + set the default control size + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the instance of RadSpinElement wrapped by this control. RadSpinElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadSpinControl. + + + + + Gets or sets the mimimum value for the spin edit + + + + + Gets or sets the maximum value for the spin edit + + + + + Gets or sets the whether RadSpinEditor will be used as a numeric textbox. + + + + + Gets or sets whether by right-mouse clicking the up/down button you reset the value to the Maximum/Minimum value respectively. + + + + + Gets or sets a value indicating whether the border is shown. + + + + + Set or get the Step value + + + + + Set or get the Step value + + + + + Gets or sets a value indicating that value will revert to minimum value after reaching maximum and to maximum after reaching minimum. + + + + + Represents the decimal value in the numeric up/down + + + + + Represents the decimal value in the numeric up/down. The Value can be null + + + + + Gets or set how to interpret the empty text in the editor portion of the control + if true the empty value will set NULL in NullableValue property + + + + + Gets or sets a value indicating whether the user can use the UP ARROW and DOWN ARROW keys to select values. + + + + + Gets or sets a value indicating whether the text can be changed by the use of the up or down buttons only. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the RadSpinEditor + + + + + Gets or sets the number of decimal places to display in the RadSpinEditor + + + + + Gets or sets a value indicating whether the RadSpinEditor should display the value it contains in hexadecimal format. + + + + + Gets or sets the minimum value that could be set in the spin editor + + + + + Gets or sets a value indicating whether the control causes validation to be + performed on any controls that require validation when it receives focus. + + + true if the control causes validation to be performed on any controls requiring + validation when it receives focus; otherwise, false. + + + + + Occurs before the value of the SpinEdit is changed. + + + + + Occurs before the value of the SpinEdit is changing. + + + + + Occurs when the NullableValue of the SpinEdit is changed. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Initializes a new instance of the RadTextBoxBase class. + + + + + Represents RadTextBoxBase constructor + + + + + Initializes textbox's children + + + + + Appends text to the current text. + + + + + Empties the TextBox. + + + + + Undo to the previous text value before clear invocation. + + + + + Copies the text value to the clipboard. + + + + + Cuts the text value to the clipboard. + + + + + Deselects the text in the cotrol. + + + + + Retrieves the character that is closest to the specified location within the + control. + + + + + Retrieves the index of the character nearest to the specified location. + + + + + Retrieves the index of the first character of a given line. + + + + + Retrieves the index of the first character of the current line. This method + is not supported by MaskedTextBox. + + + + + Retrieves the line number from the specified character position within the + text of the control. + + + + + Retrieves the location within the control at the specified character + index. + + + + + Pastes the text value to the clipboard. + + + + + Pastes the string parameter to the clipboard. + + + + + Scrolls the contents of the control to the current caret position. + + + + + Selects the text in the TextBox from the start position inclusive to the end + position exclusive. + + + + + Selects the text in the TextBox. + + + + + Undoes the last edit operation in the text box. + + + + + Sets input focus to the control. + + true if the input focus request was successful; otherwise, false. + + + + + Activates the control. + + + + + Raises the AcceptsTabChanged event. + + + + + Raises the HideSelectionChanged event. + + + + + Raises the ModifiedChanged event. + + + + + Raises the MultilineChanged event. + + + + + Raises the ReadOnlyChanged event. + + + + + Raises the TextAlignChanged event. + + + + + Raises the TextChanging event. + + + + + Gets or sets whether the edit control is auto-sized + + + + Gets or sets the displayed text. + + + + Gets or sets + the font of the text displayed by the control. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline RadTextBox + control creates a new line of text in the control or activates the default button for + the form. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text + box control types a TAB character in the control instead of moving the focus to the + next control in the tab order. + + + + Gets value indicating whether undo is allowed. + + + + Gets or sets a value indicating whether the RadTextBox control modifies the + case of characters as they are typed. + + + + + Gets or sets a value indicating whether the selected text remains highlighted + even when the RadTextBox has lost the focus. + + + + + Gets or sets + the lines of text in multiline configurations. + + + + + Gets or sets + the maximum number of characters allowed in the text box. + + + + + Gets or sets a value indicating whether the RadTextBox control has been modified + by the user since the control was created or since its contents were last set. + + + + + Gets or sets + a value indicating whether this is a multiline TextBox control. + When the value is true, the AutoSize property is automatically changed to false and the user needs to take care of the height of this control. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets a value indicating whether the null text will be shown when the control is focused and the text is empty. + + + + + Gets or sets + the character used to mask characters of a password in a single-line TextBox + control. + + + + + Gets or sets + a value indicating whether the contents of the TextBox control can be + changed. + + + + + Gets or sets + which scroll bars should appear in a multiline TextBox control. + + + + + Gets or sets a value indicating the currently selected text in the + control. + + + + + Gets or sets + the number of characters selected in the text box. + + + + + Gets or sets + the starting point of text selected in the text box. + + + + + Gets or sets + a value indicating whether the defined shortcuts are enabled. + + + + Gets or sets how text is aligned in a TextBox control. + + + Gets the length of the text in the control. + + + + Gets or sets a value indicating whether a multiline text box control + automatically wraps words to the beginning of the next line when necessary. + + + + + Occurs when + the value of the AcceptsTab property has changed. + + + + + Occurs when + the value of the HideSelection property changes. + + + + + Occurs when + the value of the Modified property has changed. + + + + + Occurs when + the value of the Multiline property has changed. + + + + + Occurs when + the ReadOnly property changes. + + + + + Occurs when + the value of the TextAlign property has changed. + + + + + Occurs + when text is being changed. + + + + + The TextBox control that is hosted by default by RadTextBoxItem. + Children of this calss can be passed to RadTextBoxItem in order to customize the hosted text box. + + + + + Overload to automatically create the Graphics region before drawing the text prompt + + The Graphics region is disposed after drawing the prompt. + + + + Draws the NullText in the client area of the TextBox using the default font and color. + + + + + Gets or sets a color of the null text + + + + + Gets or sets a value indicating whether the null text will be shown when the control is focused and the text is empty + + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + + + Represents a RadTextBox. The RadTextBox control serves as a simple wrapper for + RadTextBoxElement class which in turn wraps + RadTextBoxItem Class. All logic and presentation + features are implemented in a parallel hierarchy of objects. For this reason, + RadTextBoxElement class may be nested in any + other telerik control, item, or element. RadTextBox acts to transfer events to and + from its corresponding instance of the + RadTextBoxElement class. + + + + + Represents RadTextBox's constructor + + + + + Initializes textbox's children + + + + + Gets the instance of RadTextBoxElement wrapped by this control. RadTextBoxElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadTextBox. + + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + + Gets or sets a value indicating whether the text should appear as the default password character. + + + true if the text otherwise hould appear as the default password character; false. + + + + + Gets or sets a value indicating whether the clear button is shown. + + + + + Gets or sets a value indicating whether the control causes validation to be + performed on any controls that require validation when it receives focus. + + + true if the control causes validation to be performed on any controls requiring + validation when it receives focus; otherwise, false. + + + + + Represents a layout panel used in the RadCheckBoxElement. + + + + Gets or sets the offset between the check and body elements. + + The body can contain image and / or text the same way as all buttons can - + see + + + + Gets or set a value indicating the check alignment. + + + + RadScrollLayoutPanel is the layout panel that arranges viewport, horizontal and vertical scrollbars + and a spot that appears when both scrollbars are shown. + + + For more information about scrolling see the help for + RadScrollViewer class and for + IRadScrollViewport interace. + + + + + The spot between the ScrollBars when both are shown + + + + + Set visible and enabled state of the ScrollBars. + + + + + Make viewportOffset to be with correct value. + Set Value of ScrollBars using viewportOffset + + + + + Occurs when horizontal or vertical scrolling is performed + + + + + Occurs when the need for horizontal or vertical scrollbar has changed. + + + + + Occurs when property that affects the scrolling functionality is changed. + + + + + Occurs when the Viewport is changed + + + + + Gets the horizontal scrollbar + + + + + Gets the vertical scrollbar + + + + + Gets the retcangle that is between the two scrollbars when they both are shown. + + + + + Gets a value indicating whether can be performed horizontal scrolling operation + + + + + Gets a value indicating whether can be performed vertical scrolling operation + + + + Gets or sets the scroll state of the horizontal scroll bar. + State of type . Default value is AutoHide. + + + Gets or sets the scroll state of the vertical scroll bar. + State of type . Default value is AutoHide. + + + + Gets or sets the thickness of the scrollbar. + + + + + Gets or sets the element which content will be scrolled if the scroll viewer has + not enough space for it. Very often the viewport is a layout panel that implements + . + + + Object of type RadElement which represents the content that could be scrolled if + necessary. Default value is null. + + + + + Gets or sets a value indicating whether physical or logical scrolling will be + used. + + Boolean value: when it is false logical scrolling will be used. + + + This property cannot be set to false if does not + implement . + + + Default value is true for ordinary viewports and false for viewports that + implement . + + + + + + Gets or sets the number of pixels to use when performing Line + Up/Down/Left/Right scrolling operation. + Still the scrolling position can be set with one pixel accuracy if the scroll + bar thumb is dragged. + + + + Gets the minimum possible scrolling position. + + Point which contains minimum values for scrolling in horizontal and vertical + direction. + + + + Gets the maximum opssible scrolling position. + + Point which contains maximum values for scrolling in horizontal and vertical + direction. + + + + + Gets or sets the scrolling position. The value is between + and . + + + Point which contains the current scrolling position in horizontal and vertical + direction. + + + + + + The only implementation of and base class of + all scrollable elements. + + This class contains one element called Viewport. In addition to the ordinary + property Size, Viewport has parameter called "extent size" which represents the + real size of its content. Extent size could be bigger as well as smaller than the + size of the scroll viewer. + + There are two types of viewports: ordinary elements and elements that implement + . In the first case extent size is the + size of the viewport itself. The scrolling is done on pixel basis and via + painting offset of the viewport (it is called physical scrolling). In the + second case the functions that are declared in + are called for getting extent size and + performing the scroll operation (this is called logical scrolling). + + + If the viewport implementation is of type it + still can be physically scrolled by setting the property + to true. + + + Physical scrolling has one parameter that can be set - + which represents the small change value + for the scrolling (i.e. the number of pixels for Line Up/Down/Left/Right). The + large change (Page Up/Down/Left/Right) is the corresponding size of the + viewable size of the viewport. + + + For more information about custom viewports and logical scrolling - see + . + + + Current scroll position can be get or set via the property + . In addition scrolling can be performed by calling the + methods that are implemented from . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether the border is shown. + + + Gets or sets a value indicating whether the fill is shown. + + + + + + + + + + + + + Represents a menu. RadMenu can be horizontal or vertical. You can add, + remove, and disable menu items at run-time. It offers full theming support, + allowing you to easily construct a variety of stunning visual effects. You + can nest any other RadControl within a RadMenu. For + example, you can create a menu with an embedded textbox or combobox. + RadMenu is a simple wrapper for the RadMenuElement class. + + + + + Initializes a new instance of the RadMenu class. RadMenu can be horizontal or + vertical. You can add, remove, and disable menu items at run-time. It offers full + theming support, allowing you to easily construct a variety of stunning visual effects. + You can nest any other RadControl within a RadMenu. For + example, you can create a menu with an embedded textbox or combobox. + + + + + + + + + + + + + + + + + + + + + + + Gets or sets boolean value that determines whether + RadMenu handles the MDI menu functionality. + + + + + Indicates whether the menu items should be stretched to fill the available space. + + + + + Gets or sets whether the Alt or F10 keys can be used to highlight the menu. + + + + + Gets the instance of RadMenuElement wrapped by this control. RadMenuElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadMenu. + + + + + + + + + + + + + + + + + + + + + + + RadMenu consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadMenu consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + This enumerator describes the states can + jump into when processing mnemonics. + + + + + When the menu is in this state, that means that Mnemonics are visible. + + + + + When the menu is in this state, that means it listens for keyboard input and can process mnemonics. + + + + + When the menu is in this state, that means it can process keyboard input not associated with mnemonics. + This can be navigation input for instance. + + + + + When the menu is in this state, that means it will not process mnemonics. + + + + + other Telerik RadControls and Windows Represents a RadRibbonBar. The + RadRibbon bar visual appearance can be customized in numerous ways through themes. + Also you can nest other telerik controls in the ribbon bar chunks thus creating + intuitive interface for your applications. All of the application's functionality + is accessible from a single ribbon. The ribbon is divided into command tabs such as + Write, Insert, and Page Layout. When the users clicks on a command tab, they see + chunks such as Clipboard, Font, and Paragraph. Each chunk can hold an unlimited + number of controls including toolbars, comboboxes, and Forms controls. + + The RadRibbonBar class is a simple wrapper for the + RadRibbonBarElement class. All UI and + logic functionality is implemented in + RadRibbonBarElement class. RadRibbonBar + acts to transfer the events to and from its + RadRibbonBarElement class. + + + + + Initializes a new instance of the RadRibbonBar control class. + + + + + + + + + + + + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the small image list + + + + + Gets or sets the text of the control + + + + + Gets or sets a flag indicating whether the control causes validation + + + + + + + + + + + + + + Allows the user to navigate the control using the keyboard + + + + + Represent the Ribbon Help button + + + + + Represent the Ribbon Expand button + + + + + Get or sets value indicating whether RibbonBar Help button is visible or hidden. + + + + + Get or sets value indicating whether RibbonBar Help button is visible or hidden. + + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this specific control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets or sets a value indicating the type of the fade animation. + + + + + + + + + + + Gets the QuickAccessToolBar element + + + + + + + + + + + + + + + + + + + + Gets the options menu button + + + + + Gets the exit menu button + + + + + + + + Gets the instance of RadRibbonBarElement wrapped by this control. RadRibbonBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRibbonBar. + + + + Gets or sets a value indicating whether the ribbon bar is expanded. + + + Gets or sets a value indicating whether the ribbon bar will be collapsed or expanded on ribbon tab double click. + + + + Gets or sets if the ribbon bar has minimize button in its caption + + + + + Gets or sets if the ribbon bar has maximize button in its caption + + + + + Gets or sets if the ribbon bar has close button in its caption + + + + + Gets the localization settings associated with this control + + + + + RadRibbonBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadRibbonBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Represents a ribbon bar button group. You can group buttons that are + logically related, for example, bold, italic, and underline buttons in + a text editor application. + + + + + Fires ItemChanged event. + + + + + Fires ItemClicked event. + + + + + + + + + + + Refreshes the items nested in the argument. + + + + + + + + + + + + + Gets the collection of items in the button group. + + + Gets or sets the orientation of the elements inside the button group: Horizontal or Vertical. + + + Gets or sets a value indicating whether the border is shown. + + + Gets or sets a value indicating whether the back color is shown. + + + + Gets the stack layout panel + that holds all elements. + + + + + Represents a Ribbon Bar group. The Group can contain telerik controls. You may + group related controls in groups; this gives the application intuitive interface. + + + + + Overrides object ToString() method. Returns the value of the Text property + prefixed with the "chunk:" string. + + + + Expands the chunk. + + + Collapses the chunk. + + + + Gets an instance of the class + that represents the group's outer border. + + + + + Gets an instance of the class + that represents the group's fill; + + + + + Gets an instance of the class + that represents the caption's fill; + + + + + Gets an instance of the class + that represents the body's fill; + + + + + Get or sets value indicating whether Dialog button is visible or hidden. + + + + Gets a collection of nested items. + + + Gets or sets the orientation of the items inside the chunk. Possible values are: Horizontal and + Vertical. + + + + Gets or sets the image that is displayed when the chunk is collapsed. + + + + + Get or Set collapsing order weight - bigger mean to start collapsing from this RadRibbonbarGroup + + + + + Occurs when Dialog Button is clicked + + + + + + A collection that stores objects. + + + + + + + + Initializes a new instance of the + . + + + + + + Initializes a new instance of the . + + Collection owner. + + + Fires when the collection is changed. + + + + Represents a ribbon bar element. The RadRibbonBarElement can be nested in other + telerik controls. Essentially RadRibbonBar class is a simple wrapper for + RadRibbonBarElement class. RadRibbonBar acts to transfer events to and from the its + corresponding instance of the RadRibbonBarElement. + + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An instance that contains the event data. + + + + Calls the OnCommandTabCollapsed event. + For internal use only. + + The event args associated with this event + + + + Calls the OnCommandTabExpanded event. + For internal use only. + + The event args associated with this event + + + + Gets or sets a boolean value determining whether the groups are collapsed according to the ribbon's size. + + + + + Gets or sets the Minimize button + + + + + Gets or sets the Maximize button + + + + + Gets or sets the Close button + + + + Gets a collection of the command tabs. + + + + Gets or the localization settings for this element + + + + + Gets a collection of contextual tab groups. + + + + + Get or sets value indicating whether RibbonBar Help button is visible or hidden. + + + + + Get or sets value indicating whether RibbonBar Expand button is visible or hidden. + + + + + Gets the collection of quick access menu items. + + + + Gets or sets the height of the quick access. + + + Gets or sets if the quick access toolbar is below the ribbon. + + + + Gets or sets the image of the start button placed in the top left corner. + + + + + Gets the application menu element + + + + + Gets the options menu button + + + + + Gets the exit menu button + + + + + Gets the collection of the start button menu item. + + + + + Gets the collection of the start button menu items which appear on the right. + + + + + Gets the collection of the start button menu DropDown which is displayed when the button has two columns. + + + + + Gets or sets the width of the start menu + + + + + Gets an instance of the TabStripElement which is used to display the tab items in the RibbonBarElement. + + + + + Gets the instance of the currently selected command tab. + + + + + Gets or sets a boolean value indicating whether the + RadRibbonBarElement is expanded or not. + + + + + Gets the QuickAccessToolBar + + + + + Gets the instance + that represents the fill of the ribbon's caption. + + + + + Gets the instance + that represents the border of the ribbon's caption. + + + + + Occurs just before a command tab is selected. + + + + + Occurs when a command tab is selected. + + + + + Occurs when a command tab is expanded by double clicking a collapsed command tab item. + + + + + Occurs when a command tab is collapsed by double clicking an expanded command tab item. + + + + + Gets an instance of the RibbonBarPopup class which represents the + RadRibbonBar popup. + + + + + Implements + the basic functionality of a horizontal scroll bar control. + + + + Implements the basic functionality for the scrolling. + + + This class can be used both for horizontal and for vertical scrolling through its + property . Only the + specialized children are put in the Toolbox: + and . + + + To adjust the value range of the scroll bar control set the + and + properties. To adjust the + distance the scroll thumb moves, set the + and + properties. To adjust the starting point of the scroll thumb, set the + property when the control is + initially displayed. + + + + + + Decrements the thumb position by the number of small steps given as a parameter. + The distance of a small step is determined by the + SmallChange property. + + + + + Increments the thumb position by the number of small steps given as a parameter. + The distance of a small step is determined by the + SmallChange property. + + + + + Decrements the thumb position by the number of large steps given as a parameter. + The distance of a large step is determined by the + LargeChange property. + + + + + Increments the thumb position by the number of large steps given as a parameter. + The distance of a large step is determined by the + LargeChange property. + + + + + Scrolls to the first position specified by the Minimum + property. + + + + + Scrolls to the last position specified by the Maximum + property. + + + + + Scrolls to the specified position. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the instance of RadScrollBarElement wrapped by this control. RadScrollBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of both + RadHScrollBar and RadVScrollBar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RadScrollBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadScrollBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + + + + + + + Gets or sets the ScrollType. Possible values are defined in the ScrollType + enumeration: Vertical, and Horizontal. + + + + Implements the basic functionality for scrolling. + + + This class can be used both for horizontal and for vertical scrolling via its + property . In the Toolbox only the specialized + children are put: and + . + + + To adjust the value range of the scroll bar control, set the + and properties. To adjust + the distance the scroll thumb moves, set the and + properties. To adjust the starting point of the + scroll thumb, set the property when the control is + initially displayed. + + + + + + + + + + Retrieves the srolling parameters. + ScrollBarParameters Structure + + + Sets the given scroll parameters. + ScrollBarParameters Structure + + + + Simulate scrolling - just like the top / left button is pressed. + Unlike setting property Value this function fires scrolling events. + + Value is decremented with (numSteps * SmallChange) + + + + Simulate scrolling - just like the bottom / right button is pressed. + Unlike setting property Value this function fires scrolling events. + + Value is incremented with (numSteps * SmallChange) + + + + Simulate scrolling - just like the top / left area according the thumb is pressed. + Unlike setting property Value this function fires scrolling events. + + Value is decremented with (numSteps * LargeChange) + + + + Simulate scrolling - just like the bottom / right area according the thumb is pressed. + Unlike setting property Value this function fires scrolling events. + + Value is incremented with (numSteps * LargeChange) + + + + Simulate scrolling with positioning the thumb on its first position. + Unlike setting property Value this function fires scrolling events. + + + + + Simulate scrolling with positioning the thumb on its last position. + Unlike setting property Value this function fires scrolling events. + + + + Scrolls just like the thumb is dragged at given position + Position of the thumb (in screen coordinates). + + + + Occurs when the scroll thumb has been moved by either a mouse or keyboard + action. + + + + + Occurs when the property is changed, either by a + event or programmatically. + + + + + Occurs when a property that affects the scrolling is changed. + See for more information on which properties affect the scrolling. + + + + + Indicates whether invalid values should be clamped or an exception should be thrown + + + + + Gets the first button element of this scrollbar + + + + + Gets the second button element of this scrollbar + + + + + Gets or sets a value between 0.0 and 1.0 that indicates what part of the scrollable area + can be occupied by the thumb. If the value is 0.0 then the thumb should be with length 0 + but the property MinThumbLength will cause the thumb to be larger. + If the value is 1.0 the thumb takes the whole area between the two scrolling buttons. + Negative value means that the thumb length should be calculated automatically based on + Minimum, Maximum and LargeChange values. + + + + + + Gets or sets the minimum length of the scrolling thumb. See + for more information about thumb length. + + + + An integer value that gives the minimum thumb length. It is taken into account no + matter if the thumb length is calculated automatically or the thumb length is set + explicitly. + The thumb length could be smaller than MinThumbLength if there is no space in the scroll bar. + + + + + Gets the length of the scrolling thumb. Thumb length is the thumb's height + for vertical scroll bar and the thumb's width for horizontal scroll bar. + + + + + Controls the angle that the fill primitive will be rotated when switching from horizontal to vertical orientation + + + + Gets or sets the upper limit of the scrollable range. + A numeric value. The default value is 100. + + NOTE: The value of a scroll bar cannot reach its maximum value through user + interaction at run time. The maximum value that can be reached is equal to the + Maximum property value minus the + property + value plus 1. The maximum value can only be reached programmatically. + + + + Gets or sets the lower limit for the values of the scrollable range. + A numeric value. The default value is 0. + + The value of a scroll bar cannot reach its maximum value through user + interaction at run time. The maximum value that can be reached is equal to the + Maximum property value minus the + property + value plus 1. The maximum value can only be reached programmatically. + + + + + Gets or sets a numeric value that represents the current position of the scroll thumb on + the scroll bar. + + + A numeric value that is within the and + range. The default value is 0. + + + + + Gets or sets the value to be added to or subtracted from the + property when the scroll thumb is moved a small distance. + + A numeric value. The default value is 1. + + When the user presses one of the arrow keys, clicks one of the scroll bar + buttons or calls one of the LineXXX() functions, the Value property changes + according to the value set in the SmallChange property. + + + + + Gets or sets a value to be added to or subtracted from the + property when the scroll + thumb is moved a large distance. + + A numeric value. The default value is 10. + + When the user presses the PAGE UP or PAGE DOWN key, clicks in the scroll bar + track on either side of the scroll thumb, or calls one of the PageXXX() functions, the + Value property changes according to the value set in the LargeChange + property. + + + + + Gets or sets the scroll type - it could be horizontal + or vertical. + + + + + Gets the thumb element of this scrollbar + + + + + Gets or sets the scroll timer delay + + + + Represents a vertical scroll bar. + + + + Gets or sets the ScrollType. Possible values are + defined in the ScrollType enumeration: Horizontal and Vertical. + + + + + Represents a scrollbar button. There are two buttons in the implementation of the + RadScrollBar: FirstButton and SecondButton. + + + + Initializes a new instance of the ScrollBarButton class. + + + + Initializes a new instance of the ScrollBarButton class using + scrollButtonDirection. + + + + + Gets or sets a value indicating the button + direction defined in the ScrollButtonDirection enumeration: up, right, + buttom, and left. + + + + + Gets an instance of contained in the button. + + + + + Gets an instance of contained in the button. + + + + + Gets an instance of contained in the button. + + + + Represents a scrollbar thumb in the scroll bar. + + + + Gets a value indicating whether the thumb is in pressed state. + + + + + Gets or sets the image associated with the thumb + + + + + Gets an instance of contained in the thumb. + + + + + Gets the contained in the thumb. + + + + + RadWebBrowserElement extends RadWebBrowserItem adding border and background fill. + + + + + + + + + + + + + + + + + + + + + Gets the of the + + + + + + Gets the of the + + + + + + Gets or Sets value indicating whether the is visible + + + + + + RadWebBrowserItem hosts WebBrowser control to allow using it in the TPF structure. + + + + + Gets or Sets the Url that is to be browsed. + + + + + + Gets or Sets the HTML document content. + + + + + + Gets the HTML document title content. + + + + + + Fires when document loading has completed. + + + + + + Fires when file has been downloaded + + + + + + Fires when the browser has navigated to a new document and has begun loading it. + + + + + + + Fires before the browser navigates to a new document + + + + + + + Fires before new browser window is opened + + + + + + Fires before System.Windows.Forms.Control.KeyDown event when a key is pressed while focus is on this control. + + + + + Fires when the RadWebBrowserItem has updated information on the download progress of a document it is navigating to. + + + + + + Fires when the System Colors change + + + + + Gets or sets the zoom popup shadow + + + + + Gets or sets the animation frames count + + + + + Gets or sets the animation interval (in miliseconds) + + + + + Provides data for the ToolTipTextNeeded event used in ItemScroller + + + + + Initializes a new instance of the GridElementToolTipTextNeededEventArgs class. + + The tool tip. + The row index of the first visible item. + The first visible item. + The default tooltip text. + + + + Gets the item index of the first visible item. + + + + + Gets the item associated with this ToolTip. + + + + + Represent a interface that is traversable + + + + + Gets the count. + + The count. + + + + Gets the item at the specified index. + + + + + + Specifies the mode in which an ItemScroller will scroll the items in its view. + + + + + Items are scrolled one at a time. The scrollbar maximum is equal to the number of the items in the view. + The scrollbar SmallChange is equal to 1 and each small increment or decrement will move the items in the view with one whole item. + + + + + Items are scrolled smoothly. The scrollbar maximum is equal to the sum of the heights of all the items in the view. + The scrollbar SmallChange is calculated automatically. Increments and decrements will move the items in the view with the actual value of the scrollbar. + + + + + Works in a similar way as Smooth with the difference that the view is updated only when the scrollbar thumb is released. A tooltip helps indicated the + position to which the view will be scrolled to. + + + + + Represent a navigating event handler raised by ItemScroller + + + The sender. + The e. + + + + Event arguments of ItemsNavigatingEventHandler + + Item + + + + Initializes a new instance of the class. + + The navigating item. + + + + Gets the item. + + + The item. + + + + + Gets or sets a value indicating whether the item should be skipped. + + + true if skip the item; otherwise, false. + + + + + Represent a generic scroll view element + + + + + Container element of + + + + + Gets or sets the element count. + + The element count. + + + + Gets or sets the color of the elements. + + The color. + + + + Gets or sets the secondary color of the elements. + + The secondary color. + + + + Gets or sets the inner radius. + + The inner radius. + + + + Gets or sets the radius. + + The radius. + + + + Gets or sets the initial start element angle. + + The initial start element angle. + + + + Gets or sets the rotation direction. + + The rotation direction. + + + + Gets or sets the element gradient percentage. + + The element gradient percentage. + + + + Gets or sets the element gradient percentage. + + The element gradient percentage. + + + + Gets or sets the element back color3. + + The element back color3. + + + + Gets or sets the element back color3. + + The element back color3. + + + + Gets or sets the element number of colors. + + The element number of colors. + + + + Gets or sets the current leading element angle. + + The current leading element angle. + + + + Gets or sets the dot radius. + + The dot radius. + + + + Gets or sets the last dot radius. + + The last dot radius. + + + + Gets or sets the line thickness. + + The line thickness. + + + + Checks if an angle is in given range(by given start and end angles) depending on the RotationDirection. + + The angle to check. + Start of range. + End of range. + + + + + Gets or sets a value indicating whether to expand and collapse the ring. + + Boolean. + + + + Gets or sets the sweep angle. + + The sweep angle. + + + + Gets or sets the minimal sweep angle. + + The minimal sweep angle. + + + + Gets or sets the outer ring sweep angle. + + The outer ring sweep angle. + + + + Gets or sets the width of the outer ring. + + The width of the outer ring. + + + + Gets or sets the background color of the outer ring. + + The outer ring background color. + + + + Gets or sets the inner ring sweep angle. + + The inner ring sweep angle. + + + + Gets or sets the inner ring start angle measured in degrees. + + The inner ring start angle. + + + + Gets or sets the width of the inner ring. + + The width of the inner ring. + + + + Gets or sets the background color of the inner ring. + + The inner ring background color. + + + + Gets or sets the distance between segments. + + + + + Represents accelerating dots moving in a line. + + + + + Gets a value indicating whether the WaitingDirection is vertical(Top or Bottom). + + + + + Gets or sets the dot radius. + + The dot radius. + + + + Gets or sets the acceleration speed. + + The acceleration speed. + + + + Gets or sets the distance between dots. + + The distance between dots. + + + + Gets or sets a value, indicating the distance(in percent) which each ball moves with slow speed. + + The slow speed range. + + + + Gets or sets the waiting direction. + + The waiting direction. + + + + Gets or sets the empty frames count between animation cycles. + + The delay between animation cycles. + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets the dot radius. + + The dot radius. + + + + Gets or sets the acceleration speed. + + The acceleration speed. + + + + Gets or sets the max speed sweep angle. + + The max speed sweep angle. + + + + Gets or sets the sweep angle dot travels before the end of animation cycle. + + The dot sweep angle life cycle. + + + + Gets or sets the distance between dots. + + The distance between dots. + + + + Gets or sets the empty frames count between animation cycles. + + The delay between animation cycles. + + + + Represents the content element of . + + + + + The waiting style property of + + + + + Clears all indicators and creates new, depending on the WaitingStyle value. + + + + + Gets the reversed direction. + + The direction. + + + + + Increments the offset of the indicator + + The value. + + + + Determines whether this instance is vertical. + + + true if this instance is vertical; otherwise, false. + + + + + Resets the waiting state of the indicator. + + + + + Updates the indicator stretch orientation. + + The indicator. + + + + Updates the vertical state property of the indicator. + + The indicator. + + + + Adds the indicator step. + + The step. + The index of the indicator. + + + + + Arranges the indeterminate indicator elements. + + The client rectangle. + + + + Calculates the indicator step. + + The client rectangle. + + + + + Gets the final size of the throbber indicator element. + + The element. + The client rectangle. + + + + + Gets the final size of the dash element. + + The element. + The client rectangle. + + + + + Moves the indicator element. + + The element. + The client rectangle. + The waiting direction. + + + + + Sets the elements visibility. + + The style. + + + + Sets the indicators visibility. + + The visibility. + + + + Sets the dash initial position. + + The element. + The client rectangle. + + + + + Updates the offset. + + The client rectangle. + + + + Gets a collection of elements + which contains all waiting indicators of RadWaitingBar + + + + + Gets an instance of the class + that represents the waiting bar text element + + + + + Gets an instance of the class + that represents the waiting bar separator element + + + + + Gets and sets the direction of waiting. + Range: Bottom, Left, Right, Top + + + + + Indicates whether the element is currently waiting + + + + + Gets or sets the style of the WaitingBarElement. + + + + + Returns true if WaitingStyle is Indeterminate, Throbber or Dash. + + + + + The RadWaitingBar class is a simple wrapper for the + RadWaitingBarElement class. + The latter implements all UI and logic functionality. + The RadWaitingBar class acts to transfer events to and from the + RadWaitingBarElement class. + RadWaitingBarElement can be + nested in other telerik controls. + + + + + Creates the waiting bar element. + + + + + + exclude WaitingBarElement from Serilization + + should serialize + + + + Starts the waiting animation. + + + + + Stops the waiting animation. + + + + + Resets the waiting indicator to initial position. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets a collection of elements + which contains all waiting indicators of RadWaitingBar + + + + + Gets the instance of RadWaitingBarElement wrapped by this control. RadWaitingBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadWaitingBar. + + + + + Sets the DefaultSize of RadWaitingBar + + + + + Gets and sets the image property of the indicator + + + + + Gets and sets the image index property of the indicator + + + + + Gets and sets the image key property of the indicator + + + + + Indicates whether the control is currently waiting + + + + + Indicates the orientation of the RadWaitingBar + + + + + Indicates whether the indicators are stretched horizontally + + + + + Indicates whether the indicators are stretched vertically + + + + + Sets the style of RadWaitingBar + + + + + Gets and sets the text of the control's textElement + + + + + Gets and sets the WaitingDirection of the RadWaitingBarElement + + + + + Gets and sets the size of the indicator in pixels + + + + + Gets and sets the speed of the animation. Higher value moves the indicator more quickly across the bar + + + + + Gets and sets the number of pixels the indicator moves each step + + + + + Shows text in RadWaitingBar. + + + + + Gets/Sets the control to associated it. RadWaitingBar will be shown in the middle of the associated control when started. + + + + + Gets the associated panel. + + + + + Starts control waiting + + + + + Ends control waiting + + + + + Represents a waiting bar element. It may be included in other telerik controls. + All graphical and logical functionality is implemented in RadWaitingBarElement. + + + + + The timer + + + + + The continue waiting + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + + + + Starts the waiting process + + + + + Stops the waiting process + + + + + Sets the indicator to its starting position depending on the WaitingDirection + + + + + Gets an instance of the class + that represents the waiting bar content element + + + + + Gets a collection of elements + which contains all waiting indicators of RadWaitingBar + + + + + Gets an instance of the class + that represents the waiting bar text element + + + + + Gets an instance of the class + that represents the waiting bar separator element + + + + + Gets and sets the Image of the element's indicator + + + + + Gets and sets the ImageIndex of the element's indicator + + + + + Gets and sets the ImageKey of the element's indicator + + + + + Shows text in RadWaitingBarElement. + + + + + Indicates whether the indicators are stretched horizontally + + + + + Indicates whether the indicators are stretched vertically + + + + + Sets the style of the WaitingBarElement + + + + + Gets and sets the size of the indicator in pixels + + + + + Indicates whether the element is currently waiting + + + + + When set to vertical the RadWaitingBar WaitingDirection property is set to Bottom + When set to horizontal the RadWaitingBar WaitingDirection is property is set to Right + + + + + Gets and sets the direction of waiting, e.g. + the Right value moves the indicator from left to right + Range: Bottom, Left, Right, Top + + + + + Gets and sets the speed of the indicator + Greater value results in faster indicator + Range: [0, 100] + + + + + Gets and sets the step in pixels which moves the indicator + + + + + Occurs when waiting is started. + + + + + Occurs when waiting is stopped. + + + + + The state manager class of + + + + + Represents a collection of items. + + + + + Initializes a new instance of the class. + + + + + Represents waiting bar indicator element + + + + + Initializes the class. + + + + + Gets the separator element. + + + The separator element. + + + + + Gets a offset of the indicator. + + + + + The state manager class of . + + + + + The state manager class of + + + + + Represents 's text element + + + + + Represents separator element in . + + + + + Initializes the class. + + + + + Sets and gets the width of each separator line in pixels + + + + + Sets and gets the distance between two adjacent separator lines + + + + + Sets and gets the orientation of the separator element + + + + + Sets and gets the angle of rotation of all separator lines + + + + + Indicates whether separator lines should be drawn + + + + + Indicates whether a second set of separator lines should be drawn + + + + + Represents a collection of items. + + + + + Initializes a new instance of the class. + + +
+
diff --git a/Analysis/bin/x64/Debug/Telerik.WinControls.dll b/Analysis/bin/x64/Debug/Telerik.WinControls.dll new file mode 100644 index 0000000..fd85934 Binary files /dev/null and b/Analysis/bin/x64/Debug/Telerik.WinControls.dll differ diff --git a/Analysis/bin/x64/Debug/Telerik.WinControls.xml b/Analysis/bin/x64/Debug/Telerik.WinControls.xml new file mode 100644 index 0000000..510774e --- /dev/null +++ b/Analysis/bin/x64/Debug/Telerik.WinControls.xml @@ -0,0 +1,22380 @@ + + + + Telerik.WinControls + + + + + This interface represents a monitor which receives trace events from RadControls. You can implement it if you need to + receive trace events from the controls used in your application. + + + + + This method is called when an atomic feature is executed. + + The feature to be tracked. + + + + This method is called when a feature is initiated. + + The feature that was initiated. + + + + This method is called when a feature finishes execution. + + The feature that finished. + + + + This method is called when a feature is canceled. + + The feature that was canceled. + + + + Traces an error in a specified feature. + + The feature in which the error occurred. + The error that occurred. + + + + This method is called when a value connected with a specific feature is tracked. + + The feature that produced the value. + The value that was tracked by the feature. + + + + Gets or sets the monitor, which the controls report to. + + + + + Notifies listeners of dynamic changes, such as when items get added and removed or the whole list is refreshed. + + + You can enumerate over any collection that implements the IEnumerable interface. However, to set up dynamic bindings so that insertions or deletions in the collection update the UI automatically, the collection must implement the INotifyCollectionChanged interface. This interface exposes the CollectionChanged event that must be raised whenever the underlying collection changes. + + + + + Occurs when the collection changes. + + + + + Moves the specified old index. + + The old index. + The new index. + + + + Adds the range. + + The items. + + + + Adds the range. + + The items. + + + + Begins the update. + + + + + Ends the update. + + + + + Defers the refresh. + + + + + + Defines possible reasons for a CurrentChanged notification from RadCollectionView. + + + + + The default reason for causing the event. + + + + + The event was caused by an Add operation. + + + + + The event was caused by a Move operation. + + + + + The event was caused by an EndUpdate operation. + + + + + The event was caused by a Sync operation. + + + + + String + + + + + Number + + + + + DateTime + + + + + Boolean + + + + + Null + + + + + Other + + + + + Used when exporting null value. + + + + + General format + + + + + Displays anything as text (i.e. Left aligned without formatting) + + + + + Displays numeric values with two fixed decimals + + + + + Displays numeric values with two fixed decimals and digit grouping + + + + + Displays numeric values as percentage values + + + + + Displays numeric values in scientific notation + + + + + Displays numeric or date values as short date format + + + + + Displays numeric or date values as short date format + + + + + Displays numeric or date values as medium date format + + + + + Displays numeric or date values as long date format + + + + + Displays numeric or date values as a combination of the short date and short time patterns, separated by a space. + + + + + Displays numeric or date values as a combination of the long date and long time patterns, separated by a space. + + + + + Displays numeric date as currency + + + + + Displays numeric or date values in a long time format + + + + + Displays numeric or date values in a medium time format + + + + + Displays numeric or date values in a short time format + + + + + Custom defined format + + + + + The cell content type + + + + + Cell does not contain anything + + + + + Cell contains a string + + + + + Cell contains a number + + + + + Cell contains a DateTime value + + + + + Cell contains a bool value + + + + + Cell contains a formula + + + Cell contains a formula which cannot be resolved + + + + + Gets or sets the type of the grid row. + + The type of the row. + + + + Gets or sets the index of the grid row. + + The index of the row. + + + + Gets or sets the type of the grid column. + + The type of the column. + + + + Gets or sets the index of the grid column. + + The index of the column. + + + + Gets or sets the cell style info. + + The cell style info. + + + + This creates a linear gradient depending on number of colors needed + + + + + this.editor.Position = savePosition; + + Horizontal offset that will be set as new Matrix position + Vertical offset that will be set as new Matrix position + + + + Enum listing the export formats supported by RadSpreadProessing. + + + + + XLSX format + + + + + PDF format + + + + + CSV format + + + + + Txt format + + + + + Enum listing the export formats supported by RadSpreadStreamProessing. + + + + + XLSX format + + + + + CSV format + + + + + Enum listing the different options when exporting to a file + + + + + Export as new sheet in existing file + + + + + Export in new file or override existing file + + + + + Load expression items list from embedded in Telerik assembly xml source + + + + + Load expression items list + + Xml file path + + + + Load expression items list + + + + + + Sets the first page as the current page. + + true if the operation was successful; otherwise, false. + + + + Sets the last page as the current page. + + true if the operation was successful; otherwise, false. + + + + Moves to the page after the current page. + + true if the operation was successful; otherwise, false. + + + + Requests a page move to the page at the specified index. + + true if the operation was successful; otherwise, false. + The index of the page to move to. + + + + Moves to the page before the current page. + + true if the operation was successful; otherwise, false. + + + + Gets a value indicating whether this data view can be paginated. + + + true if this data view can be paginated; otherwise, false. + + + + + Occurs when the IPagedCollectionView.PageIndex has changed. + + + + + Occurs before the IPagedCollectionView.PageIndex is changed. + + + + + Gets a value that indicates whether the IPagedCollectionView.PageIndex value is allowed to change. + + true if the IPagedCollectionView.PageIndex value is allowed to change; otherwise, false. + + + + Gets a value that indicates whether a page index change is in process. + + true if the page index is changing; otherwise, false. + + + + Gets the zero-based index of the current page. + + The zero-based index of the current page. + + + + Gets or sets the number of items to display on a page. + + The number of items to display on a page. + + + + Gets the total number of items in the source collection. + + The total number of items in the source collection, or -1 if the total number is unknown. + + + + Gets or sets the tag. + + The tag. + + + + Determines whether [contains] [the specified value]. + + The value. + + true if [contains] [the specified value]; otherwise, false. + + + + + Copies to. + + The array. + The index. + + + + Indexes the of. + + The value. + + + + + Gets the count. + + The count. + + + + Gets the item at the specified index. + + + + + + Use the StyleBuilderReadOnly attribute to mark properties that should appear as readonly when edited in the Visual + Style Builder application + + + + + This attribute should be used on classes which will be present in the Visual Studio toolbox (i.e. the ones that should also have a attribute). + + + + + Creates a new instance of the ToolboxCategory attribute with the specified title. + + The title of the category where the control will be placed + + + + Theme manager Component is used to load user-defined themes for RadControls in an application. + Use the LoadedThemes property to add new team source files. Themes load immediately when correct + property values specified and last for the life time of the application. After a theme is loaded + it can be used by the corresponding types of controls placed on any Form of the application. + + + + + ThemeSource is used to load user-defined themes for RadControls in an application. + Themes load immediately when correct property values specified and last for the life + time of the application. After a theme is loaded it can be used by the corresponding + types of controls placed on any Form of the application. ThemeSource object are generally + used by ThemeManager component placed on a Form + + + + + Base for all TPF classes. Implements WPF-like property system with different value sources. + Provides public interface for getting, setting value or re-setting property value. + + + + + Represents a basic object which implements IDisposable interface. + + + + + Gets the current bit state for the object, defined by the provided key. + + + + + + + Applies the specified boolean value to the BitVector of the object. + + + + + + + Notifies the object for a change in its bit state. + + + + + + + + Releases all resources associated with this object. + + + + + Performs the actual Dispose logic. + + + + + + Performs the core resources release logic. + + + + + + Disposes all MANAGED resources - such as Bitmaps, GDI+ objects, etc. + + + + + Releases any UNMANAGED resources used by this object. + NOTE: If you declare some unmanaged resources in your class, + you should override its finalizer and put disposing logic there also. + + + + + Gets the RadBitVector64 structure that holds all the bit states of the object. + + + + + Provides a simple list of delegates. + + + + + Determines whether the object is in a process of being disposed of. + + + + + Determines whether the object is already disposed. + + + + + Replaces the default property descriptors of properties of the object in order to perform Rad-Object specific + tasks like checking ShouldSerialize and RadProperty-DefaultValue... + + + + + + + + + + + + Removes all references to external property modifiers such as + property bindings, style settings and animations. + + + + + Allows PropertyChanging and PropertyChanged notifications to be temporary suspended. + + + + + Resumes property notifications after a previous SuspendPropertyNotifications call. + + + + + Gets the RadPropertyValue structure that holds information + about the specified property's effective value for this instance. + May be null if no effective value is recorded. + + + + + + + Applies the provided value as an override + of the Default value provided by the specified property's metadata. + + + + + + + + Marks the current PropertyValue entry for the specified property as "Set at design-time". + This is used by our custom code-dom serializer to determine which properties needs to be persisted. + + + + + + Applies the specified value as Local for the desired property + and raises the flag IsLocalValueSetAtDesignTime for that property. + All design-time direct property modifications (e.g. item.Text = "Item1") + should be done through this method for the property to be properly serialized. + If a property is modified through a property grid, the custom property descriptor will automatically apply this logic. + This method is used internally. + + + + + + + Retrieves the current value for the specified property. + + + + + + + Applies the provided value as Local for the specified property. + + + + The result of the operation. + + + + Resets the current value of the specified property. + This method will remove any effective value modifier + (such as style or animation setting) for the specified property. + + The RadProperty that should be reset. + The result of the operation. + + + + Resets the current value of the specified property using the provided flags. + + The RadProperty that should be reset. + Additional flags that specify which effective modifiers should be reset. + The result of the operation. + + + + Forces re-evaluation of the current value for the specified property. + + + The result of the operation. + + + + Gets the source of the current value for the specified property. + + + + + + + Gets the registered property with the specified name. + + + + + + + Performs the core value update logic. + + + The result of the operation. + + + + Performs the core logic of updating property value. + + The property value structure, holding property information. + Additional modifier, like IPropertySetting + The actual new value to be set, valid for Local and DefaultValue sources. + Specifies the source of the provided new value. + The result of the operation. + + + + Resets the specified property value, using the provided reset flags. + + + + The result of the operation. + + + + Allows inheritors to provide custom default value. + + + + + + + + Allows inheritors to force a coersion of the current calculated value for the given property. + + The property value. + The current caluclated value of the property. + Null if no coersion is needed. + + + + Determines whether the property defined by the provided property descriptor should be serialized. + + + + + + + Checks needed conditions to perform property update. + + + + + + + Performs the following logic: + 1. Compares oldValue and newValue and returns ValueUpdateResult.NotChanged if they are equal. + 2. Raises the PropertyChanging notification. If the event is canceled returns ValueUpdateResult.Canceled. + 3. Raises PropertyChanged notification and returns ValueUpdateResult.Updated. + + + + + + The result of the operation. + + + + Determines whether the object can raise PropertyChanging and PropertyChanged notifications. + Current implementation checks whether the object is disposing or is already disposed of. + + + + + + + Gets the animation (if any) attached to the current property. + + + + + + + Gets notified for a change in an animated property. + + The property which is currently animated. + + + + Binds the specified property to a property of the provided binding source object. + + Our property that is about to be bound. + The object to which source property belongs. + The property to which we will bind. + Additional options, specifying the binding operation. + + + + Removes the binding for the specified property. + + + The result of the operation. + + + + Gets notified that the specified object has bound to a property of ours. + + The instance that has bound the specified property. + + + + + Gets notified that the specified object has unbound itself from a property of ours. + + + + + + + Notifies a binding source that a change occured in a two-way bound property. + + + + + + + Gets notified for a change in an already bound external property. + + + + + + Detaches binding reference from the binding source. + + + + + + Registers a style setting for this instance. + + + + + + Called when element style condition changes. This method is used internally. + + + + + + Called when element style condition changes. This method is used internally. + + + + + + Searches up in the chain of InheritanceParents for a value for the specified property. + + The property to examine. + + + + + Raises the event. + + + + + + Raises the event. + + + + + + Raises the PropertyChanged event. + + The name of the property. + + + + Raises the standard .NET PropertyChanged event. + + + + + + Determines whether the specified property may be canceled. + + The metadata associated with the property change. + + + + Occurs when a property of an object changes. + Note: if a property which is not a RadProperty changes, + the developer is responsible for firing this event by using the + API. + + + + + Occurs when a property of a RadObject changes. + + + + + Occurs prior to property of a RadObject changes. + + + + + Gets a collection containing property values. + + + + + Gets the RadObject which is treated as the parent from which inheritable properties are composed. + + + + + Determines whether the element is in design mode. + + + Gets or sets a value indicating whether design mode is active. + + + + + Gets or sets a Filter instance, used to filter the ICustomPropertyDescriptor.GetProperties collection. + + + + + Gets the RadObjectType which is associated with this system type. + + + + + Gets or sets the BindingContext for the object. + + + + + Loads the theme from the file resource specified and registers it into ThemeResolutionService. Thais method is called + immediately when correct ThemeLocation and StorageType are specified. + + + + + Indicates whether the specified theme was loaded successfully. + + + + + Gets value indicating the error message if Theme was not loaded successfully. + + + + + Gets or sets the full resource name if StorageType is Resource. Example: "MyNamespace.MyThemeFileName.xml". + If the StorageType specified is File, then the value of this property should represent the full or relative file path, + accessible by the application. The "~" sign can be used to substitute the application executable path. + Eg. "C:\MyApp\MyThemeFileName.xml" or "..\..\MyThemeFileName.xml" or "~\MyThemeFileName.xml" + + + + + Gets or sets the owner theme manager component. Generally used by Form's designer. + + + + + Gets or sets File or Resource type of storage for the theme file + + + + + Gets a value indicating whether property values are valid + + + + + Represents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of the. + + + + Owner component + + + + + + Initializes a new instance of the based on another . + + + + A from which the contents are copied + + + Owner component + + + + + + Initializes a new instance of the containing any array of objects. + + + + A array of objects with which to intialize the collection + + + Owner component + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Defines the theme storage type. + + + + + Indicates that the theme is contained in a external file. + + + + + Indicates that the theme is contained as a resource. + + + + + Represent the ColorChangedEventArgs class + + + + + Represents event arguments for the + %ColorChanged:Telerik.WinControls.CaptureBox.ColorChanged% event. + + + Represents the changed color. + + + + + Represents event arguments for the + event. + + + Represents the changed color. + + + + + Modes the RadColorPicker can be in + + + + + This class is used to hold the event arguments + for the CustomColorsConfigLocationNeeded event of the CustomColors control. + + + + + Creates an instance of the CustomColorsEventArgs class. + + The location of the config file. + The name of the config file. + + + + Gets or sets the file name of the configuration file. + + + + + Gets or sets the path where the configuration file will be stored. + + + + + Represents color in HSL color space. + + + Used for color blending operations, defined in HSL color space which are more precise than in RGB. + HSL colors are used by theming and painting sub-systems of RadControls. + + + + + H Channel value + + + + + S Channel value + + + + + L Channel value + + + + + RGB color value + + + + + Gets or sets color'a alpha chanel level in terms of argb color. Used mainly for conversion from/to ARGB color values. + + + + + Wraps the functionality provided by the color picker + + + + + Gets or sets the selected color + + + + + Gets or sets the selected color + + + + + Gets or sets the old color + + + + + Shows or hides the basic colors tab + + + + + Gets or sets the active mode of the color tabs + + + + + Shows or hides the system colors tab + + + + + Shows or hides the web colors tab + + + + + Shows or hides the professional colors tab + + + + + Shows or hides the custom colors panel + + + + + Shows or hides the hex color textbox + + + + + Allows or disallows editing the hex value + + + + + Allows or disallows picking colors from the screen + + + + + Allows or disallows color saving + + + + + Gets the custom colors + + + + + Gets or sets the heading of the basic colors tab + + + + + Gets or sets the heading of the system colors tab + + + + + Gets or sets the heading of the web colors tab + + + + + Gets or sets the heading of the professional colors tab + + + + + Gets or sets the heading of the selected color label + + + + + Gets or sets the heading of the old color label + + + + + Fires when the OK Button is clicked + + + + + Fires when the Cancel Button is clicked + + + + + Gets the color selector + + + + + Gets or sets the selected color + + + + + Gets or sets the selected color + + + + + Gets or sets the old color + + + + + Gets or sets the active mode of the color tabstrip + + + + + Shows or hides the basic colors tab + + + + + Shows or hides the system colors tab + + + + + Shows or hides the web colors tab + + + + + Shows or hides whe professional colors tab + + + + + Shows or hides the custom colors tab + + + + + Shows or hides the hex color value + + + + + Allows or disallows editing the HEX value + + + + + Allows or disallows color picking from the screen + + + + + Allows or disallows color saving + + + + + Gets the custom colors + + + + + Gets or sets the heading of the basic colors tab + + + + + Gets or sets the heading of the system colors tab + + + + + Gets or sets the heading of the web colors tab + + + + + Gets or sets the heading of the professional colors tab + + + + + Gets or sets the heading of the selected color label + + + + + Gets or sets the heading of the old color label + + + + + Fires when the selected color has changed + + + + + Represents a dialog that can be used to select color with rich UI and extended functionality. + + + + + Resets the properties of a color dialog box to their default values. Replaces the underlaying ColorDialogForm + with new instance + + 1 + + + + Shows modal dialog box. + + + + true if the dialog box was successfully run; otherwise, false. + + + A value that represents the window handle of the owner window for the common dialog box. + + + + Gets the instance of RadColorDialogForm, which incorporates various settings of the + underlaying color selection Form and ColorSelector user control. + + + + + Gets or sets the icon displayed for this dialog. + + + + Gets or sets a value indicating whether control's elements are aligned + to support locales using right-to-left fonts. + One of the values. + The default is . + The assigned + value is not one of the values. + + + + + Gets or sets the selected color. References to SelectedColor of . + + + + + Gets or sets the selected color. References to SelectedColor of . + + + + + Gets the user-defined colors. References to CustomColors of . + + + + + Represents the method that will handle the ColorChanged event. + + + + + + + + + + + + + + + + + + + Fires when the selected color changes + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + Represents a RadControl. RadControl is an abstract class and is base class for + all Telerik controls. + + + + + Returns the value for some ambient properties like BackColor, ForelColor, Font, etc. + + + + + + + Updates after a change in an ambient property like BackColor, ForeColor, Font, etc. + + + + + + Creates the input behavior instance. Allows inheritors to provide custom input implementations. + + + + + + Loads the element tree. While not loaded, no layout operations are allowed upon the tree. + By default, the tree will be loaded when the control is displayed for the first time. + + + + + Loads the element tree using the specified desired size. + + + + + + This method is used internally! + + + + + + Determines whether the BackColor property should be serialized. + + + + + + Determines whether the ForeColor property should be serialized. + + + + + + Determines whether the ForeColor property should be serialized. + + + + + + Notifies that the control is about to be visualized. + + + + + + Processes a focus request from the specified element. + + The element that requested the focus. + True if focus is approved, false otherwise. + + + + Processes a capture request from the specified element. + + The element which requested the capture. + + True if the capture request is approved, otherwise false. + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + + This method is used internally! + + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + Suspends layout during initialization. + + + Resumes layout. + + + + Raises the PropertyChanged event + + The name of the property + + + + Fires the ZoomGesture event. + + The arguments for the ZoomGesture event. + + + + Fires the RotateGesture event. + + The arguments for the RotateGesture event. + + + + Fires the PanGesture event. + + The arguments for the PanGesture event. + + + + Fires the TwoFingerTapGesture event. + + The arguments for the TwoFingerTapGesture event. + + + + Fires the PressAndTapGesture event. + + The arguments for the PressAndTapGesture event. + + + + Enable firing gesture events of the specified type. + + The type of gesture events to enable. + + + + Disable firing gesture events of the specified type. + + The type of gesture events to disable. + + + + Checks whether the 's theme is defined by the control. + + + If true is returned the ThemeResolutionService would not not set any theme to the element + to avoid duplicating the style settings of the element. + + The element to should be checked. + true if the control defines theme for this element, false otherwise. + + + + Replaces the default style group for specific element. + + The style group to replace. + The element on which this style should apply. + An instance of is successfull. + + + + Strips all html tags of the text set to the control and returns only the plain text. + + Plain text stripped of any html tags. + + + + Determines whether an element from this element tree may be displayed in the EditUIElements dialog. + + + + + + + Method used by control Code Dom serializer to access element in the collection of RootElement. + + + + + + + Determines whether the specified RadProperty should be serialized. + + + + + + + Determines whether an element may be edited via the EditUIElements dialog at design-time. + + + + + + + This method is used internally! + + The default size for this control + + + + This method is used internally! + + + + + + + Gets or sets a value indicating whether the RadControls scaling logic will be used when the application is run in a high DPI environment. + + + + + Determines whether the control is properly loaded. + + + + + Set or get the default value for UseCompatibleTextRendering property. + + + + Gets the input behavior for the control. + + + Gets the RootElement of the control. + + + Gets or sets padding within the control. + A representing the control's + internal spacing characteristics. + + + + Gets or sets control's preferred theme name. Themes are stored and retrieved using + APIs of . + + + If ThemeResolutionService.ApplicatonThemeName refers to a + non-empty string, the theme of a RadControl can differ from the one set using + RadControls.ThemeName property. If the themes differ, the + RadControls.ThemeName property will be overridden by + ThemeResolutionService.ApplicatonThemeName. If no theme is registered + with a name as ThemeResolutionService.ApplicatonThemeName, then + control will revert to the theme specified by its ThemeName property. + If ThemeName is assigned to a non-existing theme name, the control may + have no visual properties assigned, which will cause it look and behave in unexpected + manner. If ThemeName equals empty string, control's theme is set to a + theme that is registered within ThemeResolutionService with the name + "ControlDefault". + + + + + Gets or sets value indicating whether the control is styled through theme + + + + + Gets or sets the class name string that ThemeResolutionService will use to find the themes registered for the control. + + + By default the return value is RadControl's type FullName; Some controls like drop down menu has different ThemeClassName + depending on the runtime usage of the control. + + + + + Gets or sets the ImageList that contains the images displayed by this control. + + + + + Gets or sets the image scaling size. + + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets or sets the size that is the upper limit that GetPreferredSize can + specify. + + + + + Gets or sets the size that is the lower limit that GetPreferredSize can + specify + + + + + Gets or sets a value indicating whether the control causes validation to be performed on any controls that require validation when it receives focus. + + + + + Gets or sets the SmallImageList that contains the small images which are displayed when there's not enough space. + + + + Gets or sets the small image scaling size. + + + + Determines whether the control is currently displayed on the screen. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets or sets a value indicating whether ToolTips are shown for the RadItem objects contained in + the RadControl. + + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this specific control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets or sets the BackColor of the control. + This is actually the BackColor property of the root element. + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + Gets or sets the Font of the control. This is actually the Font property of the root element. + + + + + Occurs when a RadItem instance inside the RadControl requires ToolTip text. + + + + + Occurs prior the ScreenTip of a RadItem instance inside the RadControl is displayed. + + + + Fires when the theme name is changed. + + + Fires when the control is initialized. + + + + Occurs when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Occurs when a zoom gesture was sent by a touch input device. + + + + + Occurs when a rotate gesture was sent by a touch input device. + + + + + Occurs when a pan gesture was sent by a touch input device. + + + + + Occurs when a two-finger-tap gesture was sent by a touch input device. + + + + + Occurs when a press-and-tap gesture was sent by a touch input device. + + + + + Gets or sets a value indicating whether the Gestures functionality is enabled. + + + + + Gets or sets a value indicating whether the Analytics functionality is enabled or disabled for this control. + + + + + Gets or sets the Analytics Name associated with this control. + By default the Control Name property is logged. + If you want to customize the information which will be logged for this control + set this property to a preferred value. + + + + + Gets or sets a value indicating whether the RadControls Accessible custom object is enabled. + + + + + Gets or sets a value indicating whether the CodedUI Tests functionality is requested from external program such a Narrator. + + + + + Gets or sets a value indicating whether the CodedUI Tests functionality is enabled. + + + + + Gets or sets the default value for EnableCodedUITests property. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets a value indicating whether the gradient editor is in loading state. This property is used internally. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the values + + + + + Fires when the color has changed + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the different positions where an item can be docked + + + + + Defines element selector types. + + + + + Selects an element based on its type. + + + + + Selects an element based on its class property. + + + + + Selects an element based on its visual state property. + + + + + Defines the different sign styles + + + + + plus/minus sign + + + + + up/down arrow + + + + + image + + + + + Triangle + + + + + TextWrapExpand Modes + + + + + Indicates Indeterminate style + + + + + Indicates Throbber style + + + + + Indicates Dash style + + + + + Shows a line of moving dots. + + + + + Shows a ring of moving dots. + + + + + Shows a ring, composed of lines. + + + + + Shows a ring, composed of segments. + + + + + Shows a ring, composed of dots. + + + + + Shows a rotating fading ring. + + + + + Shows two rotating rings in opposite directions. + + + + + [true] if the event has been handled and should not be proccessed further, [false] otherwise. + + + + + The type of the gesture that has occured. + + + + + [true] if this is the beggining of the gesture, [false] otherwise. + + + + + [true] if this is the end of the gesture, [false] otherwise. + + + + + [true] if the event was caused by inertia, [false] otherwise. + + + + + The location of the gesture. + + + + + Initializes a new instance of the class. + + The index of the requested page. + + + + Gets the index of the requested page. + + The index of the requested page. + + + + The possition offset according to the previous pan event. + + + + + A direction vector that indicates the direction of the velocity. + + + + + The offset of the tapping finger according to the pressing finger. + + + + + The rotation angle in radians. + + + + + The zoom factor according to the previous zoom gesture event. + + + + + The center of the zoom gesture. + + + + + Exposes methods and properties for a concrete property setttings used in StyleSheets and Themes. + PropertySetting can customize the current value of any RadPropertry of any RadElement instance. + + + + + Retrieves the current value of the property. + + + + + + + + + + + Applies the value to the element given as a parameter. + + + the element that the property value is applied to. + + + + + Unapply the property to the element given as a parameter. + + + the element that the property value is unapplied to. + + + + + Gets or sets the property itself. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the instance of RadScreenTipElement wrapped by this control. RadScreenTipElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadScreenTip. + + + + + + + + + + Represents the item which could be added to an ItemsCollection and can be selected, deleted or moved during VS design time. + + + + + + + + Extends RadElement and adds visual properties common to all elements. + + + + + RadElement class represents the smallest unit in a RadControl that can be painted or that has a layout slot in a RadControl. + Generally each RadCotnrol is composed of a tree of RadElements. The tree has as a root the and + children property. + + + Elements nesting also represents the visual nesting. Elements are painted starting + from the root to the leaves of the tree. the leaves are most often primitive + elements like, text, fills, borders and so on. Elements that are descendants of + LayoutPanel are responsible for arranging their children in the available space + and/or for notifying the parent that the layout space is not enough to expand. + Layout behavior of each element can be adjusted using the properties: + , , + (old layouts), and and for + the new layouts. + RadElement is the base class of all elements that need to take advantage of TPF features, like + property inheritance, layouts, styling + with the Visual Style Builder application. Each property change of a RadElement or + of its inheritance parent would result in calling the method OnPropertyChange, + which can be overridden in order to customize the response to changes of any + RadPoperty. + + + + + Defines a visual element which may be displayed using system skins (UxTheme semantic). + + + + + Gets the VisualStyleElement which represents the current state of this instance for Windows XP. + + + + + + Gets the VisualStyleElement which represents the current state of this instance for Windows Vista. + + + + + + Determines whether to use system skins or not. + If this is false, the default TPF rendering will be used. + If this is true and there is no system skin enabled, TPF rendering will be used. + + + + + This constant is used internally. + + + + + Creates the child elements and sets their locally applied values as Default + + + + + Temporary suspends UpdateReferences method. + Useful when modifying the element tree without changing the actual element's references. + + + + + Resumes previously suspended UpdateReference method. + + + + + Initializes member fields to their default values. + This method is called prior the CreateChildItems one and allows for initialization of members on which child elements depend. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + A callback used by the owning RadControl to notify the element for a first-time screen visualization. + + True to notify entire subtree for the load process, false otherwise. + + + + This method is used internally. + + + + + + Allows inheritors to provide custom load logic. + + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Unloads the element if it was previously loaded on an element tree. + + Reference to the element tree from which we are in a process of unload. + + + + + Executes the core unload logic. Allows inheritors to perform additional action while the element is unloading itself. + + Reference to the element tree from which we are in a process of unload. + + + + Notifies that the element has been successfully unloaded from an element tree. + Allows inheritors to provide custom logic at this stage. + + Reference to the element tree from which the element has been unloaded. + + + + The element gets notified for a change in its current ElementTree member. + + + + + + A callback used by the owning RadControl to notify the element for the beginning of a disposing process. + + + + + Applies the specified RadElement instance as parent of the current instance. + + + + + + Notifies for a change in the Parent value. + + The previous parent element (if any) + + + + Updates the local references using the provided element tree. + + + True to update inheritance chain, false otherwise. + True to update children also, false otherwise. + + + + This method is used internally! + + + + + + + Updates the state of the element when reference update is suspended and we have a change in our parent. + + + + + + Performs an update after a change in the Children collection. + + The element associated with the change. + + + + + Resets all layout related fields and puts the element in its initial layout state. + + + + + + Determines whether there is an ancestor in this element tree that is not visible. + + + + + + This method is used internally. + + + + + + Temporary suspends layout operations upon this element. + + + + + Temporary suspends layout operations upon this element. + + True to suspend children also, false otherwise. + + + + Sets the bounds of the element to the specified rectangle (locating and + size). + + + + + Sets the bounds of the element to the specified rectangle (X, Y, width and + height). + + + + + Gets the rectangle which surrounds the rotated element (if having AngleTransform property set). + + The size of the element which is accepted as a parameter (for example when returned from GetPreferredSize). + + + + + Retrieves a point in screen coordinates taking as a parameter a point which is in + element coordinates (this means that the top left corner of the element is with + coordinates 0, 0). + + + + + Retrieves a rectangle in screen coordinates taking as a parameter a rectangle + which is in element coordinates (this means that the top left corner of the element is + with coordinates 0, 0). + + + + + This method is used internally. + + + + + + Arranges the to its final location. + The element must call the Arrange method of each of its children. + + The size that is available for element. + The rectangle occupied by the element. Usually . Should you return different size, the Layout system will restart measuring and rearranging the items. That could lead to infinite recursion. + In this method call to the Arrange method of each child must be made. + + + + Measures the space required by the + + Used by the layout system. + + The size that is available to the . The available size can be infinity (to take the full size of the element) + The minimum size required by the element to be completely visible. Cannot be infinity. + In this method call to the Measure method of each child must be made. + + + + Gets the arrange rectangle, valid for this element. + + + + + + + Determines whether the element can perform layout operation. + + + + + + Determines whether the element is currently in valid state. + That is having a valid RadElementTree reference and being in either Constructed or Loaded state. + + + + + + Gets the offset that is caused by scrolling. The difference between this method and + PositionOffset property is that GetScrollingOffset() takes into account RightToLeft. + + The scrolling offset for this element. + + + + Returns the bounds of the area that should be invalidated when the element is invalidated. + + The bounds to invalidate. + + + + This method is executed when a property which affects the absolute position of the element has been changed. + + + + + This method is used internally. + + + + + Provides a routine to paint element's content when system skin appearance is desired. + + + + + + Virtual layer between PaintChildren() and Paint(). + Can be overridden to fully customize element hierarchy paint. + Used for painting disabled items. + + The graphics object. + The rectangle which has been invalidated. + The angle (in degrees) to which the current element is rotated. This angle is a sum of all AngleTransform properties of this element's parents. + + + + + + This method is used internally. + + + + + + + + + + Gets the VisualStyleElement instance that describes the skin appearance for the element when the current OS is Windows XP. + + + + + + Gets the VisualStyleElement instance that describes the skin appearance for the element when the current OS is Windows Vista. + + + + + + Performs initialization when the element is first-time painted using system skin. + + + + + Gets the rectangle where skin background should be painted. + Defaults to BoundingRectangle. + + + + + + The element gets notified for a change in the UseSystemSkin property. + This method will recursively notify all descendants for the change. + + + + + + Determines whether we should paint system skin. + + + + + + Composes a value which determines whether the element should use system skins when painting. + This method will traverse the element and control tree and will end with the global UseSystemSkin property. + + + + + + Maps a style property to another property. This method is used + to map corresponding properties of LightVisualElement + instances and instances. + + An instance of the + class that represents the property to map. + + An instance of the + class which represents the mapped property. If no property is found, + the method returns null + + + + Gets the IFilter instance that may be used to filter the properties, treated as Stylable for this element. + + + + + + Resets the Style modifier of each registered property. + + + + + Resets the Style modifier for the specified property. Will reset all properties if null is passed. + + + + + Adds a property change behavior to the list of behaviors of the element. + + + Behaviors can be used to specify how an element should respond when a certain element property changes. + Behaviors are used internally by stylesheets when applying to an hierarchy of elements. + + behavior instance - should not be null (or Nothing in VB.NET) + + + + + + list of behaviors + + + + Used internally to support RadControl infrastructure. This method is not intended for use directly from your code. + + + + + + This method is used internally. + + + + + This method is used internally. + + + + + Gets a list of child elements using the type to filter the results. + + + + + + + Searches up the parent chain and returns the first parent with the provided ThemeEffectiveType. + + + + + + Searches up the parent chain and returns the first parent of type T. + + + + + + + Gets a boolean value that determines whether a given element + resides in the element hierarchy of this element. + + An instance of the + class which is checked. + + + + + Searches down the subtree of elements, using breadth-first approach, and returns the first descendant of type T. + + + + + + + Searches down the subtree of elements, using breadth-first approach, and returns the first descendant of type T. + + + + + + Searches down the subtree of elements, using breadth-first approach, and returns the first descendant of the specified Type. + + + + + + Provides flexible routine for traversing all descendants of this instance that match the provided predicate. + + The mode used to traverse the subtree. + + + + + Provides flexible routine for traversing all descendants of this instance that match the provided predicate. + + The filter that defines the match criteria. + The mode used to traverse the subtree. + + + + + Provides flexible routine for traversing all descendants of this instance that match the provided filter. + + The filter that defines the match criteria. + The mode used to traverse the subtree. + + + + + Gets a list with all the descendants that match the provided filter. + + + + + + + + Gets a list with all the descendants that match the provided filter. + + + + + + + + Provides a routine which enumerates all ancestors up in the parent chain of this element, which match the provided Filter. + + + + + + + Provides a routine which enumerates all ancestors up in the parent chain of this element, which match the provided predicate. + + The predicate used to filter parents. + + + + + Forces an update in the z-ordered collection after a change in the Children collection. + + + + + + + Allows enumerating of this element's children, using the specified options. + + + + + + + Sends this element to the beginning of its parent's z-ordered collection. + + + + + Sends this element at the end of its parent's z-ordered collection. + + + + + Method used by control Code Dom serializer to access items in the collection + + + + + + + Get a value indicating whether the element is a direct or indirect child of specified parent element + + Parent to test + true if the element is child of parent, false otherwise + + + + This method sets the focused state of an element. It is used internally. + + The new focused state. + + + + This method is used internally! + + + + + Raises the Click event. + + + + + Raises the DoubleClick event. + + + + + Raises the MouseWheel event. + + + + + + This method is used internally! + + + + + + Updates the ContainsMouse property. The notification may be received from a child whose IsMouseOver property has changed. + + + + + Updates the ContainsFocus property. The notification may be received from a child whose IsFocused property has changed. + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + Invalidates all Ambient (inherited) properties down in the parent chain. + Called when the parent for this element changes. + + True to update children also, false otherwise. + + + + The object gets notified for a parent property change. + + + + + + Add the ElementTree property if we are in the context of RadControlSpy. + + + + + + + Tunnels and bubbles on MouseClick on current element + + + + + Tunnels and bubbles on MouseDoubleClick on current element + + + + + Tunnels and bubbles on MouseDown on current element + + + + + Tunnels and bubbles on MouseUp on current element + + + + + Tunnels and bubbles on MouseWheel on current element + + + + + Routed event key for ChildElementAdded event. Bubbles when element is added + + + + + Routed event key for ParentChanged event. Tunnels when element parent changes + + + + + Tunnels when bounds changed in order to notify any children that should take special actions in this case - like RadHostItem. + + + + + Tunnels and bubbles when changes the current element + + + + + Tunnels when the Enabled property changes in order to notify any children that should take special actions. + + + + + Tunnels when the winforms control has been changed. + + + + + Used by RadControlSpy to display certain hidden properties in the Property Grid. + + + + + Get or sets the maximum size to apply on an element when layout is calculated. + + + + + Property key of the ZIndex Property. + + + + + This field is used internally. + + + + + Gets the current state of the element. + + + + + Gets the layout manager of the element. Will be null until the element is loaded on a visual scene. + + + + + Gets the element desired size. + + + + + Gets a value indicating whether the layout is suspended or not. + + + + + Represents the rectangle which surrounds the element bounds after the rotation caused by setting the AngleTransform property to some degree. The rectangle is in parent element's coordinates. + + + + + Represents the rectangle which surrounds the element bounds after the rotation caused by setting the AngleTransform property to some degree. The rectangle is in control coordinates. + + + + + This property is used internally. + + + + + Gets the level of this element in the ElementTree it currently resides. + + + + + This event occurs after printing the element. It is used internally. + + + + + Gets or sets the mode that describes the usage of system skinning (if available). + + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Gets a value indicating whether the element can have its own style with style conditions. + + + + + Defines whether stylesheet rules should be applied for this element and its children, or only for this element + + + + + Gets a reference to the tree object, that contains information about the scene where the element is currently visualized. + + + + + Gets the collection of elements that are child elements in the element + tree. + + + + + Enumerates entire subtree of elements (using depth-first approach), + starting from this one as a root. + + + + Gets a reference to the parent element in the visual element tree. + + + + + + + Gets the count of all elements, which visibility is not ElementVisibility.Collapsed. + + + + + Occurs when the mouse pointer rests on the element. + + + + + Occurs when the mouse pointer is moved over the element. + + + + + Occurs when the mouse pointer is over the element and a mouse button is pressed. + + + + + Occurs when the mouse pointer is over the element and a mouse button is released. + + + + + Occurs when the element is clicked. + + + + + Occurs when the element is double-clicked. + + + + + Occurs when the mouse pointer enters the element. + + + + + Occurs when the RadItem has focus and the user scrolls up or down the mouse wheel + + + + + Occurs when the mouse pointer leaves the element. + + + + + Occurs when the children collection of the element is changed. + + + + + Determines whether the element or one of its descendants currently contains the keyboard focus. + + + + + Specifies whether the Item should handle MouseOver, MouseMove and related mouse events. + + + By default only elements that inherit RadItem can process mouse input. + + + + + Gets or sets a value indicating whether the element should pass the handled mouse + event to the first parent element which has the + property set to true. + + + + + Gets or sets a value indicating whether the element size will be calculated + automatically by the layout system. Value of false indicates that the element's size + will not be changed when calculating the layout. + + + + + Gets or sets a value corresponding to the bounding rectangle of the element. + Location and/or Size portions of the bounds may be calculated automatically based + on the current and + settings. + + + + + Gets or sets the location of the element based on the element parent rectangle. + Corresponds to .Location + + + + + Gets or sets the size of the element which is the height and width of the visual + rectangle that would contain the graphics of the element. Size corresponds to + element's Bounds.Size. When the AutoSize property is set + to true setting the Size property to some value has no effect. + + + + + Gets or sets the border thickness of the element. This thickness is included into the + element's bounding rectangle. + + + + + Gets or sets the padding sizes of the element. The paddings are included into the + element's bounding rectangle. + + + + + Gets or sets a value corresponding to the margins of the element. Margins are not + included into the element's bounding rectangle. + + + + + Gets or sets the preferred location of the element if its size is less than its + parent size. + + + + + Gets or sets the way the element should calculate its , when + the property is set to true. + + + + + Gets or sets a value indicating the way element will fill its available size when + parent element is calculating element size and location. + + + + + Gets or sets a value indicating whether the element can respond to user + interaction. + + + By default, if element is currently selected when Enabled set to false, next element would be selected. + Values inherits from Parent.Enabled. + When a scrollable control is disabled, the scroll bars are also disabled. + For example, a disabled multiline textbox is unable to scroll to display all the lines of text. + + + + + Gets or sets a value indicating whether the element can receive input + focus. + + + + + Gets a value indicating whether the element has input focus. + + + + + Gets or sets a value indicating whether the mouse has entered the bounds of the + element or any of its sibling elements in the parent RadItem. + + + + + Gets or sets a value indicating whether the mouse has entered the bounds of the + element. + + + + + Gets or sets a value indicating whether the mouse button has been pressed when + inside the bounds of the element. + + + + + Provide for use within TelerikLayoutEngine. + + + + Gets or sets a value indicating whether the element should be painted. + + Children visibility is not be affected. + + + + Gets or sets a value indicating element visibility. + + Setting this property affects also the children of the element. Collapsed means the element and its children would not be painted and would not be + calculated in the layout. + This property has no effect in design-time on objects. + + + + Gets a value indicating if the element is visible. + + + Represents the element unique name. + + + + Gets or sets a string value indicating the element visual class name. It's used + when a stylesheet has been applied to this element. + + + Style sheets contain groups of property settings categorized by element type and/or class, thus + element "class" is used to determine whether certain style rule would be applied over an element. + Generally this property is assigned by the control developer but it can be changed design time or runtime if + certain element is decided to have different style class. + + + + + Indicates whether the painting of the element and its children should be + restricted to its bounds. + + + + + Gets or sets an instance of the Shape object of an element. The shape of the + element is both responsible for clipping the element's children and for providing its' + border(s) with custom shape. + + + Value of null (or Nothing in VisualBasic.Net) indicates that element has rectangular (or no) shape. + Shape is an object that defines the bounding graphics path of an element. Graphics clip is always applied when an element has shape. + Shape is considered when painting the border element, and when hit-testing an element. + Some predefined shapes are available, like or . + offers a way to specify element's shape with a sequence of points and curves using code + or the design time + . + + + + + Get or sets the minimum size to apply on an element when layout is calculated. + + + + + Get or sets the maximum size to apply on an element when layout is + calculated. + + + + + Gets of sets the order of painting an element compared to its sibling elements. Greater ZIndex means an element would be + painted on top of other elements amongst its siblings. ZIndex changes the order of the elements in the list returned by + . + + + + + Gets or sets the direction of flow of the elements and whether elements are aligned to support locales + using right-to-left fonts. + + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Gets or sets the RadImageShape that describes the background of the element. + + + + + Determines whether the element or one of its descendants currently contains the mouse. + + + + + Gets or sets a value indicating the scale transform factors, when painting the + element and its children. + + + + + Gets or sets the rotation transform angle used when painting the element and its + children. + + + + + Gets or sets the offset of the origin of the coordinate system used when + painting the element and its children. + + + TrnslateTransform of the graphics is used prior to painting the element and after painting element children, + to reset the transformation + + + + + Gets or sets whether the properties of this element should be serialized + + + + + Gets or sets whether the element should be serialized in designer + + + + + Gets or sets whether the children of this element should be serialized + + + + Gets or sets a value indicating maximum rendered frames per second. + + + + Gets a value indicating if theme finished applying + + + + + Gets a value indicating if a theme should be applied + + + + + Gets a value indicating whether the AngleTransform should use + the center of the object as origin for the transformation. + + + + + Specifies when the Click event should fire. + + + + + Gets or sets a value indicating whether the DoubleClick event will fire for this item. + + + + + Determines whether mouse will be captured upon MouseDown event. + + + + + This property is used internally! + + + + + Gets or sets the stylesheet associated with the element. + + + Stylesheets provide dynamic property settings for elements' RadProperties organized into groups, each regarding a + certain state of the element. State means a property has certain value. + Style of an element can affect also element children. + Generally element style is set through control theme, which is a holder for various styles for many controls. + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + Fires when the font is changed. + + + + + Gets or sets the DefaultSize. + + + + + Gets or sets the forecolor. Color type represents an ARGB color. + + + + + Gets or sets the backcolor. Color type represents an ARGB color. + + + + + Gets or sets the font. Font type defines a particular format for text, including + font face, size, and style attributes. + + + + + Gets or sets the smoothing mode of an element. Smoothing mode enumeration defines + possible values. + + + + + Gets or sets the opacity of an element. Value 0.0f indicates that the element is completely transparent, + 1.0f means the element is not transparent (the default value). + + + + + This constant is used internally. + + + + + Gets or sets a value indicating whether design mode is active. + + + + + Gets the collection of data-binding objects for this IBindableComponent. + + + + + Exposes methods and properties for draggable elements. + + + + + Determines that the element is availble for dragging. + + An instance of which represents a dragging start location. + True if the object can be dragged, otherwise false. + + + + Gets the assosiated with dragged element data context. + + + + + + Gets the image used by the DragDropService to indicate that the element is being dragged. + Usually this is a snapshot of the element itself. + + + + + + Determines whether this instance may enter drag operation. + + + + + Exposes methods for drop targets + + + + + Completes drag-drop operation of instance of the IDraggable over the specified target. + + An instance of which represents a drop location. + An instance of the IDraggable which is dragged over the target. + + + + + + The current position of the mouse cursor + An instance of the IDraggable which is dragged over the specified target. + True if the operation finished successfully, otherwise false. + + + + Drop operations to occur in the drop target. Called when the cursor first enters the specified target. + + The current position of the mouse cursor + An instance of the IDraggable which is dragged over the target. + + + + Special behavior when the drag operation leaves the specified target. + + The old position of the mouse cursor + An instance of the IDraggable which is dragged over the target. + + + + Determines whether the instance allows for drop operations. + + + + + Occurs when the complete keyboard combination for a registered RadShortcut is triggerred. + + + + + + Occurs when a registered shortcut's keyboard combination is partially complete. + E.g. if we have Ctrl+C+V and Ctrl+C is pressed the event will be raised. + + + + + + This constant is used internally. + + + + + Raises the KeyDown event. + + + + + + Raises the KeyPress event. + + + + + + Raises the KeyUp event. + + + + + Raises the event. + + A that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Paints the border highlight. + + The screen RAD graphics. + + + + Determines if the item displays any text. + + + + + + This method is used internally! + + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + Add the VisualState property if we are in the context of RadControlSpy. + + + + + + + Calls the appropriate gesture event according to the GestureType property of the event arguments. + + The event arguments. + + + + Fires the TwoFingerTapGesture event. + + The arguments for the TwoFingerTapGesture event. + + + + Fires the PressAndTapGesture event. + + The arguments for the PressAndTapGesture event. + + + + Fires the PanGesture event. + + The arguments for the PanGesture event. + + + + Fires the RotateGesture event. + + The arguments for the RotateGesture event. + + + + Fires the ZoomGesture event. + + The arguments for the ZoomGesture event. + + + + Determines whether the element may be dragged. + + + + + + + Gets the context, associated with a drag operation. + + + + + + Gets the image to be used as a hint when this element is being dragged. + + + + + + Core logic when a drag-drop is performed over this element. + Allows inheritors to provide their own implementations. + + + + + + + Determines whether the element may be treated as a drop target during drag-and-drop operation. + + + + + + + + Allows the element to perform additional action upon mouse entering its bounds upon a drag-and-drop operation. + + + + + + + Allows the element to perform additional action upon mouse leaving its bounds upon a drag-and-drop operation. + + + + + + + Applies the provided value as an override of the theme setting + for the specified property in the specified state. + + The property to override. + The value to override the theme setting with. + The VisualState of the item for which the setting will be applied. + States can be combined using "." (dot). To see a list of the available states for this + element, use the GetAvailableVisualStates method. + + + + Applies the provided value as an override of the theme setting + for the specified property in the specified state. + + The property to override. + The value to override the theme setting with. + The VisualState of the item for which the setting will be applied. + States can be combined using "." (dot). To see a list of the available states for this + element, use the GetAvailableVisualStates method. + The value of the Class property of the child element for which + the override stands. (e.g. ButtonFill, ButtonBorder, etc.) + + + + Applies the provided value as an override of the theme setting + for the specified property in the specified state. + + The property to override. + The value to override the theme setting with. + The VisualState of the item for which the setting will be applied. + States can be combined using "." (dot). To see a list of the available states for this + element, use the GetAvailableVisualStates method. + The type of the child element for which + the override stands. (e.g. typeof(FillPrimitive), typeof(BorderPrimitive), etc.) + + + + Resets all overrides for the theme settings of a given property. + + The property to reset overrides for. + + + + Resets all overrides for the theme settings of a given property and a given state. + + The property to reset overrides for. + The state to reset. + + + + Resets all theme override settings for this element. + + + + + Suspends the apply of theme settings. + + + + + Resumes the apply of theme settings. + + + + + Gets the available visual states for this item. Visual states can be combined using "." (dot). + + A list with the available visual states for this element. + + + + Occurs when the Text property value is about to be changed. + + + + + Occurs when the Text property value changes. + + + + + Occurs when the TextOrientation property value changes. + + + + + Occurs when the FlipText property value changes. + + + + + Gets or sets whether the item should use the default way for painting the item when disabled (making it gray) or whether + the disabled appearance should be controlled by the theme. + + + + + Specifies the orientation of the text associated with this item. Whether it should appear horizontal or vertical. + + + + + Specifies the text associated with this item will be flipped. + + + + + Gets or sets the text associated with this item. + + + + + Gets a value indicating whether the item can be selected. + + + + + This property is used internally. + + + + + This property is used internally. + + + + + Occurs when the RadItem has focus and the user presses a key down + + + + + Occurs when the RadItem has focus and the user presses a key + + + + + Occurs when the RadItem has focus and the user releases the pressed key up + + + + + Occurs when a zoom gesture was sent by a touch input device. + + + + + Occurs when a rotate gesture was sent by a touch input device. + + + + + Occurs when a pan gesture was sent by a touch input device. + + + + + Occurs when a two-finger-tap gesture was sent by a touch input device. + + + + + Occurs when a press-and-tap gesture was sent by a touch input device. + + + + + Gets or sets string representing the current visual state of the Item which is used by themes to determine the appearance of the item and its child elements + + + + + Determines whether the element may be dragged by a RadDragDropService instance. + + + + + Determines whether the element may accept a drop operation. + + + + + Gets the collection of all RadShortcut instances registered with this item. + + + + + Gets or sets the description that will be reported to accessibility client applications. + + + + + Gets or sets the name of the control for use by accessibility client applications. + + + + + Gets or sets the accessible role of the item, which specifies the type of user interface element + of the item. + + + + + This property is used internally! + + + + + Gets or sets a value indicating whether the Analytics functionality is enable or disbale for this item. + + + + + Initializes a new instance of the class. + + + + + Gets or sets value indicating whether Office 2007 UI compliant screen tip sizing should be used + + + + + Override this property and provide custom screentip template description in DesignTime + + + + + Gets the screen tip actual template type. Used for component serialization. + + + + + Gets a value indicating screen tip preset size. + + + + + Sets the screntip element to be wrapped by this control. + + An instance of RadScreenTipElement + + + + Gets the instance of RadScreenTipElement wrapped by this control. RadScreenTipElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadScreenTip. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the method that will handle a CollectionChanged event. + + the %sender:System.Collections.CollectionBase% of the event + the %event arguments:Telerik.WinControls.UI.CollectionChangedEventArgs" + + + + Represents event data for the CollectionChanged event. + + + + + Initializes a new instance of the CollectionChangedEventArgs class using the + target, the index of the item, and the item's change operation. + + + + + + + + Gets or sets a value specifing the target. + + + + + Gets or sets a value indicating the index in the collection of the changed item. + + + + + Gets or sets a value indicating the items chnage operation. + + + + + Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed. + + + + + + Notifies listeners of dynamic changes, such as when items get added and removed or the whole list is refreshed. + + + You can enumerate over any collection that implements the IEnumerable interface. However, to set up dynamic bindings so that insertions or deletions in the collection update the UI automatically, the collection must implement the INotifyCollectionChanged interface. This interface exposes the CollectionChanged event that must be raised whenever the underlying collection changes. + + + + + Occurs before the collection changes. + + + + + Notifies clients that a property value is changing. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the ObservableCollection class. + + + + + Initializes a new instance of the ObservableCollection class that contains elements copied from the specified list. + + + + + + Overridden. Removes all items from the collection. + + + + + Overridden. Inserts an item into the collection at the specified index. + + + + + + + Moves the item at the specified index to a new location in the collection. + + + + + + + Moves the item at the specified index to a new location in the collection. + + + + + + + Suspends event notification. + + + + + Resumes event notification. + + + + + Resumes event notification. + + + + + Calls the NotifyListenersCollectionChanged method with the provided arguments if not in a batch update. + + + + + + Raises the CollectionChanged event with the provided arguments. + + + + + + Calls the NotifyListenersCollectionChanging method with the provided arguments if not in a batch update. + + + + + + Raises the CollectionChanging event with the provided arguments. + + + + + + Overridden. Removes the item at the specified index of the collection. + + + + + + Overridden. Replaces the element at the specified index. + + + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the NotifyPropertyChanged event + + A instance containing event data. + + + + Raises the PropertyChanging event + + The name of the property + + + + Raises the NotifyPropertyChanging event + + A instance containing event data. + + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + Occurs before an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + true to indicate the collection has completed update; otherwise false. + + + + + Occurs when a property of an object changes. + Calling the event is developer's responsibility. + + + + + Occurs before a property of an object changes. + + + + + Interface to the node + + + + + Interface to the tree + + + + + Add item + + + + + Add or get item + + + + + Find item + + + + + Delete item by key + + + + + Delete specific item + + + + + Clear the tree + + + + + Get synchornization root + + + + + Interface to the tree + + + + + Get first node + + + + + Get last node + + + + + Get next node + + + + + Get prior node + + + + + Get number of nodes in the tree + + + + + Interface to the tree which supports direct access to the items + + + Interface to the tree + + + + + Get item by order index + + + + + Get index by item + + + + + Parameters of ordered node + + + + + Node's rank + + + + + Number of sub nodes + + + + + Ordered node + + + + + Node of the red-black tree + + Key type + Node's parameter + + + + Set parent node + + + + + Set left node + + + + + Set right node + + + + + Update reference count + + + + + Node parameters + + + + + Constructor + + + + + Copy from other node + + + + + Parent node + + + + + Left node + + + + + Right node + + + + + Key value of the node + + + + + Colour of the node + + + + + Constructor + + + + + Set parent node + + + + + Set left node + + + + + Set right node + + + + + Update reference count + + + + + Copy from other node + + + + + Basic RBTree with ordering + + Operation like Add and Remove are an O(2logN) operations. + Operation Find is O(logN) operation. + + + + + Base class for the tree. + Based on the Damian Ivereigh implementation + Support for the multi-trees has been added. + Do not use this class directly. Use RBTree, RBMultiTree, RBOrderedTree and RBOrderedMultiTree classes + + Key type + Node type + Node parameter type + + + + Add item + + + + + Add or get item + + + + + Find item + + + + + Delete item by key + + + + + Clear + + + + + Delete item by key + + + + + Get first node + + + + + Get last node + + + + + Get next node + + + + + Get prior node + + + + + Comparator + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Add new key into the tree + + This operation is O(logN) operation + + In case the key is already in the tree + + + + Add new key into the tree or get existing node + This operation is O(logN) operation + + + + + Remove key from the dictionary + This operation is O(logN) operation + + + + + Remove all items + + + + + Remove node from the dictionary + This operation is O(1) operation + + + + + Find key in the dictionary + This operation is O(logN) operation + + + + + Get first node + This operation is O(logN) operation + + + + + Get last node + This operation is O(logN) operation + + + + + Get next node + This operation is O(logN) operation + + + + + Get previous node + This operation is O(logN) operation + + + + + Get enumerator + + + + + Get enumerator + + + + + Balance tree past inserting + + + + + Create new node + + + + + Go trough tree and find the node by the key. + Might add new node if node doesn't exist. + + + + + Rotate our tree Left + + X rb_left_rotate(X)---> Y + / \ / \ + A Y X C + / \ / \ + B C A B + + N.B. This does not change the ordering. + + We assume that neither X or Y is NULL + + + + + Rotate our tree Right + + X Y + / \ / \ + A Y leftArrow--rb_right_rotate(Y) X C + / \ / \ + B C A B + + N.B. This does not change the ordering. + + We assume that neither X or Y is NULL + > + + + + Return a pointer to the smallest key greater than x + + + + + Return a pointer to the largest key smaller than x + + + + + Delete the node z, and free up the space + + + + + Restore the reb-black properties after a delete + + + + + + Is tree unique + + + + + Object can be used for synchronization + + + + + Root of the tree + + + + + Number of nodes in the tree + + + + + Get collection object for this + + + + + Adapter implementing collection interface + + + + + Referenced tree + + + + + Constructor + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Create new node + + + + + Get item by order index + This operation is O(logN) operation + + + + + Get order index of item + This operation is O(logN) operation + + + + + Get item by order index + + + + + Get index by item + + + + + Unique ordered RBTree + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Non-unique RBMultiTree + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Tree node + + + + + Constructor + + + + + Unique RBTree + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Create new node + + + + + Non-unique RBMultiTree + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Create new node + + + + + Generic tree enumerator + + Node type + Key type + >Node parameter + + + + Tree + + + + + Current item + + + + + + Constructor + + + + + Move to next element + + + + + Reset enumeration + + + + + Dispose object + + + + + Get current element + + + + + Get current element + + + + + Generic tree value's enumerator + + Node type + Key type + Node parameter + + + + Tree + + + + + Current item + + + + + Constructor + + + + + Move to next element + + + + + Reset enumeration + + + + + Dispose object + + + + + Get current element + + + + + Get current element + + + + + Colour of the node + + + + + Red + + + + + Black + + + + + Represents a read-only data collection that provides notifications when the original has changed. + + + + + + Initializes a new instance of the with an instance of a /> + + + + + + Fires the CollectionChanged event. + + + + + + Fires the PropertyChnaged event. + + + + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Gets the type. + + + The type. + + + + + Gets or sets the session identifier. + + + The session identifier. + + + + + Gets the instalation key. + + + The instalation key. + + + + + Converts an ISO 8601 time/date format string, which is used by JSON and others, + into a DateTime object. + + + + + + + Converts a DateTime object into an ISO 8601 string. This version + always returns the string in UTC format. + + + + + + + Ensures a two-digit number with leading zero if necessary. + + + + + + + Ensures a three-digit number with leading zeros if necessary. + + + + + + + The ASP.NET Ajax team made up their own time date format for JSON strings, and it's + explained in this article: http://msdn.microsoft.com/en-us/library/bb299886.aspx + Converts a DateTime to the ASP.NET Ajax JSON format. + + + + + + + Converts an ASP.NET Ajax JSON string to DateTime + + + + + + + Converts a Unicode character to a string of its ASCII equivalent. + Very simple, it works only on ordinary characters. + + + + + + + Returns null if no DTE instance is available. + + EnvSessionManager or Null depending on whether DTE is available. + + + + Tries to add the item to the collection. If it already exists it won't be added. + + The item to be added. + + + + Represents a small rectangular pop-up window that displays a brief description of a control's purpose when the user rests the pointer on the control. + Provides extended functionality by removing the necessity to have a control in the element tree + + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + An containing the duration, in milliseconds, to display the . + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + A containing the offset, in pixels, relative to the upper-left corner of the screen, to display the . + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + The horizontal offset, in pixels, relative to the upper-left corner of the screen, to display the ToolTip. + The vertical offset, in pixels, relative to the upper-left corner of the screen, to display the ToolTip. + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + The horizontal offset, in pixels, relative to the upper-left corner of the screen, to display the ToolTip. + The vertical offset, in pixels, relative to the upper-left corner of the screen, to display the ToolTip. + An containing the duration, in milliseconds, to display the . + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + A containing the offset, in pixels, relative to the upper-left corner of the screen, to display the . + An containing the duration, in milliseconds, to display the . + + + + Hides this instance. + + + + + Repository for Telerik-related resources. Not for general use. + + + + + Represents a rectangle with chamfered corners. + + + + Represents element shape. Base class for specialized shapes such as + EllipseShape, RoundRectShape, Office12Shape, etc. + + + + Retrieves the shape of the element. GraphicsPath represents a series of connected + lines and curves. + + + + + Retrieves the contour of the element0. GraphicsPath represents a series of + connected lines and curves. + + + + Creates path using a rectangle for bounds. + + + Creates path using a rectangle for bounds. + + + + Mirrors the GraphicsPath. Used in RightToLeft mode. + + + + + Serializes properties. Required for serialization mechanism of telerik + framework. + + + + + Deserializes properties. Required for the deserialization mechanism of telerik + framework. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The width of the chamfer. + + + + Initializes a new instance of the class. + + The width of the chamfer. + The angle of the chamfer in degrees. + + + + Initializes a new instance of the class. + + The width of the chamfer. + The angle of the chamfer in degrees. + if set to true the top left corner will be chamfered. + if set to true the bottom left corner will be chamfered. + if set to true the bottom right corner will be chamfered. + if set to true the top right corner will be chamfered. + + + + Creates path using a rectangle for bounds. + + + + + + + Serializes properties. Required for telerik serialization mechanism. + + + + + Deserializes properties. Required for telerik deserialization mechanism. + + + + + Gets or sets the width of the chamfer. + + + + + Gets or sets the angle of the chamfer in degrees. The value must be between 0 inclusive and 90 exclusive. + + + + + Gets or sets a value indicating whether the top left corner of the shape will be chamfered. + + + true if the top left corner is be chamfered; otherwise, false. + + + + + Gets or sets a value indicating whether the top right corner of the shape will be chamfered. + + + true if the top right corner is be chamfered; otherwise, false. + + + + + Gets or sets a value indicating whether the bottom right corner of the shape will be chamfered. + + + true if the bottom right corner is chamfered; otherwise, false. + + + + + Gets or sets a value indicating whether the bottom left corner of the shape will be chamfered. + + + true if the bottom left corner is chamfered; otherwise, false. + + + + + Creates circle shape in the middle of the provided rectangle. + + + + + Creates circle shape in the middle of the provided rectangle. + + + + + Creates circle region in the middle of the provided rectangle. + + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Should snap to the line or curve + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The default constructor sets the following default values: + FieldWidth = 1.0f; + SnapRelative = 0.2f; + SnapDelta = 0.2f; + SnapType = SnapTypes.Relative; + + + + + Set the snap type to be one of the following: + SnapTypes.Relative - snap distance is relative to the FieldWidth + + SnapTypes.Fixed - snap distance is fixed + + + + + Width of a single box in the snap grid. + It's value cannot be less than or equal to zero. + + + + + Sets/Gets the snap distance for fixed type snapping. + Does not activate fixed type snapping. + + + + + + Sets/Gets the relative snap distance. + Does not activate relative type snapping. + + + + + + Gets the precached snap distance. + Doesn't need to be equal to any of the SnapFixed or SnapRelative properties. + + + + Represents custom shape of an element. + + + Initializes a new instance of the CustomShape class. + + + Creates a path using a ractangle for bounds. + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + Gets a List of Shape points. + + + Gets or sets a Rectangle indicating the dimension of the shape. + + + + Represents a shape editor control. + + + + + Draws grid lines in the specified rectangle with the specified color + + + + + + + + Translates a rectangle in accordance with the offsets due to scrolling + + + + + + + Translates a point in accordance with the offsets due to scrolling + + + + + + + Updates the bounds of the drawable area + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a shape point. + + + + + Represents a base class of the ShapePoint class. + + + + + Initializes a new instance of the ShapePointbase class. + + + + + Initializes a new instance of the ShapePoint class using X and Y + coordinates. + + + + + Initializes a new instance of the ShapePoint class using a Point structure. + + + + + + Initializes a new instance of the ShapePoint class using an instance of the + ShapePointBase class. + + + + + + Sets the X and Y coordinates of the shape point. + + + + + + + Sets the point position from a Point structure. + + + + + + Retrieves a Point structure corresponding to the point position. + + + + + + + + + + + + + Retrieves a string representation of the ShapePointBase class. + + + + + + Gets or sets a float value indicating the X coordinate of the shape point. + + + + + Gets or sets a float value indicating the Y coordinate of the shape point. + + + + + Gets or sets a value indicating the anchor style. + + + + + Gets or sets a boolean value indicating whether the shape point is locked. + + + + + Initializes a new instance of the ShapePoint class. + + + + + Initializes a new instance of the ShapePoint class from + the X and Y coordinates of the point. + + + + + + + Initializes a new instance of the ShapePoint class from a Point structure. + + + + + Initializes a new instance of the ShapePoint class using a ShapePoint instance. + + + + + + Retrieves the line direction of the line that passes through the instance + point and the point given as an argument. + + + + + + + Creates a Bezier curve between the current point and the point given as a + parameter. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets the first control point. + + + + + Gets or sets the second control point. + + + + + Exposes the line direction. + + + + + Exposes the line position. + + + + + Indicates horizontal position. + + + + + Indicates vertical position. + + + + + The default constructor sets the following default values: + FieldWidth = 1.0f; + SnapRelative = 0.2f; + SnapDelta = 0.2f; + SnapType = SnapTypes.Relative; + + + + + Set the snap type to be one of the following: + SnapTypes.Relative - snap distance is relative to the FieldWidth + + SnapTypes.Fixed - snap distance is fixed + + + + + Width of a single box in the snap grid. + It's value cannot be less than or equal to zero. + + + + + Sets/Gets the snap distance for fixed type snapping. + Does not activate fixed type snapping. + + + + + + Sets/Gets the relative snap distance. + Does not activate relative type snapping. + + + + + + Gets the precached snap distance. + Doesn't need to be equal to any of the SnapFixed or SnapRelative properties. + + + + Represents donut like shape. + + + + Creates donut-like path. Overrides the method defined in its base class - + ElementShape. + + + + Represents element shape converter. + + + Represents ellipse shape. + + + + Creates ellipse shape. Overrides the method defined in its base class - + ElementShape. + + + + + Defines possible modes to be used when rendering an image. + + + + + Image is painted without any modification. + + + + + Image is stretched within the paint rectangle. + + + + + Image is stretched by the X axis and tiled by the Y one. + + + + + Image is stretched by the Y axis and tiled by the X one. + + + + + Inner image segment is tiled while all others are stretched. + + + + + Image is centered within the paint rectangle. + + + + + Image is centered by the X axis and stretched by the Y one. + + + + + Image is centered by the Y axis and stretched by the X one. + + + + + Image is centered by the X axis and tiled by the Y one. + + + + + Image is centered by the Y axis and tiled by the X one. + + + + + Image is tiled within the paint rectangle. + + + + + Image is flipped by the X axis and tiled within the paint rectangle. + + + + + Image is flipped by the X and Y axis and tiled within the paint rectangle. + + + + + Image is flipped by the Y axis and tiled within the paint rectangle. + + + + + Gets the segment associated with this object. + + + + + Gets or sets the image part associated with this object. + + + + + Represents an image which may be divided in 9 different segments where only the inner one is stretched within the paint rectangle. + + + + + Gets or sets the RotateFlipType value that defines additional transform on the rendered image. + + + + + Gets or sets the interpolation mode to be applied on the device context when image is rendered. + + + + + Determines which segments from the image will be painted. + + + + + Determines whether the image will be rendered using segments. + + + + + Gets or sets the mode to be used when image is painted. + + + + + Gets or sets the image to be rendered. + + + + + Gets or sets the string representation of the + + + + + Gets or sets the opacity of the rendered image. Valid values are within the interval [0, 1]. + + + + + Gets or sets the Padding structure that defines the margins of the segmented image. + + + + + Gets or sets the Padding structure that defines offset when the image is rendered to the destination rectangle. + + + + Represents the shape of the MS Office forms. + + + Greates the path. + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + Gets or sets whether the bottom edges of the form should be rounded. + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + + Creates donut-like path. Overrides the method defined in its base class - + ElementShape. + + + + Represents round rectangle shape. + + + Initializes a new instance of the RoundRectShape class. + + + Initializes a new instance of the RoundRectShape class. + + + Initializes a new instance of the RoundRectShape class using a radius. + + + Initializes a new instance of the RoundRectShape class using a radius and rounded corners. + + + Greates round rectangle like path. + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + Gets or sets the radius of the shape. + + + + Gets or sets value indicating whether the bottom left corner of the shape should be round + + + + + Gets or sets value indicating whether top left corner of the shape should be round + + + + + Gets or sets value indicating whether bottom right corner of the shape should be round + + + + + Gets or sets value indicating whether top right corner of the shape should be round + + + + Represents IE like tab shape. Shapes are series of connected lines and curves. + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Represents office 12 like tab. + + + + Creates office 12 like tab. Overrides the method defined in its base class - + ElementShape. + + + + Represents VS like tab shape. Shapes are series of connected lines and curves. + + + + Creates VS like tab shape. Overrides CreatePath method in its base class - + ElementShape. + + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + Gets or sets the orientation of this shape. + + + + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Represents RadElementTree. Every Telerik control has a corresponding tree of + RadElements. This gives a lot of flexibility in building controls allowing, for + example, inheritance of properties from the ancenstor nodes. + + + + Initializes a new instance of RadElementTree class. + + + + Gets the element of specific type at specific coordinates if it handles the mouse input. + + Element location in control coordinates + The element if successfull, otherwise null + + + + Gets the element at specific coordinates if it handles the mouse input. + + Element location in control coordinates + The element if successfull, otherwise null + + + + Gets the element at specific coordinates if it meets the predicate criteria. + + Element location in control coordinates + Specify a predicate or null if the first element should be returned. + The element if successfull, otherwise null + + + + Retrieves the size of a rectangular area into which a control can be + fitted. This override is called only when AutoSize is true. + + + + Gets the RootElement of the tree. + + + Gets or sets the RadControl for the corresponding tree. + + + Gets the bridge between the abstract RadElement layout and the RadControl instance. + + + Gets the tree name. + + + + + + + + + Represents a collection of PropertyChangeBahavior instances. + See also RadElement.AddBehavior + + + + + Tunnels when the AutoSize property of RadControl changes in order to notify any children that should take special actions. + + + + + Tunnels when some of the stretch properties (horizontal or vertical) has changed in order to notify any children that should take special actions. + + + + + Tunnels when the layout has been suspended in order to notify any children that should take special actions in this case - like RadHostItem. + + + + + Tunnels when the layout has been resumed in order to notify any children that should take special actions in this case - like RadHostItem. + + + + + This method is used internally. + + + + + This method is used internally. + + + + + Paints the RootElement and its element tree. Intended for use by RadControl inheritors. + + IGrpahics object to be used to paint elements + Clipping rectangle to be painted. Only those elements from the tree which intersect with this rectangle will be painted. + + + + Paints the RootElement and its element tree. Intended for use by RadControl inheritors. + + IGrpahics object to be used to paint elements + Clipping rectangle to be painted. Only those elements from the tree which intersect with this rectangle will be painted. + + + + + Gets or sets the forecolor. Color type represents an ARGB color. + + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Gets or sets a value corresponding to the bounding rectangle of the owning Control. + + + + + Gets or sets value indicating whether the shape set to the root element would be applied as a region to + the RadControl that contains the element. + + + + + This property is used internally! + + + + + When set, replaces the default control size. + + + + + Represents a routed event. Routed events can be tunnel or bubble event + according to the routed direction of the event. + + + + + Gets or sets the event name. + + + + + Gets the owner's type. + + + + + Represents a raised routed event. + + + + + Initializes a new instance of the RaisedRoutedEvent class. + + + + + Initializes a new instance of the RaisedRoutedEvent class using + routed event, event sender, sender's type, and routing direction (tunnel + or bubble). + + + + + + + + + Compares the instance with the other event arguments and the sender of the event. + + + + + + + + Compares the instance with another event passed as a parameter. + + + + + + + Gets or sets a value indicating the routed event. + + + + + Gets or sets a string value indicating the routed event name. + + + + + Gets or sets the sender's type. + + + + + Gets or sets the sender. + + + + + Gets or sets the routing direction - tunnel or bubble. + + + + + Defines the routing directions for an events. + + + + + Indicates a tunnel event. + + + + + Indicates a bubble event. + + + + + Represents event arguments for a routed event. + + + + + Initializes a new instance of the RoutedEventArgs class using EventsArgs to + initializes its base class and the RoutedEvent. + + + + + + + Gets or sets the original EventArgs. + + + + + Gets or sets a value indicating the RoutedEvent. + + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Gets or sets a value indicating the routing direction for the event. + + + + + A collection of the RoutedEventBehavior objects. Used by the StyleSheet system. + + + + + Represets an animated property setting + + + + + Initializes new instance of + + + + + Initializes new instance of + + The property to animate. + The number of frames. + The interval between animation frames. + The step used to calculate the next value. + + + + Initializes new instance of + + The property to animate. + The start value. + The end value. + The number of frames. + The interval between animation frames. + + + + Gets or sets the property that will be animated. + + + + + Gets or sets the start value for the animation. + + + + + Gets or sets the end value for the animation. + + + + + Gets or sets the maximum allowed value when using OutElastic mode + + + + + Gets or sets the step used when calculating the next value. + + + + + Gets or sets the number of frames in which the animation will run. + + + + + Gets or sets the interval between animation frames. + + + + + Gets or sets a value indicating the time delay before starting the animation. + + + + + Gets or sets a value indicating whether to set a random delay before starting the animation. + The random delay applies if the value of this property is different from 0. + + + + + Gets or sets the easing to be used when applying animation values. + + + + + Gets or sets a value that determines whether the animation value remains applied after the animation finishes. + + + + + Static value indicating whether animations are enabled at global level. + + + + + Occurs when the animation finishes. + + + + + Occurs when the animation starts. + + + + + Calculates int values for property animation. + + + + + Calculates values used in each frame of property animation. + Also supports converting animation step values to and from a string for + theme serialization. + + + + + Calculates the animated value from start value, end value, current value, + current frame, total number of frames and the specified animation calulator. + + + + + + + + + + + + + + + + + + + + Retrieves the animation step as a string value. + + + + + + + Converts a string to an animation value. + + + + + + + Calculates the animation step from start value, end value, and the total number of frames. + + + + + + + + + Calculates the animation end value from start value, step, and the total number of frames. + + + + + Represents a map of CLR types and corresponding type using when property animation is running and + for animations serialization in themes. + + + + + Animates color values using ColorAnimationStep objects. + + + + + Calculates double values for the property animation. + + + + + Calculates float values for the property animation. + + + + + Calculates Font values for property animation, using FontAnimationStep values. + + + + + Calculates int values for property animation. + + + + + Calculates animation rectangle values. + + + + + Represents a value point animation calculator. + + + + + Represents a value point animation calculator using floating point values. + + + + + Calculates animation rectangle values. + + + + + Represents a value size animation calculator. + + + + + Represents a value size animation calculator using floating point values. + + + + + Represents a numerical value calculator. It is used internally by StyleSheet + system to calculate the value changes when animating RadElement properties. + + + + + Calculates the current value of some property from the initial value, end value, current frame, and the numbers of frames. + + + + + + + + + + Calculates the current value of some property from the initial value, end value, current frame, and the number of frames. + + + + + + + + + + Caclulates the current value of a property from the initial value, end value, current frame, and the number of frames. + + + + + + + + + + Defines the time of the animation occurrence. + + + + + Indicates that no animation is played. + + + + + Indicates that animation is played on applying a setting. + + + + + Indicates that animation is played on up-apply a setting. + + + + + Indicates that animation is always played. + + + + + Defines the possible types of animation looping. + + + + + No animation looping is enabled. + + + + + The animation is started from the beginning after it ends. + + + + + The animation is started again, whereby + end and start values are swapped. + + + + + Defines the animation type. + + + + + + + + + + + + + + + Defines the easing equations for the easing animations. + + + + + Contains information about the way Animation has finished + + + + + Gets value indicating whether the animation has been interrupted by another one. + + + + + Gets value indicating whether the animation has been interrupted by another one. + + + + + Gets the element (if it exists) associated with the specified animation. + + + + + Gets the object associated with the specified animation. + + + + + AnimationStartedEventHandler delegate + + + + + + + AnimationFinishedEventHandler delegate + + + + + + + Event raised during animation notifying the new size for the panel + + the object sending the notification + the new size for the window collasping/expanding + + + + Event raised when animation is finished + + + + + Event raised in parallel with the executing animation. + + + + + Get/Set minimum value allowed for size + + + + + Get/Set maximum value allowed for size + + + + + Initializes a new instnace of the PropertySetting class. + + + + + Initializes a new instnace of the PropertySetting class by specifying property name and its value. + + A property name. + A property value. + + + + Initializes a new instnace of the PropertySetting class by specifying property and its value. + + A property. + A property value. + + + + Initializes a new instnace of the PropertySetting class by using an exising property setting instance. + + An existing property setting. + + + + Gets or sets the property mapper used to map property names based on the stylable element type. + + + + + Gets the current property value for the specified + + The object. + The current property value for the object. + + + + Applies the property setting on the specified element. + + An instance of + + + + Unapplies the property setting from the specified element. + + An instance of + + + + Resolves the object based on its arguments. + + The type which owns this property. + The property name. + Specifies whether to search base classes if the current type does not contain the specified property. + An instance of if successful. + + + + Gets or sets the property name. + + + + + Gets or sets the full property name (including the class name). + + + + + Gets or sets the property value. + + + + + Gets or sets the property end value (creates an animated property setting). + + + + + Gets an instance of related with this setting. + + + + + Gets the associated RadProperty. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class by using an existing instance. + + The PropertySettingGroup to be used as a source. + + + + Applies the property settings contained in this group to the specified element. + + The element. + + + + Searches for a property setting for the specified property. + + The property to search for + An instance of if successfull. + + + + Searches for a property setting for the specified property. + + The name of the property to search for + An instance of if successfull. + + + + Gets or sets value indicating the key of a repository item which this group is based on. + + + + + Gets the for this property setting group. + + + + + Gets a collection of the property settings for the property setting group. + + + + + Gets a collection of repository settings for the property setting group. + + + + + Initializes a new instance of the ElementSelector class. + + + + + Initializes a new instance of the ElementSelector class by specifying element state. + Sets thw type property to VisualStateSelector. + + The element state. + + + + Initializes a new instance of the ElementSelector class by specifying selector properties. + + The selector type. + The selector value + + + + Initializes a new instance of the ElementSelector class by using an existing one. + + The ElementSelector to be used as a source. + + + + Determines whether the selector is compatible with the specified element. + + The element to compare with. + true if the element is compatible. + + + + Determines whether the selector is valid an element with specific state. + + The element to compare with. + The element state. + true if the selector is valid. + + + + Determines whether the selector is compatible with specific selector. + + The selector. + true if successfull. + + + + Gets or sets the selector value. + + + + + Gets or sets the selector type. + + + + + Gets or sets the child selector. + + + + + Initializes a new instance of the StyleGroup class. + + + + + Initializes a new instance of the StyleGroup class by adding a default style registration. + + The default style registration. + + + + Initializes a new instance of the StyleGroup class by specifying an element type. + Creates a new ElementTypeDefault registration. + + The element type. + + + + Initializes a new instance of the StyleGroup class by using an existing StyleGroup instance. + + The StyleGroup to be used as a source. + + + + Determines whether the style group is compatible with the specified control type. + + The control type. + true if the style group is compatible. + + + + Determines whether the style group is compatible with the specified control. + + The control. + true if the style group is compatible. + + + + Determines whether the style group is compatible with the specified stylable node. + + The stylable node. + true if the style group is compatible. + + + + Determines whether the style group is compatible with the specified style group. + + The stye group. + true if the style group is compatible. + + + + Creates a new style sheet based on this style group for the specified element. + + The element. + An instance of if successful. + + + + Combines the style group with a specified style group by adding its property setting groups. + + style group to combine with. + Specifies whether to replace existing styles. + + + + Saves all style settings presented in this group in a file with XML formatting. + + The theme name to be stored in the file. + The name of the file to be created. + + + + Creates a new theme which is a cloned version of all styles existing in this style group. + + The name of the new theme. + An instance of the Theme class if successfull. + + + + Gets a collection with property setting groups for the style group. + + + + + Gets a collection with style registrations for the style group. + + + + + Initializes a new instance of the StyleRegistration class. + + + + + Initializes a new instance of the StyleRegistration class by creating an ElementTypeDefault registration. + + The full element type. + + + + Initializes a new instance of the StyleRegistration class by using an existing StyleRegistration instance. + + The StyleRegistration to be used as a source. + + + + Initializes a new instance of the StyleRegistration class. + + The registration type. + The full element type. + The full control type. + The element name. + The control name. + + + + Determines whether the style registration is valid for the specified control. + + The control to check. + true if the style registration is compatible. + + + + Checks whether the style registration conatins a style for a child element of the specified stylable node. + + The to check. + true if this style registration is compatible. + + + + Determines whether the style registration is valid for the specified control type. + + The control type to check. + true if the style registration is compatible. + + + + Determines whether the style registration is valid for the specified stylable node. + + The stylable node to check. + true if the style registration is compatible. + + + + Determines whether the style registration is compatible with existing style registration. + + The style registration to check. + true if the style registration is compatible. + + + + Gets or sets the registration type. + + + + + Gets or sets the element type. + + + + + Gets or sets the control type. + + + + + Gets or sets the element name. + + + + + Gets or sets the control name. + + + + + Initializes a new instance of the StyleRepository class. + + + + + Initializes a new instance of the StyleRepository class and specifies the repository key. + + The repository key. + + + + Initializes a new instance of the StyleRepository class and specifies its main properties. + + The style repository type. It can be: Border, Gradient, Image and Layout + The repository name. + The repository key. + + + + Initializes a new instance of the StyleRepository class by using an existigng instance. + + The StyleRepository to be used as a source + + + + Initializes the repository and maps its properties. + + + + + Searches for a specific property setting in the repository. + + The property name to search for. + An instance of + + + + Searches for a specific property setting in the repository. + + The property to search for. + An instance of + + + + Gets or sets the repository type. + + + + + Gets or sets the repository name. + + + + + Gets or sets the repository key. + + + + + Gets a collection containing the repository settings. + + + + + Initializes a new instance of the Theme class. + + + + + Initializes a new instance of the Theme class. + + The name of the theme. + + + + Searches for a StyleGroup based on the control type. + + The control type to search for. + An instance of if successfull. + + + + Searches for a StyleGroup for a specified control. + + The control to search for. + An instance of if successfull. + + + + Searches for a StyleGroup for a specified stylable node. + + The stylable node to search for. + An instance of if successfull. + + + + Searches for a StyleRepository based on its key. + + The repository key to search for. + An instance of if successfull + + + + Relates repositories with style groups. + + + + + Determines whether this theme is compatible with the specified theme name. + + Theme name to compare with. + true if successfull. + + + + Creates a new theme by reading a TSSP file. + + The file location. + An instance of if successfull. + + + + Creates a new theme by reading an XML file. + + The file location. + An instance of if successfull. + + + + Creates a new theme by reading a CSS like file. + + The file location. + An instance of if successfull. + + + + Creates a new theme by reading a CSS like formatted text. + + The text containing a theme in CSS style syntax. + An instance of if successfull. + + + + Creates a new theme by reading a file. The function determines the correct file format by using file extension. + + The file location. + An instance of if successfull. + + + + Creates a new theme by loading it from a resource. The function determines the correct file format by using file extension. + + The assembly to load from. + The location of the resource. + An instance of if successfull. + + + + Creates a new cloned version of the class. + + A new instance of the Theme class + + + + Combines two themes. + + The source theme. + Determines whether to merge repositories. + Determines whether to replace existing styles. + + + + Gets or sets the name of the theme. + + + + + Gets a collection containing the style groups for the theme. + + + + + Gets a collection containing the repositiories for the theme. + + + + + Gets or sets a value indicating whether the theme should be visible at design time. This property value is not serialized. + + + + + Initializes a new instance of the StyleSheet class. + + + + + Applies contained property setting groups, if their conditions are ture. + + The element. + Specifies whether to apply initial condition if the element is in other state. + + + + Gets a collection of the property setting groups for the property setting group. + + + + + Searches for a theme with specific name. + + The theme name to search for. + an instance of if successfull. + + + + Searches for a theme with specific name. + + The theme name to search for. + Sepecifies whether to fallback to control default theme if no other theme is found. + an instance of if successfull. + + + + Adds a new theme to the repository. + + The theme to add. + + + + Adds a new theme to the repository. + + The theme to add. + Specifies whether to replace all matching styles if a theme with the same name exists. + + + + Removes a theme from the repository. + + The theme to remove. + + + + Registers a theme without loading it. + + The theme component to register + + + + Gets or sets the default control theme. + + + + + Gets a list with all loaded themes. + + + + + Gets a list with all theme names that are available. + + + + + Checks is a given element or any of its descendants contain the focus. + + The element. + [true] if the element or any of its children contain focus, [false] otherwise. + + + + This method is used internally. + + + + + + + Clears all resources reserved for the KeyTips functionality + + + + + This method is used internally. + + + + + + + This property is used internally! + + + + + This property is used internally! + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets the tool tip + + The tool tip. + + + + Gets or sets the value of how much the tooltip will be moved on the Y coordinate + + + + + Gets or sets the value of how much the tooltip will be moved on the X coordinate + + + + + Gets or sets a value indicating whether ToolTips are shown for the RadItem objects contained in + the RadControl. + + + + + Gets or sets value indicating whether the control should show all screen tips under the control client rectangle, as required for the RibbonBar control, for example + + + + + Gets the shortcust collection. + + + + + This property is used internally! + + + + + Gets whether this instance of RadControl is on a active form + + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this specific control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets or sets whether Key Tips (Office 2007 like accelerator keys map) + are used for this specific control. + + + + + Determines whether the mouse over the owning IComponentTreeHandler instance. + + + + + Only RadItem should manipulate this property + + + + + Gets the current selected element (hovered by the mouse). + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + This method is used internally. + + + + + + Fires when hovered element is changed. + + + + Suspends the animated property changes for the control. When animation are suspended property changes still occur but without aniumations. + + + + + Resumes the animated property changes for the conrol. For more info see + + + + + Gets the currently used theme. + + + + + Gets or sets control's preffered theme name. Themes are stored and retrieved using + APIs of . + + + If ThemeResolutionService.ApplicatonThemeName refers to a + non-empty string, the theme of a RadControl can differ from the one set using + RadControls.ThemeName property. If the themes differ, the + RadControls.ThemeName property will be overridden by + ThemeResolutionService.ApplicatonThemeName. If no theme is registered + with a name as ThemeResolutionService.ApplicatonThemeName, then + control will revert to the theme specified by its ThemeName property. + If ThemeName is assigned to a non-existing theme name, the control may + have no visual properties assigned, which will cause it look and behave in unexpected + manner. If ThemeName equals empty string, control's theme is set to a + theme that is registered within ThemeResolutionService with the name + "ControlDefault". + + + + + Gets or sets the class name string that ThemeResolutionService will use to find the themes registered for the control. + + + By default the return value is RadControl's type FullName; Some controls like drop down menu has different ThemeClassName + depending on the runtime usage of the control. + + + + + Gets the version of the style applied to this themable element tree. This property is used internally. + + + + + Gets or sets a value indicating whether to fallback to control default theme if the control does not support the current theme. + + + + + Gets value indicating whether the animated property changes are suspended for the control. Also see . + + + + + Represents the method that will handle the + %HoveredElementChanged:HoveredElementChanged% event. + + Initializes the event sender. + Initializes the %event arguments:HoveredElementChangedEventArgs%. + + + + Represents event data for the HoveredElementChanged event. + + + + + Initializes a new instance of the HoveredElementChangedEventArgs class. + + + + + + An interface which provides methods for handling a collection of RadItems. + This interface is used throughout controls which represent a list of items. + + + + + Returns the selected item in the control. + + An reference to a RadItem instance which represents + the currently selected item. + + + + Selects an item in the control. + + A reference to a RadItem instance which + represents the item which is to be selected. + + + + Gets an item from the collection that is next to a certain item. + + The item which neighbour to return. + The direction in which to look for the neighbour. + A reference to a RadItem instance which represents the neighbour item. + + + + Selects an item from the collection that is next to a certain item. + + The item which neighbour to return. + The direction in which to look for the neighbour. + A reference to a RadItem instance which represents the neighbour item. + + + + Gets the first visible item from the collection. + In a IItemsControl that is the first item that is visible on the control. + + A reference to a RadItem instance that represents + the first visible control. + + + + Gets the last visible item from the collection. + In a IItemsControl that is the last item that is visible on the control. + + A reference to a RadItem instance that represents + the last visible control. + + + + Selects the first visible item on the IItemsControl. + + A reference to a RadItem instance that represents the item selected. + + + + Selects the last visible item on the IItemsControl. + + A reference to a RadItem instance that represents the item selected. + + + + Defines whether the IItemsControl can execute navigation + operation based on the keydata provided. + + An instance of the + struct that defines the key command issued. + True if navigation possible, otherwise false. + + + + Defines whether the IItemsControl has an item that + corresponds to the mnemonic passed in the parameter. + + A character that defines the mnemonic command issued. + True if mnemonic can be processed, otherwise false. + + + + Fires when an item has been selected. + + + + + Fires when an item has been deselected. + + + + + Gets a collection containing the items + that are currently active. + + + + + Gets the collection of items associated + with the IItemsControl. + + + + + Gets or sets a boolean value that determines whether + the rollover items functionality will be allowed. + + + + + Gets or sets a boolean value that determines whether + keyboard input will be processed by the IItemsControl. + + + + + Gets the item affected by the operation. + + + + + Represents event data for the ItemUpdated event. + + + + + Initializes a new instance of the ItemUpdatedEventArgs class using the RadItem. + + + + + + Gets the RadItem that is updated. + + + + + Represents a encapsulated implementation of the IItemsControl interface. + + + + + Represents a Win2K+ layered window semantic, which allows for semi-transparent windows. + + + + + Default constructor. + + + + + + + + + + + + + + + + + Provides special handling for the WM_MOUSEACTIVATE, WM_PAINT and WM_NCHITTEST messages. + + + + + + Brings the window on top of the z-order. + + + + + + Sends the window to back of the z-order. + + + + + + Suspends any Layered-related updates for the window. + Useful for multiple properties set-up without sequential update for each property change. + + + + + Resumes previously suspended updates and forces Layered update. + + + + + Resumes previously suspended updates. Optionally preforms Layered update. + + + + + + Displays the window to user using the specified location and current size. + + + + + Performs painting of the window. + Default implementation simply paints the BackgroundImage (if any). + + The graphics to use. + The off-screen bitmap instance the graphics is created from. + + + + Updates the layered window. + + + + + Performs native layered window update, using the Win32 UpdateLayeredWindow API. + + + + + + + + + + + Gets or sets the Image that represents the Layered window. + + + + + Gets the final Bitmap that represents the content of the Layered Window. + + + + + Determines whether window's handle will be re-created upon a Size change. + If the window is large - e.g. 800*600 pixels, + applying new size may cause flicker due to the nature of Layered Windows semantic. + + + + + Determines whether the window is updated (used UpdateLayeredWindow API). + + + + + Gets or sets the Alpha (transparency) value - [0, 1] - for the window. + + + + + Gets the current size used by the window to visualize itself. + + + + + Gets or sets the size of the window. + + + + + Determines whether the window is TopMost (above all floating windows). + + + + + Determines whether the Control is visible for mouse input. + + + + + This class represents a that allows for non-client area modification and paiting. + + + + + This is a helper class which avoids design time error when control design time is opened directly. + + + + + Represents the method that will handle the ScreenTipNeeded event of a RadControl. + + + + + Provides data for the ScreenTipNeeded event. + + + + + Initializes a new instance of the class. + + The item. + + + + Initializes a new instance of the class. + + The item. + The offset. + + + + Gets the item for which the ScreenTipNeeded event occurs. + + The item. + + + + Gets or sets the delay. + + The delay. + + + + Gets or sets the offset. + + The offset. + + + + + + + + + + + Represents the method that will handle the ThemeNameChanged event. + + + Initializes the event sender. + + + Initializes the %event arguments:ThemeNameChangedEventArgs%. + + + + + Represents the event data for the %ThemeNameChanged:ThemeNameChanged% event. + + + + + Represents the old theme name. + + + + + Represents the new theme name. + + + + + Initializes a new instance of the ThemeNameChangedEventArgs class. + + + Initializes the old theme name. + + + Initializes the new theme name. + + + + + Represents the method that will handle the ToolTipTextNeeded event of a RadCOntrol. + + The source of the event. + A ToolTipTextNeededEventArgs that contains the event data. + + + + Provides data for the ToolTipTextNeeded event. + + + + + Initializes a new instance of the class. + + The tool tip. + + + + Initializes a new instance of the class. + + The tool tip. + The tool tip text. + + + + Initializes a new instance of the class. + + The tool tip. + The tool tip text. + The offset. + + + + Gets or sets the ToolTip text. + + + + + Gets or sets the offset from the Cursor.HotSpot + + The offset. + + + + Gets the tool tip. + + + + + Inserts the with duplicates. + + The value. + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The source collection view. + + + + Gets the view. + + The source. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the NotifyPropertyChanged event + + + + + + Gets or sets the sort descriptors. + + The sort descriptors. + + + + Gets or sets the group descriptors. + + The group descriptors. + + + + Gets or sets the filter. + + The filter. + + + + Gets the expression. + + The filter descriptor. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the operator. + + The operator. + + + + Gets or sets the value. + + The value. + + + + Gets the filter expression. + + The filter expression. + + + + Gets a value indicating whether this instance is default filter descriptor of the column + + + true if this instance is default; otherwise, false. + + + + + Gets the expression. + + The filter descriptor. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the date value. + + The date value. + + + + Gets the filter expression. + + The filter expression. + + + + Get or set if the time part of date value should be ignored. + + + + + Passeses the filter. + + The item. + + + + + Suspends event notification. + + + + + Resumes event notification. + + + + + Resumes event notification. + + + + + Defers the refresh. + + + + + + Copies to array. + + The array. + Index of the array. + + + + Loads the data. + + The collection. + + + + Finds the specified item index. + + Index of the item. + The data bound item. + + + + + Searches the Groups collection for a match, using the Keys in the provided group. + + + + + + + Determines whether the specified group is present within this view. + + + + + + + Indexes the of. + + The item. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Evaluates the specified expression. + + The expression. + The item. + + + + + Evaluates the specified expression. + + The expression. + The start index. + The count. + + + + + Evaluates the specified expression. + + The expression. + The items. + + + + + This method is used internally. + + + + + + + + + Try to evaluate the specified expression. + + The expression. + The items. + Index of item, which the result will be calculated for + Expression result + + + + + This method is used internally. + + + + + Moves the current to. + + The item. + + + + + Moves the current to first. + + + + + + Moves the current to last. + + + + + + Moves the current to next. + + + + + + Moves the current to position. + + The position. + + + + + The core update routine for the current position. + + New position of the current item. + True to raise CurrentChanged regardless of whether actual position change is available. + + + + + Moves the current to previous. + + + + + + Refreshes this data view. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Ensures the index of the page is within the valid pages range. + + + + + Raises the NotifyPropertyChanged event + + + + + + Sets the first page as the current page. + + + true if the operation was successful; otherwise, false. + + + + + Sets the last page as the current page. + + + true if the operation was successful; otherwise, false. + + + + + Moves to the page after the current page. + + + true if the operation was successful; otherwise, false. + + + + + Requests a page move to the page at the specified zero-based index. + + The zero-based index of the page to move to. + + true if the operation was successful; otherwise, false. + + + + + Moves to the page before the current page. + + + true if the operation was successful; otherwise, false. + + + + + Fires the PageChanging event. Returns the value of the Cancel event argument. + + The new index. + True if the event was canceled, otherwise false. + + + + Fires the PageChanged event. + + + + + Gets or sets the comparer. + + The comparer. + + + + Gets or sets the comparer. + + The comparer. + + + + Gets or sets a value indicating whether [change current on add]. + + true if [change current on add]; otherwise, false. + + + + Gets a value indicating whether this item collection is empty. + + true if this item collection is empty; otherwise, false. + + + + Gets a value that indicates whether the underlying collection provides change notifications. + + + true if this instance is dynamic; otherwise, false. + + + + + Gets the count. + + The count. + + + + Gets the item at the specified index. + + + + + + Indicates whether string comparisons of data are case-sensitive. + + + + + Gets or sets the filter expression. + + The filter expression. + + + + Gets or sets a value indicating whether filtering will be performed or it will be handled by the user/data source. + + + + + Gets or sets a value indicating whether sorting will be performed or it will be handled by the user/data source. + + + + + Gets a value indicating whether this instance has filter applied. + + + true if this instance has filter applied; otherwise, false. + + + + + Gets a value indicating whether this instance has group applied. + + true if this instance has group applied; otherwise, false. + + + + Gets a value indicating the current version of the view. + + + + + This property is used internally. + + + + + This property is used internally. + + + + + Gets a value indicating whether this instance has sort applied. + + true if this instance has sort applied; otherwise, false. + + + + Gets or sets the current item. + + The current item. + + + + Gets or sets the current position. + + The current position. + + + + Gets or sets a value indicating whether this data view can filter. + + + true if this instance can filter; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can group. + + true if this instance can group; otherwise, false. + + + + Gets or sets a value indicating whether this data view can sort. + + true if this instance can sort; otherwise, false. + + + + Gets the source collection. + + The source collection. + + + + Gets the sort descriptions. + + The sort descriptions. + + + + Gets the group descriptions. + + The group descriptions. + + + + Provides a callback so that the default filtering expression parser can be substituted. + + + + + Gets a value indicating whether this instance is incremental filtering. + + + true if this instance is incremental filtering; otherwise, false. + + + + + Default callback so that the default filtering expression parser can be substituted. + + + + + Gets the groups. + + The groups. + + + + Gets the default group predicate. + + The default group predicate. + + + + Gets or sets a value indicating whether paging is performed before grouping or vice versa. + + + true if paging is performed before grouping; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can be paginated. + + + true if this data view can be paginated; otherwise, false. + + + + + Occurs when the IPagedCollectionView.PageIndex has changed. + + + + + Occurs before the IPagedCollectionView.PageIndex is changed. + + + + + Gets a value that indicates whether the IPagedCollectionView.PageIndex value is allowed to change. + + true if the IPagedCollectionView.PageIndex value is allowed to change; otherwise, false. + + + + Gets a value that indicates whether a page index change is in process. + + true if the page index is changing; otherwise, false. + + + + Gets the zero-based index of the current page. + + The zero-based index of the current page. + + + + Gets or sets the number of items to display on a page. + + The number of items to display on a page. + + + + Gets the total number of items in the source collection. + + The total number of items in the source collection, or -1 if the total number is unknown. + + + + Gets the total number of pages with the current page size. + + + + + Gets or sets the comparer. + + The comparer. + + + + Gets the groups. + + The groups. + + + + Gets or sets a value indicating whether this data view can filter. + + + true if this instance can filter; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can group. + + true if this instance can group; otherwise, false. + + + + Gets or sets a value indicating whether this data view can sort. + + true if this instance can sort; otherwise, false. + + + + Gets the type of the . + + The filter descriptor. + + + + + Creates the descriptor. + + The type. + + + + + + + Creates the descriptor. + + The type. + Name of the property. + Type of the data that will be filtered. + The values. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts to the filter descriptor to concrete type + + The type. + The converted instance of + + + + Converts to the filter descriptor to a concrete type. + + The type to which the filter will be converted. + The type of data that will be filtered. + + The converted instance of + + + + + Gets or sets the logical operator. + + The logical operator. + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets or sets a value indicating whether [not operator]. + + true if [not operator]; otherwise, false. + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the operator. + + The operator. + + + + Gets a value indicating whether this instance contains FilterDescriptor's with different PropertyName. + + + true if any child filters have the same name; otherwise false. + + + + + Gets the filter expression. + + The filter expression. + + + + + + + + + Type is not predefined. + + + + + Between + + + + + Not Between + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Indexes the of. + + The item. + + + + + Evaluates the specified expression. + + The expression. + + + + + Gets the items contained in this group. This method is used internally. + + A list containing group items. + + + + Get the zero-based depth of the Group + + + + + Gets or sets the header. + + The header. + + + + Gets the key of the group. + + The key. + + + + Gets the item count. + + The item count. + + + + Gets the item at the specified index. + + + + + + Gets the parent. + + The parent. + + + + Gets the groups. + + The groups. + + + + This property is used internally. + + + + + Adds the specified property name. + + Name of the property. + The filter operator. + The value. + + + + Indexes the of. + + Name of the property. + + + + + Determines whether [contains] [the specified property name]. + + Name of the property. + + true if [contains] [the specified property name]; otherwise, false. + + + + + Removes the specified property name. + + Name of the property. + + + + + Removes the specified property name. + + Name of the property. + The predicate which determine weather the filter can be deleted. + + + + + Gets or sets a value indicating whether fields with names that differ only in the casing + should be considered different. + + + + + Gets or sets the logical operator. + + The logical operator. + + + + Gets or sets the expression. + + The expression. + + + + Gets the group list contained in this collection. This property is used internally. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + Gets or sets the aggregates. + + The aggregates. + + + + Gets or sets the format. + + The format. + + + + Gets or sets the expression. + + The expression. + + + + Gets the group names. + + The group names. + + + + Adds the specified property name. + + Name of the property. + The direction. + + + + Removes the specified property name. + + Name of the property. + + + + + Determines whether [contains] [the specified property name]. + + Name of the property. + + + true if [contains] [the specified property name]; otherwise, false. + + + + + Determines whether [contains] [the specified property name]. + + Name of the property. + + true if [contains] [the specified property name]; otherwise, false. + + + + + Finds all sort descriptors associated with the group descriptors by property name + + Name of the property. + All sort descriptors contained in the group descriptors by the specified propertyName + + + + Finds all sort descriptors associated with the group descriptors by property name + + Name of the property. + if set to true [case sensitive]. + All sort descriptors contained in the group descriptors by the specified propertyName + + + + Gets or sets a value indicating whether fields with names that differ only in the casing + should be considered different. + + + + + Gets or sets the expression. + + The expression. + + + + Used to build groups from indexer + + + + + + Performs the grouping operation for specified items. + + The items. + The level. + The parent. + + + + + Gets the groups. + + The groups. + + + + Gets or sets the group predicate. + + The group predicate. + + + + Gets the default group predicate. + + The group predicate. + + + + Gets a value indicating whether [needs refresh]. + + true if [needs refresh]; otherwise, false. + + + + Gets the collection view associated with this builder. + + + + + + + + + + + Evaluates the specified expression. + + The expression. + The item. + + + + + Evaluates the specified expression. + + The expression. + The start index. + The count. + + + + + Sets the view in dirty state. + + + + + Gets the groups. + + The groups. + + + + Gets or sets the group predicate. + + The group predicate. + + + + Gets the source collection. + + The source collection. + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + This method is called right befor the event is fired. + + + + + + Raises the PropertyChanging event + + The name of the property + + The value that is goint to be set to the property. + + + + Raises the PropertyChanging event + + The name of the property + true if the event has been canceled, for more information see + + + + Raises the PropertyChanging event. + Note: This method is called even when the notifications are suspended. + + A instance containing event data. + + + + This method is called right before the event is fired. + Note: If is true, this method is not called. + + + + + + General method for setting the value of the field related to the property that is modified. + This method confirms that the old and new values are different, then fires the + event, then sets the given value to the supplied field, + and fires the event. + Note: If the event is canceled, the last two actions are + not performed. + + + + public class MyNotificationsTest : NotifyPropertyBase + { + private int myInt = 0; + private int myInt2 = 0; // + + public int AsInt + { + get + { + return this.myField; + } + set + { + if (SetProperty("AsInt", ref this.myInt, value)) + { + // perform additional actions when new value is set to myInt. + } + } + } + + public int AsInt2 + { + get + { + return (float)this.myInt2; + } + set + { + // The following property setter is the same as the previous one. + if (this.myInt2 != value) + { + PropertyChangingEventArgs2 ea = new PropertyChangingEventArgs2("AsInt2", value); + OnPropertyChanging(ea); + + if (!ea.Cancel) + { + this.myInt2 = (int)ea.Value; + OnPropertyChanged("AsInt2"); + + // perform additional actions when new value is set to myInt2. + } + } + } + } + } + + + The two setter implementations are identical. If you require to perform some actions before + the event is fired, you can use the second implementation, or, + a better solution is to override the method and place + the code there. + The type of the field that is to be modified. + The name of the property, that will appear as propertyName in the and event args. + The field, that is related to the property. + The value that is to be set to the field in case the event is not being Canceled. + true if new value is being set + + + + Occurs when a property of an object changes. + + + + + Occurs before a property of an object changes. + + + + + Sets the last page as the current page. + + + true if the operation was successful; otherwise, false. + + + + + Gets or sets the sort comparer. + + The comparer. + + + + Gets or sets the group comparer. + + The group comparer. + + + + Gets the groups. + + The groups. + + + + Gets or sets the group predicate. + + The group predicate. + + + + Gets the default group predicate. + + The default group predicate. + + + + Gets or sets a value indicating whether this data view can be paginated. + + + true if this data view can be paginated; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can filter. + + + true if this instance can filter; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can group. + + true if this instance can group; otherwise, false. + + + + Gets or sets a value indicating whether this data view can sort. + + true if this instance can sort; otherwise, false. + + + + Refreshes this instance. + + + + + Resets this instance. + + + + + Begins the update. + + + + + Ends the update. + + + + + Ends the update. + + if set to true [notify updates]. + + + + Adds the new. + + + + + + Adds the created item to ListSource. + + + + + + Moves the specified item. + + The old index. + The new index. + + + + Raises a CollectionChanged notification with action ItemChanging. Must be paired with the NotifyItemChanged method. + + + + + + Raises a CollectionChanged notification with action ItemChanged. Must be paired with the NotifyItemChanging method. + + + + + + Raises a CollectionChanged notification with action ItemChanging. Must be paired with the NotifyItemChanged method. + + + + + + + Raises a CollectionChanged notification with action ItemChanged. Must be paired with the NotifyItemChanging method. + + + + + + + Returns the that represents the properties on each item used to bind data. + + An array of objects to find in the collection as bindable. This can be null. + + The that represents the properties on each item used to bind data. + + + + + Returns the name of the list. + + An array of objects, for which the list name is returned. This can be null. + The name of the list. + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the NotifyPropertyChanged event + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + The is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + The is read-only. + + + + + Adds an item to the . + + The object to add to the . + + The is read-only. + + + + + Used internally by the design time property editor. + + + + + Removes all items from the . + + + The is read-only. + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is multidimensional. + -or- + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + -or- + Type T cannot be cast automatically to the type of the destination . + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + The is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets or sets the position. + + The position. + + + + Gets the current. + + The current. + + + + Gets or sets a value indicating whether each value setting should be encapsulaed in its own BeginEdit EndEditTransaction. + + + + + Gets the collection view. + + The collection view. + + + + Gets or sets the name of the list or table in the data source for which the is bound. + + + + + Gets or sets the data source of the . + + + + + Gets a value indicating whether this instance is data bound. + + + true if this instance is data bound; otherwise, false. + + + + + Occurs when a property value changes. + + + + + Gets or sets the item at the specified index. + + + + + + Gets a value indicating whether the is read-only. + + + true if the is read-only; otherwise, false. + + + + + Determines whether this instance is in a Begin/End update block. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + Raises the event. + + Name of the property. + The old value. + The new value. + Returns [TRUE] If the events is not canceled, otherwise [FALSE]. + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the direction. + + The direction. + + + + Gets or sets the owner. + + The owner. + + + + Adds the specified property name. + + Name of the property. + The direction. + + + + Determines whether [contains] [the specified property name]. + + Name of the property. + + true if [contains] [the specified property name]; otherwise, false. + + + + + Indexes the of. + + Name of the property. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Removes the specified property name. + + Name of the property. + + + + + Gets or sets a value indicating whether fields with names that differ only in the casing + should be considered different. + + + + + Gets or sets the expression. + + The expression. + + + + Represents a new item's data. + + + + + Initializes a new instance of the NewItemData class. + + + + + Gets an implementation + which is owned by this component. This method is used + by the ThemeNameEditor to prefilter + the available themes for the current component. + + An implementation which + is owned by this . + + + + Gets or sets the theme name of the component. + + + + + + + + + + + + + + Represents a item's edit text attribute. + + + + + Represents a new item attribute. + + + + + Initializes a new instance of the RadNewItemAttribute class. + + + + + + + Initializes a new instance of the RadNewItemAttribute class. + + + + + + + + Initializes a new instance of the RadNewItemAttribute class. + + + + + + + + + Gets a string representing the new item text. + + + + + Gets a value indicating whether the item should be editable. + + + + + Gets a value indicating whether a glyph should be added. + + + + + Gets a value indicating whether a verb should be added. + + + + + + + + RadPropertyDefaultValueAttribute constructor + + The name of the property which provides the default value. + Type of the object that ownes the RadProperty which provides the default value. + + + + Attribute that can be applied to hide a class when searching for possible new-item-types when a RadControl + is in design mode + + + + + A dummy ISite implementation, which provides support for custom services. + + + + + Represents a dependency between two properties. + Used by a RadObject to bind a RadProperty to an external one and always use its value. + The binding may be also two-way, in which special case the bound property updates its source. + + + + + Initializes a new instance of the RadPropertyBinding class. + + + + + + + + + + + + + + + Updates the binding source property. + + + + + + Gets the binding source. + + + + + Represents an object which property is bound to some other object's property. + Stores the object itself and its bound property. Used internally by the DPS to notify + bound objects for a change in a binding source property. + + + + + Stores all the information needed for composing a RadProperty's value for a given object. + + + + + Internal constructor used to store existing property state. + + + + + + Resets all references - such as binding references and property modifiers. + + + + + Restores the state of this property using the provided source. + + + + + + Registers an object which is bound to this property value. + + + + + + Gets the current value and optionally forces re-evaluation. + + + + + + + Removes previously registered bound object. + + + + + + Notifies all bound objects for a change in this property. + + + + + Forces value composition, using default precedence order. + + + + + Resets the state of the inherited value. + + True if the property needs re-evaluation, false otherwise. + + + + Applies the specified value as local and forces current value re-evaluation. + + + + + + Applies the specified value as local and forces current value re-evaluation. + + + + + + Applies the specified animation and forces current value re-evaluation. + + + + + + Applies the specified style setting and forces current value re-evaluation. + + + + + + Applies the specified binding and forces current value re-evaluation. + + + + + + Determines whether the specified object is already bound. + + + + + + + Begins an update operation. + + Value composition will be locked. + Specifies that we are currently applying new value. + + + + Registers the provided value as a default for the property. + + + + + + Assigns the specified value and source as current. + Internally checks for possible coersion. + + + + + + + Retrieves the default value for the property. + Custom value may be defined, using the DefaultValueCallback + + + + + + Sets a new style version for this property value. This method is used internally. + + The new version + + + + Determines whether we have objects already bound to this property. + + + + + Determines whether current value composition is currently locked. + + + + + Determines whether we are in a process of updating a modifier. + + + + + Gets the index of the associated RadProperty. + + + + + Gets the current value for the property. + + + + + Gets the local value for this property. + + + + + Gets the value which is set through a two-way property binding. + This value has higher priority that the local one. + + + + + Gets the property binding relation for this property. + + + + + Gets the animation setting (if any) for this property. + + + + + Gets the current style setting for the property. + + + + + Gets the current animated value. + + + + + Gets the source of the current value. + + + + + Gets the Metadata associated with this property for the current owner. + + + + + The current value is forced to some custom value by a Coerce callback. + + + + + Gets the custom default value associated with this property. + + + + + Determines whether the current local value (if any) is set at design-time. + + + + + Gets the current style version + + + + + Allows RadObject inheritors to replace RadProperty instances with another one. + + + + + + + Represents a storage for RadPropertyValue entries, which are accessed by their GlobalIndex property. + + + + + Resets all properties with local values. This method is used internally. + + + + + This method is used internally. + + + + + Used to resolve Telerik types + + + + + Gets or sets value indicating whether the TypeResolver should look up types in the calling assembly only. + This option (if set to true) is very usefull particularly in the case when all the assemblies of the application, including the + Telerik assemblies are merged into a single assembly. + + + + + Gets or sets value indicating the search pattern for assembly in the domain that contains the types referenced in RadControls theme files. + + By default the types referencd in theme files are contained in assemblies with the name "Telerik" + + + + + + Gets or sets value indicating the version of the assembly specified in TypeResolverAssemblyName + + + + + Gets the only instance of the resolver. + + + + + Exposes the ImageList property. All classes that implement this interface + provide an image list. + + + + + Gets the image list. + + + + + Initializes a new instance of the CommandBase class. + + + + + Initializes a new instance of the CommandBase class using command name. + + + + + + Initializes a new instance of the CommandBase class. + + + + + + + Retrieves a text representation of the instance. + + + + + + Executes the command. + + + + + Executes the command with the given settings. + + + + + + + + + + + + + + + + + + Gets or sets the command name/ + + + + + Gets or sets the command type. + + + + + Represents per-thread static instance of special RadControl, which may be used for explicit measure of RadElement instance. + This functionality is required for example in the RadComboBox, when we need to calculate the size of the drop-down before it is displayed. + + + + + Gets the element's desired size, using the specified available. + + + + + + + + Gets the instance of the measurement tree (valid per UI thread) + + + + + Represents a collection which stores RadElement instances + and is sorted by ZIndex property of each element. + + + + + The collection gets notified for a change in the ZIndex of the specified property. + + + + + + The collection gets notified for a change in the Visibility property of the specified element. + + + + + + Puts the specified element at the beginning of the collection + + + + + + Puts the specified element at the end of the collection + + + + + + Finds the insert index for the specified element. + Since the collection is sorted by each element's Z-index, + we perform a binary search to determine at which position the element should be inserted. + + + + + + + Compares two elements by their z-index first + and if they equals, the index in their Parent collection is used. + + + + + + + + Gets the count of all elements, which visibility is not ElementVisibility.Collapsed. + + + + + + + + + + Indicates that an insert operation will commence. + + + + + Indicates that an insert operation is performed. + + + + + Indicates that a remove operation will commence. + + + + + Indicates that a remove operation is performed. + + + + + Indicates that an item is going to be set + + + + + Indicates that an item is set + + + + + Indicates that the items will be cleared + + + + + Indicates that the items are cleared + + + + + Indicates that the items will be sorted + + + + + Indicates that the items are sorted + + + + + Indicates that a number of items were added to the collection via the AddRange method + + + + + Represents the method that will handle the %ItemChanged:ItemChanged% event. + + + + + + + + + A collection that stores objects. + + + + + Initializes a new instance of the RadItemCollectionBase class. + + + + + Initializes a new instance of RadItemCollection based on another RadItemCollection. + + + + A RadItemCollection from which the contents are copied. + + + + + + Initializes a new instance of RadItemCollection containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Returns an enumerator that can iterate through + the RadItemCollection . + + None. + + + + Adds a with the specified value to the + Telerik.WinControls.RadItemCollection . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the RadItemCollection. + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another RadItemCollection to the end of the collection. + + + + A RadItemCollection containing the objects to add to the collection. + + + None. + + + + + Inserts a into the RadItemCollection at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + RadItemCollection . + + The to remove from the RadItemCollection . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Gets a value indicating whether the + RadItemCollection contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Returns the index of a in + the RadItemCollection . + + The to locate. + + The index of the of in the + RadItemCollection, if found; otherwise, -1. + + + + + Copies the RadItemCollection values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from RadItemCollection . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the RadItemCollection is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + Retrieves an array of the items in the collection. + + + + Fires when item is changed. + + + + + Gets or sets an array of the items' types in the collection. + + + + + Gets or sets an array of the excluded items' types for this collection. + + + + + Gets or sets an array of the sealed items' types for this collection. + That are types that are allowed but not their descendants. + + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Gets the first found item, with Name property equal to itemName specified, case-sensitive. + + item Name + RadItem if found, null (Nothing in VB.NET) otherwise + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + Retrieves an array of the items in the collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + Defines the order in which border lines are drawn. + + + + + Defines the options used by CheckPrimitive check box + + + + + Indicates XP check primitive style. + + + + + Indicates Vista check primitive style. + + + + + Indicates Mac check primitive style. + + + + + Indicates empty check primitive. + + + + + Indicates Windows8 check primitive style. + + + + + + + + + + + + + + + + + + + + Normalize the value of the function's argument + to ensure the correct overload is matched. + + + + + + + + + + + + -1: value1 < value2 + 0: value1 = value2 + 1: value1 > value2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Escapes the name. + + The name. + + + + + Escapes the LIKE value. + + The value without wildcards. + + + + + Escapes the filtering value. + + The value without wildcards. + + + + + + + + + + + + + + + + + + + + Set or get default expression context class, which will be used for determinating the expression functions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Use for all op except And, Or, In, Is and IsNot + + if false to stop processing the op and return the retValue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Encapsulates common mothods related with Control Tree. + + + + + Brings the window on top of the z-order. + + + + + + + Sends the + + + + + + + Forces the non-client area of the specified Control instance to be re-evaluated. + + + + + + + Determines whether the specified Child is contained within the specified Parent's Control Tree. + + + + + + + + Gets the Control instance that currently contains the Keyboard focus. + + + + + + Determines whether the specified ControlStyle is applied to the provided control. + + + + + + + + Sends a WM_SETREDRAW message to the control, preventing any paint operation afterwards. + + + + + + Resumes Control's painting, previously suspended by a BeginUpdate call. + + + + + + + Enumerates the Control tree, starting from the provided parent as a root, + and collects all the child controls that match the specified filter. + + + + + + + + + Gets the Control of type T that is descendant of the specified parent and is anchored to the specified current T instance. + + A Control of Type T. + The parent control, which descendants are to be examined. + The current T instance to start the search from. + True to perform depth-first traversal of the Control Tree, false to look-up direct children only. + True to search for a T instance that is next to the current specified one, false to search for a T instance that is previous to the current specified one. + True to start the search from the beginning when end of the search is reached. + + + + + Gets the first Control of Type T, which is descendant of the specified Parent. + + + + + + + + + Gets the last Control of Type T, which is descendant of the specified Parent. + + + + + + + + + Collects all child controls of given type. + + + + + + + + + Enumerates all child controls of the specified parent and optionally traverses the entire tree using Depth-first approach. + + + + + + + + Enumerates all child controls of the specified parent and optionally traverses the entire tree using Depth-first approach. + + + + + + + + + Searches up the parent chain of controls, looking for an ancestor of the specified type. + + + + + + + + Searches down the control tree, using breadth-first approach, for a descendant of the specified type. + + + + + + + + Provides common helper methods related with image manipulation. + TODO: Should be moved to base assembly, making it accessible for all Telerik Assemblies. + + + + + Crops recatnalge from image + + An instance of . + An instance of + Cropped image with the size of cropped rectangle + + + + Encapsulates common functionality related with reflection-based operations such as Cloning, Field Copying, etc. + + + + + Copies all the fields, which are not marked by the [NonSerialized] attribute and are not Delegate instances, + from the source object to the target one. Reference type fields will be copied by reference rather than cloned. + + + + + + + + Creates a new instance of type T and copies its fields from the provided source instance. + Reference type fields will be copied by reference rather than cloned. + + + + + + + + An extended interface that supports some additional notifications sent by the ReflectionHelper. + + + + + The instance gets notified for a field copy process. + + + + + The instance gets notified for a clone complete process. + + + + + Defines helper methods for manipulating assembly resources. + + + + + Creates a new Image instance from the specified embedded resource for the specified type. + + + + + + + + Creates a new Cursor instance from the specified embedded resource for the specified type. + + + + + + + + Get bounding rectangle arround rotated one. + + Rectangle that is to be rotated + + Returns the bounding rectangle around the rectangle + that is rotated according to the given matrix + + + + Searches the control hierarchy tree and returns the first RadControl that parents the control provided. Otherwise returns null. + + + + + + + Gets the color of the pixel at the specified location on the screen. + + The location in screen coordinates to get the color for. + The color of the pixed at the specified location. + + + + Converts a key to string taking into account the currently selected keyboard leyout. + + The key to convert. + The string mapped to the provided key. + + + + Defines possible reasons for a Reset notification from RadCollectionView. + + + + + Entire data has changed. + + + + + Reset has been initiated by a change in collection's filtering logic. + + + + + Reset has been initiated by a change in collection's grouping logic. + + + + + Reset has been initiated by a change in collection's sorting logic. + + + + + Reset has been initiated by a change in collection's paging logic. + + + + + This interface gives the ability to create reusable providers for VisualElements + that are in some relation with logical data objects. + + + + + + + Create element using the pased data + + Logical data that will be used to initialize the element. + The newly created element if everything is OK; null on error. + + + + Cleans up when an element that is created with CreateElement() is no longer necessary. + + + + + + Initialize already created element with logical data (if possible). + + the element to be initilaized + with this data the given element should be initialized + false if the element cannot be initialized with the given data + + + + Check if an element can be initialized with some logical data. + + + + true if the lement can be initialized with the data. + + + + Describes the action that caused a CollectionChanged event. + + + + + One or more items were added to the collection. + + + + + One or more items were removed from the collection. + + + + + One or more items were replaced in the collection. + + + + + One or more items were moved within the collection. + + + + + The content of the collection changed dramatically. + + + + + The collection has been updated in a batch operation. + + + + + An item in the collection is about to change. + + + + + An item in the collection has changed. + + + + + Provides data for the CollectionChanged event. + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a Reset change. + + The action that caused the event. This must be set to Reset. + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item change or a reset change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Replace change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + + Initializes a new instance of the class. + + The action. + The new item. + The old item. + The index. + Name of the property. + + + + Gets the name of the changed property when the Action is ItemChanged. + + + + + Provides data for the CollectionChanged event. + + + + + Gets the reason for a Reset notification. + + + + + Gets the list of new items involved in the change. + + + + + Gets the index at which the change occurred. + + + + + Gets the list of items affected by a Replace, Remove, or Move action. + + + + + Gets the index at which a Move, Remove, ore Replace action occurred. + + + + + Represents the method that handles the CollectionChanged event. + + The object that raised the event. + Information about the event. + + + + Provides data for the CollectionChanging event. + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a Reset change. + + The action that caused the event. This must be set to Reset. + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a one-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item change or a reset change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a one-item change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a one-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item Replace change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a one-item Replace change. + + + + + + + + + Provides data for the CollectionChanging event. + + + + + Gets the property arguments when property changing has been fired. + + The property arguments. + + + + Gets the list of new items involved in the change. + + + + + Gets the index at which the change occurred. + + + + + Gets the list of items affected by a Replace, Remove, or Move action. + + + + + Gets the index at which a Move, Remove, ore Replace action occurred. + + + + + Represents the method that handles the CollectionChanging event. + + The object that raised the event. + Information about the event. + + + + Represents the method that will handle the Telerik.WinControls.Interfaces.INotifyPropertyChanging.PropertyChanging + event of an Telerik.WinControls.Interfaces.INotifyPropertyChanging interface. + + The source of the event. + A System.ComponentModel.PropertyChangingEventArgs that contains the event data. + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Encapsulates the data, associated with the IShortcutProvider.OnShortcut callback. + + + + + Gets the control that is currently focused and which will receive the keyboard event. + + + + + Gets the shortcut that is triggerred. + + + + + Determines whether the event is handled. If true, the keyboard message will not be dispatched to the focused control. + + + + + Gets an array with the currently collected key strokes. + + + + + Describes a combination of keys that may be used as a shortcut to RadItem.PerformClick method or any other arbitrary command. + + + + + Default constructor. Initializes an empty RadShortcut instance. + + + + + Initializes a new RadShortcut instance, using the specified modifiers and key mappings. + + + + + + + Determines whether the specified Keys are part + + + + + + + + Determines whether the specified Keys are part of a shortcut combination. + E.g. if we have a key mapping CTRL+M+O and the provided keys are CTRL+M, the method will return true. + + + + + + + + Determines whether the specified key is present in the RadDockShortcut KeyMappings list. + + + + + + + Gets the human-readable represention of the current key settings. + + + + + + Gets a list with all the Keys that form the shortcut combination. + E.g. we may have M+O and a Modifier CTRL, then the valid shortcut will be CTRL+M+O + + + + + Gets or sets the Keys value that describes the modifiers for the shortcut. + + + + + Determines whether the Control modifier key is applied. + + + + + Determines whether the Alt modifier key is applied. + + + + + Determines whether the Shift modifier key is applied. + + + + + Gets a human readable string representation of the collection. + + + + + + Gets the IShortcutProvider instance that owns this collection. + + + + + Gets the count of all shortcut providers currently registered with this instance. + + + + + Represents layout container which implements column and row span and different column and row sizing modes - proportional, fixed, and auto. + + + + + Represents a base class for all layout panels. Layout panels are RadElements. + They are the elements in the control tree responsible for the layout of primitives. + Layout panels determine the position and size of the primitives inside them. + Because panels are RadElements, panels can be nested thus providing an + arbitrary complex layout. + + + + + This constant is used internally. + + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Creates new instance of GridLayout. + + + + + Creates new instance of GridLayout. + + Number of columns. + Number of rows. + + + + Gets or sets the columns of the layout container. + + + + + Gets or sets the rows of the layout container. + + + + + GridLayout sizing type options. + + + + + Represents GridLayout column. + + + + + Represents base class for GridLayout element. + + + + + Represents GridLayout row. + + + + + scrol to line + + line index to scrool - zero besed + + + + Scroll to element + + + + + + how many lines we have + + + + + Gets or sets the maximum number of columns to be shown in the in-ribbon portion of the gallery. + + + + + Gets or sets the maximum number of columns to be shown in the in-ribbon portion of the gallery. + + + + + which is the current line + + + + + This class is used as a base class for all Localization Provider classes + used in RadControls. + + + + + Creates a default localization provider. + + A new instance of the default localization provider. + + + + Gets the string corresponding to the given ID. + + String ID + The string corresponding to the given ID. + + + + Fires when the current localization provider has changed. + + + + + Gets or sets the current localization provider. + + + + + Gets a CultureInfo object corresponding to the current localization provider. + + + + + Represents a light-weight 3*3 Matrix to be used for GDI+ transformations. + + + + + Initializes a new RadMatrix, using the specified parameters. + + + + + + + + + + + Copy constructor. + + + + + + Initializes a new RadMatrix, using the elements of the specified GDI+ Matrix instance. + + + + + + Initializes a new RadMatrix, applying the specified X and Y values as DX and DY members of the matrix. + + + + + + Initializes a new RadMatrix, scaling it by the provided parameters, at the origin (0, 0). + + + + + + + Initializes a new RadMatrix, scaling it by the provided parameters, at the specified origin. + + + + + + + + Initializes a new RadMatrix, rotated by the specified angle (in degrees) at origin (0, 0). + + + + + + Initializes a new RadMatrix, rotated by the specified angle (in degrees) at the provided origin. + + + + + + + Determines whether the current matrix is empty. + + + + + Determines whether this matrix equals to the Identity one. + + + + + Gets the determinant - [(M11 * M22) - (M12 * M21)] - of this Matrix. + + + + + Determines whether this matrix may be inverted. That is to have non-zero determinant. + + + + + Gets the scale by the X axis, provided by this matrix. + + + + + Gets the scale by the Y axis, provided by this matrix. + + + + + Gets the rotation (in degrees) applied to this matrix. + + + + + Gets all the six fields of the matrix as an array. + + + + Represents shadow settings. + + + + Initializes a new instance of the ShadowSettings class using point and + shadow color. + + + + Initializes a new instance of the ShadowSettings class. + + + Gets or sets the shadow depth. + + + Gets or sets the shadow color. + + + + Specifies arrow directions for the arrow primitive: Up, Right, Down, and + Left. + + + + + Indicates left pointed arrow. + + + + + Indicates up pointed arrow. + + + + + Indicates right pointed arrow. + + + + + Indicates down pointed arrow. + + + + + Represents the BoxLayout class + + + + + Registers the Proportion dependancy property of BoxLayout + + + + + Registers the Orientation dependancy proeprty of BoxLayout + + + + + Registers the StripPosition dependancy property of BoxLayout + + + + + Gets the proportion based on a given element + + The element which proportion will be get. + The proportion value. + + + + Sets the proportion (attached property) of a given element. + + The element which proportion will be set. + The proportion value. + + + + Handles the properties values changes of BoxLayout + + + + + + measures the size to layout the children + + + + + + + arranges the children by a given criteria + + + + + + + Gets or sets strip orientation - it could be horizontal or vertical. + + + + + represents StripPosition enumeration + + + + Adds a delegate to the list. + The object that owns the event. + The delegate to add to the list. + + + Removes a delegate from the list. + The object that owns the event. + The delegate to remove from the list. + + + Raises the specified event. + The object that owns the event. + An that contains the event data. + + + + Gets or sets whether the rollover items functionality of the RadItemsControl will be allowed. + + + + + Gets or sets whether the RadItemsControl processes the keyboard. + + + + + Represents the method that will handle the + RadPropertyChange event. + + + + + Represents a click command. + + + + + Exposes the Items property for accessing a collection of the items in a + combobox. + + + + + Gets a collection representing the collection of the items contained + in this ComboBox. + + + + Defines the border rendering style. + + + + All four borders share same customization, using gradient, regarding parent element's shape. + + + + + Each of the four borders and their "shadow" colors can have disparate customization. Note that shape and gradient would NOT be applied. + + + + + Draw inner and outer gradient borders, regarding parent element's shape. Inner and outer borders would share the specified border width. + + + + + Defines the options used by RadElement.GetChildren(options) method. + + + + + Indicates that all children are returned. + + + + + Indicates that children are returned sorted according to their z-index. + + + + + Indicates that children are returned in reverse order. + + + + + Indicates that collapsed children are included. + + + + + Indicates that only children, which visibility is ElementVisibility.Visible, are included. + + + + + Defines the sorting style of items in a control. + + + + + Indicates ascending sorting. + + + + + Indicates descending sorting. + + + + + Indicates no sorting. + + + + + Defines the click modes. + + + + + Indicates that the mouse is released. + + + + + Indicates that the mouse is pressed. + + + + + Indicates that the mouse hovers. + + + + + Defines the drop down style used by RadComboBox. + + + + + Indicates that the text area is editable. + + + + + Indicates that the text area cannot be edited. + + + + + Defines element's visibility. + + + + + Indicates that the element is visible. + + + + + Indicates that the element is hidden. + + + + + Indicates that the element is collapsed. + + + + + Indicates how the image is scaled. ImageScaling members are None and + SizeToFit. The latter fits the image to the parent size. + + + + + + + + + Defines the progress bar orientation. + + + + Indicates top orientation. + + + + + Indicates bottom orientation. + + + + + Indicates left orientation. + + + + + Indicates right orientation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines the life cycle of a RadElement instance. + + + + + The element is in its initial state. + + + + + The element is in a process of being constructed. + + + + + The element is already constructed but not loaded yet. + + + + + The element is loading. That is it is initializing on the owning control. + + + + + The element is prepared for visualizing. + + + + + Special state, indicating that the element has been loaded once and removed from the element tree. + + + + + The element is in a process of being disposed of. + + + + + The element is already disposed of. + + + + + Defines separators orientation. + + + + + Indicates Verical separators orientation. + + + + + Indicates Horizontal separators orientation. + + + + + Indicates Custom separators orientation. + + + + + Defines the toggle states. Toggle states are used in RadToggleButton. + + + + + Indicates off state. + + + + + Indicates on state. + + + + + Indicates a third state for the toggle button - indeterminate. + + + + + Initializes a new instance of the Formatter class. + + + + + Exposes methods and properties for e hierarchical items such as + RadMenuItem. + + + + + Gets or sets the item's owner. + + + + + Gets a value indicating whether the item has children. + + + + + Gets a value indicating whether the item is the root element if the + hierarchy. + + + + + Gets or sets the item's parent. + + + + + Gets the root item of this item's hierarchy. + + + + + Gets the next item. + + + + + Gets the previous item. + + + + + Initializes a new instance of the ChordMessageFilter class. + + Instance of the ChordMessageFilter class + + + + Filters out a message before it is dispatched. + + + Use PreFilterMessage to filter out a message before it is dispatched to a control or form. + For example, to stop the Click event of a Button control from being dispatched to the control, + you implement the PreFilterMessage method and return a true value when the Click message occurs. + You can also use this method to perform code work that you might need to do before the message is + dispatched. + + The message to be dispatched. You cannot modify this message. + true to filter the message and stop it from being dispatched; false to allow the message to continue to the next filter or control. + + + + Calculates the character code of alphanumeric key of the Keys enum instance + + An instance of the Keys enumaration + The character code of the alphanumeric key + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Represents the state of the modifier keys (SHIFT, CTRL, and ALT) in a + Chord. + + + + + Initializes a new instance of the ChordModifier using data + provided by Keys input. + + + + + Initializes a new instance of the ChordModifier using explicit + setting for every property. + + + + + Initializes a new instance of the ChordModifier using data + provided by another instance. + + + + + Initializes a new instance of the ChordModifier class with + default settings. + + + + + Updates a ChordModifier instance based on a Keys input value + + ChordModifier instance to update + Keys input value + ChordModifier instance with updated states + + + + Creates new ChordModifier instance based on a Keys input value + + Keys input value + ChordModifier instance + + + + Removes all data from the ChordModifier. + + + + + Compares this instance to a specified object or ChordModifier and returns an indication of their relative values. + + + A signed number indicating the relative values of this instance and + value. +
+ + + + Return Value + + + Description + + + + + Less than zero + + + This instance is less than + value. + + + + + Zero + + + This instance is equal to + value. + + + + + Greater than zero + + + This instance is greater than + value. + -or- + value is a null reference + (Nothing in Visual Basic). + + + +
+

Collapse imageExceptions

+
+ + An object to compare, or a null reference (Nothing in Visual + Basic). + +
+ + + Raises the PropertyChanged event + + The name of the property + + + + Gets a value indicating if any of the modifier keys (SHIFT, CTRL, and ALT) is in a pressed state. + + + + + Gets a value indicating if the SHIFT modifier key is in a pressed state. + + + + + Gets a value indicating if the CTRL modifier key is in a pressed state. + + + + + Gets a value indicating if the ALT modifier key is in a pressed state. + + + + + Notifies clients that a property value has changed. + + + + + Represents a base class for all container controls - + controls that contain other controls. + + + + + Initializes a new instance of the ContainerControlBase class. + + + + Adds a delegate to the list. + The object that owns the event. + The delegate to add to the list. + + + Removes a delegate from the list. + The object that owns the event. + The delegate to remove from the list. + + + Raises the specified event. + The object that owns the event. + An that contains the event data. + + + + Raises the BorderStyleChanged event. + + An EventArgs that contains the event data. + + + + Overrides Control.CreateControlsInstance. + + A new instance of ContainerControlBase.ContainerTypedControlCollection assigned to the control. + + + Raises the event. + A containing the event data. + + + Sets the value of the specified property. + The property whose value to set. + An object representing the value to assign to the property. + + + Retrieves the value of the specified property. + The property whose value to retrieve. + + + Removes the specified property from the properties collection. + The property to remove. + + + Retrieves a boolean value indicating if the specified property has been explicitly set. + The property to evaluate. + + + + Occurs when the value of the BorderStyle property has changed. + + + + + Encapsulates the information needed when creating a control. + + + + + Specifies the border style for a control. + + + + + Gets the space, in pixels, that is specified by default between controls. + + + + + Gets the internal spacing, in pixels, of the contents of a control. + + + + + this is the statistical weight of the container which is taken into account + when the contaner participates in a layout chain. + + + + + + + + Represents the method that will handle the + Activate event. + + + + + Represent a chord. + + + + + Initializes a new instance of the Chord class. + + + + + Initializes a new isntance of the Chord class using a list of keys. + + + + + + Initializes a new instance of the Chord class using a list of keys + and %chord modifier:Telerik.WinControls.Keyboard.ChordModifier%. + + + + + + + Initializes a new instance of the Chord class using a string of keys. + + + + + Clears the chord. + + + Retrieves the string representation of the instance. + + + Processes the modifiers. + + + + + + + + + Compares two instance for equality. + returns 0 if equal, a positive number if the first is greater than the + second, and a negative number otherwise. + + + + + + Gets or sets a list of keys in this instance. + + + Gets or sets the keys in this chord. + + + Gets the modifier strings. + + + Gets the chord keys. + + + Gets or sets the chord modifier. + + + + Represents keyboard shortcuts. + + + + Initializes a new instance of the Shortcuts class. + + + Initializes a new instance of the Shortcuts class. + + + + Adds the command bindings. + + + + + + Adds command bindings. + + + + + + Adds commands bindings. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Fires when a shortcut is activated. + + + + + Gets the input bindings. + + + + + Represents a mouse timer. + + + + + Represents a property. Supports telerik dependency properties system by + encapsulating a property of a certain RadElement instance. + + + + + Gets the hashcode of the Name string. Pre-computed for faster dictionary operations. + + + + + One-way binding + + + + + Two-way binding. Both source and target objects can modify the current value. + + + + + No notifications are raised for the bound object. + + + + + Binding value is preserved as local upon unbind. + + + + + Supports methods for bound properties of two instances. + + + + + Supports methods for general binding of properties of two + instances. + + + + + Initializes a new instance of the RadPropertyBinding class. + + + + + + + + + + + + + + + + + + + + + + Reset the bound properties + + + + + Updates the binding source property. + + + + + + + Gets the binding source. + + + + + Supports metadata for each class inherited from + + + + + Represents a property key. + + + + + Singleton. + + + + + Represents metadata for a RadProperty. RadPropertyMetadata describes the property. + For example, through DefaultValue property you can get or set the default value + for the property. + + + + Initializes a new instance of the RadPropertyMetadata class. + + + Initializes a new instance of the RadPropertyMetadata class using the default value of the property. + + + + Initializes a new instance of the RadPropertyMetadata class using a property + changed callback. + + + + + Initializes a new instance of the RadPropertyMetadata class using an object + and a property changed callback. + + + + Gets a value indicating whether the property is read-only. + + + Gets or sets the default value of the property. + + + Gets or sets a value indicating whether the property is inherited. + + + + Gets or sets the PropertyChangedCallback + + + + + Represents element's layout data. + + + + + Initializes a new instance of the ElementLayoutData class from + the element and its PerformLayoutType. + + + + + + + Gets or sets the element. + + + + + + + + + + + + + + + Represents an item that contains external control. There is no limitation for the control type - could + be any descendant of the class Control. + + + + + This constant is used internally. + + + + + Updates the visibility, which is bound to the item's current IsVisible state, of the hosted control. + + + + + Gets the instance of the hosted control. + + + + + Gets or sets whether the mouse and keyboard messages from the hosted control + can be routed to the owner control. + + + + You can use ElementTree.Control to get + the owner control. + + + To get the hosted control use HostedControl + property. + + + + + + Gets or sets the CausesValidation property of the hosted + control. + + + Using this property is equivalent to using + HostedControl.CausesValidation + + + + + Gets or sets a value that determines whether the control should be clipped when it requires more space than available. + + + + + Corresponds to the hosted control's Validated event + + + + + Corresponds to the hosted control's Validating event + + + + + Occurs when the element recieves focus. + + + + + Occurs when the element loses focus. + + + + + Defines the display style of an item. + + + + + Specifies that neither image nor text is rendered. + + + + Specifies that only text is rendered. + + + + Specifies that only an image is rendered. + + + + + Specifies that both an image and text are to be rendered. + + + + + Defines the gradient effects: Solid, Linear, + Radial, Glass, OfficeGlass, Gel, and Vista. + + + + + Indicates that no gradient effect is used. + + + + + Indicates that linear gradient effect is used. + + + + + Indicates that radial gradient effect is used. + + + + + Indicates that glass gradient effect is used. + + + + + Indicates that OfficeGlass gradient effect is used. + + + + + Indicates that OfficeGlassRect gradient effect is used. + + + + + Indicates that gel gradient effect is used. + + + + + Indicates that vista gradient effect is used. + + + + + Defines properties for the box-model; Elements are nodes of a tree, and a + rectangular box is generated for each element. + + + + Gets or sets a value indicating the box width. + + + Gets or sets a value indicating the left width. + + + Gets or sets a value indicating the top width. + + + Gets or sets a value indicating the right width. + + + Gets or sets a value indicating the botton width. + + + Gets a value indicating the offset. + + + Gets a value indicating the border size. + + + Gets a value indicating the horizontal width. + + + Gets a value indicating the vertical width. + + + + Defines methods and properties for a calapsible element. For example, + RadRibonBarChunk is a collapsible element. + + + + + Expands the element. + + + + + Collapses the element. + + + + + Gets or sets a value indicating the expanded size of the element. + + + + + Gets the max number of steps needed for collapsing the collapsible element. + + + + + Gets the current collapse step for the collapsible element. + + + + Defines properties and methods for the default layout engine. + + + Retrieves parent's padding. + + + Retrieves check size structure. + + + Sets coerced size taken as parameter. + + + Gets the face rectangle. + + + Invalidates layout - needs redrawing. + + + + + + + + + Retrieves a value indicating whether the element is valid wrap element. + + + Performs registered suspended layout. + + + Retrieves transformation point. The point is a Point structure. + + + Retrieves transformation by alignment point using size and inner bounds. + + + Retrieves Border offset. + + + Retrieves border size. + + + Retrieves the border size of its child. + + + Invalidates the cached border. + + + Gets a value indicating the available size. + + + + Represents a panel with two children an image element and a text element + + + + + Gets or sets a value indicating the image alignment. + + + + + Gets or sets a value indicating text alignment. + + + + + Gets or sets a value indicating the TextImageRelation: ImageAboveText, ImageBeforeText, Overlay, TextAboveImage, and TextBeforeImage. + + + + + Gets or sets a value indicating the DisplayStyle: None, Image, Text and ImageAndText. + + + + + Content within a user interface is often larger than the visible area that + the user can see. Large Telerik elements can be put in scroll viewer in order to + scroll their content in small visible area. + + Every element that support scrolling must implement this interface. Currently + only class RadScrollViewer implements this interface and all + Telerik elements that can be scrolled inherit that class. + + + + + + Scrolls down within viewport by one logical unit. + + + + + Scrolls left within viewport by one logical unit. + + + + + Scrolls right within viewport by one logical unit. + + + + + Scrolls up within viewport by one logical unit. + + + + + Scrolls down within viewport by one page. + + + + + Scrolls left within viewport by one page. + + + + + Scrolls right within viewport by one page. + + + + + Scrolls up within viewport by one page. + + + + + Scrolls vertically to the beginning of the content. + + + + + Scrolls vertically to the end of the content. + + + + + Scrolls horizontally to the beginning of the content. + + + + + Scrolls horizontally to the end of the content. + + + + + Scrolls both horizontally and vertically to the beginning of the content. + + + + + Scrolls both horizontally and vertically to the end of the content. + + + + + Gets whether the scroll viewer uses a virtualized viewport + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + This class supports the TPF internal infrastructure and is not intended to be used directly from your code. + + + + + Virtual method that paints the primitive on the screen. It may be overridden by + the derived types. + + + + + Virtual method that paints the primitive on the screen. It may be overridden by + the derived types. + + + + + Represents a base type for all primitives. Defines PaintPrimitive method that is + overridden in all derived classes. + Primitives are these RadElement(s) that are actually drawn on the + screen. + + + + Draws the primitive on the screen. + + + Gets or sets a value indicating whether the primitive should + be painted. + + + Virtual function that draws the primitive on the screen. + + + Gets a value indicating whether the primitive has content. + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets gradient style. Possible styles are solid, linear, radial, glass, + office glass, gel, and vista. + + + + Gets or sets gradient angle for linear gradient measured in degrees. + + + Represents a line that is drawn on the screen. + + + + Represents a filling that is drawn on the screen. + + + + + Draws the primitive on the screen. + + + + + Gets or sets background color. This property is applicable to radial, glass, office glass, gel, and vista gradients. + + + + + Gets or sets background color. This property is applicable to radial, glass, office glass, and vista gradients. + + + + + Gets or sets background color. This property is applicable to radial, glass, + office glass, and vista gradients. + + + + + Gets or sets the number of used colors in the gradient effect. + + + + + Gets and sets the gradient style. The possible values are defined in the gradient + style enumeration: solid, linear, radial, glass, office glass, gel, and vista. + + + + + Gets or sets gradient angle for linear gradient. + + + + + Gets or sets GradientPercentage for linear, glass, office glass, gel, vista, and + radial gradients. + + + + + Gets or sets GradientPercentage for office glass, vista, and radial + gradients. + + + + + Specifies whether the FillPrimitive should fill the GraphicsPath defined by its Parent.Shape. If false, it will fill its bounding rectangle. + + + + + This property is used internally! + + + + Draws the primitive on the screen. + + + Gets or sets the line width in pixels. + + + + Gets or sets the line orientation. Possible values are defined in the SepOrientation + enumeration. + + + + Gets or sets the line angle in degrees. + + + + Initializes a new instance of the ArrowPrimitive class using the + ArrowDirection enumeration. Possible directions are up, bottom, left, and + right. + + + + + Gets or sets the arrow direction. The possible values are contained in the + ArrowDirection enumeration: up, left, right, and bottom. + + + + Represents the internal part of the progress bar. + + + Draws the primitive on the screen. + + + + indicates that Progress Bar has Image + + + + + Gets or sets progress bar orientation. Possible values are indicates in + ProgressOrientaion enumeration: up, left, bottom, and right. + + + + + Indicates whether the progress bar style is dash. If both dash and hash are + true, hatch style is chosen. + + + + + Indicates whether the progress bar style is hatch. When true, the style is Hatch. + When both dash and hatch are true the style is hatch. + + + + Gets or sets the angle in degrees of the progress bar dash or hatch parts. + + + Gets or sets the step width in pixels between separators. + + + Gets or sets separators width in pixels. + + + + Gets or sets the value of the first progress line. There could be two progress + lines in the progress bar. + + + + + Gets or sets the value of the second progress line. There could be two progress + lines in the progress bar. + + + + Specifies minimum value for the progress. + + + Gets or sets maximum value for the progress. + + + + indicates Stap value + + + + Gets or sets the first color that is used in gradient effect. + + + Gets or sets the second color that is used in gradient effect. + + + Represents a check box primitive that is drawn on the screen. + + + + Default constructor + + + + + Copy constructor + + + + + + GetBaseLineFromFont Method + + A Font + A float + + + + Get or sets HTML tag of the current text block + + + + + Get or sets FontSize the current text block + Note: recreate the font + + + + + Get or sets Image for the current text block + Current block should be named Image block + + + + + Get or sets the Size the current text block + + + + + current block content alignment + + + + + Get or set the text + + + + + BaseLine Property + + + + + Move text blocks to next line if there is not avaible space for the current line + + + + + + + Calculate Size of the whole FormattedTextBlock + + + + + + + + + + + Calculate text size of the Single Text Line + + + + + + + Draw whole FormattedTextBlock + + + + + + + + + + + + Occurs when the mouse is up the element. + + + + + Occurs when the mouse pointer is moved over the element. + + + + + BaseLine Property + + + + + This method draws text to a Bitmap graphics which is used when an element/control is in Disabled state. GDI does not draw text well on a bitmap graphics surface, + hence the need for this method. + + + + Retrieves the text size. + + + + check is the Text contains html command + + text to be checked + text to check + + + + Main function for parsing process + + text to parse + base Font color + base font + base font size + base textaligment + Formatted text block that contains the whole structure + + + + Main function for parsing process + + text to parse + base Font color + base font + base font size + base textaligment + base font style etc. Regular, Bold + Formatted text block that contains the whole structure + + + + Parse single HTML tag and apply settings + + + + + + + + + + + process single token from Html string + + + + + + + a FormattedText object + + + + Handles <u><i><b> tags + + + + + + + + + Handles <color=value> + + + + + + + + Handles <size=[+|-] valie> + + + + + + + + Handles <font=value> + + + + + + + Gets or sets the color used to display a non-visited hyperlink. + + + + + Gets or sets the color used to display a visited hyperlink. + + + + + A String Tokenizer that accepts Strings as source and delimiter. Only 1 delimiter is supported (either String or char[]). + + + + + Constructor for StringTokenizer Class. + + The Source String. + The Delimiter String. If a 0 length delimiter is given, " " (space) is used by default. + + + + Method to get the number of tokens in this StringTokenizer. + + The number of Tokens in the internal ArrayList. + + + + Method to get the next (string)token of this StringTokenizer. + + A string representing the next token; null if no tokens or no more tokens. + + + + + Represents a track bar that is drawn on the screen. + + Extends + BasePrimitive + + + + + Gets or Sets RadTrackBar's ticks color + + + Gets or Sets the gradient angle of the SliderArea + + + Gets or Sets whether the TrackBar should fit to available size + + + Gets or Sets whether the SlideArea should be visible + + + Gets or Sets Ticks Visibility + + + + Gets or sets background color. This property is applicable to radial, glass, + office glass, and vista gradients. + + + + + Gets or sets background color. This property is applicable to radial, glass, + office glass, and vista gradients. + + + + + Gets or Sets TrackBar's thumbWidth + + + + + Gets or Sets TrackBar's Orientation + + + + + Indicates the tick style of the progress bar. Possible values are members of + %TickStyles enumeration:Telerik.WinControls.Enumerations.TickStyles%: none, + topleft, BottomRight, and both. + + + + + The number of positions between tick marks + + + + + Gets or Sets the width of TrackBar's SlideArea + + + + Gets or sets a minimum int value for the trackbar position. + + + Gets or sets a maximum int value for the trackbar position. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Interface provides methods for registering and accessing . + + + + + Retrieves currently registered Service by the specified type. + + A type derived from + + + + + Registers the specified service with ourselves. + + An instance of type derived from . + + + + Represents abstact class that provides service capabilities. + + + + + Initializes a new instance of the RadService class. + + + + + Determines whether the service is operational and may perform actions. + + + + + + Starts the Service. + If the service was previously paused, it should be re-started with the Resume method. + + A context passed to the service. + + + + Stops currently working or previously stopped service. + + True to indicate that current operation ended successfully, false otherwise. + + + + Pauses a currently running operation. + + + + + Resumes previously paused operation. + + + + + Determines whether the service may be started. + Validation is as follows: + 1. Check whether Enabled is true. + 2. Check the context through IsContextValid method. An exception is thrown if context is invalid. + 3. Checks the current state - it should be Initial or Stopped. + + + + + + + Notifies that the service has been successfully started. + Allows inheritors to perform some additional logic upon start. + + + + + Notifies that a start request has occured. Cancelable. + + + + + + Notifies that a running operation has stopped. + Allows inheritors to perform some additional logic upon stop. + + + + + Notifies that a stop request has occured. Cancelable. + + + + + + Evaluates the provided context. Some services may not operate without certain context provided. + + + + + + + Performs the core Start logic. + + + + + Stops the service. Performs the core logic. + + + + + Aborts the current operation without applying any changes. + + + + + Ends the current operation and applies all changes. + + + + + Performs the core Resume logic. + + + + + Performs the core Pause logic. + + + + + Sets the provided object as the current context. + + + + + + Notifies for a change in the Enabled state. + + + + + Gets the context associated with the current operation. + This member is valid only while the Service is started or paused. + + + + + Raised when the service is about to be started. + + + + + Raised right after the service is started. + + + + + Raised when the service is about to be stopped. + + + + + Raised when the service is stopped. + + + + + Determines whether the service is available at design-time. False by default. + + + + + Gets the current state of the service. + + + + + Gets the name of the service. + + + + + Determines whether the Service is enabled (may be started). + If the Service is working and its is disabled, it will end its current operation. + + + + + Represents event data when RadService is starting. + + + + + Initializes a new instance of the RadServiceStartingEventArgs class. + + The context that is passed prior to the Start request. + + + + Gets the Context, passed to the service as a start parameter. + + + + + Represents the states of + + + + + The state of , when is created. + + + + + The state of , when is stopped. + + + + + The state of , when is working. + + + + + The state of , when is paused. + + + + + Represents event data when RadService is stopping. + + + + + Initializes a new instance of the RadServiceStoppingEventArgs class. + + + + + + Gets or sets the Commit parameter of the Stop request. + + + + + Gets the currently dragged instance. + + + + + Determines whether a default hint will be generated. Usually this is a snapshot of the dragged item. + + + + + Gets or sets the context associated with a drag operation. + + + + + Determines whether a drag operation may start. + + + + + Gets or sets the drop target for the operation. + + + + + Represents a service that manages drag and drop actions. + + + + + Initializes a new instance of the DragDropService class. + + + + + Begins a drag pass. Allows for service automation. + + The position of the mouse cursor in screen coordinates. + An instance of IDraggable that is dragged. + + + + Ends a drag pass. Allows for service automation. + + The end position of the mouse cursor in screen coordinates. + An instance of . + + + + Ends a drag pass. Allows for service automation. + + + + + Mocks a mouse move to a specific point. Allows for service automation. + + + + + Determines whether a drop operation will be committed (a valid drop target is found). + + + + + Gets or sets the cursor to be used when a valid drop target is hit-tested. + + + + + Gets or sets the cursor to be used when a valid drop target is hit-tested. + + + + + Determines whether a default preview is generated for a ISupportDrag instance if its GetPreview method returns null. + + + + + Gets current drop target, where the mouse cursor points. + + + + + Gets the current drop location in the context of the current target. + + + + + Gets the Hint window. + + The hint window. + + + + Gets or sets the image to be used as a preview while dragging. + + + + + Gets or sets the cursor to be used while dragging. + + + + + Defines the element's property options. + + + + + Indicates that there are no property options. + + + + + Indicates that the property can inherit a value. + + + + + Indicates that the property invalidates the layout. + + + + + Indicates that the property affects the layout. + + + + + Invalidates measure + + + + + Invalidates arrange + + + + + Invalidates parent's measure + + + + + Invalidates parent's arrange + + + + + Indicates that the property affects the display. + + + + + Indicates that the property affects the theme. + + + + + The property supports cancellation. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + Initializes a new instance of the RadItemCollection class. + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Gets or sets the owner of the collection. + + + + + Represents the method that will handle the TextChanging event. + + + + + + + Represents a Z-order comparer. The Z-Order determines the overlapping of the + RadElements. + + + + + Initializes a new instance of the RadElementZOrderComparer class. + + + + + + Compares the Z-order of the two RadElement arguments. Retrieves 0 if the + two elements are equal, positive number if the first element has a greater + Z-Order than the second argument, and a negative number otherwise. + + + + + + + + + + + + + + + + + + + + + + + Layout panel which docks its children to the sides of the area it contains + + + + + Gets the dock property of an element + + + + + + + Sets the docking position of an element + + + + + + + Gets or sets a property indicating whether the last child will fill the remaining area + + + + ElementWithCaptionLayoutPanel is a container for elements with a caption. + + + + Gets or sets a boolean value indicating whether there is a caption on the + top. + + + + + Layout panel is a container for other elements. It orders the contained + elements as a stack vertically or horizontally. When the elements pass through the + left end of the stacklayout, the last one is put on a new line. If horizontal is + chosen the width of all elements is the width of the largest element in the + column. + + + + + This constant is used internally. + + + + + ArrangeOverride + + + + + + + Gets or sets the elements orientation inside the stacklayout. + Possible values are horizontal and vertical. + + + + + Gets or sets a value indicating whether the elements have equal size. + + + + + Gets or sets a value indicating whether the elements have equal width. + + + + + Gets or sets a value indicating whether the elements have equal height. + + + + + ChildrenForcedSize + + + + + Gets or sets a value indicating whether maximum size dimensions are + flipped. + + + + Gets or sets a value indicating whether elements are collapsed on resize. + + + + Gets or sets a value indicating whether the panel will use its direct parent size to arrange the child elements or + whether it will use the first ancestor which is a layout panel or an element with AutoSizeMode = FitToAvailableSize. + + + + + Gets or sets a value indicating whether the panel is in Strip mode or not. When in Strip mode the panel doesn't + move the child elements to a new row when there's not enough space but rather arranges all elements on a single row. + + + + + Notifies all children when same child changes. Effectively redraws all + children in the panel. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the method that will handle HandleExecute, and Execucted events. + + + + + Represents the method that will handle HandleExecute, and Executed events. + + Initializes the event sender. + Initializes the event argument data. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + Represents an arrow that is drawn on the screen. + + Extends %BasePrimitive:Telerik.WinControls.Primitives.BasePrimitive%. + + + + + Initializes a new instance of the ArrowPrimitive class. + + + + Initializes a new instance of the ArrowPrimitive class using the + ArrowDirection enumeration. Possible directions are up, bottom, left, and + right. + + + + + Draws the primitive on the screen. + + + + + Gets or sets the arrow direction. The possible values are contained in the + ArrowDirection enumeration: up, left, right, and bottom. + + + + + Defines the usage of a given attached property. + + + + + + + + + + + + + + + + + + + + + + + + + Represents the method that will be an alternative expression storage callback. + + + + + + + + + Represents the method that will be a coerce value callback. + + + + + + + + Represents the method that will be a property changed callback. + + + + + + Initializes the property change arguments. + + + + + Defines the source of current property value. See also + %RadObject.GetValueSource:
+ Telerik.WinControls.RadObject.GetValueSource%. +
+
+ + + Indicates that the reason is unknown. + + + + + Indicates that the default value is set. + + + + + Indicates that the property changed is inherited. + + + + + An overriden default value, has higher priority than Default and Inherited source. + + + + + Indicates that the reason for the property change is an applied theme. + + + + + Value is set locally through a CLR property setter. + + + + + Indicates that the reason for the property change is data binding. + + + + + A value is applied through two-way binding. + + + + + Indicates that the reason for the property change is an animation effect. + + + + + Defines a mask enumeration which is used when updating rad properties' values. + + + + + Defines the possible results for a property value update operation. + + + + + A composite value update is still running. + + + + + There was no need of updating the property. + + + + + The property has been successfully updated and its value has changed. + + + + + The property has been successfully updated but its value has not changed. + + + + + Update operation was canceled. + + + + + Defines basic methods for Telerik layout architecture. Since all layout panels + update their layout automatically through events, this functions are rarely used + directly. + + + + + Performs layout changes based on the element given as a paramater. + Sizes and places are determined by the concrete layout panel that is used. + For example if StackLayoutPanel is used, the element will be placed next to + the previously placed element. Since all layout panels update their layout + automatically through events, this function is rarely used directly. + + + + + + Retrieves the preferred size of the layout panel. If the proposed size is + smaller than the minimal one, the minimal one is retrieved. Since all layout + panels update their layout automatically through events, this function is + rarely used directly. + + + + + + + + + + Classes that implement IGraphics interface are capable of drawing on the + computer screen. Classes that implement this interface can use different APIs to + perform the actual drawing: GDI+, DirectX, etc. + + + + Changes the opacity level of the current device context. + + + Restores the opacity of the current device context to the previous value. + + + + Saves the current smothingMode, and changes the smoothingmode for the current device + context. + + + + Restores the smoothing mode to the previous value. + + + Draws a rectangle specified by a rectangle structure and a color. + + + + Draws a rectangle specified by rectangle structure, color, PenAlignment and pen + width. + + + + + Draws a rectangle specified by rectangle structure, color, PenAlignment and pen + width. + + + + + Draws a rectangle specified by rectangle structure, color, PenAlignment, pen width and DashStyle. + + + + + Draws a rectangle specified by rectangle structure, color, PenAlignment, pen width and DashStyle. + + + + + Updates the clipping region of the current Graphics object to exclude + the area specified by a Rectangle structure. + + + + + Draws a linear gradient rectangle specified by rectangle structure, color array, + penalignment, penWidth and angle. + + + + + Draws a linear gradient rectangle specified by rectangle structure, color array, + penalignment, penWidth, angle and DashStyle. + + + + + Draws a linear gradient rectangle specified by rectangle structure, color array, + penalignment, penWidth, angle and DashStyle. + + + + + Draws a radial gradient rectangle specified by rectangle structure, color, color + array for gradient effect, penalignment and penWidth. + + + + + Draws a radial gradient rectangle specified by rectangle structure, color, color + array for gradient effect, penalignment and penWidth. + + + + + Draws a radial gradient rectangle specified by rectangle structure, color, color + array for gradient effect, penalignment, penWidth and DashStyle. + + + + + Draws a radial gradient rectangle specified by rectangle structure, color, color + array for gradient effect, penalignment, penWidth and DashStyle. + + + + + Draws a custom gradient rectangle specified by rectangle structure, graphicsPath, + color, color array for the gradient effect, penalignment and penwidth. + + + + + Draws a custom gradient rectangle specified by rectangle structure, graphicsPath, + color, color array for the gradient effect, penalignment and penwidth. + + + + + Draws a custom gradient rectangle specified by rectangle structure, graphicsPath, + color, color array for the gradient effect, penalignment, penwidth and DashStyle. + + + + + Draws a custom gradient rectangle specified by rectangle structure, graphicsPath, + color, color array for the gradient effect, penalignment, penwidth and DashStyle. + + + + Draws an ellipse defined by a bounding rectangle and color. + + + + Draws the specified text string with specified Rectangle, Font, Color, + ContentAlignment, StringFormat and Orientation. + + + + + Obsolete. Use the overload without ContentAlignment parameter. ContentAlignment should be provided through the StringFormat parameter. + + + + + Obsolete. Use the overload without ContentAlignment parameter. ContentAlignment should be provided through the StringFormat parameter. + + + + + Draws the specified Image object with the specified Rectangle, Image, + ContentAlignment and disable flag. + + + + + Draws the specified Image object with the specified Point, Image and disable + flag. + + + + + Draws a bitmap image specified by image object and position from the left-upper + corner of the current device context. + + + + + Draws a bitmap image specified by image object and position from the left-upper + corner of the current device context and specified opacity. + + + + + Draws a bitmap image specified by image object, position from the left-upper + corner of the current device context and specified size. + + + + + Draws a bitmap image specified by image object, position from the left-upper + corner of the current device context, opacity and specified size. + + + + Draws a path specified by GraphicsPath, color, pen alignment and pen width. + + + Draws a path specified by GraphicsPath, color, pen alignment, pen width and DashStyle. + + + Draws a path specified by GraphicsPath, color, pen alignment, pen width and DashStyle. + + + + Draws a linear gradient path specified by GraphicsPath, bounding Rectangle, color + gradient array, penalignment, penwidth and angle. + + + + + Draws a linear gradient path specified by GraphicsPath, bounding Rectangle, color + gradient array, penalignment, penwidth, angle and DashStyle. + + + + + Draws a linear gradient path specified by GraphicsPath, bounding Rectangle, color + gradient array, penalignment, penwidth, angle and DashStyle. + + + + + Draws a line specified by color, initial x point, initial y point, final x and + final y point. + + + + + Draws a line specified by color, initial x point, initial y point, final x and + final y point. + + + + + Draws a line specified by color, initial x point, initial y point, final x, final y point and width + + + + + Draws a line specified by color, DashStyle, initial x point, initial y point, final x + and final y point. + + + + + Draws a redial gradient path specified by Graphicspath, bounding rectangle, color, + color gradient array, penalignment and penwidth. + + + + + Draws a redial gradient path specified by Graphics path, bounding rectangle, color, + color gradient array, pen alignment and pen width. + + + + + Draws a redial gradient path specified by Graphics path, bounding rectangle, color, + color gradient array, pen alignment and pen width. + + + + + Draws a custom gradient path specified by GraphicsPath, GraphicsPath for the + gradient, color, gradient color array, penalignment and penwidth. + + + + Creates a mask specified by color and bitmap. + + + + Fills the interior of a rectangle specified by the + borderRectangle and using for color the second argument. + + + + + Fills a rectangle using the image as texture. + + The rectangle to fill. + The image to use as a texture. + + + + Fills a rectangle using the image as texture. + + The rectangle to fill. + The image to use as a texture. + Defines the way the image is populated in the rectangle + + + + Fills a rectangle using the image as texture. + + The rectangle to fill. + The image to use as a texture. + + + + Fills a rectangle using the image as texture. + + The rectangle to fill. + The image to use as a texture. + Defines the way the image is populated in the rectangle + + + + Fills gradient rectangle specified by rectangle structure, color, color, color, + color, GradientStyles, and angle. + + + + + Fills the gradient rectangle specified by rectangle structure, color gradient array, + float offset array, GradientStyles, angle, gradientPercentage, and + gradientPercentage2. + + + + + Fills the gradient rectangle specified by rectangle structure, color gradient array, + float offset array, GradientStyles, angle, gradientPercentage, and + gradientPercentage2. + + + + + Fills the glass gradient rectangle specified by rectangle structure, color, color, + color, color, and gradient percentage. + + + + + Fills the office glass gradient rectangle specified by rectangle structure, color, + color, color, color, and gradientPercentage and gradientPercentage2. + + + + + Fills the vista gradient rectangle specified by rectangle structure, color, color, + color, color, gradient percentage, and gradientPercentage2. + + + + + Fills the gel gradient rectangle specified by rectangle structure, color, color, and + gradientPercentage. + + + + + Fills the interior of a polygon defined by an array of points specified by + Point structures and + color. + + + + + Fills the interior of a polygon defined by color and an array of points specified + by Point structures. + + + + + Fills the interior of a polygon defined by brush and an array of points specified + by Point structures. + + + + + Draws a round rectangle specified by Rectangle structure, color, float borderWidth, + and radius in pixels. + + + + + Translates the local geometric transformation of this TextureBrush object by + the specified dimensions. This method prepends the translation to the + transformation. + + + + + Translates the local geometric transformation of this TextureBrush object by the + specified dimensions. This method prepends the translation to the + transformation. + + + + + Rotates the local geometric transformation by the specified angle. This method + prepends the rotation to the transformation. + + + + + Resets the + world transformation matrix of this Graphics to the identity matrix. + + + + + Scales the world transformation matrix by the specified amount. + + + + Gets the clipping rectangle; the rectangle which needs redrawing. + + + Gets the current context device - graphics object. + + + Gets or sets the opacity level of the device context. + + + + Implements functionality for drawing GDI+ graphics. + + + + + Initializes a new instance of RadGdiGraphics class using GDI graphics context. + + + + + + Draws a border specified by rectangle structure, IBorderElement. + + + + + Disposes the object. + + + + + Disposes the GDI+ graphics context. + + + + + Gets or sets current GDI+ graphics context. + + + + Represents a border that is drawn on the screen. + + + + Virtual method that paints the primitive on the screen. It may be overridden by + the derived types. + + + + + Gets the border thickness. + + An instance of representing the border thickness. + + + + + Gets or sets the + Border style. The two possible values are SingleBorder and FourBorder. In the + single border case, all four sides share the same appearance although the entire + border may have gradient. In four border case, each of the four sides may differ in + appearance. For example, the left border may have different color, shadowcolor, and + width from the rest. When SingleBorder is chosen, you should use the general + properties such as width and color, and respectively, when the FourBorder style is + chosen you should use properties prefixed with the corresponding side, for example, + LeftColor, LeftWidth for the left side. + + + + + + + + + + Gets or sets float value indicating the width of the border + measured in pixels. It is only used when SingleBorder style is chosen for the + BoxStyle property which effectively means that all four borders share the same + width. + + + + + Gets or sets a float value width of the left border. This property + has effect only if FourBorders style is used in BoxStyle property and + affects only the width of the left border. + + + + + Gets or sets a float value width of the top border . This property + has effect only if FourBorders style is used in BoxStyle property, + and affects only the top border. + + + + + Gets or sets a float value width of the right border. This + property has effect only if FourBorders style is used in BoxStyle + property, and affects only the right border. + + + + + Gets or sets a float value width. This property has effect only if + FourBorders style is used in BoxStyle property, and affects only the + bottom border. + + + + + Gets and sets the left border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the left border. + + + + + Gets and sets the top border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the top border. + + + + + Gets and sets the right border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the right border. + + + + + Gets and sets the bottom border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the bottom border. + + + + + Gets and sets the left shadow color. This option applies only if + fourBorders is chosen, and affects only the left border. + + + + + Gets and sets the top shadow color. This option applies only if + fourBorders is chosen, and affects only the top border. + + + + + Gets and sets the right shadow color. This option applies only if + fourBorders is chosen, and affects only the right border. + + + + + Gets and sets the bottom shadow color. This option applies only if + fourBorders is chosen, and affects only the bottom border. + + + + + Specifies whether the BorderPrimitive should draw the GraphicsPath defined by its Parent.Shape. If false, it will draw its bounding rectangle. + + + + + Specifies the style of dashed lines drawn with a border. + + + + + Specifies the pattern of dashed lines drawn when the BorderDashStyle is custom. + + + + + Gets the border offset of the primitive. It effectively retrieves the upper-left + corner inside the primitive border. It takes into consideration the BoxStyle property + and possible different widths of the left and the upper side. + + + + Retrieves size of the combined bottom, right, upper, and left border. + + + Gets the horizontal width of the combined left and right border. + + + Gets the vertical width of the combined bottom and upper border. + + + Gets or sets gradient angle for linear gradient measured in degrees. + + + + Gets or sets gradient style. Possible styles are solid, linear, radial, glass, + office glass, gel, and vista. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + Represents a check box primitive that is drawn on the screen. + + + + Gets or sets a value indicating the style of the check box primitive. + + + + + Gets or sets a value indicating whether to draw the background. + + + + + Gets or sets a value that determines whether the checkmark size is fixed to 8;8 pixels. + + + + + Gets or sets a value that determines the checkmark thickness. Use this property only when UseFixedCheckSize property is set to false. + + + + + Gets or sets a value that determines how the checkmark position in Indeterminate state will be adjusted vertical (in pixels). + + + + + Gets or sets a value that determines how the checkmark position in Indeterminate will be adjusted horizontal (in pixels). + + + + + Gets or sets a value that determines how the checkmark width in Indeterminate state will be adjusted (in pixels). + + + + + Gets or sets a value that determines how the checkmark height in Indeterminate state will be adjusted (in pixels). + + + + Represents an image that is drawn on the screen. + + + Draws the primitive on the screen. + + + + Gets or sets the flag controlling whether the image primitive fills up the available area horizontally + + + + + Gets or sets the flag controlling whether the image primitive fills up the available area vertically + + + + + Gets or sets the way ImagePrimitive will layout its image on the screen. + + + + + Gets or sets the desired size to be used when displaying the image. Works when ImageScalingMode is set to FitToSize. + + + + Gets or sets the image that is displayed. + + + + Gets the Image that will be painted on the screen, with settings such as Opacity and Flip applied. + + + + Gets or sets the image list index value of the displayed image. + + + Gets or sets the key accessor for the image in the ImageList. + + + Specifies whether the image should be taken from the SmallImageList or from the ImageList when the ImageIndex/ImageKey property is set. + + + + Gets or sets image scaling. Possible values are members of ImageScaling + enumeration: None and SizeToFit. + + + + Gets actual index. + + + Gets a value indicating whether the primitive has content. + + + + Gets or sets the transparent color for the image + + + + + Gets or sets the type of rotate/flip to be applied. + + + + + Represents text that is drawn on the screen. + Extends %BasePrimitive:Telerik.WinControls.Primitives.BasePrimitive%. + + + + + Draws the primitive on the screen. + + + + + Returns the text as a string. + + + + + Gets or sets the text rendering hint. + + + + + Gets or sets the text rendering hint used when this instance is disabled. + + + + + This property is used internally. + + + + + Gets or sets the displayed text. + + + + + Allow StretchHorizontally + + + + + Allow StretchVertically + + + + + Gets or sets a value indicating whether the additional label text is to be indicated by an ellipsis. + + + true if the additional label text is to be indicated by an ellipsis otherwise, false. Default value is true. + + + + + Includes the trailing space at the end of each line. By default the boundary rectangle returned by the Overload:System.Drawing.Graphics.MeasureString method excludes the space at the end of each line. Set this flag to include that space in measurement. + + + + + Gets or sets a value indicating whether the text should wrapped to the available layout rectangle. + + + true if the text should wrapped to the available layout rectangle otherwise, false. + + + + + Gets or sets a value indicating whether the control interprets an ampersand character (&) + in the control's Text property to be an access key prefix character. + + + true if the label doesn't display the ampersand character and underlines the character + after the ampersand in its displayed text and treats the underlined character as an access key; + otherwise, false if the ampersand character is displayed in the text of the control. + The default is true. + + + + + Gets or sets a value indicating whether if the keyboard accelerators are visible. + + + true if if the keyboard accelerators are visible otherwise, false. + + + + + Gets or sets the text orientation. Possible values are horizontal + and vertical. + + + + + Gets or sets whether the text will be flipped. + + + + + Gets or sets the text alignment. Possible values are included in + the ContentAlignment enumeration. + + + + + Gets a value indicating whether the primitive has content. + + + + + Gets or sets the shadow settings. + + + + + Gets an instance of the structure which contains information on how to render the text in this element + + + + + ComplexCondition evaluates two conditions related with a binary operator. + Inherits Condition + + + + + Defines a base abstract class that describes a condition which checks when to apply + a style rule. SimpleCondition evaluates when a property of an Element equals a + certain value. RoutedEventCondition evaluates if a routed event is currently + tunneling/bubbling through an Element. ComplexCondition evaluates two conditions + related with a binary operator. + + + + + Retrieves a value indicating whether to apply a style rule. + + + + + + + Retrieves a list of the affected properties of the current condition. + + + + + Retrieves a list of the affected events of the current condition. + + + + + Initializes a new instance of the ComplexCondition class. + + + + + Initializes a new instance of the ComplexCondition class from the first condition, + binary operator, and second condition. + + + + + + + + Evaluates the complex condition. + + + + + + + Retrives a string representation of the ComplexCondition class. + + + + + + Gets or sets the first condition. + + + + + Gets or sets the binary operator to be used for evaluating the condition. + + + + + Gets or sets the second condition. + + + + + A binary opeartor used by the CompolexCondition class. + + + + + Indicates conjunction. + + + + + Indicates disjunction. + + + + + Indicates exclusive or. + + + + + See BinaryOperator, + Condition + + + + + + + + + + + + + + + SimpleCondition evaluates when a property of an Element equals a certain value. + + + + + Initializes a new instance of the SimpleCondition class. + + + + + + Initializes a new instance of the SimpleCondition class from the setting to check, and the + unary operator to use. + + + + + + + Initializes a new instance of the SimpleCondition class from the property, value and unary operator + + + + + Initializes a new instance of the SimpleCondition class from the property and value + + + + + Evaluates the target RadElement using the unary operator. + + + + + + + Retrieves the string representation of the current instance. + + + + + + Gets or sets the unary operator of the simple condition. + + + + + Gets or sets the setting of the current property. + + + + + Represents a class selector. Class selectors are used to apply the same + customization to all elements that belong to the same class. This + behavior is very similar to that of the CSS class selectors. + + + + + Represents a base class for other selectors. telerik presentation framework + selectors are similar to CSS selectors. + + + + Represents a base class for the HierarchicalSelector class. + Selectors in telerik presentation framework are very similar to CSS + selectors. + + + Exposes methods and properties required for a general selector. + Selectors in telerik presentation framework are like CSS selectors. + + + + Gets value indicating whether the selector applies to the specified element + + + + + + + Gets value indicating whether the selector applies to the specified element, without checking conditions that apply to properties of the element. + + + + + + Retrieves an array of selected elements of the element given as an + argument. + + + + Method supports obsolete theming infrastructure + + + + + + Applies the property settings to the given element. Method supports obsolete theming infrastructure. + + + + Gets value indicating whether the selector Equals to the specified selector + + + + + + + Method supports obsolete theming infrastructure. + If HasApplyCondition returns true, this method should add the RadProperties that the selector depends, so style manager + can refresh afected element by the selector selector, when property changes + + + + + Gets a value indicating whether a condition has been applied. + + + + Gets or sets the child selector. + + + + + Selector Key + + + + Retrieves a value indicating whether the customization should be + un-applied to the given element.. + + + Retrieves a value indicating whether value is set for the element. + + + Gets or sets the Condition upon which to apply the customization. + + + Gets or sets the condition upon which to un-apply the customization. + + + Gets or sets a value indicating whether auto-un-apply is on or off. + + + Gets or sets a value indicating whether the current selector is the active one in style builder + + + Gets a value indicating whether the an apply condition is set. + + + Retrieves the selected elements of the given element. + + + Initializes a new instance of the class selector class. + + + + Initializes a new instance of the class selector class using string for the class + name. + + + + Gets or sets a value indicating the class name. + + + + Represents a name selector. Name selectors are used to apply customization to the + element having the specified name. This behavior is very similar to that of CSS id + selectors. + + + + Initializes a new instance of the NameSelector class. + + + + Initializes a new instance of the NameSelector class using the name of the + element. + + + + + Gets or sets the element's name. Customization is applied only to the element + having this name. + + + + + Initializes a new instance of the SelectorCollection class. + + + + + Initializes a new instance of the SelectorCollection class. + + + + + Represents a type selector. Type selectors are used to apply the same + customization to all elements of the same type. Behavior is very similar to that + of the CSS type selectors. + + + + Initializes a new instance of the TypeSelector class. + + + + Initializes a new instance of the TypeSelector class using the type that will be + affected. + + + + Gets or sets the element type that will be affected by the Type selector. + + + + Gets or sets value corresponding to the VisualState of the item that the selector targets + + + + + Gets the Color defined for the current element. + + + + + + + Sets the specified element as the "Current" for painting. + + + True if the element may be painted (there is a theme part defined for it), false otherwise. + + + + Paints the current element (previously specified by the SetCurrentElement method) + on the provided graphics surface, within the desired bounds. + + + + + + + Invalidates all opened forms upon a user-triggered change in this class. + + + + + closes all currently opened HTheme handles + + + + + Looks-up a HTheme handle. + + + + + + + Used internally by the framework to determine whether we just want to skip TPF's drawing. + + + + + Used to instruct the system skin painting mechanism that a custom painting will be performed + in the PaintElementSkin method. + + + + + Gets the currently attached element. + + + + + Returns true on Windows Vista or newer operating systems; otherwise, false. + + + + + Determines whether system skins will be applied on RadControls + + + + + Gets the only instance of this manager. + + + + + Mode is inherited by the parent chain. + + + + + Only direct element can use skins, value cannot be used for inheritance + + + + + The element and all its descendants may use skins. + + + + + Only direct element is forbidden to use skins, its children can compose this value up from the parent chain. + + + + + Element and all its descendants are forbidden to use system skins. + + + + + Contains definitions for the MS Windows Vista Aero theme. + + + + + Vista comboboxes + + + + + Vista DateTimePickers + + + + + Vista TextBoxes + + + + + Vista Headers + + + + + Vista Listboxes + + + + + Vista ListViews + + + + + Vista Flyout + + + + + Vista Flyout + + + + + Defines the possible formats used when serializing an archive package. + + + + + Binary format. + + + + + XML format. + + + + + Decompresses the stream using Binary format. + + + + + + + Decompresses the stream in the provided file using Binary format. + + + + + + + Gets the default format for this package. + + + + + Gets or sets the format used to persist the package. + + + + + Gets the list which contains the streams of this package. + + + + + Encapsulates information for a single stream within a zipped stream. + + + + + Gets or sets the context associated with the archive. + + + + + Gets the raw bytes of the underlying stream. + + + + + Gets or sets the already zipped raw bytes of the underlying stream. + + + + + Gets the count of the raw bytes that form the stream. + + + + + Gets or sets the name of this archive. + + + + + Gets the information about the format of the underlying stream. + + + + + Represents an archive package where each stream is a compressed XmlTheme. + + + + + Gets all the themes that reside within this package. + + + + + + An archived stream, which persists a XmlTheme instance. + + + + + Defines the types of registrations of a StyleSheet in the ThemeResolutionService. + + + + + Implements whether an instances of a class need validation after theme + deserialization. + + + + + Initializes a new instance of the RadStylesheetRelation class. + + + + + Determines whether the specified relation is equal to this one. + + + + + + + Gets or sets a value indicating the builder registration type. + + + + + Gets or sets a string value indicating the control type. + + + + + Gets or sets a string value indicating the element type. + + + + + Gets or sets a value indicating the control name. + + + + + Gets or sets a string value indicating the element name. + + + + + Marker attribute - informs StyleXmlSerializer that property should be serialized as an attribute, when serializing + RadControl style + + + + + Serializes components to XML, using the same rules that apply in Code Dom serialization, in VS designer. + + + + + Constructs new instance of the class, providing extended properties serialization information + + Extends the properties serialization information. + + + + Constructs new instance of the class, providing extended serialization information. + + Dictionary to use that maps type names to XML element names. Keys of the dictionary entries should be type full names. Values should correspond to the type instances. + Extends the properties serialization information. + + + + if Reader is positioned at an element that is a collection, reads the collection items. + + + + + + + if Reader is positioned at an element that is a collection, reads the collection items. + + + object that owns the property (collection) currently deserialized + + + + + if Reader is positioned at an element that is a collection, reads the collection items. + + + object that owns the property (collection) currently deserialized + + + + + + Reads the collection items if reader is positioned on an element that is a collection. + + + + + + property used to match objects in collection + + + + Reads the collection items if reader is positioned on an element that is a collection. + + + + + + property used to match objects in collection + + + + + if Reader is positioned at an element that is a collection, reads the collection items. + + + property used to match objects in collection + + + + + States whether the list specified by toRead should not be cleared before reading + + + + Matches the instance of the element by an attribute value and then deserializes its properties. + If the instance is not found in existingInstancesToMatch, + new instance of type instanceType will be created and added to existingInstancesToMatch list. + + + + + + + the list with existing instances + index of the element if found in existingInstanceToMatch + + + + Reads properties of an object and subobject the reader is currently + positioned on. + + Xml reader instance, positioned on the element to read. + object instance to be processed + + + + Reads properties of an object and subobject the reader is currently + positioned on. + + Xml reader instance, positioned on the element to read. + parent object instance, null if there is no parent object information + object instance to be processed + + + + Override to provide alternative deserialization of objects. + + + + value indicating whether the object should be processed any further by serializer + + + + Deserializes a specified property of an object + + Xml reader, positioned on the element corresponding to the property to deserialize + Property descriptor of the property to deserialize + Object that owns the property to deserialize + + + + Override to provide custom processing of collection being deserialized + + + + + + True if the list does not require further processing by the deserializer, False to use the default deserialization + + + + Serializes the given object using the specified XmlWriter. + + + + + + + Provides logic to determine whether property value should be serialized. + + + ShouldSerialize value resolution is as follows: + + 1. ComponentSerializationInfo.SerializeDefaultValues + 2. overwriteMetadata contains attribute DesignerSerializationVisibilityAttribute.Content + 3. property.ShouldSerialize + + + + property to serialize + collection of extra serialization attributes for the property, corresponding to ComponentSerializationInfo + value indicating whether property value should be serialized + + + + Gets or sets value indicating whether the serializer will search all domain assemblies for a specified type + (by FullName) or will search only assemblies related to telerik + + + + + Utility class for Design - Time VisualStudio.NET project management. + + + + + Represents a property setting. Each property of Telerik controls can be + serialized and deserialized through an instance of this class. The + XMLPropertySetting instance describes the affected control, its property, and + the current value. XmlPropertySetting is very similar to CSS style properties. + + + + + Deserializes the property given as a string. For example, + Telerik.WinControls.VisualElement.ForeColor. + + + + + + + Deserializes the property given as a string. For example, + Telerik.WinControls.VisualElement.ForeColor. + + + + + + + Serializes the given dependency property with the given value. + + + + + + + + Deserializes the given dependency property with the given value. + + + + + + + + Retrieves a string representation of the class. + + + + + + Retrieves the name of the property. + + + + + + Retrieves the deserialized property. + + + + + + Gets or sets a string value indicating the property. + For example, Telerik.WinControls.VisualElement.ForeColor. + + + + + Gets or sets an object value indicating the value of the property. For example, + the value of Telerik.WinControls.VisualElement.ForeColor property + could be "navy" or "128, 0, 255, 63". + + + Here is how XmlPropertySetting determines whether to serialize Value or ValueString property when used in + ThemeComponent with CodeDom serialization. + + If the property belongs to an object from System, Telerik.WinControl or Telerik.WinCotnrols.UI assembly + then Value will be serialized (the actual object). For values that are defined in other assemblies ValueString + will be serialized. Tthis is Value, serialized as string using the TypeConverter specified by the corresponing RadProperty. + This is important for late-binding for types declared in different assemblies: egg. Docking + Otherwise a problem will occur when adding a ThemeComponent on the Form in a project which does not + reference Docking or Grid, etc, or custom controls assembly. + + For xml serializtion, property serialize always as string using the TypeConverter specified by the corresponing RadProperty. + + + + + Gets or sets the value serialized to string using the corresponding property TypeConverter. Generally used in rear cases by CodeDom + Serializer, if theme is serializaed to CodeDom + + + + + Represents + + + + + Represents a class selector that can be serialized and deserialized. + Telerik class selectors are very similar to CSS class selectors. + + + + + Initializes a new instance of the XmlClassSelector class. + + + + + Initializes a new instance of the XmlClassSelector class using an element + given as a string. + + + + + + Retrieves the string representation of the class. + + + + + + Retrieves a boolean value indicating whether this and the argument are equal. + + + + + + + Serves as a hash function for the XmlClassSelector type. + + + + + + Gets or sets a string value indicating the class. + + + + + Represents a serializable correspodence to the ComplexCondtion class. + + + + + Represents a serializable condition. + + + + + Build the expression string. + + + + + + Deserializes the condition. + + + + + + Deserializes the properties for a given condition. + + + + + + Creates a new instance of the Condition class. + + + + + + Compares two XmlComplexCondtion(s) for equality. + + + + + + + Retrieves a hash code for the current instance. + + + + + + Gets or sets a value indicating the first condition. + + + + + Gets or sets a value indicating the binary operator for the condition. + + + + + Gets or sets a value indicating the second condition. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Represents a group of property settings. + + + + + Retrieves the string representation of the instance. + + + + + + Determines whether the BasedOn property should be serialized. + + + + + + Gets or sets the collection of properties. + + + + + Gets or sets the collection of selectors. + + + + + Retrieve the name of the group. + + + + + Gets or sets value indicating the key of a repository item which this group is based on. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + + + + + + Represents a base class for the XML serialization converters. + + + + + + + + + + + + + + Gets or sets value indicating the key of the group uised to identfy the group when referenced + by other groups when basedOn is specified. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + + + Initializes a new instance of . + + + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Represents a serializable correspondence to the SimpleCondtion class. + + + + + Compares two instances for equality. + + + + + + + Gets or sets a value indicating the UnaryOperator used in the condition. + + + + + Gets or sets the XML property setting for the instance. + + + + + Gets value indicating the location of the theme file that the XmlStyleSheet has been loaded from. + + + + + Represents a registration for the Style Builder. The class is responsible + for the serialization and deserialization of a group of telerik controls. + + + + + Initializes a new instance of the XmlStyleBuilderRegistration class. + + + + + Initializes a new instance of the XmlStyleBuilderRegistration class + from xml style sheet, control type, and element type. + + + + + + + + Retrieves the style builder registration. + + + + + + Gets or sets a string value indicating the builder type. + + + + + Gets or sets a value indicating the xml builder data. + + + + + Represents a theme for a telerik control. Themes can be serialized and + deserialized, thus saving and loading the theme for a given control. + XmlTheme implements IXmlSerializable which provides custom formatting for + XML serialization and deserialization. + + Removed the Serializable attribute since many of the classes used in this class are also not serializable. + This causes the deserialization of the theme to fail when requested in the Visual Studio designer from the + theme components context menu. + [Serializable] + + + + Initializes a new instance of the XmlTheme class. + + + + + Initializes a new instance of the XmlTheme class from XmlStyleSheet, + control type, and element type. + + + + + + + + Loads a theme from a System.IO.Stream instance. + + + + + + + Load a XML theme from a TextReader. + + + + + + + Loads a theme from a XML reader. + + + + + + + Saves the theme to a XMLWriter. + + + + + + Retrieves the serialization string of the given type. + + + + + + + Deserializes the provided deserialization string. + + + + + + + Get the StyleRepository associated with this theme. + + StyleReposity contains named lists of PropertySettings, reffered by Key property, that can be inherited by the PropertySettingGroups of this theme. + This is done by associating BsedOn property of the property setting group with PropertySettings list key. + Since each theme can have only one repository, when different XmlTheme are registered with repositories for the same theme + the repositories are merged. If a PropertySettings list with the same Key is defined in several XmlTheme repository instances, the last laoded one overrides + any existing list. + + + + + + Gets value indicating whether this XmlTheme defines StyleRepository + + + + + Gets or sets a string value indicating the theme name. + + + + + Gets or sets the Builder Registration for the theme. Each builder registration + corresponds to a theme for single telerik control. + + + + + Gets or sets value corresponding to the VisualState of the item that the selector targets + + + + + Class used by RadThemeManager to recognize classes that load themes from resources in a class library + + + + + This method is used internally. + + + + + Gets the ThemeName of the theme component + + + + + this class is used internally. + + + + + Combines ThemeRoleName with state names using "." as delimiter and sets the result to AttachedElement.Class + + + + + + + Combines state names, using stateDelimiter Character. + + + Egg. combining "Selected" and "MouseOver" gives "Selected.MouseOver"; + combining "" and "MouseOver" gives "MouseOver" + + + + + + + + Represents event data for the + + + + + Represents the method that will handle a ThemeChanged event. + + + Initializes the event sender. + + + Initializes the %event argument:ThemeChangedEventArgs%. + + + + + A Class that represents storage for themes in an application that contains + RadControls. + + + + A theme consists of one or more + StyleSheet objects, and one or more + StyleSheetRelation objects. + + + The style sheet object defines the appearance + and/or certain aspects of behavior of one RadControl or + RadItem. + + StyleSheetRelation objects contain data that maps a control + and a certain StyleSheet. + Theme.ThemeName is used by RadControl to + automatically query ThemeResolutionService, upon + Initialize and retrieve its StyleSheet. Use the + API of this class to register, un-register, query themes storage for specific + themes by attributes like Name, certain relations, etc. + + + + + Returns a previously loaded font by given font name. + + The name of font. + The FontFamily or null if font with given name is not loaded. + + + + Call to subscribe for theme change event, for the specified control theme class name. Note the event may be fired from another thread + + + + + + Call to unsubscribe for theme change event. + + + + + + Gets a list of all registered themes. + + + + + + Gets any themes registered for a specific control by control type name or control name. + + + + + + + Get previously registered theme by theme name. + + + + + + + Applies the specified ThemeName to all RadControls that are children of the specified Control and its child Controls + + + + + + + Loads a theme package, stored in the provided file. + + + + + + + Loads a theme package stored in the provided file. + + + True to throw an exception if it occurs, false otherwise. + + + + + Loads a theme package, stored in the provided embedded resource. + The calling assembly is used to read the manifest resource stream. + + + + + + + Loads a theme package from an embedded resource in the specified assembly. + + + + + Loads a theme package stored in the provided embedded resource. + + + True to throw an exception if it occurs, false otherwise. + + + + Registers theme from a file or resource that contains a XML-serialized Theme object. + The Visual Style Builder application for example is capable of designing and serializing + themes. Theme files generally contain Theme with one or several style sheets each assigned a + registration that defines which RadControl and/or RadElment the style sheet applies. + + + + + + + Registers theme from a file or resource that contains a XML-serialized Theme object. + The Visual Style Builder application for example is capable of designing and serializing + themes. Theme files generally contain Theme with one or several style sheets each assigned a + registration that defines which RadControl and/or RadElment the style sheet applies. + + + + + + + + Registers theme from a file or resource that contains a XML-serialized Theme object. + The Visual Style Builder application for example is capable of designing and serializing + themes. Theme files generally contain Theme with one or several style sheets each assigned a + registration that defines which RadControl and/or RadElment the style sheet applies. + + + + + + + Suspends the ThemeChange event. This method is used internally. + + + + + Resumes the ThemeChange event. This method is used internally. + + + + + Resumes the ThemeChange event. This method is used internally. + + Determines whether to fire the ThemeChanged event. + + + + Creates and registers an empty Theme if one is not already registered. + + + + + + + Clears all stylesheets registered previously with the themeName specified. + + + + + + Gets all StyleSheets registered under a theme name. + + + + + + + Registers a StyleSheet found in styleBuilderRegistration using also the registration details specified under the theme name specified. + + + + + + + Registers a StyleBuilder for specific type of controls and specific type of elements under the name given. + + + + + + + + + Removes an instance of the class + from the dictionaries with registered style builders. + + The instance to remove. + + + + Gets or sets value indicating the theme name that will be used by all controls in the application. + + + If the value of this property is null or empty each control will be assigned a theme, corresponding on the + property of the control. Otherwise the ThemeName property will be disregarded. + If a specific control in the application has no theme registered with the name specified by ApplicationThemeName, it will be + assigned its ControlDefault theme name. + + + + + Determines whether animations are allowed across entire application. + + + + + "ControlDefault" theme name + + + + + Represents a property settings collection. Property settings are very + similar to CSS style properties. + + + + + Gets or sets the StyleBuilder instance. + + + + + Gets the name of the theme for which StyleBuilder is required. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of the . + + + + + + + Initializes a new instance of the based on another . + + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + Copies the elements of an IList of RadElements to the end of the . + + + An List of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Moves the element at position a given position to a new position + + The zero-based index of the element to move + The zero-based index of the position where the element is to be placed + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Provides XmlSerialization parsing for ColorBlend extention and + calculates color-blending values for color values of PropertySetting and AnimatedPropertySettings. + + + + + + + IValueProvider GetValue implementation + + + + + + Gets the original Color value + + + + + Gets value corresponding to the name of the ThemeParameter used for color blending calculations + + + + + Instances of this type are used by to provide information used to control + XML of properties and sub-objets. + + + + + Gets a collection of attributes for properties that would override the original designer serialization + metadata for these properties + + + + + Gets or sets value indicating whether the serializer will use the serialization visibility attributes + of the properties of the serialized objects or only those found in + + + + + Gets or sets value indincating whether the serializer will force serialization of properties, disregarding + the values of the DefaultValue attribute or ShouldSerialize method + + + + + Attribute for telerik theme serialization. + + + + + Base class for all block transformations. + + + + + Defines the basic operations of the cryptographic or compression transformations. + + + + + Creates transformation header to be written into the output stream. + + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets transformation header (if required). + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Releases the resources used by the current instance of the ZipArchive class. + + + + + Creates transformation header to be written into the output stream. + + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Validates parameters of the input buffer. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + Indicates whether buffer block size should be validated. Should be true for the TransformBlock and false for the TransformFinalBlock. + Indicates whether count can be zero. + + + + Validates parameters of the transform operation. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + Indicates whether input count can be zero. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets transformation header (if required). + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Gets or sets value which indicates whether the transformation uses + input buffer of the fixed size. + + + + + Implements Adler-32 checksum algorithm. + + + + + Interface which must be implemented by all implementations of the checksum algorithm. + + + + + Calculate checksum for the specified region of the input byte array. + + Checksum to update. + The input for which to compute the checksum. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + Updated checksum. + + + + Base for modulo arithmetic (largest prime smaller than 65536). + + + + + Number of iterations we can safely do before applying the modulo. + + + + + Calculate checksum for the specified region of the input byte array. + + Checksum to update. + The input for which to compute the checksum. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + Updated checksum. + + + + Implements CRC-32 checksum algorithm. + + + + + Calculate checksum for the specified region of the input byte array. + + Checksum to update. + The input for which to compute the checksum. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + Updated checksum. + + + + Specifies values that indicate compression method. + + + + + The file is stored (no compression). + + + + + The file is Deflated. + + + + + The file is compressed using LZMA algorithm. + + + + + Represents stream which allows read/write compressed information from/to given input stream. + + + + + Operational stream. Base class for cryptographic and compression streams. + + + + + Initializes a new instance of the OperationStream class. + + The base input/output stream. + Stream operational mode. + Specified mode is not allowed for the given stream. + + + + Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. + + + + + Clears all buffers for this stream and causes any buffered data to be written to the underlying device. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the + values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The associated with + current object does not match the underlying stream. + For example, this exception is thrown when using with an underlying stream that is write only. + The parameter is less than zero.-or- The parameter is less than zero. + The sum of the and parameters is larger than the length of the buffer. + + + + Sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type SeekOrigin indicating the reference point used to obtain the new position. + The new position within the current stream. + + + + Sets the length of the current stream. + + The desired length of the current stream in bytes. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Validate read/write operation parameters. + + Operation buffer. + Offset. + Count. + Indicates whether count can be zero. + + + Updates the underlying data source or repository with the current state of the buffer, then clears the buffer. + The current stream is not writable.-or- The final block has already been transformed. + + + + Ensure that current stream is not disposed. + + + + + Releases the unmanaged resources used by the Stream and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Initialize internal buffers. + + + + + Initialize transformation. + + + + + Read transformation header. + + + + + Write transformation header. + + + + + Gets a value indicating whether the current stream supports reading. + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Gets a value indicating whether the current stream supports writing. + + + + Gets a value which indicates whether the final buffer block has been written/read to/from the underlying stream. + true if the final block has been flushed or end of underlying stream is reached; otherwise, false. + + + + Gets the length in bytes of the stream. + + + + + Gets or sets the position within the current stream. + + + + + Gets value which specify total plain bytes count (not-compressed and not-encrypted). + + + + + Gets value which specify total transformed bytes count (compressed or encrypted). + + + + + Gets input stream. + + + + + Gets stream mode. + + + + + Gets or sets value which indicates whether this stream is disposed already. + + + + + Gets or sets block transformation is used for read/write operations. + + + + + Initializes a new instance of the CompressedStream class. + + The base input/output stream. + Stream operational mode. + Compression settings. + Specified mode is not allowed for the given stream. + + + + Initializes a new instance of the CompressedStream class. + + The base input/output stream. + Stream operational mode. + Compression settings. + Indicates whether the CRC32 (true) or Adler32 (false) checksum algorithm will be used. + Encryption settings. + Specified mode is not allowed for the given stream. + + + + Initializes a new instance of the CompressedStream class. + + The base input/output stream. + Stream operational mode. + Compression algorithm. + Checksum algorithm. + Specified mode is not allowed for the given stream. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the + values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The associated with + current object does not match the underlying stream. + For example, this exception is thrown when using with an underlying stream that is write only. + The parameter is less than zero.-or- The parameter is less than zero. + The sum of the and parameters is larger than the length of the buffer. + + + + Sets the length of the current stream. + + The desired length of the current stream in bytes. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Releases the unmanaged resources used by the Stream and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Initialize compressed stream. + + The base input/output stream. + Compression algorithm. + Checksum algorithm. + + + + Event occurs when calculation of the checksum for this stream is completed. + + + + + Gets checksum calculated for this stream starting from + the first read/write operation and up to the Flush call. + + + + + Gets the compressed size of the stream. + + + + + Gets or sets the checksum algorithm will be used during compression-decompression. + + + + + Base class for the compression settings. + + + + + Copy settings from the given base settings. + + Base settings to copy from. + + + + Prepare settings for usage in zip archive entries. + + Central directory header. + + + + Called when property value is changed. + + Property name. + + + + Occurs when a property value changes. + + + + + Gets or sets compression method. + + + + + Represents base class for all compression and decompression functionality. + + + + + Initializes a new instance of the CompressionTransformBase class. + + + + + Transforms the specified region of the input byte array and copies + the resulting transform to the specified region of the output byte array. + + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Transforms current input buffer. + + The final block flag. + True when output still available. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Specifies values for header type of the compressed stream. + + + + + Compressed stream does not contain a header. + + + + + Compressed stream is formatted in accordance with RFC 1950 + (ZLIB Compressed Data Format Specification version 3.3). + + + + + The compression level to be used for compression of data. + + + + + The data will be simply stored, + no compression should be performed. + + + + + Same as NoCompression. + + + + + The fastest but least effective compression. + + + + + A synonym for Fastest. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level with + a good balance of speed and compression efficiency. + + + + + A synonym for Optimal. + + + + + Pretty good compression. + + + + + Better compression than Level7. + + + + + The best compression, where best means + greatest reduction in size of the input data. + This is also the slowest compression. + + + + + A synonym for Best compression level. + + + + + Class which implements Deflate compression algorithm. + + + + + Interface which must be implemented by all implementations of the compression algorithm. + + + + + Creates a compressor object. + + A compressor object. + + + + Creates a decompressor object. + + A decompressor object. + + + + Initialize compression algorithm using given compression settings. + + Compression settings. + + + + Creates a compressor object. + + A compressor object. + + + + Creates a decompressor object. + + A decompressor object. + + + + Initialize compression algorithm using given compression settings. + + Compression settings. + + + + Represents a state of current block. + + + + + Block is not completed, need more input or more output. + + + + + Block flush performed. + + + + + Finish started, need only more output at next deflate. + + + + + Finish done, accept no more input or output. + + + + + Compressor which implements Deflate compression. + + + + + Represents base class for Deflate compression and decompression functionality. + + + + + Initializes a new instance of the DeflateTransformBase class. + + Deflate settings. + + + + The default number of window bits for the Deflate algorithm. + 15 is the maximum number of window bits for the Deflate algorithm (32K window). + + + + + Initializes a new instance of the DeflateCompressor class. + + Deflate settings. + + + + Creates RFC 1950 (ZLIB Compressed Data Format Specification version 3.3) header + to be written into the output stream. + + + + + Restore the heap property by moving down the tree starting at specified node, + exchanging a node with the smallest of its two sons if necessary, stopping + when the heap property is re-established (each father smaller than its two sons). + + The tree. + Index of node. + + + + Transforms current input buffer. + + The final block flag. + True when still output available. + + + + Scan a literal or distance tree to determine the frequencies of the codes + in the bit length tree. + + The tree. + Max code. + + + + Construct the Huffman tree for the bit lengths. + + The index of the last bit length code to send. + + + + Send the header for a block using dynamic Huffman trees: the counts, + the lengths of the bit length codes, the literal tree and the distance tree. + + Length of literal codes. + Length of distance codes. + Length of bit length codes. + + + + Send a literal or distance tree in compressed form, + using the codes in bit length tree. + + The tree. + Max code. + + + + Output a block of bytes on the stream. + + Buffer. + Start index. + Length. + + + + Save the match info and tally the frequency counts. + + Distance. + Length or unmatched char. + Return true if the current block must be flushed. + + + + Send the block data compressed using the given Huffman trees. + + Literal tree. + Distance tree. + + + + Flush the bit buffer and align the output on a byte boundary. + + + + + Copy a stored block, storing first the length + and its one's complement if requested. + + Buffer. + Length. + Should send the header. + + + + Send a stored block. + + Offset in window. + Length. + The flag of last block. + + + + Determine the best encoding for the current block: dynamic trees, static + trees or store, and output the encoded block. + + Offset in window. + Length. + The flag of last block. + + + + Fill the window if necessary. + + + + + Compress as much as possible from the input stream, return the current + block state. + This function does not perform lazy evaluation of matches and inserts + new strings in the dictionary only for unmatched strings or for short + matches. It is used only for the fast compression options. + + Flush flag. + Returns the current block state. + + + + Copy without compression as much as possible from the input buffer. + + Flush flag. + Returns the current block state. + + + + Same as above, but achieves better compression. We use a lazy + evaluation for matches: a match is finally adopted only if there is + no better match at the next window position. + + Flush flag. + Returns the current block state. + + + + Initialize the tree data structures. + + + + + Sets configuration parameters by the compression level. + + Compression level. + + + + Flush as much pending output as possible. + All deflate output goes through this function. + + + + + Read a new buffer from the current input stream, update + total number of bytes read. All deflate input goes through + this function. + + Buffer. + Start position in buffer. + Size. + + + + + Represents configuration of deflate algorithm. + + + + + Returns instance of Config class by the compression level. + + Compression level. + Instance of Config class. + + + + Use a faster search when the previous match is longer + than this reduce lazy search above this match length. + + + + + Attempt to find a better match only when the current match is + strictly smaller than this value. This mechanism is used only for + compression levels >= 4. For levels 1,2,3: MaxLazy is actually + MaxInsertLength (See DeflateFast). + Do not perform lazy search above this match length. + + + + + Quit search above this match length. + + + + + To speed up deflation, hash chains are never searched beyond this length. + A higher limit improves compression ratio but degrades the speed. + + + + + Represents constants for deflate compression. + + + + + Z-lib header: the deflate compression method. + + + + + Bit length codes must not exceed MaxBitLengthBits bits. + + + + + Repeat previous bit length 3-6 times (2 bits of repeat count). + + + + + Repeat a zero length 3-10 times (3 bits of repeat count). + + + + + Repeat a zero length 11-138 times (7 bits of repeat count). + + + + + Decompressor which implements Deflate compression. + + + + + Initializes a new instance of the DeflateDecompressor class. + + Deflate settings. + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + + Transforms current input buffer. + + The final block flag. + True when still output available. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Represents a state of decompressor process. + + + + + Represents a type of block in deflated data. + + + + + Compression settings of the Deflate method. + + + + + Initializes a new instance of the DeflateSettings class. + + + + + Copy settings from the given base settings. + + Base settings to copy from. + + + + Prepare settings for usage in zip archive entries. + + Central directory header. + + + + The compression level of deflate algorithm to be used for deflating by a CompressedStream. + + + + + Gets or sets compression stream header type. + + + + + Inflates data using a lookup table combined with a HuffmanTree. + + + + + Initializes static members of the InflateTree class. + + + + + Initializes a new instance of the InflateTree class. + + + + + Tries to get enough bits from input and try to decode them. + + Input buffer. + Next symbol or -1 when there is no enough bits in input. + + + + Calculate the huffman codes according to RFC 1951. + + Huffman codes. + + + + Represents input buffer for inflating data using Huffman coding. + + + + + Initializes a new instance of the InputBitsBuffer class. + + + + + Checks available bits in the bit buffer. + + Count of bits. + True if available. + + + + Gets available bits from buffer. + + Count of required bits. + Bits data. + + + + Read bytes to output buffer. + + Output buffer. + Offset. + Length. + Count of bytes which are read. + + + + Set current working buffer. + + Bytes buffer. + Offset. + Length. + + + + Skips bits in bit buffer. + + Count of bits to skip. + + + + Skips to the next byte boundary. + + + + + Gets 16 or more bits into bit buffer. + + Bit buffer. + + + + Available bits in bit buffer. + + + + + Available bytes. + + + + + Is input required. + + + + + Represents output window for inflating data using Huffman coding. + + + + + Initializes a new instance of the OutputWindow class. + + + + + Adds a byte to output window. + + Byte. + + + + Copies bytes within output window. + Moves backwards distance bytes and copy length bytes. + + Length. + Distance. + + + + Read bytes to output buffer. + + Output buffer. + Offset. + Length. + Count of bytes which are read. + + + + Reads bytes from input. + + InputBitsBuffer. + Length. + Count of read bytes. + + + + Gets available bytes count. + + + + + Gets free bytes count. + + + + + Represents Huffman static tree. + + + + + Initializes static members of the StaticTree class. + + + + + Initializes a new instance of the StaticTree class. + + + + + Static tree. + + + + + Extra bits for each code. + + + + + Base index for extra bits. + + + + + Max number of elements in the tree. + + + + + Max bit length for the codes. + + + + + Deflates data using Huffman coding. + + + + + Reverse the first specified bits of a code, + using straightforward code (a faster method would use a table). + + Value. + The length of bits to reverse. + Result of reverse. + + + + Map from a distance to a distance code. + + + No side effects. DistanceCode[256] and DistanceCode[257] are never used. + + + + + Construct one Huffman tree and assigns the code bit strings and lengths. + Update the total bit length for the current block. + + Deflate compressor. + + + + Generate the codes for a given tree and bit counts (which need not be optimal). + + The tree. + Max code. + Bit length count. + + + + Compute the optimal bit lengths for a tree and update the total bit length for the current block. + + Deflate compressor. + + + + The Optimization Data for LZMA match finder. + + + + + Represents the LZMA range encoder. + + + + + Class which implements Deflate compression algorithm. + + + + + Creates a compressor object. + + A compressor object. + + + + Creates a decompressor object. + + A decompressor object. + + + + Initialize compression algorithm using given compression settings. + + Compression settings. + + + + Compressor which implements LZMA compression. + + + + + Represents base class for LZMA compression and decompression functionality. + + + + + Initializes a new instance of the class. + + Settings. + + + + Initializes a new instance of the class. + + Settings. + + + + Creates transformation header to be written into the output stream. + + + + + Transforms current input buffer. + + The final block flag. + True when output still available. + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources + (true) on only unmanaged resources (false) should be released. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Decompressor which implements LZMA decompression algorithm. + + + + + Initializes a new instance of the class. + + Settings. + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Represents a state of decompressor process. + + + + + Specifies values for a type of the match finder for LZMA compression. + + + + + The match finder uses two bytes for the hash. + + + + + The match finder uses four bytes for the hash. + + + + + Compression settings of the Deflate method. + + + + + Initializes a new instance of the class. + + + + + Copy settings from the given base settings. + + Base settings to copy from. + + + + Prepare settings for usage in zip archive entries. + + Central directory header. + + + + Gets or sets dictionary size [0 - 27]. + Default value is 23 (8MB). + + + + + Gets or sets number of position state bits for LZMA [0 - 4]. + Default value is 2. + + + + + Gets or sets number of literal context bits for LZMA [0 - 8]. + Default value is 3. + + + + + Gets or sets number of literal position bits for LZMA [0 - 4]. + Default value is 3. + + + + + Gets or sets number of fast bytes [5 - 273]. + Default value is 32. + + + + + Gets or sets a type of the match finder. + + + + + Gets or sets length of the stream for compressing. + Used for single compressed streams only (not for ZIP archives). + Allows to avoid using the end of stream marker for compressed stream. + If it is set to -1, then the marker will be used. + + + + + Gets or sets length of the stream for decompressing. + + + + + Gets or sets a value which indicates whether + the compression stream should use zip header type. + + + + + Represents LZMA state for compressing and for decompressing. + + + + + Class which implements Store (no compression) algorithm. + + + + + Creates a compressor object. + + A compressor object. + + + + Creates a decompressor object. + + A decompressor object. + + + + Initialize compression algorithm using given compression settings. + + Compression settings. + + + + Compressor which implements Store compression. + + + + + Base class for the Store (no compression) transformation. + + + + + Initializes a new instance of the StoreTransformBase class. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Decompressor which implements Store compression. + + + + + Compression settings of the Store method. + + + + + Initializes a new instance of the StoreSettings class. + + + + + Platform independent manager. + + + + + Interface which provides platform-specific operations. + + + + + Creates temporary stream. + + Stream will be used for temporary operations. + + + + Deletes temporary stream. + + Stream to delete. + + + + Gets crypto provider initialized using given encryption settings. + + Encryption settings. + Crypto provider. + Specified crypto algorithm is not supported. + + + + Indicates whether specified encoding is supported for this platform. + + + + + + + Gets a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Gets default encoding for this platform. + + + + + Gets a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Creates temporary stream. + + Stream will be used for temporary operations. + + + + Deletes temporary stream. + + Stream to delete. + + + + Gets crypto provider initialized using given encryption settings. + + Encryption settings. + Crypto provider. + Specified crypto algorithm is not supported. + + + + Indicates whether specified encoding is supported for this platform. + + Encoding. + true if encoding is allowed in the ZIP file. + + + + Gets a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Gets default encoding for this platform. + + + + + Gets a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Cryptographic stream. Allows encrypt or decrypt information from the given input stream. + + + + + Initializes a new instance of the CryptoStream class. + + Input stream. + Stream operational mode. + Crypto provider. + Specified mode is not allowed for the given stream. + + + + Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. + + + + + Releases the unmanaged resources used by the Stream and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Crypto provider which implements traditional PKWARE encryption. + + + + + Interface which provides method to encrypt/decrypt data in the ZIP archive. + + + + + Creates an decryptor object. + + A decryptor object. + + + + Creates an encryptor object. + + An encryptor object. + + + + Initialize crypto provider using given encryption settings. + + Encryption settings. + + + + Creates an decryptor object. + + A decryptor object. + + + + Creates an encryptor object. + + + + + + Initialize crypto provider using given encryption settings. + + Encryption settings. + + + + Base class for the transformations which implements traditional PKWARE encryption/decryption. + + + + + Initializes a new instance of the DefaultCryptoTransformBase class. + + + + + Creates transformation header to be written into the output stream. + + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Update encryption keys. + + Byte. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Gets encoding byte. + + + + + Crypto transformation which implements traditional PKWARE decryption. + + + + + Initializes a new instance of the DefaultDecryptor class. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Encryption settings for the default cryptographic provider (traditional PKWARE encryption. + + + + + Base class for the encryption settings. + + + + + Called when property value is changed. + + Property name. + + + + Occurs when a property value changes. + + + + + Gets name of the algorithm will be used for encryption/decryption. + + + + + Initializes a new instance of the DefaultEncryptionSettings class. + + + + + Gets or sets password will be used for encryption/decryption. + + + + + Gets or sets last modification file date and time. + + + + + Crypto transformation which implements traditional PKWARE encryption. + + + + + Initializes a new instance of the DefaultEncryptor class. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + The exception that is thrown when a data stream is in an invalid format. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified error message. + The error message that explains the reason for the exception. + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + + Common interface for the data structures defined in the ZIP File Format Specification. + + + + + Read data from the binary reader. + + Binary reader to read data from. + true if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Represents the compression types. + + + + + This is the default compression type which uses the deflate algorithm. + + + + + This compression type uses the LZMA algorithm. + + + + + Represents the compression methods. + + + + + This is the default compression method. + + + + + This is the no-compression method. + + + + + This is the fastest compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is the the best compression method. + + + + + This is the the best compression method. + + + + + Represents a stream that can read from a compressed stream. + + + + + Initializes a new instance of the ZipInputStream class. + + + The stream that will be decompressed. + + + + + Reads a byte from the stream and advances the position within the stream + by one byte, or returns -1 if at the end of the stream. + The unsigned byte cast to an 32-bit integer, or -1 if at the end of the stream. + + + + + The stream that is decompressed. + + + + + Gets the uncompressed size of the stream. + + + + + Represents a stream that can write into a compressed stream. + + + + + Initializes a new instance of the ZipOutputStream class. + + + The stream that will be compressed. + + + + + Initializes a new instance of the ZipOutputStream class. + + + The stream that will be compressed. + + /// + The compression method. + + + + + Initializes a new instance of the ZipOutputStream class. + + + The stream that will be compressed. + + /// + The compression level. + + + + + Writes a byte to the current position in the stream and advances the + position within the stream by one byte. + + The byte to write to the stream. + + + + Create DeflateSettings for specified compression level. + + Compression level. + DeflateSettings. + + + + The stream that is decompressed. + + + + + Gets the uncompressed size of the stream. + + + + + Represents the ZipPackage class. + + + + + Represents a package of compressed files in the zip archive format. + + + + + Value that describes the type of action the zip archive can perform on entries. + + + + + Binary reader is used to read from working stream. + + + + + Binary writer is used to write to working stream. + + + + + Track whether Dispose has been called. + + + + + Encoding of the entry name. + + + + + Original archive stream. If this stream doesn't support seeking then + temporary working stream will be created. + + + + + Working archive stream. If original stream doesn't support seeking then + temporary working stream will be created. + + + + + True to leave the stream open after the ZipArchive object is disposed; otherwise, false. + + + + + Indicates whether the central directory have been read. + + + + + ZIP Archive End of Central Directory. + + + + + ZIP64 End of Central Directory Locator. + + + + + ZIP64 End of Central Directory Record. + + + + + ZIP entries. + + + + + Initializes a new instance of the ZipArchive class from the specified stream. + + The stream that contains the archive to be read. + + + + Initializes a new instance of the ZipArchive class. + + The stream that contains the archive to be read. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + True to leave the stream open after the ZipArchive object is disposed; otherwise, false. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter + only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + + + + Initializes a new instance of the ZipArchive class. + + The stream that contains the archive to be read. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + True to leave the stream open after the ZipArchive object is disposed; otherwise, false. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter + only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + Compression settings. + Encryption settings. + + + + Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. + + + + + Creates an empty entry that has the specified path and entry name in the zip archive. + + A path, relative to the root of the archive, that specifies the name of the entry to be created. + An empty entry in the zip archive. + The entry name is empty. + The entry name is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + Creates an empty entry that has the specified path and entry name in the zip archive. + + A path, relative to the root of the archive, that specifies the name of the entry to be created. + Compression settings. + An empty entry in the zip archive. + The entry name is empty. + The entry name is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + Releases the resources used by the current instance of the ZipArchive class. + + + + + Retrieves a wrapper for the specified entry in the zip archive. + + A path, relative to the root of the archive, that identifies the entry to retrieve. + A wrapper for the specified entry in the archive; null if the entry does not exist in the archive. + The entry name is empty. + The entry name is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + + Release the unmanaged resources used by the current instance of the ZipArchive class. + + True to leave the stream open after the ZipArchive object is disposed; otherwise, false. + + + + Called by the Dispose() and Finalize() methods to release the unmanaged + resources used by the current instance of the ZipArchive class, and optionally + finishes writing the archive and releases the managed resources. + + True to finish writing the archive and release unmanaged and managed resources; + false to release only unmanaged resources. + + + + Dispose streams. + + + + + Writes archive to the original stream. + + + + + Occurs when a property value changes. + + + + + Gets the collection of entries that are currently in the zip archive. + + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + + Gets entry name encoding. + + + + + Gets a value that describes the type of action the zip archive can perform on entries. + + + + + Gets compression settings. + + + + + Gets encryption settings. + + + + + Gets number of the disk. + + + + + Gets reader for the working stream. + + + + + Gets writer for the working stream. + + + + + Gets start of the central directory. + + + + + Initializes a new instance of the ZipPackage class from the specified stream. + + The stream that contains the archive to be read. + Mode. + + + + This method is used to create a ZipPackage from a stream. + + Stream. + ZipPackage instance. + + + + This method is used to create a ZipPackage with the passed file name. + + File name. + ZipPackage instance. + + + + Checks whether the stream that represents a zip file is actually a zip file. + + Stream. + True if the stream represents a zip file. + + + + Checks whether the file with the passed file name is actually a zip file. + + File name. + True if the file represents a zip file. + + + + Opens zip archive from the Stream. + + Stream. + ZipPackage instance. + + + + This method is used to open a ZipPackage with the passed file name. + + File name. + File access. + ZipPackage instance. + + + + Adds a file with the passed file name in the ZipPackage. + + File name. + + + + Adds a file with the passed file name in the ZipPackage. + + + + + Adds the files from the passed IEnumerable of file names in the ZipPackage. + + + + + Adds the files from the passed IEnumerable of file names in the ZipPackage. + + + + + Adds a file with the passed file name in the ZipPackage and associates it with the passed file name in zip. + + + + + Adds a file with the passed file name in the ZipPackage and associates it with the passed file name in zip. + + + + + Adds a file with the passed file name in the ZipPackage, associates it with the passed file name in zip and sets a date time for the entry. + + + + + Adds a file with the passed file name in the ZipPackage, associates it with the passed file name in zip and sets a date time for the entry. + + + + + Adds a stream in the ZipPackage and associates it with the passed file name in zip. + + Stream. + File name in zip archive. + + + + Adds a stream in the ZipPackage and associates it with the passed file name in zip. + + Stream. + File name in zip archive. + Compression type. + + + + Adds a stream in the ZipPackage, compresses it with the passed compress method, + associates it with the passed file name in zip and sets a date time for the entry. + + Stream. + File name in zip archive. + Compression level. + Date and time of file. + + + + Adds a stream in the ZipPackage and associates it with the passed file name in zip. + + Stream. + File name in zip archive. + Compression level. + Date and time of file. + Compression type. + + + + Closes the ZipPackage. + + If the parameter is set to true then closes the file. + + + + Gets the index of the entry in the list of entries of the ZipPackage. + + File name in zip archive. + Index of entry or -1 when the entry is not found. + + + + Removes the passed entry from the ZipPackage. + + + + + Gets the file name for the ZipPackage. + + + + + Gets the collection of entries that are currently in the zip archive. + + The zip archive does not support reading. + The zip archive has been disposed. + + + + Represents the ZipPackageEntry class. + + + + + Initializes a new instance of the ZipPackageEntry class. + + ZipArchiveEntry. + + + + Opens the entry from the zip archive. + + The stream that represents the contents of the entry. + + + + Deletes the entry. + + + + + Gets the file attributes for the entry. + + + + + Gets the compressed size for the entry. + + + + + Gets the file name in the ZipPackage for the entry. + + + + + Gets the uncompressed size for the entry. + + + + + Static class which provides access to the platform-specific settings for all + parts of the ZIP library. + + + + + Gets or sets platform manager. + + + + + Operational mode of the cryptographic and compression streams. + + + + + Read operation is allowed. + + + + + Write operation is allowed. + + + + + Represents header of the transformation. + The extra data precedes the transformed data which provides + some additional information about transformation (compression or encryption). + + + + + Initializes a new instance of the TransformationHeader class. + + + + + Gets or sets buffer to store header information. + + + + + Gets or sets number of byte to read. + + + + + Gets initialization data of the header. + + + + + Gets length of the transformation header. + + + + + Gets or sets the flag which indicates + that the compressed size should include the header size. + + + + + Platform manager which can be used with full version of the .NET Framework. + + + + + Initializes a new instance of the DotNetPlatformManager class. + + + + + Creates temporary stream. + + Stream will be used for temporary operations. + + + + Deletes temporary stream. + + Stream to delete. + + + + Gets crypto provider initialized using given encryption settings. + + Encryption settings. + Crypto provider. + Specified crypto algorithm is not supported. + + + + Indicates whether specified encoding is supported for this platform. + + Encoding. + true if encoding is allowed in the ZIP file. + + + + Gets a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Gets default encoding for this platform. + + + + + Gets a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Gets or sets type of the temporary stream. The default value is TemporaryStreamType.Memory. + + + + + Type of the temporary stream. + + + + + The temporary stream represents temporary file in the file system. + + It allows manipulations with large archives and minimize memory consumption. + + + + The temporary stream represents data in the memory. + + It is the fastest way of the data manipulation. + + + + Provides static methods for creating, extracting, and opening zip archives. + + + + + Archives a file by compressing it and adding it to the zip archive. + + The zip archive to add the file to. + The path to the file to be archived. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. + The name of the entry to create in the zip archive. + New entry in archive. + + + + Archives a file by compressing it using the specified compression level and adding it to the zip archive. + + The zip archive to add the file to. + The path to the file to be archived. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. + The name of the entry to create in the zip archive. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + New entry in archive. + + + + Archives a file by compressing it using the specified compression settings and adding it to the zip archive. + + The zip archive to add the file to. + The path to the file to be archived. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. + The name of the entry to create in the zip archive. + Compression settings. + New entry in archive. + + + + Creates a zip archive that contains the files and directories from the specified directory. + + The path to the directory to be archived, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The path of the archive to be created, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + + + + Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level, and optionally includes the base directory. + + The path to the directory to be archived, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The path of the archive to be created, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + True to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory. + + + + Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level, and optionally includes the base directory. + + The path to the directory to be archived, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The path of the archive to be created, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + True to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + + + + Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression settings, and optionally includes the base directory. + + The path to the directory to be archived, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The path of the archive to be created, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + Compression settings. + True to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + + + + Extracts all the files in the specified zip archive to a directory on the file system. + + The path to the archive that is to be extracted. + The path to the directory in which to place the extracted files, + specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + + + + Extracts all the files in the specified zip archive to a directory on the file system and uses the specified character encoding for entry names. + + The path to the archive that is to be extracted. + The path to the directory in which to place the extracted files, + specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The encoding to use when reading or writing entry names in this archive. + Specify a value for this parameter only when an encoding is required for interoperability with zip archive + tools and libraries that do not support UTF-8 encoding for entry names. + + + + Extracts all the files in the zip archive to a directory on the file system. + + The zip archive to extract files from. + The path to the directory to place the extracted files in. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. + + + + Extracts an entry in the zip archive to a file. + + The zip archive entry to extract a file from. + The path of the file to create from the contents + of the entry. You can specify either a relative or an absolute path. A relative path + is interpreted as relative to the current working directory. + + + + Extracts an entry in the zip archive to a file, and optionally overwrites an existing file that has the same name. + + The zip archive entry to extract a file from. + The path of the file to create from the contents + of the entry. You can specify either a relative or an absolute path. A relative path + is interpreted as relative to the current working directory. + True to overwrite an existing file that has the same name as the destination file; otherwise, false. + + + + Opens a zip archive at the specified path and in the specified mode. + + The path to the archive to open, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + One of the enumeration values that specifies the actions which are allowed on the entries in the opened archive. + The opened zip archive. + + + + Opens a zip archive at the specified path and in the specified mode. + + The path to the archive to open, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + One of the enumeration values that specifies the actions which are allowed on the entries in the opened archive. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + The opened zip archive. + + + + Opens a zip archive for reading at the specified path. + + The path to the archive to open, specified as a relative or absolute path. + A relative path is interpreted as relative to the current working directory. + The opened zip archive. + + + + Indicates whether specified directory is empty or not. + + Directory info. + True if directory is empty; otherwise - false. + + + + This method is used to copy the source stream to the destination stream. + + + + + + + Represents data descriptor record described in the + ZIP File Format Specification v6.3.3, #4.3.9. + + + + + Represents base fields of data descriptor record described in the + ZIP File Format Specification v6.3.3, #4.3.9. + + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets crc-32. + + + + + Gets or sets compressed size. + + + + + Gets or sets uncompressed size. + + + + + Data descriptor header signature. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Represents Zip64 end of central directory locator described in the + ZIP File Format Specification v6.3.3, #4.3.15. + + + + + Zip64 end of central directory locator signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets number of the disk with the + start of the zip64 end of + central directory. + + + + + Gets or sets relative offset of the zip64 + end of central directory record. + + + + + Gets or sets number of disks. + + + + + Represents Zip64 end of central directory record described in the + ZIP File Format Specification v6.3.3, #4.3.14. + + + + + Zip64 end of central directory record signature. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets size of zip64 end of central + directory record. + + + + + Gets or sets byte which indicates the ZIP specification version + supported by the software used to encode the file. + + + + + Gets or sets byte which indicates the compatibility + of the file attribute information. + + + + + Gets or sets version needed to extract. + + + + + Gets or sets number of this disk. + + + + + Gets or sets number of the disk with the start of the central directory. + + + + + Gets or sets total number of entries in the central directory on this disk. + + + + + Gets or sets total number of entries in the central directory. + + + + + Gets or sets size of the central directory. + + + + + Gets or sets offset of start of central directory with respect to the starting disk number. + + + + + Represents a compressed file within a zip archive. + + + + + Track whether Dispose has been called. + + + + + Initializes a new instance of the ZipArchiveEntry class. + + Zip archive. + Central directory header correspondent to this entry. + + + + Initializes a new instance of the ZipArchiveEntry class. + + Zip archive. + Entry name. + + + + Deletes the entry from the zip archive. + + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than Update. + The zip archive for this entry has been disposed. + + + + Releases the resources used by the current instance of the ZipArchiveEntry class. + + + + + Opens the entry from the zip archive. + + The stream that represents the contents of the entry. + The resulting stream depends on the zip archive mode. + If zip archive mode is then read-only stream without seeking support is returned (). + If zip archive mode is then write-only stream without seeking support is returned (). + If zip archive mode is then read/write stream which supports seeking is returned. + + The entry is already currently open for writing. + -or- + The entry has been deleted from the archive. + -or- + The archive for this entry was opened with the Create mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. + -or- + The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + + Checks entry integrity. + + Message will be thrown if entry don't pass integrity check. + True - if entry is OK; false - otherwise. + + + + Writes central directory header. + + + + + Called by the Dispose() and Finalize() methods to release the unmanaged + resources used by the current instance of the ZipArchive class, and optionally + finishes writing the archive and releases the managed resources. + + True to finish writing the archive and release unmanaged and managed resources; + false to release only unmanaged resources. + + + + Occurs when a property value changes. + + + + + The zip archive that the entry belongs to, or null if the entry has been deleted. + + + + + Gets compressed size of the entry in the zip archive. + + + + + Gets or sets external file attributes. + + + + + Gets the relative path of the entry in the zip archive. + + + + + Gets or sets the last time the entry in the zip archive was changed. + + + + + Gets the uncompressed size of the entry in the zip archive. + + + + + Gets the file name of the entry in the zip archive. + + + + + Gets or sets compression method. + + + + + Gets or sets offset of the compressed data. + + + + + Gets disk start number. + + + + + Gets or sets offset of the local header. + + + + + Gets temporary stream which contains uncompressed data for update. + + + + + Specifies values for interacting with zip archive entries. + + + + + Only creating new archive entries is permitted. + + + + + Only reading archive entries is permitted. + + + + + Both read and write operations are permitted for archive entries. + + + + + Provides common internal static methods. + + + + + Copy specified number of bytes from one stream to another. + + Input stream. + Output stream. + Number of bytes to copy. + + + + Converts .NET DateTime structure to the MS-DOS date-time. + + DateTime structure to convert. + Packed date-time. + + + + Gets compression algorithm which corresponds to the given compression settings. + + Compression settings to get algorithm for. + Compression algorithm. + Compression method is not supported. + + + + Gets compression settings for the specified compression method. + + Compression method to get settings for. + Base settings to copy parameters from. + Compression settings. + Compression method is not supported. + + + + Detect whether the given path string ends with directory separator char (i.e. given path represents directory). + + Path string. + True if path string ends with directory separator char; otherwise - false. + + + + Gets value which indicates whether specified compression method is supported. + + Compression method to check. + True - if compression method is supported; false - otherwise. + + + + Converts MS-DOS date-time to the .NET DateTime structure. + + Packed date-time to convert. + DataTime structure. + + + + Read specified number of bytes from the given stream to the buffer. + + Stream to read data from. + Buffer to write data to. + Number of bytes to read. + + + + Seek given stream backward to the data signature. + + Stream to seek. + Signature to find. + true if signature is found, otherwise false. + + + + Represents central directory header record described in the + ZIP File Format Specification v6.3.3, #4.3.12. + + + + + Represents file header base class for + the local file header and central directory header + which are described in the ZIP File Format Specification v6.3.3, #4.3.7 and #4.3.12. + + + + + Represents base fields of data descriptor record described in the + ZIP File Format Specification v6.3.3, #4.3.9. + + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets crc-32. + + + + + Gets or sets compressed size. + + + + + Gets or sets uncompressed size. + + + + + Copy properties from the given file header to this object. + + File header to copy properties from. + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets version needed to extract. + + + + + Gets or sets general purpose bit flag. + + + + + Gets or sets compression method. + + + + + Gets or sets last modification file date and time. + + + + + Gets or sets file name. + + + + + Gets or sets extra fields data. + + The extra fields data. + + + + Gets or sets list of extra fields. + + + + + Central directory header signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets byte which indicates the ZIP specification version + supported by the software used to encode the file. + + + + + Gets or sets byte which indicates the compatibility + of the file attribute information. + + + + + Gets or sets disk number start. + + + + + Gets or sets internal file attributes. + + + + + Gets or sets external file attributes. + + + + + Gets or sets relative offset of local header. + + + + + Gets or sets file comment. + + + + + Represents data descriptor record described in the + ZIP File Format Specification v6.3.3, #4.3.9. + + + + + Data descriptor header signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Copy properties from the given file header to this object. + + File header to copy properties from. + + + + Gets or sets compressed size. + + + + + Gets or sets uncompressed size. + + + + + Represents general purpose bit flag for Methods 8 and 9 - Deflating + ZIP File Format Specification v6.3.3, #4.4.4. + + + + + Bit 2 Bit 1 + 0 0 Normal (-en) compression option was used. + + + + + Bit 2 Bit 1 + 0 1 Maximum (-exx/-ex) compression option was used. + + + + + Bit 2 Bit 1 + 1 0 Fast (-ef) compression option was used. + + + + + Bit 2 Bit 1 + 1 1 Super Fast (-es) compression option was used. + + + + + Represents end of central directory record described in the + ZIP File Format Specification v6.3.3, #4.3.16. + + + + + End of central directory signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Read data from the binary reader. + + Binary reader to read data from. + true if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets number of this disk. + + + + + Gets or sets number of the disk with the start of the central directory. + + + + + Gets or sets total number of entries in the central directory on this disk. + + + + + Gets or sets total number of entries in the central directory. + + + + + Gets or sets size of the central directory. + + + + + Gets or sets offset of start of central directory with respect to the starting disk number. + + + + + Gets or sets .ZIP file comment. + + + + + Represents base class for extra field described in the + ZIP File Format Specification v6.3.3, #4.5.2. + + + + + Represents base class for extra field described in the + ZIP File Format Specification v6.3.3, #4.5.2. + + + + + Gets extra field collection. + + The header info. + IEnumerable of ExtraFieldBase instances. + + + + Gets extra field data. + + Extra field collection. + Extra field data. + + + + Should implement parsing of extra field data. + + Extra field data. + + + + Gets extra field data. + + Byte array of extra field data. + + + + Gets known extra field type. + + + + + Gets extra field type (Header ID). + + + + + Gets extra field data. + + Byte array of extra field data. + + + + Implements parsing of extra field data. + + Extra field data. + + + + Gets or sets vendor version for this record. + + + + + Gets or sets signature (AE). + + + + + Gets or sets bit length of encryption key. + 1 - 128-bit , 2 - 192-bit , 3 - 256-bit. + + + + + Gets or sets method. + + + + + Gets extra field type (Header ID). + + + + + Represents identifier of the encryption algorithm described in the + ZIP File Format Specification v6.3.3, #7.2.3.2. + + + + + Unknown algorithm. + + + + + DES algorithm. + + + + + RC2 algorithm. + The version needed to extract up to 5.2. + + + + + 3DES 168 bit algorithm. + + + + + 3DES 112 bit algorithm. + + + + + AES 128 bit algorithm. + + + + + AES 192 bit algorithm. + + + + + AES 256 bit algorithm. + + + + + RC2 algorithm. + The version needed to extract 5.2 and higher. + + + + + Blowfish algorithm. + + + + + Twofish algorithm. + + + + + RC4 algorithm. + + + + + Represents extra field type (Header ID) described in the + ZIP File Format Specification v6.3.3, #4.5.2. + + + + + Unknown extra field type. + + + + + Zip64 extra field type. + + + + + Ntfs extra field type. + + + + + StrongEncryption extra field type. + + + + + UnixTime extra field type. + + + + + AesEncryption extra field type. + + + + + Represents strong encryption extra field described in the + ZIP File Format Specification v6.3.3, #4.5.12. + + + + + Gets extra field data. + + Byte array of extra field data. + + + + Implements parsing of extra field data. + + Extra field data. + + + + Gets or sets format definition for this record. + + + + + Gets or sets encryption algorithm identifier. + + + + + Gets or sets bit length of encryption key. + + + + + Gets or sets processing flags. + + + + + Gets extra field type (Header ID). + + + + + Represents base class for extra field described in the + ZIP File Format Specification v6.3.3, #4.5.2. + + + + + Initializes a new instance of the UnknownExtraField class. + + Header Id. + + + + Gets extra field data. + + Byte array of extra field data. + + + + Implements parsing of extra field data. + + Extra field data. + + + + Gets extra field type (Header ID). + + + + + Gets or sets extra field data. + + + + + Represents Zip64 Extended Information Extra Field described in the + ZIP File Format Specification v6.3.3, #4.5.3. + + + + + Gets extra field data. + + Byte array of extra field data. + + + + Implements parsing of extra field data. + + Extra field data. + + + + Gets or sets original uncompressed file size. + + + + + Gets or sets size of compressed data. + + + + + Gets or sets offset of local header record. + + + + + Gets or sets number of the disk on which this file starts. + + + + + Gets extra field type (Header ID). + + + + + Represents general purpose bit flag in the + ZIP File Format Specification v6.3.3, #4.4.4. + + + + + Bit 0: If set, indicates that the file is encrypted. + + + + + Bit 3: If this bit is set, the fields crc-32, compressed + size and uncompressed size are set to zero in the + local header. The correct values are put in the + data descriptor immediately following the compressed + data. + + + Note: PKZIP version 2.04g for DOS only + recognizes this bit for method 8 compression, newer + versions of PKZIP recognize this bit for any + compression method. + + + + + Bit 4: Reserved for use with method 8, for enhanced + deflating. + + + + + Bit 5: If this bit is set, this indicates that the file is + compressed patched data. + + + Note: Requires PKZIP version 2.70 or greater. + + + + + Bit 6: Strong encryption. If this bit is set, you MUST + set the version needed to extract value to at least + 50 and you MUST also set bit 0. If AES encryption + is used, the version needed to extract value MUST + be at least 51. See the section describing the Strong + Encryption Specification for details. Refer to the + section in this document entitled "Incorporating PKWARE + Proprietary Technology into Your Product" for more + information. + + + + + Bit 11: Language encoding flag (EFS). If this bit is set, + the filename and comment fields for this file + MUST be encoded using UTF-8 (see APPENDIX D). + + + + + Bit 13: Set when encrypting the Central Directory to indicate + selected data values in the Local Header are masked to + hide their actual values. See the section describing + the Strong Encryption Specification for details. Refer + to the section in this document entitled "Incorporating + PKWARE Proprietary Technology into Your Product" for + more information. + + + + + Represents general purpose bit flag for the Method 6 - Imploding + ZIP File Format Specification v6.3.3, #4.4.4. + + + + + For Method 6 - Imploding. + Bit 1: If the compression method used was type 6, + Imploding, then this bit, if set, indicates + an 8K sliding dictionary was used. If clear, + then a 4K sliding dictionary was used. + + + + + For Method 6 - Imploding. + Bit 2: If the compression method used was type 6, + Imploding, then this bit, if set, indicates + 3 Shannon-Fano trees were used to encode the + sliding dictionary output. If clear, then 2 + Shannon-Fano trees were used. + + + + + Represents local file header record described in the + ZIP File Format Specification v6.3.3, #4.3.7. + + + + + Local file header signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Initializes a new instance of the LocalFileHeader class. + + + + + Initializes a new instance of the LocalFileHeader class. + + File header to copy properties from. + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Represents general purpose bit flag for the Method 14 - LZMA + ZIP File Format Specification v6.3.3, #4.4.4. + + + + + Bit 1: If the compression method used was type 14, + LZMA, then this bit, if set, indicates + an end-of-stream (EOS) marker is used to + mark the end of the compressed data stream. + If clear, then an EOS marker is not present + and the compressed data size must be known + to extract. + + + + + Version needed to extract. + + +
+
diff --git a/Analysis/bin/x64/Debug/TelerikCommon.dll b/Analysis/bin/x64/Debug/TelerikCommon.dll new file mode 100644 index 0000000..f491256 Binary files /dev/null and b/Analysis/bin/x64/Debug/TelerikCommon.dll differ diff --git a/Analysis/bin/x64/Debug/ThemeSkin/FluentHexagon.tssp b/Analysis/bin/x64/Debug/ThemeSkin/FluentHexagon.tssp new file mode 100644 index 0000000..dbbba2f --- /dev/null +++ b/Analysis/bin/x64/Debug/ThemeSkin/FluentHexagon.tssp @@ -0,0 +1,298 @@ + + + true + + + 7X3bUus8s+D9VM07UOvq3wVrxYccd/5v7wqEQ4CEQAIsuHMSQwxJHJwj1H6zuZhHmlcYSbZj2ZbtHGxZcdyA17Ikt+xWSy21Wt3/7//833//93I4OJrL2kRRR//84v9wv47kUVftKaP3f37Npm+/i7/++7/+9//699/hoN2Xh/IRKD+a/Odyovzzqz+djv8zk1ksFn8W4h9Ve88IHMdn/tZvW11QVvqtjCZTadSVfx2hZxvSUP7n18VgJo+mV/JSeldHRs6T+QICeAFQ3dHRv1vT74H8II/ViTJVtW+UCJKtlNpUHk6MZJDRlgeypnz+eVZGZ+poqqmDyR+EY/IHvLv9sSN4aX+PwdtcalJPAe/z66iqTMYD6Vt/ybqkjC6UweDX0Y38jd+eSWOpq0xBWvbXqnJQPaijqaljWZt+t+TpFJDvyLz/5xfp3ZqaMlSmyhy8H8S8uv1jvhF6+V9HTxKg1z+/WupA6f06yuxU55MymUmD8wGg+Gj651Tqfp6pA1VbVSKI3MmReQm3stZQVad98FRd7Vlf1VBHMl7PvzObNGNkja/OJvId6BQ4B9jTEs0GfKl0cmReDpcNmpo8mcg9jAlsKclmgXwWtL5xOQAWaMtLZ/NX5TdpNpheqJAxUPPbUkJrfjt1dORmU8vvqnz0WDs5Kv4RcuMpWwR67itTWU9H5MHuIyOOJtv5FNUZI1lOVa0naw7CgFccSGMwUJi5iDyu1NCI9CD1TAoBeikdZQCwrki0qpct7rkcfI/7GPdg9xFxz9lsMlWHtg5mPPQsdx5r4Y5yVmUt5cca5niOPTnX1qTRZCxpIAeTda7URMs77GsPQNrdSt/qzDXrVUaQVf8lcGWB+w9z2utIjGLMMuqwViFw/RFnP/ElD8+VeRd5zEQa5OEBeWIdRogyr9ZVRzZxhydYZClGOx3I8SdH+t+uvRgbpPSvoDJM+dT6rPSmfauPxDFKhfxFp+rSQUKAbiCbTMMWf1e6XUAoG4fbk6hNeWH3z4ngUiymTL73opgwM4YjJ9bsq9EUS6PGbOQBlQV53FDrkvaujJpSDyqrDTq5UiORyKgKvEMav7vyK1bH6gN8K2GhIYw3/Ve2jH7MqZE7OYqmcJIpe3Jk/MZIplZfGssOKj2os1HvQe5OUSa6cAalyFlRUMt4Mfvi117Y9i7/w+BqVZe6DVUbSgNsuepOTvR6NZpJgP3zGrNhR9bu3lDNE2v9wdoAtFqEFct80bUyMxKprMyKsEHYmkwgFfJjrSUPlY466PE5TJ/tkUdTs31kVg75OVYFt69s48q5MueWbVYyDdkG+nwOTQH2QLbxgrdwg3lMSDeByh73lfLevwelkE6eNWmK1hWWFLVuEy09mVjVrNmTBJ9posDKPDF3QD3Jfw6SLfNZ1xzESKQyB4Fb9nEKCF85ypcFIDA5pxy1kmnIUdDxhdiX0h7jMdq/HcjYkGxLobRlbNTJnA52MJW1kQSlh10R606ntuMgZAEvmZeE62N33lTZYZA/kL2H2lB6d04KLjVl3GidPxt5urWEPS2K2RpCbVHMqMkg1/0nL1TeKzpUX+BVRf9FCQt4Oa2cVTConldB+WUliydWfuo/9UwRXJsZ8L+fzL7dVzaE9Pn0efx5Joca90AT3zAjSpV7g3bYMFNDI0wdXg5imEnv6d6zpcPFjNMwg0lXKrVNYQ9jObYWmvCHsNA0kyktNPVf5qy1sBa0raQI6dRWUiGaYCZ9HRXGwibZSjoi118pvZ5st1K0J1FSr+iVskad04HU/bQRx5ZCTbqgWlkjzllf0qZPirxoqoo5NuqWY/rZDs/sKKbM/qMLc8IGDa7ooI6Nu9zJ8Z0aYtuMcXdxxiIboD7jwQtGXsoQCWGI4JNHcJP2XYO7ioSpKJYX0XQ00hNBnlvgq1qFeKoV46k2S7XadczYqGyh7bwpr84Gvaak4OcXtRlzu3SuNSQ+0Htlxq27SMQqk9VNLY/RHwldbKcbu4+IHdyjfNiCfysTJxZ6rXt+7jE1j1gLFPVMLBH6n1T0eI0pq4X4szSVtTdpgA4DXIB/rTNCAWUSbfkoZEsnR4Uc/NuXxnuQAD8HNN6qTKIbL8uhAx+g8eI08Num512pc8sPyhoFE92MAs+DJgS/+9KIRu8KbkR7wUQ3Yl6ETvKyJ0elOAdSf111RZMluwsiUg61pRefh+OXcYlH2cZo8wje7RPmWZm4Dt6TrGbzgAsK8Lxcbh/6j+jdQGIyG4jjDLNmviDuQQNlvRsom8gG4kXYg/JgGiHw+T1ooJx3A+US2UBCFp7EKWbhNGEfhri8dwPlE9lAPFwGo/WwkI1zKr5uAxW8G6iQyAaCM0W0VhK4ONe767ZP0bt9iolsHyEHpwelHBzm4pxlB61lYTsYa0J3AxkZiV6r8gJsI+OyDw1FXA+ZOYluKkGETl1EAV32oamIKyMzJ9FNxRfh/EFA6oy96FXENZKZQ23HVWdufXIs7tpGe7bzunZTEVdLZk6ie5XAI/ZAM4s4vXOs3VTEdZOZk+imAsOeMQAKsbprXrupiCsoMyfRTVWAwy1c7/JM7/uu2oO4ljJzEt1S+oSiyO/DrMJmS+duL1t2shuNxxZY+7DKwpqGuNay5ye/7fZp2YW1DXHxZc9Pftvt0zoMaxviasyeT21NptMxXZit23bE5Zk9P/n9bp9WaljbENdr9vzkt90+Ld2wtiEu4Oz5yW+7PVrLYU1DXNHZ85PfdPuyuDuVNNg8lZEylKaya9/Mle3TcmYhJzVbU4gM0qY2OZtpkAUMSl1IgwlonPNRbxXwCsoY4/Jrx3ZIJzZ+Le1aDLrzGeulIfAXCnjNI7HI58LkL7bb2rV4dOcnr635ArTb1p0klw6nrV2LTXd+AtsaRUpECrkCdzht7VqcuvOT19YCB7u0AOcIxQNqa9di1p2fvLbmkc0mHMMF6On+UNratfh15yevrZF6KY8WTPzhNLVrsezOT15T67OyfPFApmbokGTACttRJnltDltb/zuwBvdaaDsLJa/JBQEemuXg34G1udeC21koeW2OdhUFDp5Y48QDa3WvpbezUPJavVCAGjW0L39oje61BncWSl6jo4V4yTQiOKhG91qMOwslr9F5jjfH99KhzeS8luXOQslrdTiyZ5Hh0KG1udf63FkoeW2OzuPyyHuHEOpeLFOHekFz6gV81ufOAjQO+EYa3CEsp4nx7vi7jynvD5eRlAKuEimfhTiabb/zv898RlJEuEqkfBbieLa91cE+8xlJ9eEqkfJZiHy2vcXDPvMZSdviKpHyWYhyc3tri33mM5KCx1Ui5bMQx7PtLT32mc9IKiVXCQb5LIwWD2rltd1fJagbbK1o2+dOQNKxuUow2An2lst2sL/ZRz4Lsr8hlkoyv9GLUUvtGBbBpyRmcLRXHOqtG6RhMpTyKEUetVlI7RWTeisWadg4pUxKkUkdJl17xabeekkaRlkpm1JkU7sN2l5xqbdWk4YVWcqlNCW+zWhur7jUWydKw+wt5VKaIt9u5bdXbOqtUqVhp5eyKUU2tWlL94pJvVWeNAwLUyalKfHtdpSMsumtMpI9YufaspLMjnEKXMPLV9yuvtZmEpeS0p6Xskk0YwmKw4Mc2O4Dk7iUhPa8lEkiYZI8dHIMY3+zG+oM4wOXhs6el/JIVDxixMTbBx5x6cfseSmPRCNssoWTo2LcPn/XZhKXesqelzJJZMIG8omQZXcHE2MEl3LInpcySSRMwoFxJAv+9mL561LN2PNSFolG2IhgECnA1Q3by18Sc6RMERFTOA6HUtJDsj1KERUvqcYlunHJdm40ZUHAbUS1TqrPiWwUtB8pTVkQcBtRa5SqiyJjQftp05QFAbcRlVKpNioyQWw/iJqyIOA2osor1XVFNgraz6imLAi4jahQSzVpUbGg3Ul6yoGA2Yj6ulRRF5kctp8dTVkQcNuDpEw8DKdWWSk7RiOTvVSErDIJUX9n5aVsEs2o5aXGY5VNiDo2Ky9lk2hGEy9VG6tsQtSDWXkpm0TDJl7qMFbZhKirsvJSNolG6HiprFhlE6I+ycpL2SSa0cRLrcQqmxB1PlZeyiaRsImX6odVLiHqZay8lEuikTle6hnKbNKWl844Cy35XZUfay15qHTUQa90ocJQDIhHyFmhsYiTaBC52Siw5qPH2pFZ98lRaTyNkXAeQSoq3S5IRIdDYVgIgWvKGky500lk0DGwFGNhKnZpRneQCTTfEuA4KeSYm2+dShOlq+fcym/TB+W9b3I/OctqKj4f2QgZYWsxce7XJQEu1Jlx0HoSabXTqTq0c2dbk0aTsaShvh1ZzZCBSL3CuERYM2LbeKpuq+NWX+qpizgoDiqPo1pE7vi+GvJZfLXr/SvO+uF9VZMWdbVnDS5PAJnSlQZ3c+jHQVN+ACppEKMkupW+1ZlzKlGXtHdl9C++zMGf/zCEkCs1tKnCg9QzZbZeiTXynxxx+i+jNPotEImEJVOg0m+BBTLVhtK77KDSc1+Zym2l+2lkIho5E6OYciLUVnc0ajLodf/JX1YWFR2qL/Cqov++w2sWXk4rZxUMqucwb6nnpVCpZiCUMm9i4X17LBkHbIWviSF4E0vjt59ipv62Pr5m4TgznGNIxFJGesTyN8UHn/8LigoDcv6G+IIgQnw6QPpMdsUHkMy7O77ZnsA//zAqq7iyCGSS4BBVVioFSQVElIgEVZyWGN6aJ77oVjmZaTR1TXA/iF0dU1OTJxO5B7U6Nq2SLT3ReiS4uSvCzd18mItW++c1ZsOOrN29oZonZF0IC4NLU+r1wGf+C813rdHFnRzF8GLUgjcMF/v4QtTuweUwtvQ0yyBaeeRR0e/FpP9qq2O7ji/KExtIE0KvOticNBWYcWs6YP10qXt4+qyYlXmb6U/jn8/pExJs8xObpmCpkc3pSH5oc9ArXzFOP7S+8psH6wDw55TfVjIN+c2j9QG87sHkl/fbYvUtl+jJMbKkFrLQTjabD7ey1lBVp33wlE2p3lChhxWWhh+w6v2UNefw40qlNvycDkArsTbwGPqHbBn9OLQSVioFrUT25Mj4ZW3VYFsVwHmWbd3gmWvRrJguHPZ54RBlbWwsHFhZsjDnLlmfRuD9WhwvbVMMV17a7dNuv5fd3mN5lPBuT9owvxtPFXU0OZ2BVx3hm+akjBg2zjnh1NznwjbOz+FFz2B347xa+66P33/qP81MHVwzP+D+q7Yr1mW9fXms4wPXTBHdb/D8d/3jOldvny/fP86X9QcVYLkTr5bFt2MdH3rf1X2hC/CfS3p58P6jTyc+ofHx0nU+j71f0P3b1TJTADiEKwwpzNfaxPKLerWqwPt3mJ89X9278YP31c4tpNUXodFfgO+/fXWUf79R1K9TbCMb3X+A/OOKHd/0E32vkwgw/76K1Q9opdx70f/m2l5/g9xS1XuuUVXt9asu+uv1w/owejXAs3fOjXnIj0o97O+H/DMl07+yqN/VYP6p3l7mPZkfNIxeiB9OAW9kJpvyE8a/qL0J9A+V/72hCvB3stj7ofv1nycD5B+c39H9rki3g1gND9Y7lUA+hZBwhRiHPOTDmBthuqhlfrfYZ1VjKEdtygxiDlUFffg7+iweptiZB/dAJetrsUs2a/5N1a75NxOGzaQFSEXTwLqwL881dVRVF7Y1iEdeugxJgQmA0+6hvswLEZ99GTEMBx9cJubhNHb2sZo2vuyKD8vS8ZvLhDXpAfGNyPgsQNNodUWPURBSvT288eH1I3qE134pxAGxLkN8Vem287PoTG1bHetaQYdi3bekJe/AhD7JU8UDOXdL6xCq23KNjt6bcO6WTsVsnbqlesw5PXe7Z+dud1zfgUWx0lEGyLrLrBMmDWS6+5Qi1X3KKGtz7fhGb0Qdcn0Ye7zWRj15yYSz4gDdCNKD/Obd2hErg5J+xNCR/I5ThxmkIdF7IDzP7KUncZVItSWJgyo87fsCTx/voh1wAsQ3m5sHe4WNtQPegN43vzrt/Briahuefu5oq9PYEdIjnNPEYb/voeFDEA3/HwaweFp82VJ+ZOjoxZoF4EnRyH9Ug83xC2Ny/1JTxuY6Apf2hPQYZLx4WTENNjAZj8T76af+3zVkvNMjB4LjzjA3zwxzs04G/A3T++TeE2HB3hhlnS4XyYfOo/RpQTh0zqRTi8vB97gP03nT064tJSLbirPZBCylbW4tjIee5c5jLVzrA6syu/Rg7pTlytlKETBm0eWCxUyl44KliLiVVRohWrjsM6xUCjQyCMSu2zlOV8c4iYQl0+Ek046FsanalTwY17p2A3pHWrLUMHCT/aOLbGdvW9y0iNker+4LXVCmJgahWtkaFyC+Jgc3+T/aL0JDcdhuK+fQaKEBjQxKVVT+Czx7ScaHbJWhbXjVadtMhDP16+b9BZWH9QstdI+TBhoheNvaY0Yb5Hxk+2sZJUD6faLvXfi8n2U77DJjRoC+H+YXdXyQPktEv101LBCfml3hg1bMdc6vPGa0Uq0sLsi278jWfYUvUwx6C4jvfmXrXKoQ29tZfxBSZFuOyhv0hUYgfvRf5/t1gPz+g953iWzXCfjM70dnEyB975yF7LboDfxsATor4SyP2vvDxHd9hfjhzMm/KJ9sOw+enWDtteqPGWQrrx/LIPP/iv+m+vei90P336T+k3Ua5ejPA34R4dmAet27fTHQ3w+Vh/21R+w/+vej8UkfLyA/c/DsQh8rhe718QZ+7z0qv9Z4sfP4F+sSBwmKVl8au9ynKj+S1nuWB111KJ+pw/FAhqfA8PK6R9XgclHMB6Cp+7umzkY9oxJD1BUKs0yzWsp2nhfvveHTd1cYzDsfnFJvZRc15XTQGTbmr5eD2esPp/T+Pgxv2+9K8ydbfBxefLae+f6r8NSWLi8Wr61TgGM56/6Ms13hvlQb9rneVSV/+10Se2J31vupzzri9ej2pwZY73z+fM7XH4WG+gpwgHqwZz83evb2eTDrig998J6D2gd4r8uLcWf00OgID4PmZ2MA/j/oDvrt3tX1oHfZUJ/bi7mtzMfyuvN8MXp9anDd4VO/0849SD/Xzfvn3un94wX6e7gYoH87HLqfvOr/Xuj516f3+j3293DxcAme/9s/bZw78y4WrefG6e3Pa7t1fnF/I0zVHnc/754PPu5bReGR658+nk016ap3fiueXr9w5/PGoFG7f6poktAXH85K6fPp8+nzh/D8z2JujrFw/Hp55o6bF6f918uHcWfYPW6eX0w61ey0Dsa0++flBIxlZx3xgesI3PFtG46VleItdz3vXT3MO+1ssX35NOxVs4vmWan++vzKgfIt6bmnGmnm/4tPl6VF8wM8yz/Mu+D+lsfqBOVenh/MMVN9+Xs6aL6zq3XUrSHQr1PzaM+ioX00TSX0v7hnMT62EtB8yMtKAstL1sI8BU+I8LTGWqcNkoAv8LTGpoA7SfBeiG8FYX8/Buj0jHWoWw0Pc+T0SE+7+EP8C/Mg8z9fy79UqCUW9EFnxyOBTtj1SKAPbHUkcC1wHAmMkB7hGP2F/b6Hhk+HSPj/MIDdpW2uzJVz1r6yO5nGkjaHNpVzDG6/m/TIlsVy1u0s20qmQaYssjvKxussO8CnOFfm3dxkJVPyKc4hn+LMctPvLDxakyv/djGULYeKNimrH7oBne83s2ylx5RxK9+wdKrBZmJVu/mZCRXK6MdhJWSlUjASKpwcGb+s0cjkmkKZ5wA9ik5uwtJpcBMgEc8hSjFnmGeN2+jHPZybyZSGc+OXMcVAXR7NcF0Adp8u/ylB7+8TnxGf+N5bie/9/ZvZ/h4zhroKA59+byE9DQUfuicbozEO0Xz//rT/HsEe8X8k7R86MKfThqLKdYrdmZgKMUpAPoW1DWBM3AwuvS5YSKvhId1LIRbN94eHNOr23yPYI/4PD2lihZhnyEcz7B4x8qM7M27/0iyt7nXtmYdSjbpOjVWVGlTIZl0H76xUOuHqOKT3Z06hvTqGyJGcSEWsnnWfTmRWO6uMkDsNET/BaU+LhEB6FZb3tphPbgaMRrYDru5kSqNR/AdcfVkIP0xuS6LBQEweIjeoIGTLQtZJGjORBnEE6GiUuYCi7siBniEF03iCEfrpPIR4gjSj+qXxBAMFRZYgKbIURUU2TlnhecT2Qel01NGppF1q6mysN7HrfG1QofRwbUiHawfowCz3IvRfni4Hk9enT3RQTHrOce3n0udrO1t0Hl57fJ4sX+0HZV/Rv88l/V7QD90+6Pln948N5+HZ84fHhxH4N3vffnDm7fxXv3yoPSolsdnmirfcYPry3Bs8ig/fr88X0+bHsvHy93oEvu8H/P+0c7k4vm2fg3LoEF7xfljiepelKTo4t96hu2/fQ3cc3+8Oe4DedRYP3RG0OtBjy0qbIuSbstZFDsRRt/TKpKbV8XQpz8TIb666yZ6C6DoKYnwZxQtlXnCKRzORhnzkBUCjOP3HEWWjOuzYxKB1HwVN7HKOVFh394bK/Y/AnaBf7oTnuP/k4f/5P3lBLIknF9JgIp9w5s9/CnzhT57LF08K3J9iLlvgXSXg4/DP9SR3UuD/5MRiNu/KY46XLS3bb57Q4VfJ1JRvv2M2uiXIE/Cen7K2GslFzi5RvLOpyRS+AIdL48IW8fCwrcQNFmcW1e0VQohVFrqlqbkUyujHqdC0kmkoNIGUMX7jXos5PR1BQ5MzResOZF5Y8gJuiOKRF4M9Ci9UzGNzmD1KFSWgDdwN7VGqx5l59jYzLxw/NX+KmfrfSeHuJ1vKvImFuVjKSAWQn7uAO7ln2HE9eF95A3mKCB2vz8DjmcyctP8LHi+Ay5tYGr2B26WOBNZ3hepr6fkBAGs5RoEC5vB9r2Haqwb+mymsvxUNPyUj6t8D3mf+tv6jGKDvLWaaP6Xt9vPhp0wBjSfH2z0PSS2C6os/Wz2ega9+DrF0t6If4oc2vK3NQfs12ms9qvOHyU+A3zIG/ww68H0evZ80+Ad87xIiUTA+hvRbXMFPUtD3wPepZ3T+hUtdSOrOD3zfAeI32N4L3YMkqyO0WEY/zhHaSqYxQovoUJfI4KEuc1lUKvOuXUsjjcZKqQTPSTBHG32S7Tjv5kqlMPNm4rQbcesJCwCHbzPx46VBLr8C6VZUuhW1w1YUzeCH8dXsE7+OoUHS0EQQzYOidJzmqaJg0EDIogh23s6VSo1KMZ+2CzxjTjAUspLpnTFnUsNtMQ2mfXClUmOlmHUPgUEVyCNTxD4dyYEVmB+bSNtKUfY6LwtPdjvdb4EcpUOgSqXfAqNkWtmhuBaU9KxgWSQMbntPdDMb9VyJbJbP9IAkIFnm7GtWKoWuJpgSjrV4OK2+LE9bAF8XPHChaBOb00LP3PTEZwpB4B3jBcX8WMCYII1NkRJj7EBXqUMYQ6SZ9YnB4w1VK8YNjClSrcKYJZwzBsumr7ryqieh59+JMV02Rbry0oh/Lx4jhrHvd70/oMfrh0WPTZEGxFiqwxg1P+SYRilEBsy5LbAJrqYmzxV1NvGUbI4CqXBLYXvYQbgRYVfhhkGIgzuCsIUbAuf37ircMAj7+52wq3DzgVS4xQZsC7eGvPResmGZqVBLYS1AgwyKqhqi4x0r6mcWDZLhuJh3DuJI6KJBfgekRKGjCzkYZVPbCmmVhG9nekT8/eh7w3HhrgtdJMRCwZfCjsC2ULuVfPSQWGYq1FIIgqBBcQc1nPcguYMaDhvUHYNmdauVCjmUNLgeo5XWZMfvJwrJIYvfr3+vK27Odt8fMEnadaWawjbAXvAUY6/RETvFlUphB5KJyCmEk2Mt+V2VH2s89yd3oa5O27lSIzsvBpEbJEKVHj3WoBn5n9x4GiOhLjWppyDDUPsxu8FU1kYSnJhcKIOBecLOmRrFtAhitmZF5vvZraJb6kDp7WrLam8g6OvCcbI+Cw3FjAtbvKyfEa2N5uDr5J5+8DHgQGlwYWonJQt5eLCUR+cl2WN9yHuS9l1XZxP5Dp4ltfifnJXoToAOPoZoNW7/sMZs2JG1uzdU54QJs3GvAdHoNt3ZBB8QnamJ5gUBnm7mgWQXcrmUJYxxVeTG+gB6p7c8xh1+BRLNKKz4D/Af4d0D+wE0zcGN536rJRHFSsw6VktWKoXVkmgGUGTOTSf0bOU8HulIC+1EZNCMMQckj/4X4QG2CHulT60+B+Z2p2RrqKrTPniqrvasT7pS3vv3oBRouUjPAzqOsrYAuoFs8hqrzL5aEJG43p5Jzx9PKQsXS/ol7QGR9QAWRJMV7hj9uKMgm8mUoiAbv4xt4lU0TV2c9eW5po4ex/gOHjEn3b5LgTbA2PTdevt8OQuyuaieL+sdFZUPQopi3evbU8t6+zLvg291KmBNwwpY/4u+HYae3xUf9nztuz42DDchPT52xIcBRo9Q8GGg0yM8fCkwA7Fu33koJc7U4ViXwnbVBCE90QoKVvwZE5cJp9JE6dpiVthSqK2HPYmULgi2WxA01FGYWrF9WQsHe6fN+3unzcfhnZaDjqqNC2sjBLYjRIhtY0unN1pEs2/D4mAhpINFHPy+2hEn8Lwrjxrfe3hkTtk+ZfsQJ4LCeFkbjfQvAVN097zQVcDqAHw+aZ4kSf4Hac1WvX0vhr3rSfIxGc83I2ea8VTdVsfxVAypHUcrI1rHUTGgdBzVkjx6RilJ3Z5ao6yN4IY2yupcLnZjkdks7XAJZZEcjUKkG41CZN8jJDGStZVOzx8kk7Gs7YGZCY7qzGSq8ZqZI5PNPyY5MDrtuOhx0oig+2pq8mQi95yBhdzJ9HRdeWj0YVwY3oOvqosRmo54bcU7C6Q78ikwATAS0LAJIwuF4ypCx4cFsIH34eCDkYfy8H42X927Tpluis/Kqer4EaxPDxTZiYgPA0jfjraixygIKWqPD298jvpn8/DaL4U4gDkvEXYzMl/RZs9OBVsKlAEN3F00EAaNgfpAjMoHYfUWFC58Gwo69L4vK0GDm5pthc/xPq8fq+eRYNgFHwZhC3YLDHqEhi8FdoBxwcYLy6K3XMNyYxBrglAxXVC6Ip2icY62WFvW2+efPvl8o/34QnQABC1Uucrb1TJTgBa2T678R77x8D6//c78hfkfZIcuIOeuebUsvh1DBzi8ThxQJ395VpzflrrQAVE1yCsbwg9wXGWgQ56GevtdnPPIAU59fa9p8HuyhsVttbJYfG/lxQ/WP9nVi1wQMN390MTRvw86i6QdUQ9Z7NMRqzAkLJpfuBgLym+uCiRtpoBCHpPylx8wRu1fKI/JHRHJ66YekhiGsNWJA+u7bAKkpTcY0rZKrB8DhB/GWc7AkMY5FQa65TMwhC18ieJ6HRG+hTGTgiFyF/DfxcbusGD9k6D33RUY7ogr5aRfVyQVSjujC3Zgph2YefvOtENnDmcw2X4w2wEY74xB/TDtgr6w/cRqh4ndDhPL7Se24Uyst5/Y7wDMbg+LZc6KQO9KpbM9LKLtYfbiz+vUMENxuhwt2jIoUMoK0clwBEHEOe7ouFYyDbMMg6EYjElvtxS+m01lzRawm2BO7C50aCbFNEOak0wvaZq6xvHlBLNiOhW7jIrpVOtlUkzVjDvOF/AwMaZrup+aGqemxqHKVvDeSsc6Q4REqSMtiskHqkLRvQsZ1DFqZXzdDTIl8JY9v7W3o0xq75ACEzC7VbJD8De7DscQTMc3zM3ejnOzziiD7kPDN8yDv9xMQ/dZkLexIZ8Tn5VztsKfKaxPD4hvRMSHAczvfK3oEWjIh9pD8caH14/oEV77pRAHxGrv4L2+hvM9t98WPDXJK2jXhJCjO9mNsjr3TD5KH7HeGgGaGgm61GXrkC9F/Ud81XusxkOsfA9WdAGHR7my4FYqW8mUDo9y6PAow7r3bFm0dnPcyZR071mke2duP8c6IiqWefdRZCuZ0slRER0eZSzYkBEiqyUPlY466PGcO3yWM49mEK0js3LoDyzWWFp+QcdIIcfiCTgWK4nW2AEj7nhRPHJ7SL4VD0ExHGyFa2o0/Q1xCaVS26PK2fhL+vSxnTn7+vpSX8DFbTtzM9O+uLO3US5T+JKGY5ftzg14qK+oXzcff2E+2XYH1j9sjnLHb8f54fjrSScOrO8SGuw05NE4/1Yl1o8Bwg9wjDIzgG+gQoMlPg+eLd7B91/PFvcG1P9yDMprmTF4dpEH/93YKB5+z2AS9L67AsPdEd9iCDIDTLvkOrADS+3A0tt3qR26dGhDypZD2g7A7tKIhz8kpzo8Zac6PHMOY4ypfIkUUrgUT0ThUswBhYMXkERquTJjWkLGTb4AbQ7UbxEsKc1kStocXe/FnNKrroxayo8Mxqb8yi7XlhSJRa5eAz5U5dnqfpeD73EfpvOCQRVbSkQd7Ww2mapDW3czHnqWO4+1cBeeVmW2tuCZcw9vaDXgJg4pjASeHpqb7HQ/Mt79yChrY2M/ct8iuAD+c/c+LPGQul6Uu+WJ7nqxub+OfnOYtgHCHmiR/Y/MCRw+L3cn0zk0J3Cxz8uD9nd09oEdFY0N7r0eVwEqdlks7MVEa7bEzMmt+E5OHUZIhliNlg7QVCteO7X45//wvqpJC5uwfgLIlK40gGGfrlRN+QGopAHdmWaU42kcRqcMREVkI1Iqmi1gEVKx+zQyaty6V9wngi2Jhu41Zi8IpK1tOAK+DdQFL4yn+FY2IT09SZcCEwA95XQ/wFXY2KUjERofL8IVCtIOPf00F+h+V6QoKH1W91S0Clq/A19W0fdi+LCg8uDa2Rjfi9DoI3wLEj79viIAWgR6YsZgWW9fHnvjM+7b58t53Ifoqj7v57iP+U0ZBeY8B5siy7K6Ios0Qn4q2lJgAqDVV/drOP56Dke0aZIwvYJWZXNoFaYt0P2uSCE+LY+s7qCVWQb9dwe+hFZ8z992fHPdqg/SY2PRdiNMtQeEb+HCt7o/m2oSt4Fog/T7OvbGZ93HLtpu/N8Pv4/5TRmFWEVbgLUjOkHotnY0kylZOxonC/dnJ0ckHdwhlUn3c9L9nHQ/J93PSfdz0v2cjfZzRKr7OVHWRtrP2bm+PdjPCZpSgAHHfz7hKpBOJpI1maA3xKdTiVinErH71U0nE+lkYn8mE9sI96gNx5lz5mOZ3eIqHFcqJVvc2BU4HjRa6jYZxTJftEhkT4yGQku7qUbx5IgvMkce02QlX+ZdZwjNRCqWLHlAnjjPEZI2AM/6cvdTD4GWXfJZfO+PnJVu+yUOwo5VjMeCXsWa3tgXsg8+DGBs6E33jlz4ipnmcgLD03W2igVtxOp24MPydfwb0gOLTe3AhwF458zlz4b0qIJC3Y/A+remRxBsR4+1gEiPcLaFMXqE974I1msPNsG+7ReuHGiBBYVsF6FgccmHubYkSR5YLb51B9+grV4oDLuQgJ4/s2SHoFnaDkHZM2PWVwuC3dGGK5XCGkJg3s1GtlgWis5JsplIY5KcBWsIgbk1hNmlCmX04+xpVjKNnlY4OTJ+2TvHAV5R6UlTRR1hhzmcick+0SGCLs6D1hFzB7D9EyCXckAA5dxyyUymJJdySC7l2CWTAOjhsk+ykul5gBLjVW+RFBRX8mBc66rEMFYeeclSUUD/hz8y9LUoQkvEomS3TCxKivp1K2tf+YkYhAqWP/1C5eHzHPTf+CENx1+tc6w+eH8J62vA8qUbs7x6ScYHYDpc+W88DVp9QkvLd2lVXoDf846tplB9X8hy1PN5P0tM3dIWvn9+he9cXlm2kt/vzLL0JPuPRN+P6K3jg/iX8P5jV8tV+L5qXscHcGfz0N9lQHnM0vfinlToDPDDtKLjg+WLAS+Bvv9+Zek6PSO2t7P+oE9zWFJn4PvM/Oi/zvevyqs/6H2RP1KndgT/fshPqOnunFh0f6Toe/TyoO57/fuQv1FnedTeqP/A/tG/0vmBxL+XZEtikDe5t+ND/Wd+hvBZzzv53+A/kDfV/a/q/lDhfd5Zv4P/Hc+L0spfK7l9Hd97+oXKQ/+qPWL/0fvzanxC40VNgP5W+1j96F4fb+D3tlblg8eLXcc/di2T82X045T8VjINyZ8/OTJ+WTMjqnS74IUv1O5soufzKwMiclZoPr4C4wnAiB48mFcKuZ1n+Um3UmJgn9tlDdUC6KxwsWwNDoZiirf7aHalUlBX8Sx4aPYdQHNl+OPSfFrJNAbQHFph5ljUfBoKPCFfFlxb32YiDa2eAMSLwJgLXVeYIz8X1lZubGGQWHRibbliFl0uQow0Sv6ZReZU6uZglC1z5azbwbeVTGOMyqJthyyDjgTrkjKyOW7FE+hN6ERo2WVc0hnd7jO6K+W9fw9KgcY7wIkdmdPV2USGBrJ2dnemUuN5vlQCcsW4pDyf8nwEPN/U5MlE7tk43pFGj9/z0HrEuKT8nvL7bvzusQMOX1zSvlfDOtyYznLg06HC6k5n9VVHWKdosnfLswUw5TIuITKR/QMbs2FH1u7eUN0TcidhYbTEjvA4Q6eSs6iNnXQOF7Ewcu4cPjWMoSyh1iLeWphbeJyLz7sVMLYMqroXVDOcK8SqdvGXMsHCJZUphyNTCN0L2yfDBnXnFhqWRS8kt8cWGkuqO2SnVhbd2wtmMqXtBcOGjbXpCvLigA7iuiMv2ZKpuHRgJfgS5bhndF3iJz/uGd3QVvF9bcxeFKJ3XcGA3cEmrkGYGdDxiJV3076s2dqEHNnSXe6ghvwo14yEIT/K6txDfrQLYhaG/Nic98Q27rPhoSk+sR51D0rFOlNinaU1JUeO985RjffOMX8QlecIB1HNRCreWjgWD6Ku3Ppk8ZPMtjQqnn5itiTyM5z9LZZJkVuxZAqms79FvXsxSCZrxIEUcSm3rGRKA5FOqTiVW6Rjh63xQJlOZc10bIcfO/TIi+HYoSBUzOMz2LFDdOLw7F3/7xrHDv3CDqX36X16v8X9ItZjZ0FumeEihR8v9bWROF56+2f2Lpk6at5fFVYa9eGgXTUfhC4iddScOmqOfPQ+zKgPvgtLoZwtC+5DmVYyjYWlgE47CSweytT1EY6z/65UCkoKJk7+kxbfFU0Dg2ZfnmvqCHVo6IQYX4H7FUiW958UPEF3kLuNA2A/fCsHr/ngJ/Yf3yhEfAhQe3ysHAaTvf1sB2F/vwW4Q2jw/h01PNSR0yM8/k8mMBdyG5ddVXUxwuxwvUQcuVgq6FJgAjK9lycwED1fhCWIEb7M34u3TIZf/s2g+3DwlfhlK5/pdR9nc+O+/7yxJ3cnPiunquMvdZ+AIFmbHuB9nkZEfBg0xb8Xt5pBD1A+CClqjw9vfPb6AT3Ca78U4gCmBR1cpK0h6MjFUkF3IBChIFlrINx/fGsIkk1BFySm4HkMdQUT8vdbUEWC3RDEQHCGuqKLmB6pIPYHpgXd43gNMUcqlAq5FCgDXK08d9caxPTVByofhHWtQd22mll3deczqG+Fz/Y+9kF9viM+DMJezVpg0CM0fCmwA0wLObSnv4ac8yiXirrEQTRD0a6KOm/YTlG3FuwqinzARo81RPFaEPb7Hho+BKko3h72RdQZfivXEHb2kqm4Sxycffbfz17GtZdKmN0d4pt9ta4qzWOEPzzM6H3z41q3ksm3LivXIYq7G4Dv9uuzv6hmIqTHR39xFo64C/t9Dw0fgmj4/zCAaXFnaiYDZB25WCroUqAMZ0gwIEERGEcODYRrCRI0sN2sBDFZhbnVwGoOnIYgxlWYuw7U8PlrZfU8EJyhDfw2eqSCJIW1gGlBZ1maBIg6r4KpsDsQMAa/0FZNawmXBOFTs93KKER8CJzCLsQFbdjfb4GP8N8VoqdHuFqDxAHTws46PxAg7LwKpsIuBSYgUmEc9koJqVx3U+l6C6PtVLprCWNsJYrKByE1hc8awnK1Mk2FyR4De66NdKFFjhJPDBAfcXQL7uSIz4ngUixG6H4iEc6R9sDdhQ/LXamr0J1OvnNmUWW+EgyvIkbp5zhlvtiZzxZJ08l+7kyqDCjm0jibyWBAX2c/Yhn+CE5nP1YyDWc/IvIiC36FGMnkEakNM3/NNW1h2GA8MXcsLmKhhMdrgy2XE12hwEL9QAbjtZHUNmd9ufsJUqTOQO7x2SWfxXU1nrkxKGj4y8rCWA9gCpoqWtchJUzCFDRn4y9p+AL+xrsoCNDzN19fX/NjcNEyW+G7GY6/XhX9eQCZ/Db4jO+xngf3gwl8vrPB+33dKOrIUb7j+N718OHvA77veUEstQG+0Tjf/QiiwqbfGzs+SO9w8CF674AKwTgvj2rkptoB7AqGcMexVlcayK5oBnyYM1XSyAmrxecs8A3a6oUSZ3BZ4tKiLikjZ/RpRxq1sNOCCKNwGJeELyV2XqszEPBu7QDXLDA65uRc9+OKLPjdHtBtmanT89TpeThOz2ML95a6PE9dnkfYv1KX55SjNJOckB+CXtJbqIPOv24U28CiaSDb6HpFGsg2CVMbl6iNMZxLGso2OdOJNJRt/DKWuEUhDbqzgQRK27YmnKmpzShNqO4Ys46swkX5QffE5/X3ISJ1life/xCfd9a/1fcHvU/Q9zrv9+37N23/HWIirvX9G0DQ92+FdIP2Xx+C2n+HGJNbvU/swNwBCUtgmRvqZHHmyE3FGk3Adz6dO93r3BO79RnKD7onPo/eh9ytneWJ93nS8876t/v+oPdJ+vdv2v5b4SO+P/l714eg799OrK3f/htAUPtvRU8y/+4HMCfWnMf5eGFZvAA4ec7v0J+rVDzB7O8NquIGZShh/WD20cLpxHqnDaEGu00VsfkCdcv1x4oPWLQJqz5FNOHhfb0O/1v3f/KsCa/HsPzF/Sr1El4a0A1KFX0K8XvQ/KJagNcnUv4pbJPq39X7keHT//0qL571bwkxdse2vHRa/7bkd1V+rJVg3zK6nj0pMpt8iNw0HIA1Hj3WTo5K4zjNjTxm4fKoJzlVSXhaOuN2w6JerfZ2XUjWq5WFaI0KuyzMLXAufDdYmPsoJoIUMUHvQ1RMBClifMB7Yc7a9wfVt933e8MO3+8D3oq3Xfh/z7/feb+WIs9P8QjHg/aO9PwBY1OD8/4SrD9ulc/ejNsUVx5qJFJeKtJccKZ+3Xz0dl1EQvN4XKRtvyjHwLno3WBR7q2UCFLCBL0PWSkRpITxBrJShPi9cX9/UH1bfb8P7PD93uCjdNuF//f8+533aynx/JSOcDyQdqRnXlG//EQa1h+3yo9XpPke7+XKuTJX5pzHe61kGsd7uZOj3MkRuHLskkkkk0mkSyYxdjKRJkitqTSdTVpTTRlfgj98fkTOiuM0q1AxPRK5lI9oPFlrerTrYmTf773HSCdU0+cT+Dyr1uDIlNAsYTP+tuUclK13lEcSKJ+AcNt6R3lYlA1bb3rfm1oBM2cFnKhDgmtWzMBE1ukXvqrOOgPZz3O8rUSq9Uso1D9q38Nq7bs+Jns1Dconl0dzq2W9fenyqhqUv4/4RgH4/PKJoNNbn5u2z5cul+hB+QHvG+b3Y/Bd/7h50efW58t6x+UiPijfGyKnR3j8fxjA3EaWK5qlv3xzF0kF3P6DPsDADrtdPhHQgPKBBkT0/Kb5PoAGWH1AJA4wQfneUEUDrD4gkr43KN8HHN/rCkgWlE/lfQ8Nnw6R8P9hArvbWkIZ/ojO/RormcZ+jQCWuOhXZI1MdUl7V0bOXS1XahRE0itha0/L26636LbrLcZh11v8I+RiNe31JlHBTaJCHCTK/ykwR6LTgdT9xLwe6jsTjkRqXttRxawNRebQzEOTA3hxjtl4Bo1Rm9etEdA/jK3fzvrStCWPeqez6VQdoRINVRtKg5X3aM/8vV25FSa9xvfsp9Z+br7Nf4q1UCYud5mr9rQ5+z4vZPLFp0b+WKy1X5pf3/z56/ZIq9MlJ8wLk34jc5ypteeZ+fdjIZPrXNeP4ftL7cX3Y9bHyogMhclrQzku1NpvGfC+Ygbgv8vA+/nqvgHvW8X25Ps895gpFDOnQUjvxKuW8Fd/vmjge7Pjs9+D75lVp9/nS65QLDXPyd8/B/WfYt/vxDeH9LbdA/oUigNY/0X7rT1ffgqPxe7gHo8dVeiOm1cyhg+VN+hrxzcz7t3fk3/ItEHLLD+/uUL99e5h00aIEfTvx77H1l4F4x6nj+v77zL5Rqb9hn3/HSj/eeWkp0/7Y/xWfLor3WUu26/t5fcTHksN8v90QKT/ceba7A8Yf3yB/PdCt1/v3WWa7aXH909e7xRye9vudf6frs3/7S8Xvwwmnz/5Qr3fGDer1+2P+yAsDqjOQO9o6+8zv2jLc9BfhGp+Mn243BQVBmD8u/ueZcId/9hTTRJEFwqv5C3ZjOy9FWzjl8/691erVr28e3tbVMJp2JvnWnV6N1DuC5lR9vEunwf3L3cf/Yq6g2A7++wv8nPwvmAgeb6uzo8R/vHf4t3x191V9aY1VO43F2wQn4Ljc+LX72vVSetDqZQe52KxEtixbwA9hWc/fM77q+rd2adS4blRtugh2ED+fel0TXyO+6fMWaYF7oXHcfalgQu2cXbxcCVtis9xL5Yy1XkevF+eG7+ozX0SbJF8/03ruspdbofvb/G2dAPuX1uj/juHCTbIH6XBJvj6i5/3ce290bs+blY9BFtE/H9V/XLje1sU8mq2Wx/fSNfVjQXb2UCpFNoIX+74ojqbgXuhqmbvb3YRbJGMfwyrJEvlYrlULjiXt1YyjcVt6eSoeHIErgVWyQRW+uYvQROAZdHSBVh/rJKsWEY/TnJZyTRIVUScBX93JtO/M/bkCUr/dwY9ZmWB1H9nAI52H7zRf/1/ + + + 7ZrbbuIwEEDfV9p/iPLUSm1C2ZdVgVZctttKS4uAXl69yRSsNXZkOwW+bR/2k/YXdhISbgnbi1BaQoSQsD32jOcMmTiZv7//VM8nI2Y8gVRU8Jp5YpVMA7gjXMoHNdPXj8dfzfOzz5+qDyPWH8IIDJTn6nSiaM0cau2d2vZ4PLbGXywhB3a5VDqxH9o/eg7KkmPKlSbcAdMI516TEdTMC+YD15cwIQPBo5G72IAyGoDqDKPa8ClzQXZhQJWWROOwCkdwDI3p6SmDFBkj6utPPdRlRjMW67WIJgZaf6pDgXil3hBAm2/b3FwHaulI4YHU0x5ojS78LoXvqSWBmfFpUkaDKHBv0Adt4P79kGq4GpEBHLWJHFB+UKqUSxX8HB614JH4TF8Irs2VpZP61dp4qnojbtfMPjCQ9Jd1T3kTl5eCKev2yuoSt4UyLTHmDV9rwb8xhMa1FVpYZ3TAg6Zp3BGEizugrsugiV0gTcNeN9J+xspqD81wtJDp5t9R5RPERjTEgsZSX81ctTXNgHQFVXsDm1cCbArGiIeNhpAYcglI291eYhFcpjnEYJ/PXgn3JiNKxUOmEZEMe9eXjsx/419+3euRf1O2V+B5IR78H9alFOMCz4fEk2ssdcfBnV4LOSLsgjKWReqZ7TpONr2REHqIs9rChXmuuRY8xW1Z55jth1Ho4yKIiiDaRqrIZTBlETzoxjhycMP0J2VUT+dhM09VeY6d8Gfugic8YPVhkjxCvSuX4NiawDI7y244m9Wd4Ni7cizLHaxZ2rgUTyBTs8ZWkVlt4Su4QV2RbztEJqLkOY77fm1+N2KBXwtg+w6sALUr18Lck+pIUNiRAatIU4HnY+KJmzce8ILSHlLam7uI3b7k7QOmYH/NITxJwQNvLt42fqzT8Cs4zawvQO3IDXoBLxt4WTzAyD+9Wy8zdpndf+STWoe4QenSQblSquD3cIfy2erSS6R2ClLivcdaCVTVXirEWvSGRVgqKMLqAlsp9gqHMXSTEkb0GPy/j8eDoPc8Rp1wSlBa9YLH6l0h9OLNz7In0TUbLQ3ds6kuLZSZb369qi2cGlbCnf0D + + + 7Vxfb9s2EH8fsO8g6KkDHP9JG2xL7RaO0ywG4tSI3LSvjHSxCVOkQFFxsq+2h36kfoUdJVmW/6GLI8mOJhgyLJHikfc73h3vaP7453v746PLjAeQPhW8Y7bqTdMAbguH8nHHDNT90R/mxw+//tL+5rLRBFwwsD73Tx992jEnSnmnjcZsNqvP3taFHDeOm81W49vgyrKxLjmi3FeE22Aa4bvXxIWOecEC4OoSHslY8Ljkdt6BY+wAkjOM9llAmQPyBsbUV5IoLPbDEizDzljqicGGOkb8bPTkIS0zfmPR3jlRxMDen6qwwrwlawKgzN0Gl9BAKkMpPJDqyQKlkIV/SRF4fqpC1PlNtYwz4oPzGXlwDvckYOpCcFUbEkdD8ebd+/Dzm7nU1jpBf6V8Iz1jft8xR8BA0mn9K+U9pCcF8+s3xOkrcOufOLlDHguJbLuk4wnDC3l0SxBAfFMGiGsjc3r/lVK78ZOhty2kZSshN/PklvoBQfCJgnlFI/WsY2K3BsCDs0ApwXUHN/VhM412YwvIz5SEnmCMeHgTgbAGfuYjXGsHW+pNcOIkDSxNnR4jvj8vMo1PDKcyV+HTpHXdbtT9oaQuVfQBdpxnm4StsXmcBeOUnrEDIqcgL4QERE88FzOtthJex/yMVNnGmSOEQjbH9YqXz5WxVtpq79pqP3qqCJwT7eHXexOwp8n9ym1ozhM0kEeKZAN8xO54rtUXE3xO6qRVM6Jrz/DnpMSX2Vw6Hb5ia2sjSbjvEYm82GJ981FmcwFDjtA7yqh6SiTskjoO8BJJVyhS2ojEHC6bTKVk6IIylpP/liMsxJ7qIXGndNAU41pXTvX/bvKk2tXdLi8+AxH48PkB/f980aknhCqcdsFpKMHHn3qQta5tIweuhXQJyxu2vj8UXuBZEzHjFXKHuqxaXtVog7+8qjluvqsZ869sFlKpldwSfgvqx6nVdGIE9uf3WoA9IFiaubG4ohzCeVg20e3bgi/iQl2mQHKiQd5B6yxxcIWBI3hUBxv+qlkwFvClb4FL7wRz/tQBwpxU7iUQ9AZfY5j6RSHPjO2KFdxpZg4JB5avf50edQVXBnBdwb2qIMtKh+Tgry1aL/vKFX9Qu7ig4bILZ7k45Sb41kA4izj4teA5ZCUORhd0PS/MZOYRRtzjtI8FSSnhVuJUvDiNhFdSidKDiuRKm82bMIFZiVaBohWyHK164PKSililtPZlA1OcL41Q4VJ7TPmb5nv9OWqt7yx5XSChZYk1AFdYmEQwSgbXCYKFVyH7gF6yPWMXeqlU/YByi/69UDQnNaPVzJxKl9Exj8QkpjOgjsMgst7l2RSQarcrpZiVd524Ej982xyCtDdonCyzMufU1/vWnOKjhEXmnqIaOMoq73TImd1EGCuYXq4+iknBF642vk6oAp3mKURflHN4S6n4Uu4O/pn31/q9iU5Z/LVfZyl3rVfyjbqVOBUrTiV3wl+2N+FgAguryWtiT/P0fvYYWygnYBVYhwxWHLbLYatWhU1G2IyEV8FzuPCkEl4VTIcLU5Q9ej0IrXnaKycutBupcx8WT8M/ifr6zIcbYEtnS4TF2jav1TBiGLbD86Wv4/XISUbt8BXN0XPs33m47n4uvClWIou29jhk07bjMMI6CRNWD9OIkNEHcHz4Fw== + + + 3VhLbtswEN0X6B0ErRLAkWRnUyR2gtiukwBx4lrOZ8tKE4swRQok5U/WvUWP0kVv1F6hI1n+y/2ktQwUBgxJHM684RvODPn9y9fq+ThkxhCkooLXzLLlmAZwT/iU92tmrJ+P3pnnZ2/fVJ9C1gsgBAPluToZK1ozA62jE9sejUbW6NgSsm9XHKdsP7VvXA9lyRHlShPugWmkc29JCDWzxWLg+grGpC94NvIwA1BBAGjOMKr1mDIfZBf6VGlJNA6rdATHEIyrJwxyZIzsW28SoS0zm7HQ1ySaGIj+RKcCM01uAKDN1zk3t4FWOlJEIPXEBa1xCS+liCO1JDAFnydl1IkC/w7XoAnPJGa6Jbg2V6Zu6ldr47nqjdl7zewBA0kH1iPlDVQvBVNWl/jXGkLrXkFmuUkV+cjA7xCKEIwHgowhb4QpZNJeh2T/AlPVRaOeFjIfbELUTMJ4zzAYuJ6SlwtWCI2AM7k8NPnWqvaWZf9Dbroi5n4XDbgBQdzJX7lSuvA8RHMrZEhYizJWegyohh6MdalD/GQvHVRO099hEYzeX1s3tB/oB6piwrK1spqSjOpC4h7YNaVTu64mesHs0jcELQbA6Qv4yRLVmfAGeyP0kk2iIGVqwVkOyRVnzmQZeXROncNSm8g+5QfOaTl9L3KvJjDnLH779Hlz3V6jfTVe3BD3WoCz2sKHubErDKwPKEX1ZJ+B04VQDDH/a53UkKKDpiEYIxG+ZPupEC83dKG2RoBFba5kpaw1GFFqNmTOMmv6tWZOVc6ywetKek7E2fneFczOtSd4S0hAlkQx3FhtEWP1FKM9xOIF0yA59j5DSErPv/YXM85FrEVDhBEDDXUxnteTrEso3mV8oN40eEsdSUMiJ2nV/VnjtKtlKN77niRcRUSi8V0QXlTySbH/b6mnI0Hh4z6yz90wSeVFByP2QAOQc3+PnQ7IpBfemePrHeMe01Dhvq+Qvhu/Nzq4tRNs1V46Ry++pmdolZyhu8BWzurpMGbPTQkj6zu3H/bwHLOZd82/OyRuwbJ8hTBVvGQlqyu/YTkXcQ4OpGjriqU0bbvemN6N2FsuR9Kp6YXK2Q8= + + + 7VrNUtswEL53pu/g8ZUSh58DwyQwTkzaFJwGAhR6U7EwAtsCScFJXq2HPlJfobIciEnkOo5Fyo+/g2cSaT/tSvZ+8Wb//Ppd2x34nnYPCUU4qOtrlaquweACOyhw63qfXa5u6bs7Hz/Uznzv+Ar6UOPzA7o9oKiuXzF2u20YYRhWwo0KJq6xXq2uGWf2Qe+CzwWrKKAMBBdQ14RtB/iwrre8PgzYFzgALg7GI6cPDqxzB/hymlZr9JHnQHIEXUQZAYwPUzHCx7gzPTb0oGSONv7ueHjL19LHFhM+CzCgce+3mZjwwNS7gpDpiwX3uAZfpUvwLSRs2IOM8S38THD/liYmxM7LZmkNQKHzje+BBS9B32MtHDD9ieksP50al9JrD5/r+jH0IEE3le8oaHJ6gj1aOQJOm0G/ckLheGULUfDTg04XIO6Cdgr4ifFzAx7lJ2lMu2Rk+FTr8UUvGCZyZ6ODepih7Xn8ZghYfHgyZ0/akb8NFEQ3aAfcIxdwuxXJd0cYszGdzGm5UzUj5XRyHqENyA0kLUxgE3uYfOoS5AMybCHPW8aRyndpvBsV03E6MGz0GcNB2wcufDziw5vqesMcwzqPrji67EWXeKBhNs0ErD3LNc2BuWmWyAnLHtnG1sgedQ2FrIKPM4+MUB2p4BsJf9WRFo0/YZ/wL+tzFmtePiX+L2Sf5f9bP/93h3p9VsjUq4PFLRh89epgmaHdqc73NPO5G4dzsc5/t1rzPy2Jp3XCn7CXjudYPwd/Fub3r4z/bcW/mNpm+bsQX151k87PcT5SyPNLaFuWszhpESxHHWx8DztwwKI3xlevESUeEWngqIfv9l2FPxsnOWPTvm4Pf7hKWGXPXGcf4TurAGl6znGH9vVXshBpes4ssh/PHL+I1y9ANUGUI+3qHffNVsJXoiCWpxFdAu8R7tNSJ94BmkI3RB5Swme1h7Z/HufJgpUMkRfjPJS3EiRFlLdBnCcVVoKm4i3wW3caquOfhtCx68l+KCGNIXRD/C6Z7928hDIsTydaiNDyZeLtID0JFBAJ+Qt8QZFIFAAUJsnYXrFIxPaKReIZ45/xv6BI/CO+UiT+G5YnEgeg1Ig3hKyCRYEcmV7AKJAjEzlxqqCxWBE5tai9IjSNFoxfWsDyX2L8cbzn0vG8pFkFTNV/iZeYBwo14gC5V+wU0T7wHv+qJiBsYOJA8hKb1JrY90HgNAB5lja0mZCmeg1rRqLjcfKt6HakUbfjEfSedFWKYe737AxtHFnetjw9e6uiLj1uKdkhvjepror9SesAjdtHjZT+UWEqek53/gI= + + + 7Vrdbts2FL4fsHcQdNUCieQ4WzHEdovaiZsAS2LEblrsjpNOLSI0aZBUbN/tYm/Rt+htL/ZG2yvsiJZkx5ZWN7UlL9WFDVukzg+/j4eH5Pnn81/NV9MRs+5BKip4yz5yarYF3BM+5cOWHeoPh7/Yr17++EPz/YgNAhiBhf25Opkq2rIDrccnrjuZTJzJsSPk0K3Xakfu+8tf+x72JYeUK024B7Zl3r0iI2jZXRYC1+cwJUPB45bbxIA6GoDqLKvZDinzQd7AkCoticZmZVqwDY3p6xmDjD5W/GwwG6MuO35jIe+UaGKh9SfadEgk9QMAbT/OuVQHaulJMQapZ33QGofwjRThWC11mBuf1ctqEwX+NY7BKXwgIdNdwbX94NV1+WqlPVO8lfxv2QNgIOmd847yDoqXginnhvgXGkbOWwWx5lOqyO8M/B6haIJ1SxAxxI0whUi6qya5X7Cp2UelnhYy29gIqKSHdcaQDFzPwcs0VgiNBsf9sqzJ1tZ0c4b9K7G5JPIOZFdI6Agm5ItaD6QHxQB1S1VIWOy60ybenbEhBehdQHUGQI/kRKKnryVoL8AZqqlHGJul+gYy3AEf5l72NdELWiw9a9loW1uKiYIzn2JjaVToSToictaljBWPfn+EEyHAty6FDykiV4LvESJrwlBcJ8AonEp5EIc7jCiVNNlJKDBPoxGZ6raYmsF+5BKUMS/cbO8KJtJrpkFyXL3uIZNMO0HHSYJ8BdOGMK2E/uN9Cv31n+oHVvK1NxFgwbHCg/MbNhsHERsPLjzBU9AOesSPUttntcZx46hRf15kghWZkyL29x+ftrZUG+lnPBrqtpCY5J7TYcDwo7+wVn+7vk017ZyBy/Rrh1pHW4uiSYcUY2SMf+YobDuQZ7i4zdg9Fxmb/tSC90ASrsZEortVwlYMk55mEiBCBdf3mAegdweXuEHeRcq2jo+TKq6Q2gypngSFP4uE51RMqom0l/DE2ipwNgMHf1BvngnUx9PrEPenSwtoQTlzsnL+dsF9mKZLZm1vtje72Dk/0fTrtRftlLvCC1VOblwoh37eGw45kbWYRSgzNhWjvpJRaVZUsSqfVek/M1oVxzbm2MqJX0EHsw8jQtk3XAU7Pafod+Z01iwtewjyj7e3n52Xd0y846uX//K12opshFC1FXlE/KyW+B3R6/93FftEccu738NVbEj5s1rj8KgRfZV4wffnxxLCQ4x6hwEp7RqsqExi3dcyMwmzHz0X9ztMIzMcXlwLlORxco5btM/mrH2rPq/NzZXizaa7VEK6eGrKR1VUPnoD7EGZqmnG2LDew4pDR36d49sLZ2WxsL+tODLHkOXS2bngJS1xOegGmtfNzTACwckdKwNQXk2v6ZMO/2pFsHnVVBG//Bc= + + + 7VjdbtowFL6ftHewfLVJbULbXUwsaTWgrJVGiwrteuslp2DV2Mh2BjzbLvZIe4Ud8gMpJCttR6ROCCGR+Njfd853jm3O75+/vJPpSJAfoA1X0qcHTo0SkIEKuRz4NLJ3+x/pyfHbN97tSPSHMAKC9tLUp4b7dGjtuO66k8nEmRw5Sg/cw1rtwL3tfO0FaMv2uTSWyQAoiedesBH4tC0ikPYMpmygZDpykxE4RAIIR4jXiLgIQV/BgBurmcVhE4/gGJLp2ZmAAhuSvuvPxohF0xnL9VrMMoLs6zY2yFbqDQEsfZ5zCwxE6Wo1Bm1nPbAWQ/hFq2hscgYJ+SIr0mAGwkuMQQvuWCRsW0lLH0xdX9+sjBcuT7Jnn/ZBgOb3zjcum7i8VsI4Vyw8tzByrg2kyC1u2HcBYZdxpEBuGCqGujFhUEl3lZL7CCevh6CBVbqY7FyozIKcCkwGaRPxCskqZZFwalfEphjNc0vC/kRtOioycIn10uZCrKnzd09vuIkYphuzS4dz73yKjjUia5VM3XMWaKtI8ZLNIWb0YqUHOd0UzJhsiGZhjd/6NMGIHXhmNa9GPY1vgYNVy4MZW6jMFuom8TaTqjfCzBzirI4KYVEzF0puoWSenEi79NksfboaDP6srrZbaiJ34mwmTu5Y3OswfY97sNLQVELpvS4L5zeWdx8+xZ/3VZ6bp3J+WJ7xwVDgd3le9nVUHM4XIjWUxnvMpnjV7zWVn8mYAoKN8SGJzLYrdwv1mhL/3yp2pUqPal3QQUEE//neml1gq89F5MUXNbr3OZi721ZBZKrJTefcpNvkLks3lazKQz/F2h35m0lTep1/TWXz6pRZuzKsdDE8N9dLWb6N+yhm3ke5AvGgXxMPY8zXLUh6xyn/w3997izUoi/rD5RQyHePkoVzKFlaPI6cJ1oAj4KUxicWpayhlXTD3JJ2WDw1bqEd/wE= + + + 7VzdcuI2FL7vTN/B46t2hgUS0k4bYHcChF1mlg0TSHZvFaOAJrJFJTnAC/S677MX+y59gb5Cj2WbXzkbskFOjCeTDLFknXP0fedIOhL67+u32ruZS617zAVhXt0+KpZtC3sOGxJvVLd9efvmD/vd259/qn1x6WCMXWxBfU+czgSp22MpJ6el0nQ6LU4rRcZHpeNy+aj0pfux70Bd9IZ4QiLPwbal3v2EXFy329THnvyAZ2jEvKjkOlbgGBQAcZZVa/iEDjG/xCMiJEcSioUqgTJQpi/nFGvqWNGzwXwCsuzojWV7LSSRBdqfSlUhbqk/xljaTzNuIQOk9DibYC7nfSwldOF7zvyJWKkQKq+rZTWQwMML6IMWvkU+lW3mSXvt1e32xUa5tnkr/r9uDzDFnNwVPxOvCc1zRkXxEg07ErvFK4EjyS0i0A3Fwx4ioIJ1jQAxwA1RAUiWNlUqfUenWh+EOpJxvbIBUHEN65wCGTwZgqdVljEJCkf1dNropdVKCd2+IzY9TlzE521CqQlsronwEY2sLfZdsH4Mb3XZEC9w+cS8PcASSu5LJJforDyr24BCE1HHpwiKWiCrxaZejMtWk9BocwwOuGhrzQWbFAkRF9kxC9TTur2Uonr9iQFos38iSmjMNMyoLjhZYFghp5aWWmecs2nDl5LthV0ga0VCJhnW41jARy2x9otUsct8GFUgMOSYvRrMItE5YrshtuzTjotG2DBqe0QrNCdrcBmaWcdOBQaTG0KJnC8G1yajFE0CTzukEVZ9zBybFlg2GIdFZnacP7Ina3gNOPLEBHEwW829+3jE8FWnj11yw+jwT9Nr73MvWHCHnf2BjMYUfpcr7wH39Z35g/IeK8lsOOpil/H5OsGNr/NXcjCFMyox95Ak91iRpYv4HeZtxjG4PeMFeIk4IXYDNvmIb+Vl0KmVyazQQ8Mgk/bLUVX9/LpjYNgtN3LVKa51ZFAAL6SdK1FrgIt7zHWedlTWutqz5ibIiMiU6aS1uqDroJMyNOOAkhcT5ATThTwKLbAwGYXO/4ICkTJt1pixVyfRBN3iQnoaocPM8jfRbJWzyMNEHia+Q6Amc13kDQ8mTujsPYRAkWx3OpHClN0XoIPaV30xlpvj+kO2p8P2h23PQ76Zvc6t9USalHgdU4YBni1B/Pfvf/bBlpydip1QReKDmY9ozD2E6Uii2emMySsZsP2abeSYSUZz3mdOEPxjhsbZS6MZyXC5nXZCMjxtE2Vmf6uqn10zszsmk4ZkOx/7nOQNxtcGm2VyYz1GqlI9qVaqlW2k9n44qoGcu9BZ4pH+85jI1Id6LavMO1UETwDOiSF48onfo7aFMzzvSzprpqZ9zxlZD+Dk0sb+pmnc4tPmOWwvc62hgawj4pl4f5wf7nzCke+1AwSVci9MzJhcOy3dLruL5IREXb63l8+onp7/z66/aI48HMZGT6LhKe3yrA8Pv6cxPKRutdGxMAhLCCYObeb44jBNV3w/TNMV6ml3xOq0JZyYpfE1EhOLsWx+n8TkIlqX+NsPclnOK7+EPPLxyXHBiv+kPd99mFbGI6JJj0pcHO9nh/HV+dMWETcutqiVVq7XWD5VV2uI4GqNS0zXrvBQxQDBdg0rcp7H7yrG4Nk/dn1Egjqrl4uEDa9Iib4m8gjJSUq/AFWSd5CAMokIKtok3cKi6ixIsXmHi3pV3fvy9n8= + + + 7Vxbb+I4FH5faf9DlKdZiQm03ZFmCsyohWFbqTcB086rh5whVp0Y2U5pf9s+7E/av7AnFy4JAVooON2xeIHE8eX7vnN8jh3879//NL48+sx6ACEpD5r2gVOzLQgG3KXBsGmH6uf7j/aXz7//1vjus74HPlhYPpDHj5I2bU+p0XG1Oh6PnfGRw8WwelirHVS/X170BliWvKeBVCQYgG3Fz14RH5p2h4UQqDN4JEMepHduJx04xA5gc5bVOA0pc0F0YUilEkThbRnfwXvYmZ56YlBQxkqv9Z9G2JadPjGrr00UsbD3xyouMKmp5wEoe7PBTdvAVm4EH4FQTz1QCiH8S/BwJOcKJJ0vKmWdEgnuNWLQgyGHb+efnA8dHig78zQ+3wMGA8WFzN1Iqo7GPSlhfWWIbaASLPp4VdB7544GLaxXcCadLueqS9y0nG1V841Vi1trVJeM4oVDvRHUJ+KpQxmr4EU6OOUCSTocPVYuibgH0eECWpxxsQBDruJiNHKFrMnvYjS+nTsIRoswCFwiUlCcMyDYpTvqKs+2bgmqF2X6cRGr127xDOjQUyubbFTXoLBGLC1GpMyrJb7YtBf7pVceqVUc1BKzmJfLC01k1agnQ74iD3QYOxRtgz8Rgo9bHjwIHlzAT3XukyFUbogb+eZ3f9bjzx/7sAuUwrkC3/kakB/odGPMz1CcLCPQvgjhdawi295zW9rWGG6pDAnOBkTNHOjctaadagJOyeB+TIR7GioVzWA6hdGNgDHKKIkycLYqizAij9HmIaJk1KFZHR0iVWl9h9FI6TSi2YtgvyhCEwddfUECOSICA6Do9wsDrS1GvVAf1tjyMIObVpTJ4TIhnZ2L6ZIq4/5vmL0WCK9aPL5fg6ucFzNklY0sY1RviydjUJsQdclDCdcPIPY6NznTZg1PJeMpa0aGqFIRZUh6QyQZj7flwjVI/KphXmrzsYkfysVSkcMzNJWCJmNIb4UhY0TbUbQukd3B0m4y6Mmmds/nXHn41CV3YbrcesUDHcutXZIKabK7a1T0LBW1OGNkhD822ngvAy1px/9vxOTelplu5RzV44/ZyplDfN++Ze87ODkxHNVuQAwKzOm1R+q0qYyocDUMeZdJ8cI4TT5cngCxmBwTGpaTnLQtQ83zqDlhCkRAFH2AvdAzdeCGn2fxM/eC6p5eUL6IQpxsZtUWZDwJa9PQp0OY3EHs85w3Z/uRgLSFPr8YIestnI+Tt8kzPTS86OYFA/PQD0pBTT51zK0UVbJ/R1n53r1JKneml9S7toDpU8qdRxX04VFVTgZRPnnFhU/YvEh64NMfnLmb/XdpExScpKSWnDNnOAkoHT4IZaLTNaa0D3T63CVPOpVSLIwFAe1FKSMYUMLaOgDJBfL5f7dNl2g0SORaeSAusTFPv0eZS0U1upTZCoLeday8SjSIY7bStXco8s5z4l5zYGjQRxK2aXAi+Vl3nZvdBxjxfKd9yXeZqWhTh07LWTq5ZCHTOdVohWeVcMoxEzt3APd4XydMK6L9xUhXn7nFEa4+L/SmUJrkShqdNqHxSnDliqPhDWmQblRPN6xr9aN6rV5b3LDefmUygieU2rLnssczO8qkF5ZGcmeiNKpzJ7PMrsanssjoVJYusMzpL/HtLnEXS1jpKs7y806y523Y2xyQgpgs7WKMy7ITauIy01Hnz7eJH43PxPn8Hw== + + + xVXbbhoxEH2v1H+w/NRKZJekfajokqiQ0ERKaASU5NXdnS5WvDayZ7l8Wx76Sf2FDt6FcFmUNqKtEA/rmfE5nnM8/vn4IzqbZYpNwDppdJMfB3XOQMcmkTpt8hy/H33gZ6evX0X3mRqMIANG+do1Zk42+Qhx3AjD6XQaTN8FxqbhSb1+HN7fXPdjyhVHUjsUOgbOfG1XZNDkHZWDxkuYidToMjJcEjghAgTHWNTKpUrA9iCVDq1ACjsfoRiR6eNcQUUOK9cG8zFh8bLiab9zgYIR+wb6hOVO/REA8pcdboVBKLfWjMHivA+I1MLP1uRjt5ZQkK/KYi3hIPlCPWgbpcSYPlrGEuPajbAPYDvGAkWMrX1SCFbTaSfQkUrVbkWykOvN+4/+95Zv4O2SclvxSk5s+d3kA1Bg5UNwJ3XbaLRGuaAnkiuELLjQ4hvp4IleynSk6E99HAoSmSptTtqHB8f7XaQofOboUZ+wYjS2uidD6XJBBhEIy0S2tkZeFg67YiJT770FwyoS1SBRuMcJf2iXLTv8C/W/XgXXi/YXvbhQdIM1BudWTAsnrGTpCOX+gi6Ly70SpIQvLvwetmSftlCgE2E3JSuL/4NqcUy4XWMzofwtvhtJhAHMcEfAg3s0KBIhOeyxd1Tdmn5RuDaDn1b9/HWL+dsDtTHnfZik281gpbgvE71M4s9bp2cM0jYVLqFG7eXtm7XvgSpet3DP8+ZL/ZN4+gs= + + + 5VnNTttAEL5X6jtYPrVSsJPQSpQmIBKaEomfiITAdbGHZMXGa+2uSdJT36Hq0/TQN2pfoeO1HfLjFAhgp0VciHd25pv5ZvZn9vePn5Xd0YAZNyAk5V7VLFlF0wDP4S71elUzUFcbW+buzutXlYsB6/RhAAbKe3J7JGnV7Cvlb9v2cDi0hpsWFz27XCyW7Iujw7aDsmSDelIRzwHT0HOPyQCqZoMF4KkDGJEe9+KRbgKgjADQnGFUagFlLohT6FGpBFE4LPUIjiGYthozSJEx4m+dsY+2zHjGrb59ooiB6LeVFkg0tfsAylzNuYkNtNIS3Aehxm1QCkP4WfDAl1MCEfg0KaNGJLgnGIM9pkB46M0NNChj5sz0RRtybjzVhJH8rpodYCDotXVOvTr3lOBMWmdNKzR/iGHsUhh+YsiJpywNrKlg0KZfkMQuQeqQo2KxYJS3TMOeR2bfAa3SRtuO4iIdc5fKgCAfREEiaEx9q5p1Itw5jGko0q1U7CWRfyA9HUE86ROBxkN6Cm3ocThrtmFALzlzP1jvGxjWQou4YRG9efdR/70t7DlOOIULqHPGxQKtj4xN0+FeEhuNOBoN2cs+RvtwRQKmwkBkkb6nxA39tM4kxJb3qSSXDNwWoWGOxJnbIEzC0+dtuNZMSInzMlp/UsFyrhDw2uTvERHXIPLISwsNMuIjruyjcN6nCjowUnFdHnMxICx1vX3OAARC5JIE6+F+NOPl0p/4n2chHPFAwgmeALN2vikPuMLFyLlGUC/V7zyZ/8zGfj+sgVI5ozMmbnu1QCnu6UDgHu0zMtbn78kWHeJZDMVjDgWRxlj9r6/fczi3zqRCh/d64dUljEP2pGd5HFvnyFuT+n9RHHxbKw6iH5HYycsqhnUmIs/amOyHNS5cePLbyPKVeEEfaqz3KXMnima6RnVGpEyGzOTWp79WzUhl7MGKHbOULdBO9zDf++O/ydC0Yu3F/8YS/kOdlWroYd2M6FQXNuZybcrNNTE2iy0Q4b2u8MzZ+reDftKDyj4aLUEHRIx1e2f1RHhQOzbPbmPSWXUCGTla8kfZ+PpMHYyFk8DcO0LFnnrNuP2qb1IyfMk4BTbzYqKHsU4XJYy4ku9b4ebjGpxLQEy/4ESKp6zELd17WL5zMUJSlsZIE7PsWUnLTMI+/yilp+qHrJ0/ + + + 7V3bctu4ln2fqvkHlZ9mKmrLFnVzV3JO6WLHSnyRLDvp9httwTJjivQhqTh2nT+bh/mk+YUBQF1ICqQlhSQoca221QE2rb2BvQGCi7j83//878d//hrrhZ/EsjXT+LR3uH+wVyDGvTnUjNGnvYnz8Edj75//+M//+PjXWL9+JGNSoNcb9p+/bO3T3qPjPP9ZKr28vOy/KPumNSqVDw4OS3+dnw3u6bXqH5phO6pxT/YK/G8v1DH5tHeiT4jhnJJf6sg0ppJvMwPK1ACqrlD42Jpo+pBYV2Sk2Y6lOlRscwmVUWMGzqtOBNcUpnnXr89U1970Lxbf11EdtUCt/9PhF8y+afBIiLO3WeHmOqiWnmU+E8t5HRDHoVX42TInz7bnAtd40VWFlmqT4SWtg/ajajnfNPLSUq2mRdSmoY1VhwyLYYJyqEQJlVRCJdVQSS1UUg+VNHySlmlRHwgL5BeVI2RKhKwSIatGyGoRsnqErLHncy5174Do5N4xLTsgcD3/TbMnKg05+rezCwuevE97VMNeoRT80pL4Wz+WQoJpzYhbKkTgcnFZAhcVZulPe9fUWkt72v+uGW3TcCxTt/dvuvSHV+SxTlu84eyfmBZpm7pJC/xNpZ3Cp73qYbHg/i7XQVw6DWeubkBGJincdAsDMtbuTH1YLDSeHVH1v1Mfv+v0M80gtNn80uz0fd/S1fsnN6gRBnLDgN6byLU2Jm36/5FpafeqjphATLgxQa3TjIk5sRESOQ+JM3OkWprzONbu5cRCcKx3av4MGdQtSZeHqj7x8njVJ14etPrEyyNXn3h5+OoTL49hfWLRQDa84AK5aEgbUXjBBaLBbUQFCC4QDXMjKkFwQRID3v2ufU47NnJJ9aQfzQNT14bfHzWHuMUNfZTZzuevuP3V06hgxLpHiR0PGzAXfamyP6n4kxV/supP1vzJuj8Zew2yLx3Quw+R2XWzGOGRX1zOKgvyFEFeRZBXFeTVBHl1QZ6ni+2ZmuG47fHCNEjcLhjcq45DLK5lerPPSzT76/3aUg37WbVoBZRDJUqopBIqCRVUQyW1UEk9VBJ742T8YEbCYtUajddxMfvHLwneYRd5ZVGmIsqsiDKrosyaKLMe+w3R1N1bLvp0YZ/uiYaQ58ffdICHLkHL3eWWK8qM/QZwpQ7lNmf+KHKi6XrR+1DC2Yeb7ox7OOLUxHpFZ6/E5mWeNhL3NVkIG0KrwkuH5Pe9RPmwUizMPpIim1xHd1T7kb+RnCtnObHp5Derz5Y23O9Y6gtPsVCz59qurQlJSBsNJ03VU1PHUwPH0p5JisVLVCGPF66wqdPHF0Nlf9ZS75/84erpxVNSXV5Nd+LU6NwjO9tXtakbiK2pxjzuTunQ541eEWxaJ6puxxh6S3q/0evZmEuO1mA7i1fv+3eEgzK9GUw/JAR6i3ZtfHyy28G+YqdTrhxRR0w/tjzkZYwKJA2AovqyZO+jK3eiCasN683EalOZh4JuJeFuJTONLfO9WeLxvnjMR7wj3nc/3qevvWSGfAbmEWVxTo/7EkHubJ5svj7wvb28UjWblkCYWRbmKsLcijC3KsytCXPrwtzY2ei2agx1YtN+60nuu43c0RvSHkWyxavEWthsPttKpnIuH/X7HAxCZfgevUmOepPstWzPzVtmA098AkZLtc7UO6JLG5wkXsKeRuSWsKcO2ZLc/zo8KLo/f5QP/js4KeCwmsasAN7orjVHJ/In2rChN+3L9KVngmlmWZirCHMrwtyqMLcmzK0Lc2N/JmADBu/DwH7XnqrKyxzWROb8ZGJadmDes+CJOEsP54lMpczIHL6tDmhekZkI6EzPHVx/9nqmZ2zGHUWZmNQscXHEzve3vvcBuOtJv+tJd0Qm67sYFieJDAOz4YiteNmxyMVK2VXoH/kr9bfbQT4JtpJaeY6o/LjLyQ4Rwa0Eklt7L3fLhJy6d7ntYgOQxKY47GchvrdiGJY0v4z6l1v/tK+/4prQ0aOj3+KOPrDT0+zfHfPFQGTv9AhVrqvfnx2Q44nHbM6x3Jf5cM877pE78yQlb5xpo0fHLfp82DNWR4uJgf2nw3KnOUXnb/Zpso9T9tF64Z/NdtODznFn1Gz+alaaAAAAseH4S7v/rHf6B71S/+CiU6K//dIRTZ9rXN5plHpHhwv5G0sfJGxUq91/+nrrt8fV3x3xC0q9t9JwIW/wdMJGNftPX9rjG789XP9rl8t7tG4Uj5yn+wkbFeq/kHSa/rs5aU3c21mrf/O5HrRnYf9Tiv47afXvbDfN7AvWz8vC/uT81+Lti+mrP73jr3fSV3Gbdkzr5/qCff9kbXto/X5LMN6Zv87XrJ/bUXL2LMD8eXG8Sv0MX9Kwx4Njqr98mx17POD6A/aMk+4vVwJr/18UVl//SiV+AAAAsoBPn+JZ1uZnQJa39isrjWJh9hHbSjoB+cJW8bE1g8ks3RMovJiM74h1+cDLu1gxGN/ZLiGFnHKOaRXTVed3Kufjk1f62VKHGk36F9zyNwLxKL9ShzONg0f1eaFDdHF7YjvmmF/37/JBkf+wlW0Hf7opvkS1eDD778+yOPuwWiseii4/EGbHXtDpwrx5UQ+KBfpzqND/yTgtyqJNlvUap+aYtCaOY0p43wLGGAAAwINuuzn6Mm6Oup3SiP67VKHp3lHpQWloc/lF2S+/SJpxpDq67duFPR+4/gflqOQyxkzeGQbkiTOOTN/474U9XD+16WHKGLO0EpAnzhgL/fchOp2i/1zGmKfrQXsC9qfnvzN7np4E62dh721y/mvx9sXiuW6u4K+QNPv72Bnj7tf26McF/e7SZF17Rn9/biXJGI/Mr+3zNesnJcaY6Tpepb5SZ2hPaf9UVrNjjwdcf8CebDDGrP23FBY/YIwBAMgPtpgxBs+XQZ5vv2ufqbYD0g+kHwAAGcBlfVJ/Nib0s0R/J6UP9PNn6aXRa7qk3+WbXb9QPHKWTpo06lBNtVuPPVx/o9d5cUm/jl2/fBt65DydsFFNpm9MFvZw/aXOS6Ptkn7UBlvxylk66YdYsf8i0un6zyX9eLoetMdjf7r+s+x5ehKsn4W9t8n5r8PbV+3yh8l0RvsrIk3ti530o22s0emZ1LbJ2vYQxUmS9GPt/3xNe9Ih/Vh/9Ot4FXtSJ9kuFaf+/S479njA9QfqKxukX8epk0OF2QPSDwCA/CAt0o+fspVDDqxnEdsmu3uICugvAAC2A6C/Vgbor1UB+isaoL82AeivDQD6awOA/gIAII8A/ZUs/SVxy+w0CLDMLI6XtVY9oQX5fkXL5+jW6sWC+4vF+HlbjF+prDFJtxwyG3flSbrp9Zq7PE82M/0k3k0AAJBBYD3+ysB6/FWB9fjRwHr8TYD1+BsA6/E3ANbjAwCQR8T1bmI7XxjkYPV4ZlixY0O90wnnxhZnX92/zg3hNCloOQAAcgbQcisDtNyqAC0XDdBymwC03AYALbcBQMsBAJBH5JKWmy5jBykX+9TT96a6vkMCpj0/MV8zurfEHR3zJRetcdkdny31NRO7Fqfu+Lz2yBmOgdSXVsjr/BF2IWGXukt23xF4ZQgAABATji86/YOrdv/p623/6Ut7fPOl3X/Wad65JtEe+tub9A8uOiX62y8dUfu+KLBnW+xplHpvpaEnnoLxJYi3i3Fy9hyxdGntNLMvllcsLd6eem+NknLzG/bwNKuvpziMcsHq67Xr+muhr9W/+Vxn6dsnmi7fcv9EpOn1x2/xGeWCfX/3B42lo0N/+Y37uFWtiRB/0niR+YqQQ+xPef2DB9yfwfjBK0MAAHKDLT5ZL/WtX7AVC7Zikb0Vy4B+uU52mVNN+y23ONoTj3NQxwAAADGBbZB/fD3f8JxvMP5sLDbQl2NPcANvvqEx7Nkae+YHHEzjKRhfwTSzPx7qWGzPZhvUx7aht7th/tIBC5vaFyd1zDbMb58FD6RwDzxgG9BP+Abs3D8RaVa+2KljfmDGJHiAB9X3l2zqOMSfkjek5xD7U17/4IHrz0D8gDoGACA3EFHHcoiwXZ/5Hxsnul+uK9XDNJlRUGMAAAASAWoM9sRvD6gxH0CNbQJQYxsA1BgAAEBGkTVqbHd3YQBXBAAAEBOwAhf2xG4PVuD6gRW4mwArcDcAVuACAABkFFu8AneL5yVJYuN2f0u8zCwEBwcIAACwNsABwp7Y7QEH6Ac4wE0ADnADgAMEAADIKBI4uAuE3HorR0HNgZoDAADIMEDNwZ7Y7QE15weouU0Aam4DgJoDAADIKEDNyaLm8nOMNFgyAACAmIANz2BP/PZgwzMfsOHZJsCGZxsAG54BAABkFGDJJLNk6RNj15Zq2M+qRX3lHg1b9OZQM0f0emO4xJ/9Zi30TF21ztQ7MuPJ0i95+1G1nG8aeTnTDFL0pcr+pOJPVvzJqj9Z8yfr/mRjkWxaROUnkQqyyoI8RZBXEeRVBXk1QV5dkNeI28+De9VxiMWKPqAtn9jp+7lDHtSJ7pzQ/kYeC3xNfjlNXRsZbqxPu8NzbTjUyRl5EIb/73VE16/PC59MzWB54VaTETGG15qjE7TJnW6TDnnWJTbIlFohr8nPljbcb+q0CzJU9mfz6dLlxXzpylGxMPuIbb70TZfr9x+73lHtR/9R1CwnNp1tqpDYmmrwUrMT7U9NS3ujV6j6CR112MkcbR+lduBY2jNJTfE3er12HywtH/WloDXRwgYC6sS0SGDe/2GFhvD0Q8LA1t+tsMqReP/IZEdelHN7i/v+0SJvGrFw99j5u0cavWnmuzVvtMvp1DIX8Ycs2N0PRF/C0Te5u9OzcUuV+EjmoaRCBeVQiRIqqYRKqqGSWqikHiqJ/xbsCYud7ZCycRMMe4RK+qECz1AynqEOyrSnn35I6O5P9fvM9PVXqmbTS4qizLIwVxHmVoS5VWFuTZhbF+bG3qnSyu+ZmjELD1R/dPXnjDWdN03EBeLCExeXj/ICQ85AbO2nJFAw6QzGEh+eXKnGKBsPozvxVOiXTKdfCPLKokxFlFkRZVZFmTVRZl2UGXuP6Ymine0ys/Mcma3HubTpO8nPczzUW6pU+njepKkdrFU3DW1MjfMMygKCcqhECZVUQiXVUEktVFIPlTR8EreDEhbILypHyJQIWSVCVo2Q1SJk9QhZMn3tPAARfAg+CcEnP+xOzZ8hrlqSLgegT7wchT7xcij6xMvx6BMvB6VPvByZPrEoPMMLLpCLAjWi8IILRCEbUQGCC0TBG1EJggsSC+P9rj3fZxQhjZDesZCe/VvOKfN4st+BJ/vpbH9Otu7w831mdmB23ehX/v1Rc+J7wg5V+tlShxpN+tlQTrEnqZxxC64BybwhDlHJyJPUFGLHIAAAMohuuzn6Mm6Oup3SiP67VKHp3lHpQWloc/lF2S+/OEjYKKqj275d2POB639Qjkrd0UzeGQbkw4SNYjY1x38v7OH6qU0Pr925XAnIlVh2dImA0H8fotMp+m/yMk/Xg/YE7E/Pf2f2PD0J1s/C3tvk/Nfi7YvFc91cwV8hafb3V3Gb1v3aHv24oN9dmqxrz+jvz61vCcb7yPzaPl+zftLZ8YX58+h4lfpKfceeU9o/ldXs2OMB1x+wJ54dsH4XrP23FBY//8KOQQAA5AZx7RgkZkIuJuM7Yl0+cIZrMYkkplVnMe1SFL4R0Rr7EzWUfeWoUqmsuEvRbxa3pw6H9A8WFaoUCwfuj8wdkU7N8Ww/pK59xcLh2gzbHGX3WeSWTrMQ6aBVAQDYZVzONp72bay82Oj8MrjRMEsnTct15hthezd65hvl8sfcTnAjX55O2KjmfGNu78bTJbaxsEurLm18zNJJ0wRi/0Wk0/WfS6t23I2zA/Z47E/Xf5Y9T0+C9bOw9zY5/7kbZdcuf5hM58Ybn1P7YqdV2UbZnd5mG8UTxUmSVmXt/3xNe9KhVVl/9Ot4FXtSpzEv+cbi2bHHA64/kYMFfhcdvjE8swe0KgAA+UECG7Fnn/PzzkTeefYvZ5RcimQn2D8AALYGYP9WBti/VQH2Lxpg/zYB2L8NAPZvA4D9AwAgj8gl+zc9ARHcX+64v9SWy4MDBAAgg8DC6pWBhdWrAguro4GF1ZsAC6s3ABZWbwAsrAYAII/IJQfYtc9U28nPEmAQgSACAQAApgARuDJABK4KEIHRABG4CUAEbgAQgRsARCAAAHlELolA71JgUIKgBEEJAgCQS4ASXBmgBFcFKMFogBLcBKAENwAowQ0AShAAgDwil5TgYn0wCMHYCMHDo9q+UqlW1mEFQ7J3jA/E0drbfbS2X9GJaRG/L2v1YsH9zcYBVun1qeg689l1xh3x77Wwd7rq1AMe2wvnJPSzH4rY6yangUiHdq8ZiD88QyEId2BUv/bjodQxB5pcXppcKrTFltxqQNslFP+VmlLLc/yDtttF2k6sUFLVYk4oAADA76B/cNG5fbro9Mu3HfrvMUt3Zc/ZOf7S7htDak+vxOwpvTVKvaNDmj7XJFvW7D99aQ+pTf3SEbevR21Tbmh6OodVHlptapvC64vbR+vsrTRMxJ/HJ63+9cU8XoLxs5ym1985CfuTlf/r7aL8Rwt9a6Tj9ieLl/HN5vbM0x+qrD6PYzHqmPvHrS9uH21vz3p4+nrmr4TsWdv+QP8AezJuD2tPX4LxJc8eAACA1CCaE5oe2TugX64TsLv5ZHfTmUsHEhAAAGALwQ+CnfCDUNnBnuPFQdISwQ5m/eshcDCzsjh4WyKWDmZlByE/LA66lofFwazeg78T8ad7EDKPl2D8iNPsYOmfCftTfDD6JgdHx+lP4cHoa9v3w6xd1vlByrEYNT/42K0vbh8/KD0sHTzoPmZ7NrHf1z/Ankzbw/qL9lkwvuTZAwAAkBoyRAJitdXO0oHgyQAAAOIHJsutB0yWa2Ky3BrAZLkEkLnJYLAn2h5MlgMAIK/IEE+GrWDAkrkASwYAAPAuwJKtB7BkTbBkawAsWQLIHAsEe6LtAUsGAEBeEdcxI1uzaWdgFSs2LAQ7B3YOAABgdYCdWw9g55pg59YA2LkEkDn2CfZE2wN2DgCAvCLf7BwO1gFPB54OAABgM4CnWw/g6Zrg6dYAeLoEkDkeCvZE2wOeDgCAvCLfPF0Wj/9tP6qW800jLy3ValpEbRramBZhWAwTlEMlSqikEiqphkpqoZJ6qKThk7gHwQoL5BeVI2RKhKwSIatGyGoRsnqErLFEqf5mmJ5MDIPoAzJizUh+7J2aP0P8tSRdjkKfeDkUfeLlePSJl4PSJ16OTJ94OTx9YlGMhhdcIBdFa0ThBReI4jaiAgQXiCI4ohIEFyQby7RXnb8UQVwjrncxrmf/7pgvhsQYZ4FwbamG/axa1MJimKAcKlFCJZVQSTVUUguV1EMlntjtmZrhuH69MA0StzfbVA2xNdVgFnBd00GsZA/yk6OKy1llQZ4iyKsI8qqCvJogry7IS88jLfKmEStDrkBjWtl1k7s7nWTEdbvx/MQb3/dHzSGu2/iVcfutYxoTB08d6Y7Ogp5N0qkYfufIwRkah+Z3FDMfV55pRlbuiPn2SM/U3WYKb2TFGxlrGxjor+q9K3WItpSZtsS9kbG2lHNvZMgT6NVW95wxylIbgudW9dzgXnUcgjtSVvrAqT9wT8qKPxzyrEt3hqdrSIYROdXvz9Q7ossPt4A/F47+Tg21HlRdP9F0/UrVbPolaSzMu+nSH27FfH3e2DSdR/qX5+ZwsVztVBs9Dp4JGUqYpDWvm5bqHszJKyfrTjyh/4cTw5w4qx2ppHPExDPv25aUXDivoQGVEnufygxaEZpp+OdMHh5UioXZh0xPunZKdKGovXGyPe4biC94vYS6/DAW3TjSrQPp/XHoG933Rk/oipn/BpPxWLVe4cBtdeC16ah6BobticxBaNPPkWlp9yrt3Yaaqjd/aRLuOekU9mIypgF5v/sFvXyU/UiWTjndSaF5KCnvquUWVM7t4cS0iH+AXj0sFtzf2LaTWdLJ6neqbkD7R1K46RYGZKzdmfqwWGg8C6s/4duSp6uW03fxmrjpzurhiFfTeoW8fn1elG5a3SwvfKMfMiLGsOuQcYbZpUyynIm8YKMtcTI2kngyXWo+/ILF93wstSaaTqu+ozrqInfgvOrEfiTEuSK6yp7mvao/UqOXryhMAywy8Ohfzit17/1QvaKD2MUuXP6qCbHiiow027F4wv1ij5YOeVAnurOCZo+tAu3UJaE1xN3CxdOq9VrEr5lXulfC/pz/6fUjVfeP/wc= + + + 7VndTtswFL6ftHeIcrVJkLRM2xC0INqtoxJdoSmFW5McEgsnrmyHts+2iz3SXmEnblL6k47RUVIGQqqEfWKf7/uOj4/tXz9+Vg6HITNuQUjKo6pZtkqmAZHLPRr5VTNW19u75uHB2zeVy5B1AwjBQPtI7g0lrZqBUv092x4MBtbgg8WFb++USmX7snXiuGhLtmkkFYlcMA397XcSQtVssBgidQxD4vMo7ellDuygAzidYVRqMWUeiA74VCpBFHZL3YN96IyjRgxybIy0rTvq41xm+sXdeF+IIgZ6v6e0QTaSEwAoczVwkzlwllPB+yDUyAGlkMJvgsd9OWUwdj7PyqgRCV4bOThyXSSowd1YNriAOmdcbB0xBSJCiLfQoIxtnRIv0ehdubT/cT/5eW/OTIMTOcDAVVzIuY6xDz0qY4LgiYLM0Jhqq5r1gKgu5+yKCMcVnLETuFa1WCkefWWoWYR82fNz2vmTVuwlqFei5lSAxIYJOU+P3GrxWEIb182L4aBD/WDTSNi8NbLI0mZwsw7gTsAHKfgXkBAW0RYZ/w74HM6b5VKDI+0Pg5tsjROcKZbxdtnFVkFvrAsa1XFcDGhpdThXHeIVpnCKdHftQM+bVqJzC0OJ+CB7FAbFhfVcJsMO6ta4wAJmq8aIe7NqqD+YEpQ+YaUwJlqERpqCP0f83CD54OeMjOz/fPDjDJCtdSfEdRDgVy3uYT3bI1jFVs1jTPdnaEXVKI+ae7x6jLSUhmstvrpiUHAaPuaYC1/FephYVlO2B1Has2Hpde1CtfvE1XKkEpWsz8VKkxxRN3Ore3laJC2xLH7nmaqnx1vwa0JLlDqLqXtTDzh1i1sx2Qnv077+WzzfrV2ZGhZj40IsU+UioCo3ka9ZD6zUujBUNT4sTg5BQyJGyap57CPYIrqFcXCkekCZNxlg5pqvzoiUWZeZ1b66NdFZD60dX/GGc57rlNUcYE8sSleQSPaJQLRL0tdzkCZ1/X8TR98sQOSNr4yaYVKCcBGSR18/sxMVliFy8OpTw1MkbozTpoLQSiJqkq0LKnEWpHiul0n3onVi3wepwDtyk/eZtUTegmRz7y4Ve+r1565Vv/zI5OWnA2zmhUl3Y7wsWhhpOP3NpYn5L7dryMdS9zQny17AtM0E8fz7mf5Uv7kd/AY= + + + 7V3dUuM2FL7fmb6Dx1ftTHB+YDuUJruzgbJkpgGGsLC3qi0SFVlKJQXCvlov+kh9hcqOnTjEKUuI5dg+FwQcyTo6+j4fHZ8joX///qf9cepT6wELSTjr2E2nYVuYudwjbNixJ+pu79D++OGHd+2vPr0eYR9buj6TR1NJOvZIqfFRvf74+Og87jtcDOutRqNZ/9r/feDqumiPMKkQc7FthfeeIx937FM6wUyd4SkachaV3MQdaOkOaHGW1e5OCPWwuMJDIpVAShfLsESX6c4M1BPFKXWs6Lvrp7GWZUd3LNo7QQpZuvdHKqwQtzQYYazszZSby9BSLgUfY6GeBlgpPYSfBZ+MZaLCrPNptawukti70GNwgu/QhKpTzlStj8Q9Fqdc4GNOubCXmlqVJ5+Vp4qz4uuOfY0pFuTeuSXsWIsTnErnhsgJor9RDQtTThe59zPR1g3SyOl7BGJyjIQuta36FgReIa+nsO98kThS/YRI9AfF3iUigZBI8CmiEq+KbNdfGIT2QAt1FRfpoxMwJa5hRWrP2JPaWc6V7nBUL6036dLa9TW4v5IcGguKxvqiy4Wm8woh/l/XGbYDhdRC5cR3HVurdjzC7n2XT2MVVxrSTR2P9MM0b2HpcTqmSMq4yI4HNPy2Y3cnSnEWdX1DU5JCuXq6aoahSTwYp4TSQkITdrxswPQJG5Bv+Mfm4a/Nw58Khkui+fD3pSA+UeQBlw+m5bmulpgHDWBm3JLHk9xC4WcDsN+4xMJN4dP2tXfizjjXfDjU7lBYsccUFj72iL6A8VkdnwtmflR2YAzMK23C7Z3bVeks29lnl+HrwtwnPecsA5f0u9HxNRtgtgFObZtTz80cUKxcFNMtHO4SxXrMw4GvQVjgagDbNmHbJzfwA0yFBbK0EKGowNEpaaBghlSfTyS+eMDCGGRziYBWAdBafsAAvMKCl3yNBhjfAOOlwNJg5Hs9iFFHAMJCQaiNKABXFOAAqdcjFbzbIPFUwOTTAhnk3gdaMQ/QeQs66+P4AFsRYcvcbwQAMwYw2wkN4NsOfIBSEVACY7ixM0+1SWIoCIAbwmqeNQaoNnnvOufCRzSHySuzmH7ZETvj2jDlAhjYxe0EOfIBD1yPTFZ37kzOPedlHWbMfHXS7UWhXfpSj+3KH/w1QQLfEk+NPnl/TuRiz8a+GdFnmAxHyrTsMy7IN10N0Yu7O5yQvNfMWvSNvom4mQle3gO02H4Uy3nfrFmzn92zaJlFO6tj2wxbs56PhnjB7fByTrUKEywaCCBXuckFHAIOvZVDGb36A5uqyaYsYhHApWpyyXBKG2gGNMs88V4NkoWq3Y6Iws2DafNgpmSpwpOAW9GSUYCgOQTBchZkei5BFsqQuYCYLVDOqH0Dwpkn3PZSni/lwRo1q/lLs2a19luQ6MxQ7VxSy6/IseZtzHKIq4Bhy4Z1u2PY9t/rj58PSvyEV9SmFtWwgb9WzKX/sBlxe//9j7A8wYNNAa+GTP9B3NmG89Z4WvwNN+XcOp8bSqZtYznhK5rLnodblYldqI77tLsU2534qgmfoTqMq94Ok5eiEq3GQc2KPyA4kInojHeWbCkOtDPWDXabFG1mLcBaNiOuGqy8qBaZYA/T9lgWqhYPrNElWnm42OXE8KWj9cwlNnI/Rcb8ol7jGvfc+blzBmaI5ReZgc+5Gum7+tzbxdd2CEECwbIkGPDoFTwKUny5JyLgQI93izppFRbttOuJk4UX34YhMhmcKnyF6dLpxWGxBmK1hhU93utPn/3ScxIQzod5s+Nq13QieZryrOGElOhMxu+QvNzVlA5oUNaOUQjMuiOewzrzYX9+QHR4a3io9If/AA== + + + 7VtfU9s4EH/vzH0HjZ7uZqhDaG6GoUk7EI6SmQYYQqGvqr3EOmQpJykQ+tXuoR+pX6GK7Px3hgZixzF6gEHWSrva/Wkl/8z+/P9H/eMgYugepKKCN3DV28UIuC8CyrsN3Ne3b/fxxw9/vKl/jdhVCBEgI8/VwUDRBg617h1UKg8PD97DO0/IbmVvd7da+dr+3PGNLHlLudKE+4CRHXtGImjgE9YHrk9hQLqCJz3XIwP2jAFGHUL1oz5lAchL6FKlJdGmW9ke02eM6ehHBikyKHl29dgzunAyYjLfMdEEGesPtBUYzdQJATR+3uLGOoyWCyl6IPVjB7Q2LvwkRb+npgRi49Ok0BFREJwbH7Qp79Dv8Ge19r5a+wvPjF5Uoeb6UzWgUbuBr4CBpHfeDeVNwbUUTHkXkkZU03tQXjME/27cnmtaV2F0TUwIG9jMsI9RZd6+yhMG1jvGAl8LmW75NVV9YoJCNIwE0dSzBr4kgbUqIvJu3jl2kmZoIj0eOxPrISpGPRj9wwz0uI6hspJfnomUBWcN3ZW+5gWvpnvNDk+D04qYa/mCHwlpNkgeeIvXm7jf60RC6NCMaotggq4zwVMcVmh0NRlRagFe9mkD21nbZtbEzWVD0Dhr7b+v7i9mrXWGJQUV2a5tuO+JfDyhjGW6sGzwRvy74Xp4UDrM5RQX70p0u+aOYHtaPAANMqLctFzEVozYoe+bBZ8JGRGWa9jOuYvVirHK+ebZikgXJjdP2xzfBrbsJvD8e+asFxymyoup9Z0qDm1L0GZ9fRNSDdXaoFqLw1/cE8fFsRhZYwUOpABvqRsDXckpkeKCLp14W6/+zn99IuEUaDfUh8G/faXH6t/lo/uGBjrMRvUs/3QiJDQFG8I/UfN3dQfFP1kv9VRI+t2IEXZ+ewtTK81c87UZRP3f0fvqbkUlT2zxO7hjezdCF5ST/D1kZpuaTWq2S+aszjFV5BuDwPE5LwvSTptQnlu0HBm3fTvM8d5rC5/5g/px8t/rDdypm1s6L+d56+BUuNxVTqBtGwmyHbnLvZpuHdwKm9sc4/sK0Jcf45sh67pJsvkpxndvt7aDRr+KQ71ujmwuQGZz7G9m38RH/s7ps/jGDy73fXydaaXQ/1WT/53cgevVgasI55SD3YthZ2Lb0hB5XxQcwy3pMz0K8AWhfHI/OiFMZfD2Nx37p0N/KYQ2Bidy+RdBDD8XOcpx45+4yskzuvqzItSdbB+2FuIxV3Fbr0zV/U6eWnZFDWt+L4HN1BbbbhOERQmUwCfO0LMFaS9K3kvUTVc1xxNPaUmOq9/Q/KXlLSueM45f6gfr/GVF1lZm7Nr5Em071JZ1f/gF + + + 7d3bUuLavsfx+1k134HilloOFQ+wSnsVGqfaUxEVj3cIAdGQOENA5dX2xX6k/Qo7/EdcpBFR20Pi8PupakqbCEGGg1/G8f/+539X/nPXcTJ92++2PXc1Ozczm83Ybt1rtN3WarYXNP9VyP7nx59/rJx2nOql3bEz4fFu99933fZq9jIIbv6t1O3t7cxtfsbzW2p+dnZOne7uHNbDY2v/arvdoObW7WxGfrZc69ir2b+cnu0GW/ZdreW50T3HDycwH55A+HSZzMpar+00bP/AbrW7gV8Lwru7ck94X3gyh8G9Y084JhP9X/X+JnyubPQTo8ezakEtE579vwM54OGRDi9tO8j+3ov773OEz1LxvRvbD+4P7SAIf4Wbvte76cYO0Cc/6ajMWq1rN/bC38GB13MbB3Y9OLys3dhyMz+b/eVBHj9Td+z+iU+Uefh+NVu1HdtvX8+ctN11zw18z+nOHG3P7LRbl8Fxu9urORtO+Ma4wcx2p9YK38HjWvi+rWb3r/P2ZmujJKyz4a03vLlshTfb9eGXa6X1Uoy1YYX33ZUWSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAadYW7K3Wwe5gd6DCf7tqYa5cPc3J91fD74t39dONw6TPEpjG3rpc2KgOy2uhWKnmVWPrYFYtdH62m8W5xumpqlRni7p8U56RamEpraiKdVtQXnu7XcnX8+WBKqjKQBXzjXwzt93eviqOynMh6fMFJrOG5XNxtrFVVWHJbahxUp51/Sx5o5X0CQOTlatHc7o+VoOwLn5UlKV+lrxRkPyc9PkCTxjmi5zk4+Kgnn9clCVvyP36ejDp8wUmk3xRKFSsQe5ywd5SDSnPUj9L3tD1sVwPSr64TfqEgcku5ov9jVh51u0Xw7xRlPws14O6PU7a65I+X2CaWHmWvCH5WcrvgrRvSHvdftJnCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEyWzagff/6RiVlRFd+7sf3g/tAOgrbb6o4fcGg7dj3w/PE7wrtOO866U+t2Hw7JbDh2x3YD+c/V7Hr4pV9zLC+Y9LyTH3dFhQ86dkqbvte7+fWoJw7KrNW6dmPPXc1mx5/vmZc58TEzD9+vZqvh2frt65mTtrvuhS/Lc7ozR9szO+3WZXDc7vZqTvTaZ7Y7tZadzRzXnJ69mt2/ztubrQ3967fOhrfe8OayFd5s14dfrpXW4++RtWGF992VFj61ZAAA8LksZ9E+VQt7VkvlrNZCRdn5YFnNN9xzVXTP55vqPPw6/n0zX1Tx4+Xnk34VMNtCrnKliv2LeaWqs8WKGuwOdlUhvK2o8KvBR35fHtTzaq5cPVLF8KuKul7cq1Le8by9ytWCUidzwcXk8lXcOZztq1ZYl6rlvUE3KtpLub6vVGVQUGo5p/oq/LesntUPj9XHF8MaOvp5dzHXVOFjVtWS7d5E9+zPlq3H51PPl1WxeTqnKN8olebLV2ePy6u1P1tRV2FdrAr9nfuo0CVN/j70H8nWXaGp/54G3eW9x+V7+PlRSPpXiw9lST4df/8lr+ryIZXkVxMr35LPY/W31PQL9taluk36d4832Tt1FpvqcDbYib+/Yc01UIXm1p1SYcluJl0S310hLMFRcrk6m//l86ZSnaW+/jp0+T0Kr5Wi90/ez7AmHqhc011MuqB9KolG8lHkLe1dqfBv+jD6ez4LsxX5Oo309dqofaGYb+SbKvx4rSQedbv+3/dq/rxz3tftcQmK1ddyvSj1dXiNe0L+SJguv9JepcuvtFfJ9X965MJC7OpCo+vDdJC/7537Ql+dzhWbUf4KP7n6tId8LutgtrEVlV/pb5Cm31Ra7Jx3mroQy/mmU1icT9Vc4/Q4+nuTz7ek32VzRe0PUn4vTub6Krxm30o8PzwnLMnnUSGWqjnFpBV72c4HUXukbv/o7bTJH+9B9wdLe6muL+T6RV/KfAW6pay1vV6K+ju+hmEpzkl+0+0fw/ZLyvNvi/VfyPVSru8vJf0Wfz/SVXQcZo/o85D+l1cpj66vdf+wke2/X4g0BUmnOuX5BXR7sOQzuf7Qlx5IDWnFkysTyRvF6tFchfL8K0vyQ6w97Uv2H38jYfXsqlj+a+Qb+W/f3iHjF/XvQ67vntPfuQ+vR9ybJfLGx8nJ5+Nfd/Xn3w8Z3/Hd+w/Lo/EBy73lnnquKi64P++j9tmLk7ng/d44xEh/4NnmWitqP3yuf1JaZZb2rryoPEvLUtJF6/NYo/HAejzXi8ig4Hx5UFeF8M//Qvn/LPXe481DzGL7rFPRhbLt/fP3C39KGhzl+jw2XivpUvbR9PhK6R/9rf5l6RSRnyzWThxfj4/BO8gV+jsDdbBxsBGNF5Hxoq9VqFi3UXmW/tiky9uH2JXyG/7lLr95fJpcRC90frabur8V72E4HiNXam1bb+5fl6FKRpZnnSdmy9a+0kNX8A3IeHCD2jdkfnE0lEbGW+JbkfEcX/16sCzzk/XQRpmvgW9Irgflej26lFzo7Xyh8mxdzBf7Om8xaAKRxd5FJyrPlwv2F8nPu6PzBeLywbKty3Pa+7stWa9BzpdojMekv1vmX+lGjqQL7ETSKKbXO0nvfA6kgfQK6PE2w57CFJXnsown19d3sv4J8CyZ/66vpy46i/10lGd9Pt9tUj7egVxPSflJen7K7nDkiV4vJe3z65BGMn5Mrq8kdCRSni29Xpn0b9J/hzfQUx8lnyZRkku7+fKgqefHAG8y7AUsLtv5vp4/+HmFWM/30OPR/KUcUz3wDmLjjz6v/0T3fwThX1HSLx+GGfUHfnR7hiXzR/X4NuDdSWrW818/br3RWP/5faG/k/Rrhrn+Wer5H9g+Z0kel/GarEeBDyXXX9KeIeMf3rs863x8W6hYSb9QfAe5K28p2k/o/QqxJY3GMv5jSn0s/dWyCECu7v6k/xoT6J1UZH1eWcR9SlOudB2/93j9l7VXyOfB/sZaKRokUtrfsNT1z/X9aP1efFe6/JavzvJqr3q9GJWPzYPriyivPk0G0b1Le0ZsvaCX5WN56pvaiaNmnZ+HTX2+DM343uTzeXattF8p7h/9ZSn/7/vutPo4Rjq19fie4f6cbyjPuj+vs9i7eP0LGLbafaX1V/GhdP372vHrUpRlPtLv7y9hyfr9jK9A4nLLveX+G8Zn6PVgZb4/492QJJkaqq//ZPzaa4sy80uRJrK+osxPekVe3hvma12fc72GlJCpdq+db6KXYpP9VIA0kfpVrh9fdP1nyfGyviiQJno/UelaeVGlrPtDUrZ/I6Bi6xs9ly+s0X71NFogfeaL/YuXjZcrD/dHSXz/ZeAJ0t/8ovFyo+vDpM8ZeIKe//fMeDmL9TaRerJfzZS8LIti6f4UGQ8EpJTMX3o6L1uyHvkrxr8BCZH9iZ8ej1G+OJnrs2kpvoDheMsp6wvIyDudp4HUk/n+Rb82/6j/Ourfs92bpM8ReAHZD3Di+nK6fy+8Mnz9/mzAp9P7QU/My/p6j6iMr2Gp5/8zuT1O54uibOUEpJ7Ml57YHqfzBfst4IuwbguP2uMsmX+q8wVLy+JrkPnb4/lir3K1EI1n1ks1A6k32o8nli9kvpRuby7ILgyTyPRtvX93a3u9pBbWS61Kbv/6J+tt4R3o8jRWvqQn5AmylMB4vnAW7Wi+1JT1Ca6273f1QbrQy4PMOecn5BG8jYynkPI0Xr6W9wbdJ34oN4wSj/LFTnshKt9T/grk+cIy76jcqbPYVFL+6U/BO5HyNF6+ZP37yUbzVWP5YnGveh39KchUEyD9pNKd0j9C+wW+BhlPP61/hKXd8DXI+Iop/SOSP4DU0+tlTckXW3cF8gW+AGnamJIvlu18kPQ5Ai/QXujt6PHKk/OFrD8LpJ5upJNFksfzheyHWnTP58kXSDe9n59s/TCc7/QoX8T2Z5AOaiClZL0sycPSHzKeL+LrzzKeCCk22v96ynpxOi/LelxASkml/Nx6cXp9LZkvBaSTHp/xzH4k1t6gu6zXxwfSR6KvbG0q7RNT8kVZ2i/2Z8uW0rtWAmky2u9aJu1NyRex9eKY34fUeXr80LS8LPujAWmi948czgx52f4jMgiUvIxUGbZaFGX9+tp84L9s/5GyLIKh55OQl5EOsf2tty4Xpl3vjdPty6/dhBj4GFPGcz5HxhtJ+U/6ReCb0+1vw/3Zn2t/myi+P5S0fwAJkaFvv78/uy7PevzycL8HICEy/1pWZnltfRyj9zuTRTNesXXfzZLtqquz+bLKlwf1D32V+CrOO+cdtVg7cfqqu7z3xHpBj8ilmvQ/5xv5xsva3ybTfw8vmu8nLR3N8KNADcJC3Nc/dHB9vqly4Zlw6fh95YbrqxQ3D64vovVarhf3mjkZhPnc+ikT14N7g7Ak7ulFYKbQeVzK79Ffa/tq+e/7bn/Kel34ZobrUeRu/qm5unxIfafnM00m+znJ+HmpRN9QH49YUt/q6z/Zj+dpxZ3DWa4PMZ3Ub8818r53fRwrz7Jf5WLvovNZLxjflXSFyP4i0v72LvVxTDlM3VF7SK7pLib9amGuYqU6G12fyXrf71ySNd3/x/7t+EjHc41TJddn710fx0h7iP57YZNVvDvddDxav+LjSrIW689mKiveiVwFns2Xr1T47+wj6+MRSxoxdHvGzn2B9gq8A1kE+UPaK54tzyfhtWXUacLQObzFaL/1fLBsf059/Kg86/2DWVQcv0fyqUy6k/6Iz66PY8qyn7tej3nYfgK8iqwX+/T6Qp9enrcOZpvqaK5c5SIQL7WYa7q6va14ejz36vHHH2g3Xx40o/U/Xz5+Dt/RcNZocVDPV3T9l3TRHbfQ22lH7YGynj7wmPRHyyY3z62PlTRZZO5l40HxDRUq1m1UPmQ8XNLl9Tmzja0DVVjeG/R1HgLi+53ONU6P01wfj9N5/uJkrs8izd+cNLVJ/Va09mc/vf/jfYTJvhz1bzP+/huS8ZN6/4TqbLGS+jzxtNh+2bnq9WKFrQC/D2nEkvHGUh9/oTzxtFh5Lsp6R28lj3dXP/3r7Q+FXyzfF/oVPb/4DfR6FcM8nMh4io8WG3+k88bv1c/D9kgZNKUvgucb7vlbfun4r5/3dTcaBLF2W//d8TTSXjxany3pUvdxrMsFeysqzzLf9ZX5OXfRWXxYVLe93Wb80vvJ+f8s9YvhR92W2gujoFrevOu+aii6NBVLnnj5+ppfXax+1jXzi4Yi3e5apegiuH3W2WGTlI9QqG7cVYq71Y2BOg1TXLQf3nNk/oV0IhSH4xdMyxMvI+0buv35ufXI9UXE1tqtKuys39K093EkLxfDyxFXz3eeQs+/k/dP1ltJujwlTeaj6PVyGfT8FQxrFb1+vO7v+Ij50F/YbPgHHl3KSfsE45HSSKqa0Xoo0v/1PfPEc2T+gC7PrYU9i/UJ0kOisLQXFWT8o1zvJF1evoRdyV96/dAwhSX9Rn5nS3tXXlS/kId/V1mun0f7Wen2nq8jtj/ic9dPaSNNF8XR/CBpLyIPv83ecP1HaXnX8w30eqBfov+7c945jyal6/1cUk466XJX3lI0X3Q22DnUTfnk4fdlyX5AUjR0+89dobmV9Ns/RS4syVH/mf58Tq9ceJXS1PlBX88N53dQfj+D7Acbuz7UTfkpG0q6GNbK0fq8umpOEWmFkPmhMohYl9+rs3nKbyJG6/lHeW44NEOvL5OKqbKpyxfD8qvbg2W8pS6/37d/Lr2sg9lGNL5DxndH+wNIyk5E+De1o/fPSPB6Vedf92bpl/wgnXRJv2GYypL1S0fjC/X7p9eDlv2FUlFffyC5HpaPKj3+UG+VIOX3d/YHQ2qUpaVjVB/p8i3j8/RQxJTl61eT85f+i/CaoRW9Pl1+hz1zstUH5dcsur7W/VWj91uvRyrtfbeFykP/YirLt9S3cqPbG0b7KcY+f2QrLtp/vyFrNL42Xp/J57E0ish4EF2y5VL/o+cnylPJ54W+PpP1cWLtNbHzk/WgpDwn/VtEWlm6fWpS+Y7X58P+Az3/UvKK9Efq/j253pT+dt2fE/te5hvI+AUZ5Kt/fj/8bHj0+LHv5X7qW7wnWZ8vtj5UbDzfxPI+5XvZn0h+XtZLU418I5+O9f8AJCKbUT/+/CMTs6Iqvndj+8H9oR0EbbfVHT/g0HbseuD543eEd512nOr9jf1wRGbDsTu2Gwz/bzVbDf/Xb1/PnLTddc8NfM/pzhxtzxzUGuuOV7+Ojp10RpOfcUWFTzd2spu+17v59agnDsqs1bp2Y89dzWbHn++ZX8DEx8w8fP/k69xpty6D43a3V3Oilzqz3am17GzmuOb0wt/P/nXe3mxt6DfGOhveesOby1Z4s10ffrlWWo+/e9aGFd53V1r41DIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApNRgd1BRu+Gtuk36VIA3sMJSrApSnpM+FeAtpD4eSHlO+lSAtyBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL6AIcgXMAT5AmYgX8AQ5AsYgnwBM5AvYAjyBQxBvoAZyBcwBPkChiBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL6AIcgXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnyubUT/+/CMTs6Iqvndj+8H9oR0EbbfVHT/g0HbseuD543eEd512nHWn1u0+HJLZcOyO7Qbyn6vZLa/nd0u+791Oet7Jj7uiwgcdO6VN3+vd/HrUEwdl1mpdu7Hnrmaz48/3zMuc+JiZh+9Xs9XwbP329cxJ21333MD3nO7M0fbMTrt1GRy3u72aE732me1OrWVnM8c1p2evZvev8/Zma0P/+q2z4a03vLlshTfb9eGXa6X1+HtkbVjhfXelhU8tGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBKDXYHFbUb3qrbpE8FeAMrLMWqIOU56VMB3kLq44GU56RPBXgL8gXMQL6AIcgXMAT5AmYgX8AQ5AsYgnwBM5AvYAjyBQxBvoAZyBcwBPkChiBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLfHmN0+M5q0q+wFe3ppr5wi75AoYgX8AMtF/AEOQLGIJ8ATOQL2AI8gUMQb6AGcgXMAT5AoYgX8AM5AsYgnwBQ5AvYAbyBQxBvoAhyBcwA/kChiBfwBDkC5iBfAFDkC9gCPIFzEC+AAAAAAAAAAAAAAAAAAAAAAAAAN5FNqN+/PlHJmZFVXzvxvaD+0M7CNpuqzt+wKHt2PXA88fvCO867TjrTq3bfTgks+HYHdsN5D9Xs7tttxfY3ZLve7eTnnnyI6+o8GHHTmrT93o3vx71xEGZtVrXbuy5q9ns+PM980InPmbm4fvVbDU8W799PXPSdtc9N/A9pztztD2z025dBsftbq/mRK9+ZrtTa9nZzHHN6dmr2f3rvL3Z2tBvgHU2vPWGN5et8Ga7PvxyrbQef5esDSu876608KllAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA1Nq5Py9VCkmfBfBm/Z/XJXWb9FkAb7Ve6OxbKumzAN6MfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL6AIcgXMAT5AmYgX8AQ5AsYgnwBM5AvYAjyBQxBvoAZyBcwBPkChiBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL6AIcgXMAT5AmYgX8AQ5AsYgnwBM5AvYAjyBQxBvoAZyBcwBPkChiBfwAzkCxiCfAFDkC9gBvIFDEG+gCHIFzAD+QKGIF/AEOQLmIF8AUOQL2AI8gXMQL4AAAAAAAAAAAAAAAAAAAAAAAAA3iqbUT/+/CMTs6Iqvndj+8H9oR0EbbfVHT/g0HbseuD543eEd512nHWn1u0+HJLZcOyO7Qbyn6vZQ7vuuY1uyfe920nPPPmRV1T4sGMntel7vZvYUY/OWg4YPc6KWuu1nYbtW7WgNvrfw+DesbuXth0c2E4taHtu/KlXDmqNx0dk1j038D2nen9jr2ar4Sn77euZk7Yb/X935mh7JvzJdcerX2cffgNPH33geUF4eHTcr7+WJ87gwG61u4Ev3+gHjj2LZTdrPSd4wTPHznPCs4dvx5O/HXlL5O7o1xo/Iznmv7/w+D3DH5cfrV6GT/fj/wE= + + + 7ZzRbts2FIbvB+wdBF2tgCs76S6GzG4xx3ETIG692El6y1knFhGaNEg6tu/2DsOeZhd7o+0VdiRLsmJLjVo4IYsRNoLIInkOeT7+R7JF/vvX3+13qxnzHkAqKnjHPwpavgd8IkLKpx1/oe9e/+S/e/v9d+1PMzaOYAYelufqZKVox4+0np80m8vlMli+CYScNo9braPmp8HlaIJlyWvKlSZ8Ar6X1P1AZtDx+2wBXJ/DikwFT8/cZA4cowNozvPa3QVlIcgrmFKlJdF4WiVn8Bw6M9JrBiVlvPSz8XqOtvy0xra9HtHEQ+9PdFIga2kUAWj/6zqX20ArQynmIPV6BFrjEL6XYjFXhQIb58tKeV2iIPyIY9CDO7Jgui+49h9V3W9f7Zwvbd7Ljjv+GBhIeh/cUn6KzUvBVHBD1YKwM4Zh4Droksn9qWBC+t4NwUh1/NuIaoxg8wCmrkh4oWEWXCtIO9mjivzGIBwSir3NTPYJUwc2ecZjO2kvRxEJxTI3N5aLEmvt5hOD3R6hvYkWsjwKMYFZCS81vKGy1E8hNPqalivzptxau1nB0xdC9xKkDSWdUU0fQAWXlEN+mBzd0lBHeUiODhP9gsU+ZWxrMcf8uEAB4WpOZOnwP8fEOm792PCyP4fnb2N+pIneYlj4rOOjN4zMFcV5MSQc2DkQFMiMwL02sdXTCDU0b+yRihZp95/GvQqFr5Tgsng1y8fghefVe7aeR2NY6cbFRPC+kJBA0BiSMM6xPxz93IpfrxrxEBC5jjFtYG066QqJ4WgMiJxSjuWS16uXmKeZZsZu57T+8/sfzzEtRjMUvghrDUQIubFzOo1+xVJUrw+WBjKL6chvpabh4buFbwvmYHehteDGssAOo+VIOgQNcxGcreaEhz0qsWZ82dwTS+5g2YXlT+vjdj13UXNTvBYql3Dn8kGdKe5g4Z0r9PX/TMu3Hs8L9UHoTVAhfPk4DsRCwccHkHHsXCowTUMeDkuu+4YSFP7r4LAGjpgDS+B4nAOKX2QU8oG7YjCNTRksLu04RGqnHdOw2JGEHCo1kpBpVJyu2AdLqa6Y+DrM6YhtaJTqiAk0bNENd6fzpG6YTjF2qIgD5UkVMQ2K7bfHDqGKH+pMg+OSkVWAVCcjMz/UuQRkGxylCcgMHLZoh7vLqaEdphONHUriUKmhJKZRseZi1tQjpd/mU2c2oONSklWIVKckQ48SuSxkGx2lWcgQHbaoh7vfqaMepnONHVriWKmjJaZZseaS1lH0xQ88m2ZnQOQ9pqSMnj1KDjwiMRlnphaK/cI0SE7iJZvJA947fX/TGoKclCwjtfLuzzDM2Rp448RWR+350H2m3u+FdGcnhnazsB/E9tNkLwgV7wVxBezRnhPJaRTl/RJeCmL1Yufri1jOdwehxirpz20KUOFMcS+MTcMFK+mmCzUso8ufXx5e8AXjVDlsSayq9upIyuSR2N3pI6ma7A7y9j8= + + + 7VpLb9pAEL5X6n+wfEqlxBDSVlUCiUISEqSSoEAe6m1rT2CVZRftrgPc+pt67aH/qP0LHS+2w8Mk5IFDEwuBwDue1zc7O2Pm76/fxZ1+h1k3IBUVvGSvO3nbAu4Kj/JWyfb11doXe2f7/bviZYc129ABC+m52uwrWrLbWnc3c7ler+f0NhwhW7lCPr+eu6x9bbhIS9YoV5pwF2zL3HtMOlCyK8wHro+gT1qChyvnkQIFVADFWVax7FPmgTyFFlVaEo3LyqzgGirT0AMGCTRWeK056KIsO7zjlt8+0cRC7Te1IYg4NdoA2n6ccbEMlFKXogtSDxqgNbrwUAq/q0YIhsonUVllosA7QR/swxXxma4Iru2xW6f5q4n1RPZW9LtkN4GBpNfOBeV7yF4KppxT4lU1dJwzBaHkfarIdwZenVBUwToniBjiRphCJHOTKuXu0anYQKGuFjJZ2QCoiMI6YBgMXA/BS1RWCI0Kh3RJ2iRLK+ZmuP2B2NSIvAZZERL2BBPyc74O0oV0gDqnyicsNN0pE/fa6BADdNGmegEADcU2NNG3OI1cK9mIh1GkLPovhktd0g6RgwplLH0oGh2MyjbeVRMexHAcC74kaEwxQlZ7bUyHMYexhLjHiFLRkh3tSXM18EZfI2vj6EeeBZMuCaMgwbKUg6jqCh5v7dVDNui2A3NX68QLzsOV/NbGVn6r8CHNrBwoEIfUnx8/E933aO4HPEj0ZSHxZDyirTbD9624pvST4XqivHklLXyvGKDr1MWUXva1FvzF8ldTEq66RKLwLIfNxuU5M9mQ86tMZDXhKzjBqj6wbrWGZVxiUC0IJScWn+E1H151CQq/pg/SvujxDKTlBSmUmUE0H0ToR0a6+GNY0aQF0wLgCQ14bQBNtM8by9Q+Fz4WVq3oYykaNyd6EJN+PbrLNEhONL2BRSS8u2zNutX5IMIv1B3miUK3f+IjYCNdREo9aoTetyr3oB/vpU9LsX8WEUqvNDFnwXRvggo0xU5KmcI5C625Q2vXDU74inB9NaMse8vRZPySRdMDoyl+wpBFVHJEZdlq0R3Kolr+l6v50fQW5Sv5reC1Pv0vx3P+j3tWdYwHDjyK9FEov7o+536Usyc7c+H0wPr0/2pP30YqTQGk8aLqpYdDUjR4eMq/IYOTipxnNX+qgpsY5SrmRgbKbq+aYTIVDJOdAhsbWjPLaNE0hRWeineeliO+sJ82JjVDidEhuiHjESnhYNgcksdVTVAAQZnpIwPMrMk+QxO7fXIu0NxqZgm3/wE= + + + 7V3dUts4FL7fmX0HT67a2dQJoftHoZ2GQMsMlAwJtLN3aiwSDY7lkZQm7KvtxT7SvsIe+S+2sSEJtuS6viCDbcVHR9/509GR8t8//x6+W81t4xtmnFDnqLVndlsGdibUIs70qLUQt6/+aL17+/NPh1/m9niG59iA9g4/WHFy1JoJ4R50Osvl0lzum5RNO71ud6/z5eJ8NIG26BVxuEDOBLcM77uf0BwftU7tBXbER7xCU+oET27CDvSgA0DOMA77C2JbmF3hKeGCIQGPufcEnkFnRuLexhltjODe+N4FWq3gG+v3DZBABvT+QHgNwjeNZhiL1m7MRTSAypBRFzNxP8JCwBB+YHTh8lgDv/NZrYw+4ti6hDEY4Fu0sMUpdUT7ArE7zE4pw8fUpqyVeNVDejz1PJOcEV4ftcbYxozcmZ+JcwzkGLW5eYWsM4Hn5jXHQU8GhKOvNraGiDgwSDcIEAQckc0B2U66S50n+nQ4AqITQVl2ZyVwYQvjxAbhcIQPZlZnr89kf4/pfI4cq4/YL4mrK0pF8IqsjmZ35LCTg9CWMAJ0U+K82HvTfQN/L9NQtofIklr2Yh8a7MsGY4Yc7iIGvT0ltq0S6xNHAtynDDTkI5nObPhbIz1miwygn09vU0rPFakbwhcI9ByJtWTF7h211hLTXwghrZJyYaELji/BDmciXzB7ZkRNPaNDhjn8q47NAV3qwDOl7Glj0Ch/BZV/TKdTGVRUwAQ86fhLYboihkEn83rMxecZEXiMV6L9fjIBE/CJsjmyyzWSCd79C0s/5x9p6U4wW+KrMwRKXGS25OsbhA+MuDALFGSC7LM5muKiWU9MDCQ1DSYucPrdNz1w+72XbXhCJr7j3ZLdrWdJa95HApiv7KzoAuaYTQCURERZADQAQtIMVCIEKs/2JdmMuYD3E5lCGiKmQzF0884YXephXYnDSzEe0FTPLJg5G7lwsZPd34LhkWsTEWjyg3fB245nxLailyRSonHv0nravQwZmRNBvmFu+kxFN3bMqGZZ204294rRO8e3IjZV99mNnFbbU6LjGf7GqCOFrZRIphCIj23E+QOMvbs5FDzeagdoJmJrQL0ITYKuUFuzHVKDbwFZlWy0dYMced4G4wJ1OJ5Q0oJwGGI0qO6EagqzBJ5xxK9ddV7WDKPISxc7DbS7Qqtoch+MrwkMk68ExvQ+mmpHUbjW+bbS+G2EIWZFXutGnBpx2kKcgHfPDtXZJDV5yQrnJeOCXdfE3JMTQOWMN2Y1MyveWNbtxChV2dKWcn1r0+VezxVhtiVle4kzIn/jF/tduFIhhddn5rm0eP5ghQI5YGgZzBefqHl8vtENaI5myJIiUAq5kK+/zhwLryIie2Xw88M6rcQycyjqulxXnuqFBb2RCpa62J4cBTMkXjVPXnogl63jhWpEjor3ilU5n4MBdsXsMSuiU9cqUslWSyHLlYFu2XK8XzEhO+NhbDiaVaHMeL87xEyWkLXf2wIzB8k1WCWl1lU16qXXTdRzWpa/og/XK2/H1DpIpQvmN+LF6P8jxMfU/Uys4k3OIyTlCoRqmlcyklVNtE9Bsud+wXUUOHT/bBvhh6Ie+J4l2Y9YIKvHBVwgfoetE4sIkP/AOxWaCZD1v/DqcL5ZsxyACpuVnLz30eQuKUNemXXhMiy9zlqCPzBkERl+JSzkiNokwzOWQjkIAGBO11vbDvO33+utNp7vr5vSSHARu98hrnneHtoTbbXhQd7PSwJ6y//hbiCZHvRq5rMSgsWl4NcrpBUriy8/rj0nvHq7Acpj+xx9xbZ2ftVt+gjs5PfG8RaIJlyNej5jW3l67upyAdPveNCqdiktlTb5VXfaJJC+Jm4uWarKw8yUYoZgxLzER4Pgd4hglKJrwNsUPH8/bpTrK6d4eBOtO6WTBW908FkwemOoGcIGtI1BCzdL50aO1UkhaQ2mNCxv7pqWqFrQWMusUckrf7oijFpiVQWb1nvdaxvhR7Vsm85V5ZyF9ZIzUhXkWF0pQeJImh95IBIbzio3Dmpy0RVkXJ0ApIpN9A1FiuMH+6fDnvl13JmHIyhWkyJDjx9oR2bu9qay97fU/NSZrP3g9ec0tUu6ngynjbRmnos4eiZhDXONYZLxwB4Wye6DOUfqGPXDTuww9/Vdr+iGy4Pcr7CdODDeewwTjYctjGCetHl1xAbnIcljx9erccmxyelG/Ah7/8UxKsEx7BtQ3qiUo/QuPLHsrHYIHtuDo3AkcrewqkQj93xjhZ3IqLxQSD2/3EWlLGTXGWkYBs2yoIX8owfBgtvK9SKe68r73RGvTeSY0r9a4n3V+6WTt/8D + + + 7VZLbtswEN0X6B0I7iPZ6aYwpASwHbcB+jEs18mWlSYWEYoUyFFtn62LHqlX6EiWnNiSUSQNUjToTuQM5735QPN+fv8RnK8zxb6BddLokPe9HmegY5NIvQx5gTcnb/n52etXwXWm5ilkwMhfu8HayZCniPnA91erlbd64xm79E97vb5//fFDFJOvOJHaodAxcFa9/SQyCPlEFaDxPazF0ujasmgInBIBgmMsGBZSJWBnsJQOrUAyu8pCNiIT4UZBhw+r7+abnLB4/eIu3ligYMR+gJVDEylKAZA/LrkdBqFMrcnB4iYCRCrhO2uK3N1z2JLv8mJD4SD5TDUYw40oFE6MRr73tB3fHdg7w7PmHPI5KLDy1ruSekThrVHOW0hXCHWhqA0avaGIb0dGGcvZQlCnQn6VSqQO+k8ANRPJJULmXWjxVUENGaUiMasd3NwWT4y2BRhDjukOpd+GCPzfFDeICCRGY7urXk5c48Hq3LZT2EnOGCSCtV8Xm260wD8yPw8csv+T9VIn68tlyS+K6aDKYkyFBvXX5mxqZSbsZiKVao3cs2Xdik8Io5T2wS7+3kYYKeFcY+INdnUb8jZKldsj92LHNPoHuT9zw+hDxkNjaVe+1IbV2f0TLWv9Ow4kReDfEzZ3t5WocaWomYHaE0+VuaxJy4PVvXlgz/ifLDsqzVGmVXmO6bytSPSPqMRtR0plefYL + + + 5VjNbtpAEL5X6jus9kxsftskwokCKSlSUqJAaK5bMzGrLLtodwlw66Fv0afouYe+UfsKHRs7JAYSQVocKRcLdmd3vplvPDOePz9/VQ8nA0FuQRuupEcLTp4SkL7qcRl4dGSvd3bp4cHbN9Wrgej0YQAE5aXZnxju0b61w33XHY/HzrjkKB24xXy+4F6dnbZ9lGU7XBrLpA+URGc/sQF4tCFGIO1HmLBAyXinmwAoIgBUR0i1NuKiB/oCAm6sZha3TbSDewimbacClsiQeK0zHaIuGp+Y33fMLCOIft9GAslN7T6ApZsZd6cDtZxrNQRtp22wFl14otVoaO4JzMAvkyI1ZqDXQh8cCQtaojW30OBC5HCD+zWlET19cNWiPpPaX6qOJP892gEBmt84n7msK2m1Esa5bDoXrNfRAF0O4w8C6ZHWOeUS6kooTUmXIYNIVb6cI8mDEjcNzX0CW7WNyn2r9HLQXW5GDMlhFhJBcm/NowgyJBNdhO6KYS6DsVxN1V3Bw5pknWs+YHoaErUNcmYeSEhpqNDkmI82BArIZTNH9oY2R0wY1t6lxKgRyF0GBM3ZqWuOT85CMxB3ZmSdiOmw34GJzZ0xfQO6oXQc1FugDuO1aWHghPrvSPv99ce/Z6YumDF3nMTejhaRFM2CzPx/DNdsJGwYto9mtc3Ni9yafXwVirmmr+QLiK9v3zN48+tCGSzO1oYFftskZJGGdao2lks5Unj/DktjcdEBz1dYY/5NqhiXC6isEhbj0l6muT5i42Gid05VwH0mWoiA4VHvSPZeZ1wUkaV8SNS2wqK0i9rKYSBWKi8+LFr6dURFhk3bY7UzRcf2uXiqKdvctLAmvoSuZ02Two/YtEWzD9ulDYBSFpuADD+FwODPTflbp6twztTIQOsWso/SUv4ctA9rc7uWucfcsC8CXmvVrFSwnYomDbvbTYlJLvwv79QC8NS0qOrem1nNV6N5lQnnVRcgHszFom3MAIsSJPb16uQxm/rM6zV9Tr5Br6wEGXlm1fRuNvpzV8z+oqPRvPDgLw== + + + xVfNctowEL53pu/g8bUT20CmQzI4GYMhyQwhAfN7FLawXYTFyHINz9ZDH6mvUFn+CSR2DA2kOnhY9tN+u6uVtPrz63fjdrNCwk9IfBd7qliRFFGAnokt17NVMaCLi7p4e/P1S2O6QkMHrqDA8J5/vfFdVXQoXV/LchiGUliTMLHlqqJU5Olj1zAZFly4nk+BZ0JR4HN7YAVVsYMC6NF7uAE29hLNOHWgyhxgdILQaAYusiAZQNv1KQGUqX2uYTrmjEG3COZghOS/4XbNuMRkxos9HVAgMO+vKQeklgwHQir+W3AZB2N5JngNCd0akFKWwjuCg7W/A4idz0MJTeBD64nl4Jm4K0C2HRchcW/qW/v+K32ueSGVVXEIESTuUpq4Xgt7lGDkS6MHaQCsKC9dsMUBbSO2IB6V2oRg8mBGazQGbM1Usb9Uqk0tGfos+uLo044+saKptbSdobd1W9M22qV2yKgMTU3rTWps3qDeZ/KizuSpnMnzSD+qlVvSR007xU8VJo9/sPnVVnsPxeXepBfpr7QU378rsqdcLSN7eiqXxqPNUvyw2k/kXX0XR/zfCudn8Rfo5yyvPeN7KitK5P8wfNe/OJ9jOSzSR/Hro3pmb7Lh+Tsg3rJRmV1m9i7DyH4JviT+2F+2fIk9ji8bZfEfy89HbO8Y/rPEP+f1/HQI//vxx+sd2+vdp/Xwun538e/Hn+zHZy2xF49T1z8fcf2Oa9F+Mx8L9nOBfxw/tYr2T7yf+fkUnxcztoA929nnj+T4vKks+in+sPPiQ+efqoqCfJr7oOvaDh27fgBQehvoBIT8RkovgyEJ4GkI94mawFy2MMIkY5o4Lj0RVX5sdwRYLvvBO4GM1sDItc6d0iYmrCnJODsA+TmhNuSSe79hMFaTYpLfEETNUIoQEvq4QTqiIchzK5+2IRf0OEc2QjpcgADRDnPsMxqhT6xDlt8HCldS2wNzBBNKwwEWDs+wwVK2mECHa+pkLJX/XW0DjClz8CxF9iaSV/14Q955Fbz8y88BP3oRDCDae3lwNfP2LUJIAjp8W4kfyQ3LSqGTPDNF76P4cSUXvK74VP4iu/kL + + + 7VxRc+I2EH7vTP+Dx0/tzJ0hpu2kCdxNIZe7zFwuTCC5m77psA40ERIjyQH61/rQn9S/0LWxjQ0mFygWjtFMyIAta1f77a7W0mr//fuf5tvZmFqPWEjCWcs+ceq2hdmAe4QNW7avvr0+td+++fGH5pcx7Y/wGFvQnsmzmSQte6TU5KxWm06nzrThcDGsufX6Se3L9cfeANqi14RJhdgA21b47Cc0xi37kvqYqQ94hoacRXfuYwZcYADIWVaz7RPqYXGLh0QqgRTcluEduAfM9NSc4pw2VnStP58ALTt6YtnfBVLIAu7PVNgg7qk3wljZuw0uoQFUuoJPsFDzHlYKRPhecH8iUw0WzOe1stpIYu8GZHCBvyGfqkvOlJ15dL1/uXI/t3sr/t2y+5hiQR6cz4R1oHvBqXRukXel8Ni5kziifEEk+kqx10UEWLDuESAGuCEqAcnaKku17/DU7AHRgeIin9kAqLiF9Y6CMjC1AC+XWc4VMBy1y+Mmn1qztkHsW2LTFWSMxPySUKoDm3sifUSj0Tq9MYx+BE9dcw8nuHzirABYFpR7CqklOqlrLRtQAFvCfTLGXTJ4wCLGZK076LAzAuNL+smYX4ciKeNbdqwB4VUwhQyFNho8BHgwb0dLXZNSpBg5g9WsV9dIwAAvucAdTrn4rd7FYpAjzeKVLBByyEOiYJ9HROXLbmtSd1fOJr1xOohi5iHRI38tldv9vf7Karj1Mim4fqeDvGA+/sk9b5y75+7PJVaKwlHJQnKN5EMfz1Sbzw6GjqY5OoYCpEG+EkrUPMECkKFoAuwcAI8/hODTtq8UxHL79Pww4lTX4dfKOf3Y412N0RCvqdGLAGbBetWAWZmNG2Wajd1f3FdW/K9E06ITvzXo98B9gZicIAFcmMBck+GHgq6a3ScTaZsLD4uX6ZIj3quGTVdgCV9zDXx/uDgRGWM5pUTnmvsSX/Cp8WzbRjSB4G4eIajRgVBAyCBUqrknMBoz9ez6OkCYCSztu4mJKkto2RpgMXZdZbvWMjVU0rKPe+lXi95Uc+X3uBVHw4xVTbUJR9UZ4UfBWWB9J+7stJDNAy2mXc29gzRGd5PCENJgQ8eAT7xpUThOy+0RA1iJlq4SeMy6VflWfrPgmGXfktnOMkgw1lNC61mFx9jPDsECVVgwpMgjLgSi7ySzFRM0RDQqCZjJ0NlGqw6QPq9lm/hKXgAbgcPrjYzXK6URpVanovTmxH5OX1n1xd/+jScD7ZOHDXoTwj6iOfcPkFK8kn+4b1PZnIIP6CBQ0Es+8OXxDTsMk45v2CHahxYCfCGDxT6jO5nd+BB3pdI6NXukP6+Yh2eJQ/q1RGm2RR6vquYu75aaVZS1FRLKGwD1AZh1kAbFbV+lB8EJinCuKSYP5plRjQFuJ+CSFb4N4B3thPxkGGWUbesFgs3n6wteFjFrbM/FKDmOXD+Hj5bjyHGRincsCKIWyv+BDEcUPssSFX3h7+mgepbecylpPdul/RWt4MXw9AKehs3ySppmfKI4ll/RJ4tNVsP/daINcKIN40QzkteVfniwQh4G9EMmK1dt4kxt9Jt5s5QI6UwCrCY+epNqteQzVTOuySIVVonSBFfB+U3VhysQYLGAaU5JOw7ItKFl/OEe0Cr8wIHeaPDlgbb2prFSo7dZS1UKXl4NqwTLoErwLaaZasThbZDKegsreinaXM42rx5mIvDdquBuYCVdI3nRcYpKVPf3GZSfKOCZZgMA2iivEKRN5ZvDNgkEq8Wfw0fDgtFv/gM= + + + 7Vtfbxo5EH8/qd9htU+NlO6S5B5OCbRKoEkjXQIKNO2ry05hFWOvbG8I771PcfdN7uG+0d1XuNk/wAJLAinrRWAhJLDHY8/8xuPx2P7v73+qH54G1HoEIX3OavaRU7EtYF3u+axXs0P1/d1v9of3b36pfh3QTh8GYCE9k6dP0q/ZfaWCU9cdDofO8MThouceVypH7teb39tdpCXvfCYVYV2wrbjtLRlAzb6kITD1CZ5Ij7O05n48gGMcAHZnWdWL0KceiDvo+VIJorBaxjVYh4NpqxGFHBorLeuMAuzLTltM+TWIIhaO/lTFBGNO7T6Asl8n3KQP7KUleABCjdqgFKrwSvAwkBmCZPB5VNYFkeA1UQcN+E5Cqi45U/ZMU2zcBgpdxYWcq0j4RkKPKayPFBXLVKKIDpYK/8H54rM68hWcSueOc3VHvJTOttz5ztz83qruEhHWlPOGiAcQl1xAnVMuDlvEi8zu7a9n8efg8JwqEAxhfYRLn9JDbOl3L7hAGAtVzOdrB/XSAPmgeHCO9ao0HV0JP7htXw9ID4oWORYUyzw+rJMgmktR5/pFPhcCR9CHR8FZgw9ZvvBzPPJ1MEdkjf8vmQ/Eu1YwcD4y8g19S2xnn/xen+IXob8n6LiwpQhhUSk/39+qPVXdF0R/wS7ufRkSdHpETc0jU4b6n9pBMzYDeREqFblq3ZaAboGSAP+8as6/LGg3ki4RbjzBFzghr3ofV44Ji5m1o06JlOMqezzN4tKanXBOx/7KdTPHztx82XYMm2VGuEmAGihh5GF2GqiOIEwGRKDY0SKqw5EmQqe6dtoDjDP62OqGezBxbrecleLctMz5WNG7Zkg3PJTQxK1CrhltHhdn0qFBaDWEWgIk/tSKT+Q/DT4r4jPZ4JzgBufkQEdAs6Xhe0HhwdRnOIkyWkTssw6icZSvgs+BXgWM47pmAAy83du3TOVu+ayAuHin4+HrLq4uCzmno7PKGX4PDq/oKOh34EkdHesIlZNUU6LwOBnQ8GVAyShOSk4zATiezeYcEo4p+3//+qOIjIbJoGQnqHYvpDNl9rI5laL0zBbCqL8E9acbEv3KX3DrM16/RGh+GEdbtNF1eK9HIaFo7pffzbGubcBgT93wtqJRmlc2qWit27gE9h3OpxWbkX4+njRArQFUkYnp5+JOA9IaIBnvvG5oacxrDfPS7QOWBD0GszUw07/ALt04GNzWwE3HAUSdcgnm8GGza+z2A7OT86V4P5cBxdxr2WTosIdR6YItmTs4q9vS7PFv5rR34Sh4f45/f/xpTiWyBJtehUu/f4RWFWnI03wNJ+21BPlnHw7puAw5Edb44ZUgmnv8dVJpgejm3MYuZJdZnmVqFTsbKOzuZFwqqZmJW4PP0glo0joTmjyCKZ+qm3nAPC2NA0UZPV6+AzrzSDquxghpkcJKA6hnX4NmX7+2eBAG9s88KEbNLB1orJ1lz7ljmons84/B46bxA/L3/wM= + + + 7V3NbuM2EL4X6DsIOu0CjuykBbZN7F34Z7MxkGSNyJtd9MbIjE2EFg2SjuNbD/sIbS/tm/TQN2pfoRT1Y8uWE8cRKa0s5NcSTXLm+zgzHNLUf3//U3/3MMbGPaQMEbdhHlo104CuQwbIHTbMKb89+Ml89/b77+pfxrg/gmNoiPIuO35gqGGOOJ8cV6uz2cya/WAROqwe1WqH1S8X57YjyoID5DIOXAeahnzvJRjDhnmKp9DlZ/ABDIkb3LkOO3AkOiCaM4x6a4rwANIrOESMU8DFbSbviHuiMzafY5hQxgiu9ecT0ZYZvGNRXwdwYIjeH3NZIKzJHkHIzd2Ei9oQrfQomUDK5zbkXKjwAyXTCVsq4Hc+qZTRAgwOPgodXAB6B+kpobBNMKFm7O3rbbCV+4lNGOHrhtmHGFJ0Z31Gbpu4nBLMrGvEpgC/xwIKl1st4Nz5TRvXQKAlYKn9WDHCX6ZRXe1S9Yk+1W3RqMMJTe6sB1ZYwgh64QOY1NkrQvgVGATlknqT3Fq9ukH1z8SnA2/BFPNT0Z9KDwy8ofLq4PAk/H5daWIOqSvoeA9PEcZrAD6uDB8LmwO+0MnStYZpc4om1wjOuhyOPa0A5EKqXw86iLnA2RLDYojciJIHRxWjVjHkn/QZuSMIVotwTsZNjIaufkB6FI0Bne/AuRcNwLUaRZ3tkbC2UY0xe9vGgLHwlhm2Jq8KtU4w4pE6pSQ7epxV5QdqXpZUMzziH+S0CBVeSL9Nt8cCtJF41wUZwGgQXRI3QVWZmnN1bApUXxg+9Slw2QRQIa83UCorcUNlyU9pMtWeLbTeu+BGhGZS2WdoOBK2cMQjxvXpNFmZL2xv25aUO4Y+uJG+wetbpi6g0nQcjxoRH2w4JPBT14ZjdEPw4GeNxAit0C9ddwAfFmFlxvhYfhE4yDaIXB24F2TK4Mf7wP+plD9qSb8CPo8Qh334wBN5GZD3jOjQQsiCUh1xdfSQ62arlQ94PhlJrXQd4mqdEofuxWs9Mlj/fv0zHef1qes10JqK2YIrm+kgNsFgLpMRCxcm287CRLYxYdDvnn7UY1hXIg5kh/qvf6SG+rkXo8RD8w4Fs+4YDBe4nwLMsohdokntObzltiP6jPeQAy9EKUXa/ZYlB648HZQkyJwEv2ed3TpHjJcMyI4BSTGHPgZkGgn0KGTi382BnzJjl2XUq03q+OjeC5GX6JylvBvs2uFRxV/meFU7OToRP681WTpheTqiTIfMXF85kb3bfl7yjfs8jwi3mMzietBPDUEJDCbixYalAjVippl296tUkm5PEC+vIzdaG5YvT2oah/JueYX0xu9fX1Wk+Pd2SaE55eQMDfKWjykpryAxWFJeUj7TWYdiD7wsW+l284HJioktYdkSFrmnJXFFqlA7Wp5eMiEEi64OyKwNJt4+1FQp1EccQwWbobLnj7+ueUnoGOCSRus0srpsca3peFtKS2ZtxaxoQT31tfJtMNIes6xsBtvzcaQqxFqqt5CDpmSRpqAwXnXJpcJzSUPa1Z4zMZOPN1BIZilz7ckg5cK/K5M5bolyLqvCHV9lwo3liQOP7/dMUdi8LAIrl9EzaHkayyowzAV1nwp81I7UcrqzPVJ+9ince6IYq2gQlqjlHLWVkEgbcHswKVT8OZYk5Db5hRK5PHm1p6chJV55wmv7qXKZ4sifndyAnjZ7uWc4KoxVHkNSR8yyN0gq3oCiYQNBQbegRHsQ5df6lsNcAxPU6Y8bdg7mZLrrMWS5RujRA81SR0h7yifg4JsT+fWNcVAah0h1BeOevvzjJm+r/7NUGWzCLldRslnl9ThGoo8qFWzs6k7MllnYfICzKYtXpoByDVHqQ6iESGVmoEwD5CqefM6iU3FW8Z+zYFOs/RkbnVzxxcxmJ4pSMZ9KqO+RuAXbZ7TLUsl+SJ8b76Rznpj6PKTo80TFK5lbbwMsMdses4xmJamPrb2Zleh68oN/1kYPDKE8S0tcFsWbFIL3WT2MRdvBYatHohb5tLT4AcCqJF3LxssCi3rq1aVnNi2uynNdmPe8piuIY8+FkrcFP9dLGAGDH2V2hzh3oheW5zrCA7HNZz+/YklFQjkb+yoVtOkhVrJMJP7qI7D85054j816+z8= + + + rVRLbtswEN0X6B0I7iM56aYwpASwU7cF+oPkONkS0tQiTJECOarts3XRI/UKHdOSf5JaNO3GkGeG8968+fz8/iO625SKfQPrpNExvw5GnIHOTC71MuY1fr16ze9uX76Inko1L6AERvHajTdOxrxArMZhuF6vg/WrwNhleDMaXYdPHz+kGcWKK6kdCp0BZ/7tJ1FCzGeqBo3vYCOWRjeeRUvghggQHGPRpJYqB5vAUjq0AsntvId8RCbFrYKeGNbY5tuKsHjz4pjvXqBgxH6MPqDNlBYAyJ9X3AGDUL5YU4HFbQqIJOFba+rKnQTsyfdFsYlwkH8mDRJT6zyBDNNCVOB/RvwsRxfIXfh7cVj7P+ZzUGDlKniUemo0WqNcsJCuFuqNon5oDCYiW02NMpazhaCWxfyxkEitDC+phH/gEqUElqGx/SR3nWojWIO+714fycQYTETexPWx6UeLwgHd/7I59CGzibE0Sp2e/L7OvbwpCjyWe2Kjvot8ZmzZltZJQmmmBQ3x4fXZGE+VcK518VZIbz2kbng/c4cvpW5E7anrP/akM10XKxWFJ4t9tPqldrulTkCdHQ/vJj26EawZsuHhe3gf3JtsRSyCmTJiR4fcuVnzfxlckmeQrZdo6NbtD2U4cCn9U39db38B + + + 7VzRcuI2FH3vTP/B46fNDGsSstlpE9gdEpJNZpKGCSTdV61RQBNheWQRYJ/2YfcHOm1f2j/pQ/+o/YVe2djYxoQ0YMuAJ8kEbFm6V+dc6erqWv/+9Xf1/ahPtUfMHcKsmr5n7OoatkzWIVa3pg/E/esf9Pfvvv+u+rFP2z3cxxqUt5zDkUNqek8I+7BcHg6HxnDfYLxbruzu7pU/Xl22TCiLXhPLEcgysa65z/6E+rimn9EBtsQ5HqEusyZ37nwBKiAANKdp1eMBoR3Mb3CXOIIjAbcd9w7cA2FaYkxxQhltcq09tqEtffLEtL4GEkgD6Q+FW8CvqdXDWOgvUy5oA1ppcmZjLsYtLAR04QfOBrYTKuAJn1RKO0YO7lxDH1wh/oD5GeP4hFHG9cjjs204sfuJTWj+95rexhRz8mD8TKwTZgnOqGPcoM6FwH3j1sENfI8GVDSIgz5R3GkiYkHH3CFADbBD1AE0y3GRygtkqragUVMwniysBMsvoZ1SIIQlPAAThWVMgMCTcknSJLdWLc/p+v+JT5OTPuLjM0JpFtjcXkh4mqiL7wgeTrQ2JFzHjAOj61ZHinLNCVx3bSCA65xx8hnqQXT1mN0RZ4DAeJCYQhe6VtNDQrfRp5bgxPaFv8T3ok5J1yrAWz/wbki3V6C3rugdMyFYXxF8VzCZZIXddIYwmqgj/ZkAm92SBr8HFfinABwXDgmN5JEUFzoF8+zB+EDHdq+NR6J0YTIrU3fDs6vjAVDRcv0O8DZsisauKxbAJGWb7ZZl3Buvxkn1/3z9QwH6YI8nlDnYU17FCIod+KjEu4x2/5/f1HR/k1he5xtXbODg60cVxpe5yeUagwYbKjCFCAalYDjcngFQOfrba3dfVdsdfLJwpwBAGQDBwKcMihy5AvlAQ7oCytBoc2Q5NuKwYJFLpKhTXroiVot8xq8qb48qb3emk9VeRR1qX35fzeQEk+GljCl46PiLtgZHw4s+rGIXBR+XUejUkkFObzF/DjJQKcd0/uWDVNp7bkvZLUVlQK5lgqhU1cScZ/orJGjM4n4t6J8G/d2QZsH//PP/t4L/afBfCndJHFGQf5nY4ZqZVkF+j/xKw7HBuiNxWyQt905l5NNfdWavr5ooYxb6zvgvKhXOhtJzVFbD6WxUjs7Sm27DSdpurgWHJqHNt90ZZdWwOOR1elkRni9UiuXflSbpA68OjuTPm51SC3cZvr340Tg4AyenlHFWQ+G8ubFbl01StuyJUzfNGGf27VFAgxg9Vm1FYdUNr4iKcHWqI0VEx7zM66VE2DOBNzeZCuHFdzAuVo7eHMHfzvZsnK9q9V+M5i7nla7A5/I7Ozo3oIz097wuCIJAKpj95RcF+MuB7Z6yYbQfsqcCUIAiG754lrjqoT1M85kaoI6THqGd4NHIOyonFDmOf0v3X5Fwr9Z0r8qJzC98PyeBUeVknTYLkznUK+B5JjwqfIBi1syKuvEm6qZ8x8EfnjeMyrFNqHUZ/UP1umJvGiypLjSTI1EFPM+HJ8XgaHJMtAAnF+Akzz6hPMo652zYRHwmALYUYsnNbiR4qQ58i+Fzp/oCv3UyPv/rtY1lCnOBWx79QAVu+waDVacCcwsJ8ohfFCBY6uSJVWLWsikRwdvAqUQLwrpmDBN8IKanlMzN2bNH3jbKvj1yEznk/tlT7/avEsToS/3yMhSvc4xO83igyFrSN4WhRiF5i0Mnljx0YqNSdmb3phWl6kSzVPZ3m5ibCWa9Un39U6G2eCveez8wNzvyKSidk1y0ha+npqCpojST7Ew5rLFCY56jcCnkzmebIK6uL2Iqx7MPUyPDE5nUW9wZsazjLe6JfI8UWUXUNl7xfMCc8rifqGSxkZQbfBZZXxEcnUFtZjkfO2q4Wg4deDy96mYTOvKw4xtMI4cqu7dhDT9bQpuEJp4MqTWY+QBSyP8DNwo1WTzpy5znCx00V163k+adAu2WCbogfoa0F1CS506/+w8= + + + 7Vltb9owEP4+af8h8qdNapOWbVLVkVYByoZW+kJY2330kmuwMDGyLwX61/ZhP2l/YU4IbyFs6xu0U0Cycufz+e6e6C72/frxs3w47HHjBqRiIrTJrrlDDAg94bMwsEmE19t75PDg9avyVY+3O9ADQ8uHan+omE06iP19yxoMBubgnSlkYJV2dnatq+ax62lZus1ChTT0gBjJ2hPaA5vUeQQhfoYhDUSYzlxMDChpA/R2hlGuRIz7IFsQMIWSop5WyYye08a4OOKQI2OkvPaor/ci6YqZvhpFamjr9zERmGhyOwBI7ufcdA+9y5kUfZA4cgFRh/CTFFFfzQmMjc+TMipUgX+qY1CDaxpxrIsQycLSZf0qM5+r3pjQNmkDB8m65iULq1q9FFyZF0xFlB9xDUOIZoV63argQhLjgmqk9BpJQ9WnUs8Sw8oaZP3ForKrt/RQyHxTY5gmEkZqwxi6PFNbQmCL+qlcnjX5u5WtFUG/IzLrgONrw3T7nGHMoCwEOUEm4SLIS+ZjZ4rO3uNjMn4hXKQ4g2aOZ5Nc+wo0nhMaZkPpnIrMo3z9wDhcBybU6fgG6ozzNeF0zIIOLiezQNsW+o0eDWAK03m3VHICZ/yrfYtHEQ9fEsZ5PFScqjP3qx3VtPzQeT/PdG6bt01rT49nln66tQq6oAv6gfTAtjeVRXGaP4/pSEQbqGkvNnVW4qEaFKmzoAu6SJ2b/QCdO7LGWXSrSWUXZF1ISI62W2fUjy843nz4mPzfLqXZB0akTb+7KFm/gdBbv/eXHYbQhiFuOZ6nQ3AiZI/y3HLyiH6aYxHwn1/R/LOXVU6Vyt5BJMzs2SpRvnbv9CvLaV8TFSF9kE/mXar+hfl31+yUVZ/oqXYY96fLF24HF+JH8gKIs9Dd7240G/A0tDme/dfIzFeMAqR/Bilb25oiUnB6k2arp0z40502X+I+i3U4PKlwT+X50pdapn1QtuaaGDNu0sBQcQOjBXyhUZJMt6i/LGGkx7/Vd+36WFgTXldbYWoN8SN5yAW9jstKM5PYrGrojLtB1op2ULI0aSEd/AY= + + + 7VrdTtswFL6ftHeIcgUSpNBJ0wQtCFp+JvFTtR1waxLTWjh2ZLtre7eL7RF2tb3JLvZG2yvsxEnaNA1ssCQtAVWVWvvYx+d8X3xOjv37x8/a7silxkcsJOGsbm5aG6aBmc0dwnp1c6Bu1t+ZuzuvX9WuXNrtYxcbIM/k1kiSutlXytuqVIbDoTV8Y3HRq1Q3NjYrV6cnHRtk0TphUiFmY9PQY8+Qi+vmIR1gpo7xCPU4C3suogVUYQGgzjBq+wNCHSzauEekEkhBt9Q90AeL6agxxSkyRtjWHXugywxHTOdrIoUMWP2W0gLRTJ0+xsp8nHETHaClJbiHhRp3sFLgwiPBB56MCQSLT5My9pHEzjn44LJPFO7ikTJnBsLQDqbYVlzIREcw6wWRAwTmIIUjQSPWVje7nNNLwhw+bCDPd5ZpVJIqKuk6apU7lv1A2/ZsG8A/48JF9JBQOmdiYni6pQkhI/oPJsLqBbm1wMwGZ0pwKq3ABwcUeMaU1XE5V30YdcodIOYFAjrWzTPOcJo3/rKc7BGZmwdmavSBupMJZsjboEjKqMs0QiN1K8xOFMXay498apP+CHmQYlbBNGpwSpEHf/a5gIc6/wclc1jChZcNmMnetXZEx17f/7VZXWshxw8oK9XtjW34rq6dItEjbEX/266uFrELtJHzXmHX0htr9Nj/+vwt1ZmPnv2AoesI3GPS61P4TtV1xSAdvP/U96+act/PGpRLiMpKLSK2TLk3x7c4GRfAvQ/vfcACv2jYmkR6FI116jHFTDMzS3bMcv37lxeuZ8j1vYHix8RZArovBbubINPkQxa4I8q2FkL0T18XQIdzeIm6oXw464fiadEViEkPCfB+aoKdj5lZ5kedsQRMZxWUMosNXoaOObg0D6hmNyjrlA8k9uHLFKxZJSWGqSWwhIaigPKp/wLUUm19iYD/As4ygRN/88gSmdi8pYQl5xgUc19OAeh5AJRj9JmDKPPQU3aIcq5G5rW1BVOWtBCZMyY55gIvsCz122mp4WkJ4iIxfkSY8c9bJ94MPRacwabWbThXbeSEctlWDzxKlK8IERbmNNmiFLe0YHjgB7GfPDiqbLAU9dQEhdYW6uELgod+M4jvCYwiqAovNmpCBnvhPod90T3BN6qtq/MZ7+wxw7vouqME8RZmdfJ4qcjjy2d+6FJ4+XnP9s//o2J+ycJ9zi//6WDlVAd4ZqcGORYE7oMt89rAs4EtPJh9u60/8zFj+a8sTS4NPiFk5gJS4kZmrRK7Fzpt1efV0r8T2sZ05u6p7obgOC9hhLHz3vytye1bWIUV1Q+iXMZ8cFoe8yc46M71aifddVlWy0xckLxqG6TV/vXcnT8= + + + 7VjNbtpAEL5X6jus9h6b0B4QwonAJC0qNAlQkh5XZmtWLLtodxx+Xq2HPlJfoYN/wAGjVilt1Mo+LJ6fnflmxh7W8/3rt8blcibJIzdWaOXRc6dCCVeBHgsVejSCL2c1ennx+lXjYSaHEz7jBPWVrS+t8OgEYF533cVi4SzeONqEbrVSOXcfet1BgLrsTCgLTAWcknjvRzbjHr2WEVfwni9ZqFUqGWUAqggA3RHSaEVCjrnp81BYMAxQbGMJyhDMAFaSF+iQlDdczdEXTXfs7LUZMILo6xArZJYGE86BPi+4rQ/0cmv0nBtYDTgApvCd0dHc5hQS8EVapMUsH9+oPOhio3ZPXmiTZLRHh1xyI6bOvVC+VmC0tM6njjOYSwEbBhOKmyuJZVCQcIGbezGGCSUjhtXyaI0Sdx+V+xNYjQH6DUCbYrwjYSOGyWfAM0WS43m0EF8RjmI/DfdIostqnKwaTsfimwsiYPLvF8bXUrI5Ei1t8MU+qNMpAobdg3dgBe34E+wp2+1PuoovmbWZiJLUSszd2U6RP7On7ic8TW1BZP91ZfIPYVmkXy5SU2JsCv8zH/m1kAep+0NtrivCCSTBZ+VrsWAaIjY17sxYyLdd7m5arTbDZnK1P29WvVlam8UPk1u/mbvaV21kL5tv88zmurfuuTVcb128W7slXdIl/Zv0wvNe6hCy6/xdttLRyx5C/tku+iFm3JVdtKRLuuyiJ/6wPohhbxDScHPjmB03HsXYzSimz+WTkU8s7rPxoQZJG2My8DnSMNs6mCKKzW8UH/GzD9ntof/49r7WgJ4LBhCYoaOA4ywdG1IlEy73yIgr3hqPxS5+AA== + + + 7VjdbtowFL6ftHewfN+kZbuoKtIqQLtVa7eWdNBdWomXWBg7sg8F+mq72CPtFXYSAgQIW9d2RZuSC4vz4+Pv/OjYnB/fvjdPJkNJ7rixQiuPHjj7lHAV6kio2KMj+Lp3SE+OX79q3g7lTcKHnKC+skcTKzyaAKRHrjsej53xG0eb2G3s7x+4t5cXQYi6bE8oC0yFnJJ870c25B49kyOu4D2fsFirQtKbA2ggADyOkGZrJGTETZfHwoJhgGKbS1CGYAKYSl6hQwrezTTFs2ixY2mvw4ARRH8EucLcUpBwDvRxzi3OwFOujE65gWnAATCE74wepbakMANfpUVazPLokyqDrjZq1+SVNsmc9ugNl9yIgdMXqq0VGC2t0xN2xOSpxNgrcFosHLS11IaSHsP04B7DlE2ZQSkl7jog9zeImgEeGYI21VCz3Mw1SIFhlq8qqF2tocuiQq8KTfVpTXdLpP8wHf1EAG9pg8WzkZlf+9mWzNp1R3OmR4NUCsh8ZEJxU5h/cd9eotQ+nzurzs6rLucCN30RQbKovMPnr7dZsQfAYFl2Jd56MnZWaXU2tmfDObd4SYAImXz5xGBvlCxF4lFt4GEOw7LwNqygnXaC19di+8oFttJmaFWfgWWHedz1vR7wIrQVnv3XmSkXYZ2kByfJl+ibwufZHT8TciN0f6nNXYg4gc13TozYVHQ+ZDFfdLnrQaPhx/7s63zJVp0tH3LGdba0/LZf+jqnHdSf+G/LTP/+8v7SPcT1ysVf925N13RNP5Eee96uHiHLzn/Bpnq0gyfhP9s6W9nSjuvWWdM1XbfO3f5/uzJiyMy0soM+1wgnN/6snm0kam2a2HRLM80lN59n2mye2eVyZW6ai7ss2tQgRfefTeE6OhysOkefMqbDGGyFlMdh2yx3Ngh2t0yC86359Pj4Jw== + + + 7d3bduI8mgbg81mr7yErp+4pscfuVdWzTEiFBBJMQiokZ2wMYZ+wMZtbm4O5pLmFsWSTEIoEkG3gy7zPQXXrh4AsZFuW9En/+9//8/O/pt3OiWUOhs1+79dp+Efo9MTsVfu1Zq/x63Q8qv+nevpf//7Hf/wsdTvFZ7Nrntjv7w3/NR02f50+j0Yv/2JsMpn8mER/9AcNFgmFwqx0nbur2u8t/2ezNxyVe1Xz9ET87U25a/46/d0Zm71RxpyWG/2e+8qfRQYidgbsrzs5+ZkaNzs1c3BrNprD0aA8sl8eilfs1+zM3I1mHXPNe07c/1acvdjfder+xfvnpcuj8omd+3+NxBsWn3T3bJqjU7mDe/sO+1uMQf/FHIxmd+ZoZBfhxaA/fhkuvcHJ/Lp3naTKQ7OWt8vgtj/u1W7N6ujuufxiin8iodMPH/L3Nw1XXl/7RSeL9K/TotkxB832j4dm76zfGw36neGP+8sf6X61bb9x8b8X42bNvOyWG+Z5x/6ZeqMfInF68qds/4q/Tgvt6EWuoDvSj/zfPv/npvGWTuln+pL0edp+barH9L3LKXU9daZ1G6kz66qhV3OzJ/2qq3YLZ+r4pa1HcrN7PR+pdwvpZC/e1pWkSCfs9KN11datxfv11MR66uuFAf+8/R+Gb3LjJ11X1M4kdT+2j7eT7D7pNw92eaQZP16WtI/XUDykxecl7fItWVdV/Y/4PvXQR73BGetM9MY4btePweujfp31sTw2pcX3Je36NbPiVf3y0EWxZPRyrqcHs0f9YmzX/3RmP+XxVbqhT5MiP5F2Qc8frmTO7PqdOuf5ea0csjy+SOtnL/z8vt130fDr5cWM56d8VOXxSToy4PmdBFwo6XSnod/y6+Fzcsp0Y3Y0x7857eS3MznLTOKP+nlh89HuJKfc66kmv1/cH8fxyqfF/VQcT8OXohHlXbHvn1d3R3F8/qT58RTF+eC1fJzz6dDHE0yan2/yJXNmf15qaGVUneWO43j8TtcnaZWnK7sWDW+Pnt+RuT95v7/x493uov3W3st2jyb/e0jz492qPcnbe+XD5/dA7cnU4POScZ6f3Pb5ceR37+VjPx99+vx25jzfHVN+D9I+sp+vV5tGTn9Ewi6/s0Pn79Dp8UtDnwxW+ktys5L+e4/tPzXfzhjsYfJgsPio22DMGIXqTFUsw/6/g7mb7kbKaRYe/m45799rednlUfhYf67MPXx/hoXV3x3G0v1pne1AvL80eSjxz0sFXz68PKrO/Squ6uc5v/v3VuvLRePcYo3QZW+XQlkrdnN25XxekOUjyoP1JnrB6c8N9PdIMSVdaO5UXzYQn+fUxwDr+8f+8oDKxzmfArE434JsD014uhtI/x9Lv6Tm9qW19Tug8pkkrkv2P4VqcNejsyeetgKpP879KWji/hZc+SzGn4IoH3F/DppoHwRTPu74W0FPBnN+zZO1TODloyrR26DqT0dPj9zxyiDKx2nvBY23J4Mpn+XxXJTPJ+WD8+vr8wvX503XZ9zfv7q/o324qX2I54svny/wfPpZ2nk+Rf/GmvR7/wb6x9al3/vH0L+6Nv13/yr650V6bf88xnfey2fd+A7GB937+Vfjgw6ML38N8xO2gPktW8D8qG1gft3XMD9zC5jfuwXMD98a4gu2gPiUbSC+aVuIj9sa4it3Qzg+9/SE7Sn+OtMfEQ7BNhSm68W+NdFj8WRMr41Npmczdjp9FUuqeiLftJsQ/PU0S+TsRzJFpFt2us/TM1O8v2c1UhGezovPC7qdESCnPLpWIZXlx/Oav0joRm7l+JmH9OLzzvrxQUi/syiUV/rFrh/XiVxMr44f7B+54mN5bEq739dIzRIVVU8fuiiWsKh9aR/b+b1o8fwO91MeX6eTeZEfVp98vMLsV7pvN6pHidxEnx24PD5N6+lc4tq+w+371BO/T7E/mKSjR1Ue69JZVdd4+iLoQkqz14aejtv3m27+iI5/+3TPvp4/soR9m/f7afLm7lXXK/zzR0d0vFJp/vsOavx4Hn0pGlHeCm9/RI/i+PxJi+MR54PX8iF8Pm11vsmXTNr+vFT7iI4nsPTTrkWTb+n6WZTG/cmX+xs/3tBWReO291T92jqO/O8nzY93q/Ykf3/5e15vtkin+p+XzOL5yW2fH0V+954efv78lnae744rvwdIx/6eouP0R3Ts55Xu4fN32HS8MtHjq/0l+bKmnw/2mB/rImOwaeTCYNrYbDBmzUN1pjDD4P937qYj8USaqbXnlvv+PeaPl8fSpYhfb7KtPXx/hh9vh7HBZLcppuL9dnmW+Oel9lKfss5Jxuz2ccr3/r3V9OD83GKh2KP3Kcpa/uLK/bwA8yvKg9n3q3Oezgd7v0oxVnz2dYq783miPgZb3xf95cGVj3M+BWJxvgVVPmI8gD9/9s1APn8wfZ7bl9Z0UCE2CfXaLh/1sRpY+UzOnnl6Fkz5iPtT0Jz7W2D1f2n8yffPF/fnoIn2QTDl8zb+pgVTPklVCz5E1G403QZYf0IBXt+c9l7QeHvyiNrf/x/LB+fX5+cXrs+br8+4v39+f0f78Ov2IZ4vvn6+4Gk8n36W1mPo31iXfu/fQP/YJ+lsA/2rn6ZX+lfRP/+WXts/j/GdpfSa8R2MDy7SX4wPOvj7Mb78OcxP2ALmt2wB86O2gfl1X8P8zC1gfu8WMD98a4gv2ALiU7aB+KZtIT5ua4iv3A3h+Nz9hWDn+lWx1Xi+d2YnzYF4x1s8thr654ka8ic3t+Xa5cjs/jjvlSudxfffPZdr/cnb9xUHY9Pfb3O+IG2+jJ7fviX891f8ZBu2IP95Z39JddQfrN+b/KxTHg4XbzlxD078x1+nv5udjhvm/vfXrv/Yn+yTjdW/8+7r4cjvRf1fCv2/4v+cidNuL6H/fLWGp9z4Uc8mxGo845drXR2srl4k0on2JD1zV2tz3q+n2r5mZgtj+/uzIr/ZSKeQ7ntdjWP0cq8nnM+LdQv6xq4zeWfuah9tPRncanVDsVqJj48OvH4U+OpD14n9rqZzLeqXhzVAxOpJTZ7/+KFWT9LTHf57PO660BhfDeYiG2s30oNDr2Y0vrrUE3w1uYvt1uxx68ujng9wNe/d005+tqhP/P3zYFdr95L+YjWp9+vLEeV3/ep7q9enXPNJP2uK69eh87dNOinyu3RSO/ePo8nf5jTP79L5nCv/0fPNI8rfpjTPb+PtevNEdfVXu/3EV2MbBH29UYw/HcZa4ae6n5+f7OpnY6c9GFz+Y9pDaTG/JTbo+f35bns3iPw75S0oVnNc9718nPZ4EKsfO/VFSCjZeFD1f7G6sZ+fH78pVwKsL4GnA67vf6eJ1x/y5y/16yf5+xft9gP19tv3aD8Tf36h/vz4LZ7fF/mn3X/ins9k+6/eEe4/XEK3/3bd70Gv/3wV3fGL9Q49fnTQ1buPYwgvngzpWaXL9EyxZxXOLD5bKaysHe3ns4VK/P2Dt/frGzfs8ls429dT46aiX1S6dv4KnmcTDlQ9lBefd//a0C+Cy3n6xSqk7vj3x4KbXdhIVEL6vY970yTUgp7m0bN7iV5bSmdbg6mu33go75Y10av888LBRP9uk/7DZ8/svMtUPs/01LxvFdLNw8+GC+mxMc/Pdve1t/pyUzr87Mbl9E1pq/rkzBY7gvyuTZ99vfqje305nvyuSa+7Pjmz053r16Hzt0U6drMy+9y5fxxN/rZI2/ldzn/ZPj/Sx5S/DWmeXyfrTvvl0PmRSov2E59NWwv6esNK7Q5j4fhV3c/Pf7EmqZDTHgwu/5p5t+iCjiZzPZ/Lf7m963v+RXk76sNxPYDysdvjPO376kFOfXFWS1Bm8QDPB99Xz9LMh0pA9WUv6QDr+6dp2vWH9vlL/vr5De5flNsP1Ntv36L9TP35hfrz47d4fnfzT7z/xDmf6fZfvSPcf7iEbv/tKpr956vojl+sd+jxo2OJ/uTBnxqCPz0Ff+bM+gjBnwj+DAbdyRM0J6/QnTxEePIW4clz1Ccv0p08SnjyLvXJ075MXmeXr7M5i42yfEeM3oQxVbEMZjfU5m66GeozNkuoMe/H41/w5+RKzTPNuqxZLKLWohtXqNasTIVpg0zVUpReQTYYxb/gz2Q++2WmrXjsmqmRecFg9Xmsbv+HaPLtJdVg1tPwXP7+4CX4kz1OL+Yby3v172fliV2VilZ4MZwwjKQl8y8f/Kk+9K4Mt37vmH/n77vDa36W1C3n91DHVl7u95cL/rTrb23LLTW++P2c+sQpubsW2zn/8sGfSq/2annO/731Z+Dmn3/e7uUvHfzJiuOw9/K3r7eLU59/3h7vJ77lf3H+e8j/4epP0frT81x/5M7f3kXVe/m334NDM7dN2fNX6vqZb2cMllRMyfw79zNHfR5lqvmSlb1+yt+//liRzfs2rf79vHJjnz+9cNx9PTKshbzdv7y1H+Laa+ur/E8T7T7Tssk/ButGnj68NIwN6p7bD57bb6+XD0ybZ+2qFFWVzb+HZuVM+5+rGmN6P5Xx3H7zsf2cfknNWaT6NGFKvdxnbJ6s8UZGtOimn6a9NJtmHxv+t5+JP79Qf378Fs/vi/zT7j9xz2ey/VfvCPcfLqHbf7vu96DXf76K7vjFeoceP0Lw58EH73dFd/IEzckrdCcPEZ68RXjyHPXJi3QnjxKevEt98rQ/k9eHs+acaWbe4FuxTtjyVqQiHY7FGEtWQzEfjse/4M/qdZ4xo1azmKppm4fwmFGpMJarVi32MinIBqP4F/ypmJEvM52oXl4zJWkUDL71MO+yTS6G8BLqtcES1/q55O/hNfhzFuluHsJb/fvk9dCuSlZ4MYSn5c/Skvn3EPxpXV4Zbv3eMf9Oep675n9qWc7voURv8lLlLxn8adffbYfwvvg8tz5xpVaLSdRf2eBPVn/ddgjmi8+bhDvuEJ7zeTLnn1zwJ7NC2w6BfX29XZz64vP2dz/xLf+L899b/g9WfxZDeJ7qj9T5W9l2CO+Lz4vEn97O32ZT8vyVvH7yrcgVRZHNv7ifuVUnGrWvp1dZ2eun/P1rGt5iCO+v+9dQs3+/aHwxhKeOpiGv9y8v7QdNaX45hJe8bvcZS9//4fUl/uGleLJS99x+8Nx+GxYe7EaZadpFqW0xhMeMuinae4y9TqYZz+03H9vPg+nz3K4PI7t9U+/bhZ7Ubngjo1h007NI1H6/Wm343n6m/vxC/fnxWzy/u/kn3n/inM90+6/eEe4/XEK3/3YVzf7zVXTHL9Y79PjRsQR/xhD96T3687LXMwcIAUUIaHDoTqGgOYWF7hQiwlO4CE+hoz6Fke4UUsJTeKlPoSa/fxHd/aOo79+1l/3TgknvZf/PgNP+7P+pFB+6W+6vJ/ZDFO/3nH//9v/car9G5/gE8X7v5e/v/p9f7Nco0s5LYj/E46l/f6VX92sUv4fD7/0PnXTA+3/6WV/W1Z+g9/8MsL7sZf/PwK+f5O9ftNsP1Ntv36P9TPz5hfrz47d4fl/kn3b/iXs+k+2/eke4/3AJ3f7bdb8Hvf7zVXTHL9Y79PgRQkAPPoS/K7pTKGhOYaE7hYjwFC7CU+ioT2GkO4WU8BRe6lOoqe9fRHj/KOr7d+1l/7Rg0nvZ/zPY8vdp/09W6nS33F9P7IfovN/78fi1/+d2+zWK43OI9/vxe/i5/+fn+zU6aef4+H6Ix1H/1tePlf0anfoi+L3/4Vs6yP0/fa4va+pPsPt/Blpf9rD/Z+DXz29w/6LcfqDefvsW7Wfqzy/Unx+/xfO7m3/i/SfO+Uy3/+od4f7DJXT7b1fR7D9fRXf8Yr1Djx8dSwioqv3zJIQIUE8RoMX+C2I/MXYcGLrXXpr3PrptD8JtP8Jtb+rPPnSfPQk/+1Pve/Gn72s0b/Hlg++KjA1mM758cJ3vOMnXSO2Nx3z54L7lLEfn/Xj8GzsePlYYKzYafNhpPGCbKMwoMJZ5KouxHe/Lz3no+32ZFFrLa9iK8tZuFPv1aN7grzfmfHnkgv3K7d2H5SIFZ/k/+d/b69ixqA8OKxRibDi7a238+7+XX3wZSubfw9ixKF9n+V+p5SvZXfFt+cv5nClW5lKq/GWXDy6124uxVlFfpMovmigv6pNYznT38096+eDBZOqWX7Iaikjmfx7NLIY5JZc/ll4+OMnX8NaUfJEv752XzP84dL9Y+dO+vsotXyuXdvLvI2/5l6o/9c252p6X+iNz/la63S2XP95O5vGpLpF/6bHj5eXTPeLtC2Xw+0L2+unl/hXzfhaotU7P6/1Ldux4oheZYm6xhvN60YR90/PafvDcflMbTbv99tw0ePtt8/YPznK8uUrFp+0ffGw/i/aPWE6aL0fOlw+u1d32nX2+M2e7hcTw/tH39jP15xfqz4/f4vndzT/x/hPnfKbbf/WOcP/hErr9t6to9p+vojt+sd6hx4/2N3Z8nON3hw6/3RXd8Gea4ed0w/8JL79AePkL6suP0F3+hfDyO9SXP/Jl+Sl2PSzOWUzj43eZ1xljGjN4/0PPYkq0PWbsOfRosWmi3fd+PP4t3zpJFCpMS940GEtoyubxO1WZF5jWSpf58oqNjGT+fVm+VenpLaaO54uRIFHe0eFMZ+psahh2yTfmbHKlFuxMR+4M1g5/HL8bxgYel1P0tHyrUx8cxijEK81da+Pfzys3OmO98GL8LnJ9O5TMv/zyraJ8+Xipnf/6PMpU8yW7y99rZ9G38TtjMGfqXfdS7nyQW75VMe4X43eivsid7/1odhGQ2Luo7p5/+eVbWbq/GL+bvaoRyfxXZovxOyVn17zdy196+VZmxZN8JdZ80T4/Y3nJ/Bujtjt+p0RbY2uP9xMn//7xkn/Z+uPn+J2H+iN3/pZKvo7fafXUU33n/Msv36p2h9eL66dHon2hZlsXstdPL/evvvezIKxe9bzdv6TbD1p3UrSbUg+yWe9FXg3P7Qev7bdpudpkStpoGiyh5DeP32n5ZNG+X/2uWHb7qbB5ufJN7Tcf28+i/RMZ1kJM6dVeGQsltbrTvuPnO2OP0wu7Pfd6/eh/+5n48wv158dv8fy+yD/t/hP3fCbbf/WOcP/hErr9t+t+D3r956vojl+sd+jxo2OK/Ywh+NNb8KfY/hMRoBg+Dgzdyy/N2x/d5gfh5h/h5jf1xx+6j5+EH/+pd7+Q372I7u5R1Hfv8nv3NLFbXUC77a2kA9n9M/DdDj+m/dn9czW9n90m/dv9c23a/90+V9P+7v65sT61wy/WcZ3/x3A+EK8/5M9f6tdP8vcv2u0H6u2379F+Jv78Qv358Vs8vy/yT7v/xD2fyfZfvSPcf7iEbv/tut+DXv/5KrrjF+sdevwIu38ePAJ3V3QjoGlGoNNdAYDwCgyEV8CgvgIJ3RVgCK/AQ30FJOq7FxHePYr67l1+757m7B4Y2G57y+lAdv/cx26H7+Xv0+6fq+l97Tbp1+6f69NB7Pa5mvZz98/N9enJOqbz/2jOB9r1h/b5S/76+Q3uX5TbD9Tbb9+i/Uz9+YX68+O3eH5380+8/8Q5n+n2X70j3H+4hG7/7Sqa/eer6I5frHfo8aNjiQANJ9V/nqgaQkA9hYDeNhvPI8R/Iv4zGHTnT9Ccv0J3/hDh+VuE589Rn79Id/4o4fm71OdP+7P82eXrbM5ioyxfGLA34SvtWoazPKqTbob6jM0Sasz78fi4fPCVmmeadVmzWEStbbH8nJWpMG2Qqfq0/JzX+I1kPrvItFiOMaoqGaZG5gX39/iCFVcNZj0Nz+XvD56WDxbL4Tkq0whjV4P0h9fPX5rpjb9HdBhJS+bfw/LBD70rw63fVjTJ1LGV//v4tsr/53+/VVou/tOuvzV3+V1xvq7/fbbLPye3fKp8/CdfXtFdeVQsJ+05//zzdi9/+eWDi+OwwZcPLrFJ+bzoOf/i8/Z4P/mQf/3uoPn3Wn9yl+yQ9Ufu/OXLdTtfLZbr95z/zG1T9vyVun7m2xn7qqOY7veridCtbP5llm9fvn7K37/+WJFF/sRy9oVRaL5z/sVysZ7uX97aD3HttbWcn/ioW2daNvnHYPmRfWn6grP9gMf2g+f22+vlA9PmWbsq2U2fzeWtWTnT/ueqxpjeT3nf/sHH9nP6JTVnkerThCn1ct++NCVrvJERLbrpp2kvzabZx4b/7Wfizy/Unx+/xfP7Iv+0+0/c85ls/9U7wv2HS+j23677Pej1n6+iO36x3qHHjxD/efDx+13RnT9Bc/4K3flDhOdvEZ4/R33+It35o4Tn71KfP+3P/PXhrDlnmpk3GBtMJnxIyeBDHPO5mw7HYowlq6GYD8fjX/xn9TrPmFGrWUzVtM1DeMyoVBjLVasWe5kUepL59y/+UzEj75m2LKblLzJMSRoF9/f4QkK9NljiWj+X/D28xn/OIt1F/uaRCLPzO//w+mA626JLLn+Wlsy/h/hP6/LKcOs3SyaZEr3J//3+rfL/xd9vUf6S8Z92/V0M4Ynzdf37t8w/V2q1ZOKdZOM/Wf11MQSTHGqfvX+H/IvPkzn/5OI/mRUKG0xT8iWWGBaK3vMvPm9/95OP+b87dP691R+VHbb+SJ2/lerb+XvnQ/0pNZuS56/k9fMiY191FMX9eiVZuJXNvxWNMmV+lZW9fsrfv6bhtyG8aDzOK3F7vnP+1dE05PX+5aX9oCnND0N42tisM5a+/2OwcejrIbx4slL33H7w3H4bFh7sRplp2kWpbTGEx4y6Kdp7jL1OphnP7Tcf28+D6fPcrg8ju6lc7/ftS5N2wxsZxaKbnkWi9vvVasP39jP15xfqz4/f4vndzT/x/hPnfKbbf/WOcP/hErr9t6to9p+vojt+sd6hx4+OJv4zivhP7/GfYgtQBIEiCDRAdCdR0JzEQncSEeFJXIQn0VGfxEh3EinhSbzUJ1H7M4n9elicO0EpLPM6Y0xjRp3Hf1pMibbHjD2HHi02TbT73o/HxyDQRKHCtORNg7GEpgw29/gq8wLTWuly3f77hvcgAg9BHEpPbzF1PDc2d5uu5QRxeLo/eAoCbYQuN5f3FxRmzVl4+LstmX8PQaCzqWE4Qbee8SBp9a57KXc+yAWBKsVS14esv9Hqqaf6zvmXDwJl6f5Uttavo+Tu2hLlLx8EasWTPmbfvr62xhJBiNJpJ//hpNbiQWC/Je8Xd+Nw0Xv+ZeuPu8LurByaSubfnF+m3+qPRBC0fBCo+D6HCPqXy/8kUV0sM9w6r+xeHzwEgXaH14vrpwiC5+kd/l7k1y163r5Qs60L2eun/P3r/fd3FjHIDeatjX8frmh2U2OeUN2/FGlP9y/p9oPWnRTtptTD21WE/x7xm4cS0y7i94bdiLNr2aw8mTDtTikZTnthSS/yanhuP3htv03L1SZT0kbTYAklv8UiHvlkkWm93xWfFvHwsf0sylsEBfOgcsZCSa3utO+UUqnLnEUzJq/Xj/63n4k/v1B/fvwWz++L/NPuP3HPZ7L9V+8I9x8uodt/u+73oNd/voru+MV6hx4/QhDowQfxd0V3EgXNSSx0JxERnsRFeBId9UmMdCeREp7ES30StT+T2Efz1twJSmGD2Ux0CdV5YKLFWG885kGgfYslr9t9H47HvyDQ4WOFsWKjwZimjDcPKSnMKDCWeSrX+d97DyLwEMTxMim0FpGIMpwgDvnf22sQaCjW9zSExwOMmVp7bkvm30MQaDQvSt3yYRyMB0krVuZSqvxlg0ArXV+H8Fjm8akucT5LB4EOJr4O4bFSqy13PZIMAk0mfR3C49dXuSBEubST/6RWa/EgsN+SnzcJ/y76kn+p+uOORiSvh1PJ/IeiscUQjmQQtHQQqPg+wQn6l8p/Ql0M4bFcuSJTH6SDQOe567frJw+CF+kdjl/k18HbF8rg94Xs9dPD/ev99xeLGIzmxdbGv1drNbupkVQXQ3gi7fH+JRsEOtGLTDEXkbjO76GNH0o88vCeLyJx1+Lnx4Sx9EPJcNoLS6KJrOG5/eC5/aY2mnb77bnJg9LHm4fwnKDKXKXi0yIePrafRXmLoGAeVC6ur3W3fWffr5mzaEZieP/oe/uZ+vML9efHb/H87uafeP+Jcz7T7b96R7j/cAnd/ttVNPvPV9Edv1jv0ONHxxIEqmr/PAlHVQSBeg8CTfVHo34XUaCIAg0G3VkUNGex0J1FRHgWF+FZdNRnMdKdRUp4Fi/1WdS+zGLfZ9q/KNDDpP3bCvSgaU9RoAdPy0eBHk9aLgp0qzRrhZ/qLKY9lALKv3wU6Ka0YvzpfBg34Gn/y186CvSLtChvxyA26LGEko27afF7HFn9+6u+OOVtNcfLUcEi7bzke33yo/4oxYeuW8iivNcfn/g9nOPj7/en/vhy/jr1XeRv0/vF8flzPshHgR5P2kMU6MHTvmwFeuj2A/X22/doPxN/fqH+/Pgtnt8X+afdf+Kez2T7r94R7j9cQrf/dt3vQa//fBXd8Yv1Dj1+hCjQg4/i74ruLAqas1joziIiPIuL8Cw66rMY6c4iJTyLl/osan9mse8z7V8U6EHS/m0FesC01yjQQ6c9RIEeRVo+CnS7dDh+VedR3aXAjkc2CnRTmpXaH4bwnHQQv4dcFOgXaVHebpRVMtdjmjJbDOGJ3+OI6t/a+uKoD8fLUcFOWgiiPnmuP6zUWQzhifJe/37xe7j1ib/fp/rjw/nr1G+Rv431S9Qnn84H6SjQo0h7jQI9dNqXrUAP3X6g3n77Fu1n6s8v1J8fv8Xzu5t/4v0nzvlMt//qHeH+wyV0+29X0ew/X0V3/GK9Q48fHVUUaBJRoN6iQA8aAHqssZ7Ri3jDnX+yNFAc4RepG/F/9zJQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwvV+/Tk/Yv//xHydLfjJj0H8xB6PZnTkaNXuN4eob7syOWR31B6sv2C+Vup2zTnk4XLzl5Lxjds3eSPzHX6dn9v81B6lytd0Y9Me92mW33DDXZWH9V/xk9uev5O7C/qCXj+/65E0nqfLQrOV7v05PV79vwxGv/cyTRfrXadHO7aDZ/vHQ7J31e6NBvzP8cX/5I92vtu03Lv73YtysmUO3QH6c9Tud8oudoctezxyIgjjrm/V6s9q0Xz49+VPujM1fp+EfYf9/ouLsxVz9hfh/kzoSf3++vw5NvOH9c36y1LjZqZmDdHlUfv+vd6NZxxw+m+bo1uyUR81+b/mrf96Wa3+/48Q9wt2P3H3D6eayu+33R/aXrykqu5A+zbMoKPGye7C3ZqM5HA3Em8R73oph+RX+5+JPi8/21/37/wA= + + + 7VjRTtswFH2ftH+I/LRJkAAT0sZaEBQ6KlFgTWG8muSSWnXtynZa+LY97JP2C7txkkJDurFAs4FQVam1r33vOce+tu/P7z8aO9cj7kxAaSZFk6y7a8QBEciQiahJYnO1+pHsbL9907gY8f4ARuCgvdBb15o1ycCY8ZbnTadTd/rBlSryNtbW1r2L7pEfoC1dZUIbKgIgjh17TEfQJG0egzCHcE0jKbKe8zyADQwA3TlOYy9mPATVg4hpo6jBbm17sA+D8c0NhxIbJ2vr34zRF8lG3M63Tw11MPotYw3ymfwBgCHVwM18oJdTJcegzI0PxiCFX5SMx/qOQRp8mZWzRzWEJ8hBl6ohqLZU0JJcqhUfIglnnU/uZlsKQ+Zmw/l84BAYqXShI3WV8JBbOAccuRYm5aaPrYoN3W9MtHBeJbl2e1KaHg0zO+J4RWdeubeGtwDVX0Lfhysac1MB5znTMUUtqbmFe6cNp5bB8GvMguExnbCIYn8bwYKqH2Smpw8jdil5mOm6ckrDZNe92/xsP++fmoB58H0pOSofyukR7p1DoLg3jugl8Pr5KAJfKSdouXzg8oiTNf+fcII7n9Mx/tmTCqNYLvYEbcfAqOjFTtcaYN6czTKXOVucap13kTy72NZFLjI4FU+RogoZ3yVwa5arr6jQY6oQfptxfk+uwuhy1QpGTv6/PFWnoDPOXX+EyWyAo7oyRKLOKR6yTXIsRQlrDe8P4Tzb1WW5f2lrqytjDSd4RStdWUuRyp35fBWt4pmmQOPPGiXr6N3AsAm8KvY0t5A6cjheta12B4Je4mvGno2HLBpw/JpZFu+ruJy4R/p7qKd/dV7Ufuna5fgeEDTZRRU27txG+u0+SvTIbwq1g8QfLKh0q3w4wPyW97wErPCETN8IS0y5qYMXmXBrFyt77y9PrNTBsxPrXn4vVK0a3p3a2W2rrZvppG7WAz5Xn7PdeNbct3Cyo2hxBeqs4ybKYRTuPLnkMdUrpGdhtJaiReXEtBbpLShG2qG2gLn9Cw== + + + 7Vpfb9owEH+ftO8Q5WmT1oS2mzS10KpAuyKNFhXa9dUlV7BqbGQ7pXy2Pewj7SvsyD9CCC1jbQYhQpFIfL5/v/P5Et/vn7/Kx08DZjyCVFTwirlrlUwDeFc4lPcqpqvvd76ax0fv35VvB6zThwEYSM/VwZOiFbOv9fDAtkejkTXat4Ts2Xul0q592/ze7iIt2aFcacK7YBre3AsygIp5xlzg+hyeSE/wYOQmVGAPFUBxhlGuupQ5IK+gR5WWROOw8kZwDJVp6zGDFBojeNYZD1GWGcyY8qsTTQzU/kB7BCGndh9Am6sZF8lAKS0phiD1uA1aowu/SeEOVYzAVz6NyqgSBc4l+qAO98Rl+kxwbc5MneevEuOp7I3wvmJ2gIGkD9YPymvIXgqmrCviNDQMrGsFgeQ6VeSOgdMiFFUwbggihrgRphBJO6mS/YJO5TYK7Woh05WdABVSGKcMg4FrH7xUZYXQqHBAl6ZNurSyvcDtf4lNTTBGhnhTFRKjaQ6f5229ocolGHBET02OPUPoUXhdjHjV1RoXxxwTZFPrYxxHs2ciucaIUuGQGTrTe5pkHai/4mpOej3wb4p5BTxLwoNBfSKlGBXwrCU8uYaliXn+jDKWxW7jWxs412oPMJ/3cVZTOBDtNBeCv8FGsz6r2/N1EURFEK2Sg/IZPMJVcImvIakR9KqQWJEs66Q7eWNoETlXZxc4rRVOk9RZwLQ8TC0JCv9mAFIgqQBm3YAJby+HwAt8tgqfLSg2NzvBbQFAeSoUCrg2q/7eArxaxJmc0Hz4crh/iNfHLM8JTvnkcMD/FHZOe32G1/SUoCPddMf9o7xlJW3yC/4s61gM5y5+M4rX8AsRGkzvKKN6HEVP9Ck6XyE0m/u8v7kLHs+qWh8epeATNzYGpAcbdJYwi5GvfZ4xuh5mgFB2L1T5ByyjRZV1JZhP4JpEPmDdLiTglibkp7A0/Hzo/YrSMObxtd7X440w5sudMNeNYNX40k7Djph8h/cbb/OZ9xMlzNsvtUB2IaXx65U3y6DDa/sMLhblGxQLoXczqfNWRHLrC4X/XOFl8Gl283CbK0kSDcNlO9a2PH3qtSyrScvyFbCZ1mhvGL0yT2EESerZ5IUzkzviiznvuZbcBarEG7Z9xjEpQRPyctl2TuEUNRCghf7yQFrUS+7RRBAkO9G9qV73+tEf + + + 7VvNbts4EL4vsO8g6NQCjuwk2EUR2y1qu2kMxI0RO2mxN1ZmLKI0KZBUbN/3LfZR9tA32n2FjqgfO5Lc5k9SoghxAFn8mRl+M8OZofn/v98771YLalxjIQlnXXPfapkGZjafETbvmp662ntjvnv7+2+dLws6dfACG9CfyaOVJF3TUco9ajaXy6W1PLS4mDcPWq395pfR6cSGvmiPMKkQs7Fp6LGf0AJ3zWPqYaZO8ArNOQtbLiMGDoABIGcYnZ5H6AyLczwnUgmkoFnqFmgDZiZqTXFGHyN8N127QMsMR2zmGyCFDOD+SOkO0UwTB2Nl3k+4mAZQGQvuYqHWE6wULOFHwT1XbnUImM/qZfSQxLMzWIMBvkIeVcecKfPG0PT8MtGeOb0Rfe+aU0yxIN+sz4T1YXrBqbTO0Wyo8MK6kDikPCASfaV4NkYEWDAuESAGuCEqAclmkqXmL3jqTICorbjIZtYHKuphfKCgDEwF4GUyy7kChsN+WdxkU+s0dyz7HbEZC7JAYn1MKC0Cm0siPURDaa3JAqR3YNSIz3CMyyfOcoAloDxRSG3Q2XrXNQGFAVAY8CU7BeuLEElNBtP1HTC9eJYbxtenSMqoyYzw12/BEML59Wrf0/Ek1yVUhQzxCtakPqcUufClxwX4pZQ2PR48U7xSPb7KA6Fw6lCEqkH0M2N/TvBU0n7eU4UFgz3/GhcKkBXtjjVSt0RqBGFEvWEmN8z3QvBlz1OKszxMH6htUaikXhUUHEfKBAKTr4QStY41Kd7DX5g66cfK6dOIexKfQS6c836SDZcVk6/9wF3DNCzhsUTU/PYatXtXORojJL6B2XGBwaNy8WdrjIWd4cJyylkLryLAA7GDpOnAXZ15EMlOBWLSRaIwqfOJY7cJVTQrfBLg+QEKhNVSu58awTumjrbvXI657cnciy9ZoGnKNWi5ml2+ucBfQzbDqzgP+KP8+D/P+muFtSpwBXHoXZ47qD368ygGFhZBVTLoh0B/TtirVrvV3tuHz+vGGM38s+ZXB23/7/B1kSeeH5gPX2ASJ2TuUPjfnHdOhZe9lA+kd1tKT6CCVHhipHnoO/hacObzNVygecoZPufKWSBQ1cz6acBWSAWtBvCZF9OqD+CFWxJ8Qxl1mDg1iA+3wii+LAnOXMLbl4BjqQcSxRlhJTOUYjPJcqyuksDp+uApvgpLHA19XB9ld1VKISpawkmcAZZSki883y1X6KDU+MKEzqq2lr0Eh8UeeG/2mDIEDwqAh+1Wu5Wu9j2evImf1RYu6Ue6dh2ficbQhi03groRr8Devq6CFlrx9PmJy47//f1PCVXHEJc+xUgEG1p1zS8ta4mmFxx1nfDrHH1vhsCbolxJEkfZWNEy6zrWo8qcss3E9bJOc+uS2+atvuAm/Qtu55jeuEinm8E3pHsYoevYfRPrYmgldhfzYde3djCyfbkvmHiLSvgjsltQTrNbOhO7dyhQkp2YaUXZdftR94nVIHl3Ug/V9y3f/gA= + + + 7VdRb9owEH6ftP9g+ZkmwDZpQ6FVgbEhrVtFoOurl1yJhWMj+1Lgt+1hP2l/YUdIoJSgaW3VbVVfrMR39vf5vrN9/vn9R3CySBW7Buuk0W3e8OqcgY5MLPWkzTO8OnrLT45fvgguUzVKIAVG/tq1Fk62eYI4a/n+fD735q88Yyd+s15v+Jdnn8KIfMWR1A6FjoCzfOxnkUKb91UGGj/CQkyMLiwXJYEmESA4xoJOJlUMdggT6dAKJLPLLWQjMiEuFVT4sKJvtJwRFi9GbOfrCRSM2LcwdyhnChMA5Hdb3AaDUM6tmYHFZQiIFMIP1mQzd8NhTb7Ki3WEg/gLxWBoMh0PIcIwETPIm3rtTNgp2L6x0DXK2FoIEwPjwTvvTd9o5DsQ+zzcLXslDVb+t/kIFFg59b5K3aXprVHOu5AuE+q9Irk0eh0RTXMmnF0IUpSke92ssbLhzH8AyKGIBwipN3bQgyuRKexJJ74piM+FpFWX0H2hHOxDBv5vwhCEBBqhsdXxWeVQ6cGKha/zqpKsMUiEC78qNtVogX8gI/4wbf6DHLivIGv4EAVudbnRR1tHxLRF0r+mAX3IqGMsHTSPIce5lalEeQ3OW4NuOsgtxmSjS+PB9uNG+xxvlMhoqsG5LVKN1WuM2grIx5Z/bxKappvQNbAZvXMRdJVwrjTxcsPnvZupC23veAtWaOBXr+v57HiCyTNIxQSeaAadRhGtt2+izK1X2Jgt/vUj8JFTyhu41d9ptGL3fDhVS3CrYg78G3X7tjev2d2qZh+C2nkb5GaKx74HK3LmcAU3HnhFJPl9yj2Kx0F6eUwOvV3WDx//wMsnH5q/lo5/AQ== + + + 7RzbcuI29L0z/QePnzYzxFyy26YJ7A4JEJjG2Syw2d1Hra2AElvyyCJAfq0P/aT+Qo8vGAMmF2JbtKCJDbHlc3Tux0dC//z1d/XTxLaUB8xdwmhNLWslVcHUYCahg5o6EreHx+qnj7/+Uv1uW/0htrEC/al7MnFJTR0K4ZwUi+PxWBsfaYwPipVSqVz8rl/2DOiLDgl1BaIGVhX/2Stk45raskaYijaeoAGj4Z2b2QAqMABApyjVsxGxTMy7eEBcwZGA265/B+7BYHpiauGEPkp4rT91AJcaPjGH10ACKTD6E+F3mEHqDTEW6mbERTgAyzVnDuZi2sNCAAsvOBs5bqxDMPikXsoZcrH5GXigI36PeYtxfM4sxgvXnNiIT1vEstQFUKv43KX7ieiU2f81tY8tzMm99o3Qc0YFZ5arfe1oXWReICrEDcHjpgXyoULrCGy3MRkMgU03CGQIwjpWlWJ2GHuORYTA/BsxxTBCmi1Oj8qegwwAEGE8LK+irBaf4Xy1B0gNwXiySDz1nPVQQuSByr58sEmjSsZaLa5RuldqJnwhxhnjYEc5aWJE8wVHzpAYyIpL65LQe9c3krl6fCgowbEFQnty9PmL75pjF74mOpKnKb8h7giBp0RizoDYtZoaUdrHE+EZ0UxEOhu5uMHGdDfIDbpjM39qczLI5sRBFOzfI1prcDTukQENXcLMBlvIcnFqbjoRoy/UHPB5uPwEIULWsdEgQ2Qh+BDZl/tS5awetsYP78y8U9M7BTfO6uf1WGs0G4N6fVJ/X9+3F7WpfvfnD/2uM7VTBKr3m5PRnf6oF499+CmCnuj9i98A8mPxsTPVnUF6kBvNif6TAeTrYsb8MFIBmvZ4dw1e0DLR/91otVr6OebrUg/v008/YmFkt1KPvBKB/FOdfeqxb1vY/FDRSC/1COD5qUEqoS0GL0iV3piKLcOL3dooFfPg0WR487YU6ulzQAN5rIcXx+/zI+XUcd9ybtuZemgdN/xXQgGkzxF1HcQxFV5SUAiLlUIwe03JMi129Ea2V6CP1YH+n8WuVTol1rvqhgEDuGLcRpYvbx3xAaHvSqfHp3AcZM2FS3wrpElbNvFdbx5oZ6nXiWlaWDL5LWaM3DzMPaboMqv5OVMd13CZZHfZiJpdQNAbIgf7p0qpoBPaI4/4Xbl0Wi4dFGLzcnnPFgdMjMKBzZgYwlM6M+evkm3g5RfoRcRUataC3HtvxrANCYp08w3jdSi04JqvZp8fMF+42mZwZS/Ol4lTpqnKS0A9VkjNPuuWwJwiQR5wttOti4RqkcXkT/LyKp1zZjvBqELvO89KKpCVVFazEknme8VoQhExX7uVpqjP2mjhGpne4jcQ2xGI7Si7ZFInFnYFCEOq5XaZ/dPPKgodg9F9mFkvJmkiipxcpq51mU6ZvjWWz3pvH34uHhnmezBLOA7imW6hhwcMf+2US9qHFihZput9vM82RjC4c2xZ0tQikUm58YHY2CKB7+ozR55tzGJs6fSwfLr4KpQ58VLFn0fBLylESSz5NfAtGlliA8V+3crNLoSjLjKliXa28PkGuniLRoOJ2ayE7B3uDOU2eLNMZRtflTtz5hJteH2tJqMVqv8lyb4+LEv1yGHs/WOj0PsGLY6F4uBNBrhjyHvF2lyp0+HB1kxLZJ5/9JmJph1qQoyAzjtA9zbRm/1MRPIbmaTZl5wKfIkZp8Q30Vx+Q7JU1JQ4p56TlBMWEkiUcW7F66SfRskheW2t7420eqoMmAee1ch31E8Xzvbld6lG90wQ3UtHYhzIp+K8bn2JpPm8PGleXV2yA0QvLJvaZt+TPd1ykvg8Z/jm9VMtqNFHLrZUUIK/8u8SPG0ok+1JUmLKGBTJys5kv4hrk1U/6TuTFbKW9nOpFmO7ysyv+r/acr0dZbrYWti5xr8NprHaQwmF8eJNQNS3zWOsGUV8K50AcAxLOP/yAszPb1gCYlnLJV806zb48ftEjF/eHsh/1N9S6OO/ + + + 7V3bcuJMkr7fiH0Hh6/+P9pjTu7+7enumQALDG6gMWC77TuByiBbSLQQBnw9b7GPsI+wF/tGs6+wdZCEAIEAnaCU2SHakkpZhy+rMuuU9X//87/f/jkdKCfvSB/Jmvr9NHOePj1BaleTZLX3/XRsvPzt8vSf//jP//j2a6C0+2iATnB4dfT36Uj+fto3jOHfU6nJZHI+yZ1rei+VTaczqV+1aquLw4p/k9WRIapddHpCv62LA/T9tKSMkWqU0VTsaar55sFKQBYnAEd3cvKtMJYVCelN1JNHhi4a+PWIvsHvcGJaxkxBLmFOzGft2RDHdWp+MecniIZ4glP/d4MGsDi1+ggZp/tlzo4Dx9LQtSHSjVkLGQYuwhtdGw9HjgAs8W6hTgriCEk/cRkI6EUcK0ZJU42zmqi/Ib2k6ehaUzT9dIEVZtZCCuoamj5aesHiIYVghTgpKrigVYMVTBs/1eW380dZvcbx6JoyOm9qmtEUJTPc6UlqObKUe2zfUmuytGO+G7o8EPVZSVaUlXwufeme3aVAJ9a9e3bvK+c3uiy1xY6CzDyf5xUD6apIvm5qE1bkJw8illgsmhfZsxPrZ7V0gkoCzj5OA469jORe35hHfxlenNHGRm/KSMS1cSnWXIjlej3Wdfw/zSqJujIQe8iO+e4tnS3kTRKeyK9Gforkh70o5K/zDhKKQi+fn+Yv8kDxUU3ITz5a2u8fvUlwTIXaRy11Oau9Vi9qr5XZcy8Qrh+1j0YKc/5IfVD+k5og1H/I2m/BB1MHPwf/yqz23sPpv9X3Yios8wukPELMv53fgQ9Wc8IyVaulf+O01QLhB+STvn8PTy8UJfmIlcJypcK/9ZFfpu6NCv7N+mhk541KlTQi6lIj09mPK80v+f6S8EvncSPw4ymQ8hBofkn6JoTfnYAbmWEvkPKg+aX5p+nPk/IYQHmsLw98392P9XJ5TGvt8i0xGnLt+0y9WUvXhWZ7L86sPF7K09RfDn4kvWW/5VEX7tL3Hy78Upc0vr2YMiL5lVfqNylvH0wpOcsDc1X88vOkUJWCrmt6TFoh0+5iEXjM4e+al3f4/uUS3/9K2fcd8v4+581JuC/0rPC/0vj+4RV/n70uLoSi9/XHOnl/lbfC392s45e+eiP8BOveMz/5Jyt8O3tn3jvfVzUS/6e139v5X/O+g8u13vpi3afTJP3tycb0sfJ8SK2roDT/wv2lze9xSssvgK5A5unC5ncxIfw9wnvkn6UXw2fyo+G9yCv/u8ZPifHbJf5Q8t+h8vxzm/g355/hzfjVy5Y8LMuvM/zm/Jv1sZE3+TEKWv4pMfl9yJH61q2tqc9r0kfD/5LW1R9Wn2n7xNqLJwxgvddfjJ/cs/Ym83Jnhd+uvfDV/oWpFepoEp1OcLHsd79fZkrfL8s8s7Rc4+fyex/leRDpP8zv/crrclTb0374e3HdK/9eTL3Kf6v6vEN5bxV+Ms+vD/n3W99cy9+vvLEPwtQJdA6rokp0xiyCyZMWEvVuvyz3+gqZOlmcosr8dXV2ks19IVNUIaaB5tl1AifUaSMdoSp6R0qEpY2LdzxQBV3slWVHlH/9NU41hKuLzuOkJw0eZt2s8t55Tcu11sWkIheUzqD+/nyjjJ8/0rL0qzmotnty4+Pi8n5Qems9ZvrP2Ye2eFOaPLcKmMd03P0YXnSzd1eVQT8tlfNfqrOrnJTrjqWP2riTu1WrH5VJTSi+PxYztftsXXvGPHA8jm/fdvq2+qiMu7lmH6dTqbzidN2Uhh21We9km0rjra7gv5Wu0m9L5VtFuqlrj+3J+0KY1+lt57GkPj/U093BQ7/T/twUPwrtu4FUuLsv0atZUuj/nTS9L9/T58UL9v62cMeeO65mqXmDv//VL9SLy+8Cvn4N60jJv7fJ//LVF/J/9aMfbpz+rjp6y3yp5nB639LvP8ss/QeQrrVXs5j50m5dXpB0319fmemXoktD9mrayko5KZ0pNouft/mGyMFdNY3T/Ut7J+kl6d/iu+LdL6nebhdwfMp7e/e0Flu/lHrnQaHx14ssfmmlfqxeS/Jrpn+LOBfk37Di3/RNVXy8mjaLzQIuz3qtvG/9aS7Ir/l9bosycpX/9j1OT27Y7uRK1WdbtjK/cX76DL8rdVH+dq8/rt9v0T65y/9C/On24/AWPZa+uOFvyd/u9cf1+73l3xn/j3TzFt1njEfzGyLv3fumJf97159F+fUr/xmSni/3Zv3f+D0p/4fhb/p9Vtqz/uwt/2kzfnXH9gLHT+tj3ZT/5r71Z5u4zPbTrP87ptPHFbv+2P3aV/5ju/bWH7Fde+uP7S9s61o2OrF/nx7TnxrFTL87kLD9W8N/l0Yd4cKo4XB3j9MRtoWvO7lmupNNf6oJ+NngKi3dXBn4ee358TndeM1fVtNT5Vm9+9Qo3Q6fs332LGP9Pb3v5PKfau0aftZ87woXOLwjvlKh/3zTHHYG3Y1xV9tFbOeTuG7fpXLzvdO+uGzfPAwk4WLSuL4y0zJtiY+SZj6z/r58uLmaNF6LH/gZTQv+/+7psfkmPn5WG6/Y9l/ut7QvQuxS22OsrPf1KEtGP6plkAnt6inzrp7gu6tXZKr7Vmfvw+/qNYvK5/Zj5hkR00+9DaXpsUwdp6lQLxpDbHoWA46rjtVsDilNN1N3G1W/zYXLa/ij424qWqbCgqm3+1XH5WWoUs40ddxNNUf8VyoOP+ykM3vgX8q179OTTab+Uvw4PMbyLXg5gYvPy1t+N3b1luUvcd/HjR9cx3ZtHGpylb8dhvoWL3OogMqv0PSW/6y071CfdUWgfxcv0364dx0qCRY7a6iQlt+zqf9N+ykUWdnb/gu8q0e7UFt0tfK+uno7xI2/z09I+PuBoopl0gWl8U4Oo6vHZjNXt5/l0pHEeZRL/vcn4Slb79Ml3I/19n3G9+YWxs+otnIDe+L9at3iuD34zdJGFeFnr09dH6nclR9ZIk2XzGdfFxcWZF/v0vUS3Wd0swM/sgRfrbbSxmfCL5Mn+4puyL6nArt3lF9lVnvzLD+ypF0l4S+uyb439/A2/08svBdTsgQ8Q5b0e68DJ/nv0fBeIdlCDZpfr6B2erdcmEPDey0mZOWz3cKcsPKf7ZL4exvSS8uH4snCeybASu+QyR/B947yl6381u+YvOH8/N656njJ/678AiS3hTzfUh57wz32yD/Io7GotAzRmG+Vdzz7frqsQKLfGN9CPQ3dV67OP1OfAPi53C1oOlZeBc0wtEGT6s4ItszPvQOcP5NVONP5sGxg+rpKMsMAsOISdHHC8mvH19bHKE5ZYLYDNiJiEwoqBRR5s2gODX+/YOzmvMJp6a2As8Ifx3DdlxXJ5r/gEcRFDE43ysE1UhRbEPZzkOJSe1JLhRCxgMUrUJnkCZTZH6GrG7mUqLYuqqOhSNxwECcvns5t4ha4PSOoGGhwXlSJ4LCm2V6t66G+/Me3bUyRKEqXtjFqJVnTxiP08x0LmZtToTDyeG5HGYcDJTTCf0acV0GbqOeVUUvTDSQJaNRFKvEeliyw7QLIJzz/cQrAkn6JpggOAPhY8x0n4NhsUMQhvlnTBfKZcZZp5pCtNFa7xL9gYYx73OquBuC1Io5Gc9PPLEP6FPfkKEurgxuoseeSRZ4apfUAOdRw8FDRrPAGVIjGgxdMxIIAmLaDyautD6HPtDgY1xpomtHHX9U0aT5vVtfUOLoZkbbQXMpTpYszZvXASY+8J6t/ZL6mv+Lrz7MbZTbst9HUOGuIEtHxf6S/ZvHL7J8ReWjF3VtW+LSTK8ijoSLOqMfeeQ8XJy/YvjTjaLL/97/++7AEO3Ira0FEYlHhycoyVYeRZznf7RKdonXHozhyXhmxx/nhUJGRlLj8O3vSUBLWoFLMJRF752WlCMCq2Qq4mDszANtBDmTtoH4AsK0As1SF1X+wz094R3SGb7+VKwGMV9qnKMQ29TTvOi13qpa7Umebrc1Edaz25G4PThg6Mrr9BxxY7oqKMrNjK4nKKI4RigR04RLVeUtity25HbaNOa8hddzqJwv1hHVTD72DGvIEKEx9HnBvBmY9jgoa6GIe4BgcLB04coigVh3cACms8zhqgKBGwcKcyDrOIFtbyZbjZOSzDadDH+TO0BA2cm01A0AO+o5z/P+xLxuIjv+zgYq6pg9EhUJ4iDDlDgImsqqcBo1jMAUQ2w8x82TtmJdnHEVjeCCYlTUDmyvdt1g2bUA189cwxlnjALugsIM6GK93CZ84AnpHWAsPouo5+3LHYLIcSN0jKRVxV92qgWQr6gjQO5K6Z6Fn1kACHmB3vNgdSm2s4TTsovYCKJzWeECEKM6RpYhWiBanQ1ElDonIys2W3FMXV4eaflMD8vq2EBnx90YiZGO5mxdwBhnfko+5EGMksSXI8exhEHHE+kQcZ3r7+Nyeau3idMwcZVL+AbKe1to3X2zHsMMAHW8KxWmtozHHnuGWhx/HvXMKOr1J48coFPlPBsXieLYsI524Kp9ZqgNMDVDEQDERbTiF4BQx4+fwsO2zYXbwY4aDT8NkmZ/j1V6GCeGnuvOb05Li83Rbz/BYz88ZPy2PgA0poIjJTRHz3+WM3tQ4r4zMP2NYiBGH1RH9GEDUIgd2FdABEthVNoFdBRQTxXSyDlb7MLgR+jwK3zYNmBlATrr+Mri77o6Hb/mxl0aq/n7GFw3vxXWM1dugOnvONz6R8O5qkfG7HNwJKRp+2/Tmr5/eb9/yqb/I95pPfgvpecrfyub3uDx0n/wc5CiPQPjNiZVHcPyADofiNzNiHdjwOADJWsZCFrAwnf3T6CPd8dWOK1r2OvFqaePUCuOTAI66utYGA4wBl6dcsTW5jv27mXQD6eTZz6HYlY2ZN8yeJ2NxAzuujg1ZVUllBPyTgH9HK2hTvgUAWvn1cPODMlTztbiTOKCKJ6KKL0ENCHOH8HUfdd94bcQB5Xk9Rm15gABlnlGmQ+UAcQAQb3doJi4PXZHVt1jPQAbptzSZqHTHiohfQhXgGmeSXYCYZ4gLujYZgSbjGuOmSEqHS4y9x44AdY5HjwD+7Rt2gD9J8C+bboB+otB366CBCBzS8IUDjXjO+4GKs8W4HtSZJKHvMnafSAFI7Hy7yxQdhwIAu0JhV2getmvsTOD2yiJwe5UsfozA7dXeFMt2Dfz0pYleELbYuph9svaHgsEBBgdQDARuKGwCNxRAMdEhGRyx7hRtiJKEn/6Rvfia/kp+/jyznZ1HPoqFU9YQVRTfEkY761sefnhmFd/F19xXfP15KKdxluVe/w6Hko1ZMAZPU5SooVNUxY6CWO5JJAr1f29F29bHARlYi/FtG1M0W7xLMlKk2GT0RpkN+/RQnkpXU+di2dBGMjkD9efLywgZf1z+HVdlSzxx1cbVOx2JeFrIkSTacP37X/8Vh7dBJJoGOjuzNb52JcyDy1dk0nGwfOQ5XZRJW1YzWVsWP+Om8nNETeUByWILEb+XTW1yrWgjxOQxenio7qJnlpgd/whmpmgSWFUMfVGfNmERcbya03EI2/x8tiTNQS9t+WWBeZqAJG2oaV/uvBqBX5zZNLPzUFJe8F4BGSr2AuBc13CPbRj8wgvVmMdqvMHzEpc1GUD3cLcEqHOL+obVgIA6r6hvWgQMqPOK+tqF/wB57DtkFiCIfbNMEmvH5v1kXFYRGKPaAnZOu7jJHoFehzrXdTwho1TrsOWuIicQ2tUd/9yhCs2zK85ct8zJtb7WufDgt2YnvZu1AXH+6jhAvtFNE5eYQ7vuATmnDXuyTTY3xLmu2wnpcrnhyl0F9gFrTHtD6poawtaJg5VCN0ef3EkhqBF3oPlTI9At2Oi8l0vMA+0WgNaJXUK5Uz8R9lsDWS9hAxDPcolI9LSfgopvPUlovSQ/xRGbuMB40OalZ9w1pGDHuwLOtUmXkNEgF1i5q77QXnsuEOcOc2iy12EOrTavyHJXiaHh9tzPxR3m0HCvwxwabl6R5a4SQ8Ptuf2aO8yh4V6HOTTcvCLLXSWGhtvLWQp3kEO7vQZyaLY5BZbTKuy6+ogXIN1WbuA4rTrK4YF3AOq8quI2aTxQOQTZ+9BKEIO5GOCHHMpAAhB223MAFT1xFX1rMeCzooMMuG8XTpAIAMD8N/VJwHiNR55kAQ3t+a6iwGejHqUc+FkwvwUkB+SoMu6CWWm2jrdsDrbxcFl9DCokcSpkWykA7cGtCLgvaE2QFADGiWjvEwCz+xLHZMEMbfpugsBnmw5S4HrEWIIkAPDlvqlPAMTua1+TBTO05bsJAp/tOUjBujWVCRICgDgJDX4CUPZejgOgHh2onssvANPjw3SrOXYANvy5YZgLjm8WEOT76DDdZsoHYD06WLcZ2QdYjw5Wr6FcgPToIN1mxA5gPUZYvcZneEMV92sVcYhv2MBr0D0AAUcuaBO1MDYMTd0VtWtFHI3meJmY0KfLrM3kB4uLS/YihsdR3cKF5tyMKVCImqKU13VtwqKgmeANoJo2HqGf70iPACI7rnNaqg1R37kdBLhigatryJoKeO2Blyir4UMFqOyGShTH7OBitGwwnGG5IyuyMbMP2LHNluBP2Tkc2aF/cic8x2txLqLDqcVJc3jdR++6ppJypOPHRwsSSz1g5BujqK0ZAO44ew3843Y/jAI16/bnEKmh9sr5BKwhShJ++sfF1/RXfP0ZkcVaMdDgvKiKHQUx86As9/oKvgzbcm3rY/eC8xnftjEduHnsHAo93WpwmKkjFps1OsybOP8ckjyOnDU2XNQiX4lxvL0CrnsDRzj+wvG4y3HPBnAMDE+zAADTcfSXOcaJOFSP9Ex3c41BC4l6t++c/hdkVlgFZEwQUutoauRVCbeO7zLG1zKWTIM7E4O17Zps7sy3MhIxV9LbWbTzg6xPa+Lg1LBbOqggikrGMm3VrNZA04w+/qqmSciuQnVNjaPPGqN8cdmARy9Oc3VhidLnzNkJu2JplnF5lGSkSGGI0pw7NQF5HfVY2/kMxwKoktGzRakSdHFiKQBTrEqiMgpoAA/H2RB7OFxDVNFckmV9ZODnaGF81oz97i2dLeRNEp7Ir0Z+iuSHvSjkr/MOEopCL5+f5i/yQLHQR+2jkXJ9c639/tGbTGqCUN+VaQ1zTU2WHgqVWW3wROK7cH3vRQL+KnVJ//wha78FIT+p1dI0/ZTfx/z9DsS+f63MRPp9b5nf+vLZQOz7pfw6+B1a/lfSj8vj+XVeHrsy3ZC/3zjttRpO+8fdrlyB/NH372EqhqoIeoEjou0+bWfc3/toF2m7Mqu93g5c3+/XLjraQdou0nbG8X7XpLrqAXL/ieqxkc/8Xy7xZ+VxiPln+X1yfb8rU9rut6hd4f5+n/wD+aRw9QIZlAS9wBd51eO9aN6OXVD7sxcI1+V23EuvbUUe7bi+F9OVdjyQ8gg5/+56fC8SlvQWUMwUrl6wZqlANySAfIwluZLfsSQHBTiWQinosSRKy/n1O5bkoKDzv0x+x5I2EIwlxUZuusHvtNXOjhdWtUpcPrrqmj4QlUW3E2dkncheCw6OywOF6RMU/8W+5Mn/RNLQdXEbA/ByAu+qoyeAlhNo3V2zAbycwOvuUBHg5QReFx+ogG0IC5HX+Pp1K2voRcTg2BqEnheAV73RA7acYOt2fASAy/X+hIOVxaZIcpMcWTQPooqiOWmKEinhBxnN1+9HbRSFuJ+YmoN0x4tTeuimSLJJMkl5JTVF03E9yY9wS0fcksRl/pa07ni0fmNlIJuocAEb+HesOtxy4BJgj2tIHbf6seDvteEtyswHuReI423AltCa8nrWQj0N3VdaaCB3NEW6KuHm9MzRZLMTBJvUCU4IVbyOJg59G7kAR5dRtp84zryC+6Yjdd+0g8d2hw8y7lqu6By1hOgnjmPNwgU+CXA0XRP1N2xPWRZALt1Aetelt+sXNFvjXSvaCFnQySPSMsc2WF3W3h15jyTLttOauI/iiz7XcfVK5YGoz+i415KwW+bu1fnniA1dmkbWoYnd4KWZjG6AtzUeEDxCH1fTJisDBpyNokUN3HKfBXA7CtwWO9UA2lGAxsazALdjwy2SKSP+UWPmV3SwudtjoaBXUSXSweQRug3zzMsDy8zijsy0nk+qRm9kR+Rbqzgdiqrp/u68JfdgKyLQFpR6yV0NGrmrVEB71Rm/1JzIfTD8rlIv2S/kfvxu36/49NiV3/yNwPhT2r48CD/VlZ+DSPl2dLs8VC+mFI/X9fyW4h+/B4cfUBwUxlbE7TxoWmpjriGb5EQ8UJKgJJNIVAl0aaPq1Z6yRp2G9+K6Xums8NtRadL0PtlKq6P55LeUnudX+3uqZPzwc1DQRsKczPIIjB/Q4dCBKUl8Yz6PYf5y4ZwNj3mt6HrZZc1o62L3LZYFmF6DDWfLwxMxjD7EW0JgZCWDwlGCfnve62m/nvdW5NcI2kBL5eFpBG5FQac3afwogRG4P8ViZJVlpJPFBTMYjQBFCeRBMGRvEQzZA8VFB6goYx2RWFm38dPoI92xJ5CX5Tdu3gMqalGSDbaPnZfVHIkB1MXVB+B5zHiu8c0DoHqD6scJlbN8QftE52gN5PqI8XT3iwiQHjGk7p5MAdIjhnTV7zDAecRwunsJB0iPG9JVt/48IgpzE8kgmMS3CSbxk8WPEkzi708HMzeBtT4LHMeMBGhKoMMlmMW3CGbxgeKiQ9SUsU7jz1fRJ2boYHVwb8Fs4WXgIIHIug4KAbjcgOsyiAvocoKu6yQaoMsHuu6z3oAuH+i6rFEBaCNbhhXrmFsCpX3dckMQeU7wXV0eDNDyAa3bUn7ANvxZEzgHcKtzALkURZiVSwbB+hWbYP1KsvhRgvUr+1Mss3L46UsTvSBsBHUxe3BFAeoyQgJ1aROoy2TxowTqcn86MHUJiz5BXwK5Eiz6tAgWfQLFRQemLw/EgRNoTqDDJdCcFoHmBIqLDkxzHsqmiYYoSfjpH5+/0n9/Ok8Sj2StBDJEGRdk+Cf9zmPi8gTLSldT7WM0wkcOx12V1Te7GKOWW3YiRll7dxweEvRKRXYYBrH2CmPD0FRreYN9gklc2W7oaIQfxJNxQZuo4CUv0tU0PDqDSdxhyYsH6ACMxwrj4qQ64MgDjlA3OcS0MmrIqor7V1yCO18XTSx/hq/fc+IO1iha3ee+gLN5g23h8UCd3wPYRwm2++5oAJxnwFd9HQDe/OLtukEeAOcWcPc98wA4t4C7bKMHtCM5xXnNzvrtSj++LfcJqBPrNttDxeAX8tX994A2t2i7bckHuLmF222ijh+4V5bG0ABzPt9ShTEuQKSTop4/bRkzBY36CBlNhHWdrKnOqL81RWk1xImJ3kZU8Zek0MnyjVNvMWhqmoG/sPBfKLvIEmHKYlvsKOgAUoLha4gqUlySggVlLW5UWOhrE/Am6skjQ6eBaBhbFJxvyOdMPrEYo3/8Pw== + + + xVbNbtpAEL5X6jus9tRKiU2SVqqInahAaCJBQUBprlt7gFXXu2h3HODZeugj9RU6GEP4sdu0oql8wTOz+33fzHiGH9++B9fzRLEHsE4aHfIzr8IZ6MjEUo9DnuLo9B2/vnr5IrhP1GACCTCK1646dzLkE8Rp1fdns5k3u/CMHfvnlcqZf99u9SOKFadSOxQ6As6ysx9FAiFvqhQ03sJcjI3OPcM1gXMiQHCMBbVUqhhsD8bSoRVIbpd5yEdk+rhQUBDDcttgMSUsnp94vK8hUDBiX8UsYH1TfwKA/O/EbTAIpWvNFCwu+oBIKfxgTTp1WwEr8kVRrCYcxB3KQdfKRNhFUyr1pkJxEaWrMxWRxMUJBcmoZiwpOWnASKQKm0bjSVfEy5K9urjMntd8B/OQmNvzF/Ji6/eQD0CBlV+9z1LXCc8a5bxPd15Ljic4lC4V6kZRHTV6A5jjeyXHevnG2VBQuUPelnGsoAUjMvlHwO6J+A4h8W60+EJ9kCXklsioJaEN6sCm8C/wnooU+L9Je9AnrAiNLa7HKrN9FAjrQLZlC3ndqDTR9YkxDuySYBGHYozAL2nEP+zWtkkddGiCLPv1oO2Orc/bwD2/0q4FRz+fUWfDzPR/0JnPkreX2XM4S34ttq6EcxuZ+VjIjHs6c9dxBR58cnsjOPC3FsGjNVsCbrkEeqB2lk3mps//MILl02G1akom5I7i3MHXWSk/2TMGCbQwRSVstrfg6uItlHxXPAF5n3MBBapPabqyGpUt59Vm90tWe3Y0+ztw9RM= + + + 7VhRb9owEH6ftP9g+amT2gRaVdpa0kpAWSutG2po11eXXMGqsSPbGfDb9rCftL+wi0kohLBKrJQWTYgHfHe++74z5/P9/vmrdjoaCPIDtOFKBrTqVSgB2VURl72AJvZ+7yM9PXn/rnY7EJ0+DICgvjRHI8MD2rc2PvL94XDoDQ88pXv+fqVS9W8vv4Rd1GV7XBrLZBcocbZf2QAC2hIJSHsOI9ZTMpPc5AHsYwDojpBaPeEiAn0FPW6sZhbFxklQhsGEdiygRIdka51xjL5oZvG4X5NZRjD6I+sU8p3CPoClq4Gb+kAvba1i0HYcgrVI4WetktjMKEyCL9MidWYg+oYcNJQQLMYfdaUxYjpnjhuEIKBrlTYFwWTvG24ShqCYhVyRzKwF1Hmrq1FDSYuJKG7v9mn0kayp+RxdDcGMyUWUnAlMn7RuNaB3LuKihxXPjL+Izy8HWGTIL6fImZdx/zoTdA6sZPdnzE/m4H96VkpPSym71vRkDrYtPU24Z4mwLbVYe4rlszxDBSWS/w5oBwPX/MH7zmVae7QSxrti0YWFgXcm2Z2AjO+wzyI1pOSG4WWEdjopZ2xlbxMHTYhtf+ql+rwurg1kVDa5SbFFbcbTavtXUDX/CY6f+Huk9+r0ZGdsTu7a0ljxCGO8mV5ZNOs9a5dMP4BuKQ1YFJTeDaGn4Prik3eYHr9dFPe43Kkeu8+HNRfy14a+zaK0zds5PK4c43dt8PM6tmH4B5U26G5Jx/O8OL3837j9gCfneoOA25oPmB63uBC7uMi7K934c1dy4UbOoW6sgnU0kyZmGp2nMN/SY+Ae4932p8ALpWcNT4HZ7GzpQ+CFkrOGh8Bsct7gM2ChySzMQWr+zDTmcdVNYkw6ibkCMTfxcWJsJBc1SNZrLu9Bry/Sljlnk/5L04qcLA3R8bJsKjUZaflLZlrO1M3BTv4A + + + tVTLTsMwELwj8Q+WzxAXuKAqBVFKAYmXmgK9Wsk2tXDsyt7Q9ts48En8AtskhVIaxENcvbM7s7PrfXl6Dg+nmWaP4LyypsV3ggZnYGKbKJO2eI7D7X1+eLC5EQ4y3R9BBozwxjenXrX4CHHcFGIymQSTvcC6VOw2GjticHkRxYSV28p4lCYGzorcK5lBi3d1DgbPYCpTa6rI3ULALgkgOsbCdq50Aq4HqfLoJFLYFxGKkZgIZxrWYFj11p+NiYtXGe/1OhIlI/VNLACLStEIAPnvmnvjIJYbZ8fgcBYBIll46mw+9kuAUvw6FGtLD8k1edCBocw1dq1B/iGVkiPQEKN1fiVQ1p03vUCwE03GGiyN6NOrUw/BvTLHVNdZ7YOetdiTSYXjTKySifVsoahp4Yd9Xkr3AK5rHRxbbd3WkUZwhqb4CF2l9RYBVdy2jqb2rz7cngdkw3kmUzhJFKX8iyOh+Ho3QrG0oe+vxXb6+Xb2QH/4BUWYhH9GsKq1H7TM/7YuNTqWP2ZZeImlWvNvMH9nQDSaWqeK8dQdjPLaiJpzU6QWJ+rgFQ== + + + xVVNbxoxEL1X6n+wfG52SXKp0G6iEEobCVrEEprrZHdYLLw2smcL/LYe8pP6F2r2oxBYlLYiytGeZ78388bjXz+fgutVJtkPNFZoFfJzr8UZqlgnQqUhz2l69pFfX71/FzxkcjzDDJnDK9teWRHyGdGi7fvL5dJbXnrapP5Fq3XuPwz6UeywcCaUJVAxclac/QoZhrwnc1T0BVeQalVFJrWACyfA0TEWdHIhEzQjTIUlA+TCtoi4mBMT0VpiA4ZVe+P1wnHx6sT2vi4QMKe+TQWgvimaIRL/v+T+cDiWodELNLSOkMiV8LPR+cLuAErxTSjWAYvJN1eDLk4hl9TTij4MwMzR9LTBWy214c+uOuSze/FGOlavQz5GiUbMve9C3To6o6X1RpDcEWbevcVKSVdYeJSYDEEoV6QJOAedjyCtc9Y/AeVE2BzkJ+k6QZHXgXheZltTjQ0ouwCDG/p9wsB/oQhB5Chj0qa5OptOqRGs0lB2T5PU+7tNgfrwiHKkNVX4JlXNrIF/xP9/bJI3aIyd1GurxriiGylSVRahsmsgkkRiH6ev4FbZKhEBbU3b2Qv5nsQ3d+ayNUQTb5S8bqJe/UpPm/GBX3sjLfB3But2txiqdjNURyifDe8i7LQfIljVaX/1+PgpnqorzFGdRXGO/TLlF+Uf+aOKo8W/dvUb + + + 7VfbcqJIGL7fqn0HitvNCB4yiSmZqcEEoyWOggHlroUeaG1oq2lAebW92EfaV9gWNEajMzXJbqZqKxdU0//x6//Q1f/ff/7V+rwKsZBCGiMSKWK1IosCjFziochXxIR9+3Atfv70+2+tSYjHAQyhwOWj+GYVI0UMGFveSFKWZZWsXiHUl2qyXJUmet90uSz4gKKYgciFolDoDkAIFVHDCYzYPVwBn0RbjrUDUOMAuDtBaKkJwh6kBvRRzChgnB0XHM7jYEy2xvCEjLCljddL7kvcauzt3QIGBI7+hhUCO0tmACETX3a4Rx/cy5CSJaRsbULGeAg7lCTL+IlACf6UlKCCGHpfeQx0QBeQaoTCNsGEXtzCbyDBTCMREw9MPfcXH/FPuhN2e0UcQwwpWlRsFLW5eUpwXLFQnAB8h3laIlZRgbsoYIiCBXjmFNEOEOMZlY6hSD/A0jK5M5cRehrkJmE7CWHrvUziKZAGIcwA3lbuFJrT3lrSmfD/ZI6GFIWArjWE8QUnIlcllFfXr82VGfKoBFxLJx58zNeARCfS9RJvD91KH6xJwraUzQJQBOkOwJDCFMHM4IEHkY/hJjyPOK4uLwT5QqjW+Vr92PhFkEwutdgH57uAXlvSbQzi+LimC6Iibgr4NPK3L+YvmEEa8eszLTP2BoV7nDcTLgG/wAntMhhW7glF+SYeuBsCf5+tq6tEGt42GzM7873QWrs1nM7mMtLNRtZFKp6Fg9Tp4MTJZeRNjLA/9tEwb1w/hNrCtKuBU7PGoKNljqlyG6vEzZcNtzZqdsNA9u6/fOyvm3Wv7iZeriezei/q591Mv71L7buq/lAbEIfb4H6e6C5+Srdv48StGwHHibtzjqujLWeRMZjVDDxcDDD/x+48Sw/o81VvZmuRYw1kN7SC2fjSALnKRpamjh7Kz9Bwsc7kYt91yrVX8nvqSN7Llp+hGR1PHU0CdXB3zNMWtjZd9fOBrdtG+HW82fupowW2bl7n1lxbOPPFiu+n/ZoxteZ3qV6drpzO9JLLT+12813/rfTzLN3VtXffw1Nb/mPYbppT29jVDJlOVDz0FeW/uW8P+5Y/4xhy37v2RV2rll3bld+79n+u/6qufe2jpHwymgyw/XP7CU0RD/t7iRHjr4NNe/+7D5Nn5zialVrSk4ltTy2mtXgzrRkQH0yFBZvPBM8lhO1hzo8T/FrjmgcnF18zhPDAnMVZBOfc+FrOvtKZ4bdQLQbmT/8A + + + zVjbThsxEH2v1H+w/NRKYTcEVFWQgICQgkQgIuHy6m6GxMKxV7aXJN/Wh35Sf6Gzl1x3Q2hDdnmItLFnPWfmnPXY8+fX7+rxaCDIC2jDlazRXadMCUhPdbns1Whgn3a+0+Ojz5+qjwPR6cMACNpLczAyvEb71voHrjscDp3hnqN0z62Uy7vuY/Oq7aEt2+HSWCY9oCR695oNoEYbIgBpL2DEekomM/cTABUEgO4IqZ4GXHRB30KPG6uZxWkTzeAcgmnbsYAMG5KMdcY++qLJG7P16swygugPbGQwWandB7D0/4Kb+kAvLa180HbcBmsxhT+0CnwzZxCDz7Iip8xA9wZzUIcnFgjbUNLShVfT65ul+czlyeR/jXZAgObPzgOXZ7i8VsI4t6x7aWHg3BlIPNe5YT8FdFuMIwRyz5Ax5I0Jg0y6y5DcNZiqbXTqWaWzwYZETSzIuUAxSBuTlwlWKYuAE7ssNNnequ6KtP8jN/jAvVOlUUmlE2FBS1TdCzS4EHlwdXcZ0nWFak8y4ExByF7I4pkSSk8pe+hzm0HZ+3gO3V0A7/VnEqnsF62PFMz8JdLRTBqfaXQeyqLUZPoZdENpiMgpzc3HQqr4o1KLdcMt98v+YfkQf1/z/PDPZfi1x1gukE+xwGlHB+8koUV/b/W0qX7uuQkYbvLMzmQ0N1ajiV7isRBg/pJpqsDADVbhSDCZAllSUUof750EZ4op/3S0NBh8zPp6coq7roYy/7hPPC/cNJQXmKTErNlLtp+NEy8sbwVIYN1++HqkZ4IZs1w1okH82Fi8JxVSHJYI/FZugQ5JX18ANqS2DsbT3A+PyB8l+L1J8NuP1ZkcafMPOjqDdWCUR5SxYRFR5kVteocqjtl4u75WesDE6sK9Nf7TqSiO/lQq0qWsgDwUVr3S0S+e8Io7zH2glHyMU95WEpK6syz1garuXDdqNhp1okzYiboFsdDxiqYxirQFSa5Xb7kSJ0N0szbLChzzTbh44TkvSWPpDZ5fvcAjJytTFPGyqisYtxTdFT3F6NWoD3n0Fw== + + + 7V3ZcuJIFn2fiPkHgqfpKDcWS7lMld0dYFY3qLAQ4OJNSzaSnVpKEov91P8wMV8zD/NHM78wVxurWA1K2SiIDEDKzJt57s31HqX+9+//3Pw+UXBihAxT1tTbZDpFJRNIFTRRVge3yaH156/Xyd9/+/vfbh4VzEpIQQmIr5pfJ6Z8m5QsS/96eTkej1PjbEozBpcZikpfPjYbbQHicr/KqmlxqoCSCSctzSnoNlnBQ6RaNTThBprq3en6BchAAUBcInFTHMpYRAaDBrJpGZwFt03nDtyDwrStF4wC4iS8a+yLDrKSXopZfiXO4hJQ+q+WE8HPqS0hZCUPq9xUBkhpGZqODOuljSwLIKwa2lA35yK4hQ+KlShyJhK/AwYl9Cc3xFZFU63kQtLV/M2l+4HZJ/z/t0kWYWTIz6merN5B9oaGzRTDiXULKamOiTzJJdnkeIzEFidDERJdDjQGeuOwCZq8XC7S5ZYy3bRBqGBpRnBhbUX5MRJlDMagWq7yAguraRYU2IsXVJpgaTeXa2DfUzdNznhGRkUz0J2GNeMCbshCUTPAslZ0dcx6d+q2nhpg5l0ZjYlVnzU41dQ5A4RXZIz3rHJXNocctDfOmtV87tpt0q+fI5XVBgO7iVsWdBMr+UGOdxK06GlGC236DnOm6d9K+vA6V6EScxk7tTiwT1sG34M5oJYhawlME3M6/FljmCfoRFqGrMiWPEJmyhU6vQDRREua9iLU8XuQiJiVm6UH+UczqeV+r4AtZKicreDAjuAEJgZdoF2cpT4wVTK4QW1+nPryZXjZKuVzfG88EJXui5DBI/6Jkpvt3LguFzGv0KN+FQ/7r5QsPjJKgx3IrdfcdUepPLd7aamf6bJctTLut4uQx2QovOo5IfOQrysSJdYKV42XfFbMCkPxtTnks/dq47U+bpbKo1453exkaK0PeYCcubTPe6Vt9PBQyDISlBPXn6Bc1YrOqwzNZxjceqYx/MYCxqxYu8dildZ6pfFoIc7T5J7vVdR+l6YEpSvx7GeGey2yD4pYfOhUnMBUsPPNU87/suh83xvu/fvig3t9LjAVpgrpH6UiXV6+t39gyvgz20v3USf9s63evzm/oNAGvQsdpsw+6nQjI17B9wNdtnQ+WykfWRbNlCtZhBkaPVOj7zWdRrgwYjtMUczqzJFkAF76H3wnDfXQRugZvtvXOfu7c5en7e9GVr8HPK3ewTJowMtSocx2+SkbNyTnrxz8XiUHvwY1Lz+vQnydp9IH6L+SZTvUeKn8i/gtyof4oMvn49tJHD5m2G6/K+1nk/2dXXrS+ovDewsw3lFpurmH/UH8MlP+vL+sTH7SzohZx35LzHb7z4gTez7AHl6/EMbfxeDNHzpL+JUfHsWrznF11+B6+QlTducvfW/89+ZPJ7GVg+d/7Hjkz9Ht+e+PHvWpVU5LgiLC/LcJvysmX8pZTYj30JuYMBe+47MMxWeoT02YJz8oeUqs5i243uz3+lTrqfzaust7vydtridqYik3hmv+7+tuNT9uPRWuG2lmJMB/0MFMXqUo9auMzivCsWRbNFvYLD89JxPi/egx/nxf+/FYxK3B7W3gSvJYKy5naWhvGbblVzRddsGa9iKRuT6p5N2FnnxPoS0rOl4uIPENuYsWJ9pb9//IfaO+QfjlYi6CuzWR0ScXS6v5MHeZy6q9tewWpSYPJAxhtnZnjWHwLsgb5e0qKWSzcW/Z5SRqOTPD6EmyhVg0sS4KggB3aM1QOHyKrd51QKTc6Egk35baaKChTr2NFJnXsJhPfbZdMh4yoTYe6A4btvW6MPm9YVvSxjXNkF8hGocbsopO7avZU6sOviRtfKmfy1ItZNjKuzixH2MjDCnfvUYAD21oou8jgCT0StfNmmYB7MIzFCv8mpPq2JZhuBsaBpGJQlQAiE73vm0SdFo78F104ePQMpAJP8lj4JsCSTCi0iOeCQbRGRCq+EWX7P4wnQlpBgcrEtdF7E8CdMy9OOSj2aIEynPc5Y+bo5f9f//6V6S876ErPcyF7hLy/4wS8in3jxvt+3kpIlJNIDXte89KB1FuDCRVEh1WDbk93jPl80gzPg/7Zj5PzfUPlXPu/dPzeTaGx0B/4Gllvi28O384Uw7yR4rhlcHzx+7hzw30B++QzvZ/0ixbPNSfW24/YprvYo8P5soXV9rHagj2Z+8gc8H+LV/+pjS+P3aTP32HujJB/vDsDhgF+9NdfzTLZyuN/tS20j+hPpLPB3srnyQw/Q79U7D9L8in2J5+j3qVqyD9B/vzd2k/gekPtv95+X9QzAKfwOczevZ/cPsJ4mMcbv8eH8Fr/xvT2/h39Z/zfMz928/B9k958tU9+wuQ77RHeg8+58H27/WfXvvfs5xvCMTHj/3DofZPLBw8fhALB48fu4ej83kK1w1qgvvqw6dW5V7vZyT3Wtr/Penw2cKnJtt8E5+nwXZgnm/Luh+JNWbEs7lrttpVPO7QDnwih/vjlAW+H370mGeu91ltPcHcf3ndwuZOy+dZWeZ9yVwkrnIE1uh1QVMjR6nZhUEz9SyHtn1OzokcU47eF+VovlFFhHBEvl0Fg/JRqRlrakvYBRdoAMvshBklLSRQokNQ8IlmwtB08Tm1u34NIsQ4K6sAELcOD4sIWon/ZG4wazFmKa7RLXGOYsi0pA11J8pBIcTU3AQHuclAeGS9jebw8bmKm6pProsPbS54npS0nRGICQCnJgCUkMXJeFk2GN5QUWMiQEwEIB1iIsC+ISYCrA8xESAmAuxo/zERYFv7iYkApwjEx4/9Q0wEOHmIiQCbiQBHkk/6YI8zXXHFRyluC/FRivuG+CjFOHycQPoowveenrT+4vDeQnyUYnyU4m4hPkpx/VGKzaeCszrrKFjlavZKzJE7ji71mtyBhoGuOPJ0mJje9EZNnhvBaWPtz5HitBmQcyA5bTGJj09z2gwAOaJTiEeR7QbBh+U8ba4+YdZTVGpOUvv7jpKneV7Kn9X066qIJkRf2rWotwhPYE72jNI6BD7qU0pr60ualLn7Qydn2yoj9EBMpHrOdJR0RGymu+Zkdf9E9VCnfjXEici4Q9hfwpOHg8yAsgJEhNaCNS2UMWYVAoKH/y1jMLc4IoJCSRsTOBnUP00g/c3+UL/YjWMgq9PTBULuzgtYHqhuL+H16E1ZFDFi3Cf7j3RsgC8NlCTzMpatl6m4GohDgXoIdRRZ7TVXck1sfHXu/Ouuk9vfdz33PuGCYWjj6f8P92ZdUrtAq62e2PQgxG2gXR74izeBnK0QpyXWVU5w3uL9UTHZ53HI80Bkv7cWRAYT4qdnrD2qKULnZ0Tg/V7kT9CI6n5OFPcKSDqHtp4rFoa6lrz9iqZZEqRqauLM0U9r6vGOEIvsZl+Jszii2yZkztw7o82R3d7VQ7znXhjT52dCxEb4pUlRVAgFqydnkTYd8qPKDKMNx8+dDKZdDuIjefDMYvsJmkOTPqbwLFvXPsBEom1tw+N859XvV2fhIBKdzi8CXAdynZ3d44S3yFrfdjPHWVcdvooju8ha6SD8C4w2jo3i3I2CpC2EbAEBnlHnEiavnVVHWt1sa4Y9hq1kn4h9pO/T2KLqhp8jrMTGFhtbWASx2NZiWwuNgxYbW2xsIVGfYlPbbmorynIizPK5uSwOATFk2MuW2dW29YKRKSFkMQhzlqyp86JvwHBWYyQ86NZD2qnbJucrdgcdMLDKmxnpIoRrCsGgAeRvOH/cjOeklNCf3BBbO0heLGpAAUApazFyFOPc9sCdL5QTZwr7/B07uZOUBctBv/0f + + + 7V3vcto4EP9+M/cOHj61cwn/mk7SkLTDnySlxSQBkjT3TTWqrcRYjiyH0E+dm3uOm7nnuLm5N7p7hZNkgx0gIVBbpo5hYMBer7T7212tJMv6769/9t7dDUzlFhIHYWs/V8oXcwq0NNxHlr6fc+mXzZ3cu7c//7T3aWD2DDiACqO3nN07B+3nDErt3UJhOBzmh6/ymOiFcrFYKnxSW12N0YJNZDkUWBrMKeLaNhjA/dyh6UKLvod3QMeWf+Z8XIEyqwArTlH2ai4y+5B0oI4cSgBlpx1xhp1jlenSkQnn0Cj+sd7IZmXl/CsCfg1AgcJqv0sFwZhT14CQ5lYTblIGK+WEYBsSOupCSpkKjwh2bSdE4FV+HpVSAw7sHzMdNOAX4Jr0EFs0d+9SdnEXmlCjmDhTJzy+XOgxhXJgMsVa1FNEjx0l6Dp/gaw640uw6eQ7GNMO6Pt0OaUwXVhhfml7hQdEWFJOFZBrSA4xgXVsYhKrrGfNPBNVBXZi0s6IN0U+X8opImX8/0EpVWShQMz8OYJDGxPqk9SAdu0pWzkHzA+ZxxfLG8rONvu8YZ/yPL0sqGjUON2XQD5QR+bINnrwjpZ2NpoatiYGunEC+jwuvtjcqhQrm68rm69eSkKV2W7NpRRbTQoH+QZybBOMROCaAMlrPKusVcpjhYliPI4++3+//Ra9bZwjxwUsAAMamEjoGAsRni30sK7zaM81sH528Yxs4Nta2UDeO+bRHVvyTeKEoAEgo0NkmjKMwFPLWPjugLXfBrtKxf3ABNrYgmsF0rRiBMu6wZKxCad76VjdBI4zPpUbtxjiKNNKiL/Q+orp6BwXKcwXc40sSpofZYgtgZik6N9CukHvB4DmAOiB459eF8u1qv9qXPJvzL8O+Jd3olatV0OvxkFDr1bvqlvVtX81LsttY/hV/Xpy0e6dldRo+NFW99VAZVwL7KO+uYyO36hIW5Adu7rUvqOWy/IrthudS05fvmLfhR2ur4L3/7TYPtRH6tWHoyX4MfqPVqtbpK85v1L15iPCR+xzU/P+h/TXHKnXC/XHKNsWp9+q45uP+nz6Cf9fPPpFTNWr5qjUYOUPFlFyeT7ogn4RZUPoT8i7iHRS38LOIlKBh6DXF1B6+hH0i5jGJn9Z4+Xrj9RX6Efg6dEvrMC4vrZnfxzfU8EfjeVtn3r2xuS5Wdp1Ftn/svwifO3vx5iXr0OnHdhdCIhm8J5RYl20DnatfocV0DUAE4B/lYsbKiA6sl5sVcT75caFgSjkCtwIunTlSed+u1IqVrYrO8+oa//7H9FyP7DAZxP6VsBQ6ONhIAtx52dzK5fmFdCANjWCUa0kukDA/hXjQdPy4Mys/0ex/j8z64/M+o9dmpn/j2X+f2fmH4n586mW9bL9qqYxDNqYDIDJx14ecQbxq46IZsJS+a5U9sYWJDjBWptNXIO075FunDIqREfJ2Gob3CJdzJcnlqvXsWkCm/2pYdKHy87+Lp2NRTmm6bH065228Uw5uAR5QgbM2gATasEyVJ6IynQbuy7zgIk3MXF7eSonkzJrSiI0pdiUDrHmOqveYre0m+dV7Drw+JbHedn5pCfvCYEOOyBZ4gYeJtDpk4Rw4HrPAt5pcZPBNuZkz+//QdbSUCOGuMr62VVC8DDVqZ8kjC6gE0cWlUEUHURd7GZutOYYHYDMjdb5HrdgJQrvkaDPyOts+B2QiZEk0P2Q21iKn5kFpdKCpDTlmQGl14DkJBqZBaXXgqSkQek0oB4BlmMDwgddYlifIRWhVA55SgJIThDOEFodISl5VgbQ6gDJ6UqlEqHxrYrlinjP3qkYA0TyF9ZKEjIUKFIrYyifkD9rw52xbsBbgq0zOzRhNf/+wuhNNzRlFV+c8RdipizQzMPOn3+Ti56YgcvQWx29FvxCxQ2+seImJel6HmDJCpQBZFmcjBg8GZFyGr4sUH4nfFyB8QdKOeMHzwMtec4WQi3ztojxi7+lm0Eva+q+E70OfyCNPPcLerGZ90WNX/zuN41e5n0roCfrubD+4zw0YMKm1UcaYFcdJLVMUK7QLahDq991P1NEJ6tR5QvdhTqGZ81SMf9aquC9RKWOe4GbnEcUpvpGQH8B+XZFvJcdsl79qUI1kFwEki+z54zPSOBgOXqSQGeL7+aGzdgX0qdymlbqcrQxOEmuWJI1nRkePUt4PjP+oUI590mks7s009mNHy4pt+6lFC15y5XvR8vol7PONMlTu8DsFUJ70QRHxWO/HL4PTQea9/a7EaeZEcxSKH4i8YSNT3KLk7HHNoR5oPzw1jse41Apft/9CSU/tj0Lg+JBzQg4HtoKSNBMlD29kZC4VGw+9PZ/ + + + 7VnbbtpAEH2v1H+w/JRKYINTVVWARAFCGqkkKOT2urUnsGLZRbtrLu/9i35KH/pH7S90bGyHgFET2mBIeeGyl5kzc8bj2Z1f33+Uj8Z9ZgxBKip4xSxaBdMA7gqP8k7F9PV9/qN5dPj2Tfmuz6660AcD13N1MFa0Yna1HhzY9mg0skb7lpAd2ykUivZd83PbxbUkT7nShLtgGuHec9KHitlgPnD9CcakI3g0cxMDcBAAqjOMctWnzAN5CR2qtCQap1U4g3MIpq0nDFLWGNHY1WSAusxox4O8OtHEQPQHOlwQS2p3AbS5mnGJDtTSkmIAUk/aoDW68FQKf6BmFkzBp60yqkSBd4E+qMM98ZluCK7NR1sX5au5+VTxRvy/Yl4BA0l71i3lNRQvBVPWJfHONPStawWR5jpV5AsDr0UoQjBuCDKGvBGmkEl7HpL9B0zlNip1tZDpYAOi4hXGCcNg4HpKXipYITQCjtaloUnXVraXuP2Z3LQk7RM5aVDG1sHNDVU+YZG1VruP1ndxV1N4kPByLvgL0DLV3NZEP7AzM1YxkYUmUT3wTjyqq2IcU7IgDeXVuvjsJWIePX01RpSKp8w4AMLRwCXjQHTo7RUTz7xfolBIMW/NkdQksgeyISTUBBPyQ6EF0kXTczOPf65FvCAT7zml/ZJTct6tP+aqxO2FAJN4u+1SvUkBt/YcMMfcfszcJpDjvHdyRvyxOSRZ8Sslc7YWSHohgwPG8PWpGsL11X9ndVP46bXCq7Y65DprH+AP6laFxFrXGYwvfI21sCRcDYhMy1HbUwVMbXp1dcBG8DUXtDv2tou95O26I+6pxB27QckWZuzIwkwKgx1hzyMszE8XQ5AZkrZLlitSeOYKnhRnuVM2GXQDg3NYtnUo3yuU8sVS8LGWY2587RUgSI5PP79+S/XfKtLj2InO8ImOQs7IF3NG8JXFCS0KsRoDIqu+1sEd7MaeoP+5rRkeRKcJ7JMYvuAJJcXgJGNmZXFLgsKBtdtcF6MMQvuYYQnIiaZDSL0k3sIKcOuuXxdy6FwbpmzPNIMeRsNGkAoaQZfAHjWcwml0/eIKI8r4yzsW12fWPGnm3/U5liCZ7YJNBc9oiS6Vn6A5BW8KCqRnqbdCipb156bNPXtJdy/cGnYED38D + + + 7VvbbhoxEH2v1H9Y7VMrJUCSVmoTSFQgaZBKggK5vDowYa0Ye2V7A/S5f9EfadWH/lH7C529cd20JNldKFlFSMH2jmfmHM/MGvv3j5/Fg0GPGXcgFRW8ZG7lCqYBvC06lHdLpqNvNt+ZB/svXxSveqxlQQ8MHM/V7kDRkmlpbe/m8/1+P9ffyQnZzW8XClv5q/qnZhvHkk3KlSa8DabhPXtCelAyj5gDXB/DgHQFD3ouQgW2UQGczjCKZYeyDsgz6FKlJdHYrbwe7ENlmnrIIGKMEbS1hjbOZQZPjOVViSYGar+rvQGhpKYFoM3HGTeaA2dpSGGD1MMmaI0u/CiFY6uJAb7yUaOMMlHQOUUfVOGGOEwfCa7NqUfn5auZ/kjxRvi9ZLaAgaS3uUvKKyheCqZyZ6RT09DLnSsIZq5SRa4ZdBqEogrGBUHEEDfCFCKZn1Up/w+dik2ctK2FjFbWBSocYRwyJAPXPniRygqhUeFgXJQ20bMV8/e4/YHY1NElR5SxlIAJ7MxdUEWvKaN6OILDa2JLB+S85upZB+6EmMwJRbEVCxffSOjU8qswolTYZYYTeq3obpTrufuRYWfWNwERJk1MmUAVwRix8UtZSAxHczz6OzYIukMwYhE9hmiirWQGWLgLOlYgJuT6ijck7VFN7yBmaCIsTH2Jy1uQR0ICYiXkRhO6As5r7914vNEgHTc1vnqz5/29TjNAH3I3KvvuP6Zdi+FnHJ5b0on26hPnW3Smp4adB1E79bjfkoQrm0hcEWmFf9/4MAM0e5j5LHyqLjowguJE8GVDkVCUcb28xjFGOApOseyOJFN86ORGE2U4PQanj2xoWy0Y6I1aW/BxTgjTwM7e2z38pJIG/Eqr7GgtuIctluk2I0Pv/WUcnFHZeNOALzEQ/+vL9ySSzLNNanXKce18Bh/W9PNaRvA5gn/LCB4nwckgI/hqEfxrRvAYCV5hQi2N3QnvJkzaFmf96IsMdF63mjFhTGYCagbLisAyXchlsCwIS7axkiqLEthMzzi0YhxKOkFkHFp7DiVb+K0lgRLd0p3AI6Et3QyZOKJtBs5qgTNVTmXgPBSchgSF/6YFTVX0s3SzAtBEhLQMmpWAZq4OyHBZHJeZgz07hQbIdsSJtTh/fw+PUv5vW8Ordggwkd2vJR4D/NB2mXciZI+wpM+A+COQg3GC8myOgKSJVE01hO3YTSvuqP5s0Lq0qAbv9860YEo9sKdi4ihmLOGE/VSWTudw3LKtTKwWmXnNWl45kprB0y8v62/w5CtBMtbO7TbP3Goq5ifuVo1bvVMtyr1XdQZs6v6W140LcX6EEZSUi5Sa5lNuC6E/7lXP88l998u8MSOLZ2+n+WWle6Nt/w8= + + + 7VxfT+M4EH8/6b5DlKc9qdsWdtHe0XZXtCxLJcpWpLD7apqhtXDtynEo3Fe7h/tI9xVu4iRN2qawlPyBKEJFSuJ4Zjy/+eOxnf/++bf95X7GjDuQDhW8Y+7Vm6YBfCxsyicd01U37/80v3z+/bf2zxkbTWEGBrbnzuG9QzvmVKn5YaOxWCzqiw91ISeN/WZzr/FzcGaNsS15T7mjCB+Daeh3z8kMOuYJc4GrU7gnE8GDJ1chA/vIAJIzjHbXpcwGeQET6ihJFD529BN8hsxY6oFBQhsjuDd6mCMtM3gj6u+YKGIg94dKNwh7sqYAytxNuCUNpDKUYg5SPVigFA7hNyncuRNr4DOf1MroEgfs7zgGx3BDXKZOBFe1AZG3IE+EhJ5gQporXW3Sc9aeJ5IzwuuOOQIGkt7Wf1DeQ3JSMKd+Qey+gln90oGAk2PqkGsG9pBQjoN0RVCDqEfCHNRsY52lxhM8tS0kOlZCJjPrKS5sYXxlCA6ufGUmMiuEQoaDdkncJFNrN7ao4Zm6OmIKJEfk3UFXSMTXhoYel7bHiOOsi6tvdkyUy3KvB8DdIeHA/P6Hks6oRy5/WRGBjMzxImtJz+BGFS7tI1ZYGxLbc5DvPrb03x95mOVl37PMrquU4No+R3Cv+jMygQtg2vUtLVPf7cIN8us12hy7VOhrKkeMTrhvegHxAbVtBj28hRBJhXLokL5yzwv5wDilkymSnkZ0R9JNQMnL6f0qpZf6vSvquASDEVGR+4vd00biWYjHWv7W8GNKlQZThf2dsZ8nQup+C7DfWph4lhls9IB99KaY5y1fXcn0VkKQuRmDwn43Ys9uOW8C8hrJEuasoZEk3JkTicKfUMbysGBf6GDE69YM07YpvjUQNiyt51zwov1qRoDyRrm8cBrgtCARRym6s3AKUmloFw3lNG0MzTvvwPi8KaMfzD3F96Ywvp1hbp9/kMQZxYTydwetZgt/uSRRqy44KimEOjrYqxn+L7U0OiQ2oNyif0ee/qBm7DVTp7INdhd+9l7GwHIkpVhUfuslAFqOnlPX/mB5vXapy4RLZOHYKJIOgl9il2XA8Oowlw7DTyXbr1RBWite3atLxreeSNwus2re1lw1Uo7PdtkU8xrSob1PTcxSgn8FF3Oynv2U3AWvl+8tmAi47Fswo9eC2X95Nf5Cypivuox4CgR9SzHl5nxqiDEJMzCsqPey1xPzd9deUrLqrvebH2tG+C+dxDw2M1gpD0XU92NrQstUojiLtQA5IPg0dUifUQ46ey0bdNdDQ2w9v5jSuI5FIap0oDIu+zXjU/1gngGyHluU95bPCttXkU8A8HSA4lVrSbsrKlwObrb2W/jbrGSmr6kiN/nsMIV/zhYfDCxrKxGllbVgOaspZr5TzKpSnTmc9B6d17LtpIJRBaPdYdR3hmLuzq2pWPAKSmnMbD40hyDHkFDoyiKIFLc/MUvxVlBZxJaBR48CpCjoQLgOfL9Lrj5mLGVIOusdRZGMGfmXcm8pOhp7zuRcyBlhWasq66Si0tRbitvl1laVAeZj8yVf8qxglJ9DKjmUgq2qGRd4V9euck87cypjR2v/pRXxVDgFlenzWTOKqbBaMtrQ04ZzXzsB327EzuFHd/XmWsc7gx8e6IuTbntLBxstjCAQPbXT/xgZOkb37w2v+bIT5VsYiX9/wO84RiU4R/wLlKODCdvcRB7048NV6CBs23+UF/11ymgWW1GqTWPbJyl0myXw1z9ooV/VH8H4/D8= + + + 7VvdbtowFL6ftHeIcrVJbaB0mqYWWhU6NqR1RYW2u3XDKVh1bGQ7BZ5tF3ukvcJOnJ9SCP1bk9I0EqAQO+fvO8c+Po7//v5T3596zLoGqajgDXvLqdoWcFcMKB82bF9fbn6x9/fev6v/8lh/BB5Y2J+rnamiDXuk9XinUplMJs5k2xFyWKlVq1uVX0c/ei72JZuUK024C7Zlnv1JPGjYbeYD199hSoaCRy1nsQA1FADZWVa96VM2AHkCQ6q0JBqblWnBNhSmp2cMUvpY0b3+bIy87OiJG3qHRBMLpd/RpkNMqTcC0PbTlEt4IJeuFGOQetYDrdGE36Twx2quQyh8Wi+rSRQMjtEGh3BJfKbbgmv71qPL9NVCeyp5K/7fsPvAQNIr55zyFpKXginnhAw6GjznVEHE+ZAqcsFg0CUURbDOCCKGuBGmEMnKokiVe2Sq95Cpq4VMFzYAKu5hfWXoDFyH4KUKK4RGgaN+adKkc6tXVpj9kdh0JfWInLUpY3lgc0aVT1ikrdPzUPsRPnUkBpDg8lPwDGAJOfc00TfozN1r2IjCEfoKbQnmeyixdyGaYhoDs0QTqbZGGIEJsVsx2GJEqbjJjt3A3G3YMW1j9CeOP4vmiTwiRcucHeqIyCuQbSEBDSnk52oXpJtiwey9q0ncKyND4lnnI6rXz7Vyj3m8oO4PuNRNIXEGeeNxH8MxQDaHYsKbvtY4jz9nwCP+B1KKSUg6snrxAp/ychrJ352KOYsIX8ExpvGpHpUJRE7CswTrsTkkKLzMG6rgfwnVMw3S2eDUUdEKrMRp3UMq4lgC9TigOi4qFi92NnDxM6T8Q3W3uru5hZ+PG10yCEpPH2p4C78f8yyAfOVB1SNMN7/T4Yjh96b80Zd+umH/k99DOb1UJpb7cmthRby9Tivi2qfahhX/rNvK2InrdmuMWTaD8doo/tz63o134LaYoKi2cH31RnU3qe0b1d3g/tKWOGAaJCeaXkMW6dcDR7yy3vxAuO7awHiOwbkPU53RPkBEupCwZBxFKdBkEztFxsjsA4TLg9p4euwjYn1JuBoTmUGqk//+WkEL7QdukImauXLFBk6OSVqJ24NxW6NwW8ixShBfJYiZJosFxS8cPJOtnhcfQMtIfCqSOVVSY9RQYXpBGdWzpHiG8DIyVullmqJtM5vLwjmR0ao1gmspeGDGjkeGS1H46rAKtSg6VvH0lyNm2Uy5bwK8HOoBLwJXISsDyT7mdrBtubxpmUFhLf8679xwcjrOcxDJfqv99Y0hSwnTwkmDemXuvMPNXXPWQQVnHU6A3TpTYZrRKss9rCi9W/1S/mnHSU/h7f97oX+FPPPHPULCc1ziF2ju57xS6hRZEKqVljNwrTqOYvokYCweZjGPmgMwe/8A + + + 3VfbbhoxEH2v1H+w/JzsAq2aCkGiQkqKlDSIJTSv7u4AVrw2sk2Ab+tDP6m/0NkLG1iWklIuUl9Wu+uxz8yZM6Pxrx8/a1ezUJBn0IYrWadlp0QJSF8FXA7rdGIH5x/p1eXbN7XHUPRGEAJBe2mqM8PrdGTtuOq60+nUmb5zlB66lVKp7D7e3Xo+2rJzLo1l0gdK4r1fWQh12hITkPYLzNhQyXSlv3Cggg4gHCG1xoSLAHQXhtxYzSwum3gF19AZz84FFNiQ9F9vPkYsmu54Oe+aWUbQ+6qNDRYneSMAS3cLLsNAlI5WY9B27oG1SOGNVpOxWTJInC+yIg1mILhHDj75PhLUUhqaSih95sFQwUPbg5B/VyIol1pKWrpyKB7rgQDfKm1yCwliUzBjFibks0DOpY1/1qnnawDZ4+OWUhaZgxky4ebPd4sBau6GeP4y6I7mIdPzFhdiLbTczuIIc0Zk8V2nPXRc8yfnG5dNZE4rYZwIjlv+DMaJILNP50azgCM3sSoo6TNUK1KkBA/WSTkIcgd0lH82hEqGX3I+XBTlZAszW0QR1UheE0ndFDn+0Ha6LLgfDLgPWAoXmWzSnfm0xSjNEVZdhrFSdyuSpBs1GQlix6ZTkC43F/aRVX4NAzYRtrCAD6DyPjcTJlJmnayjZLJqCOY/7V9Xr2o2p2kzx2A9KZRbLqFtIXSil1XaK6X3Z2TxOBH9Sa+PfDt+Ev5UBfvsWF2METOx6E9HjxNfuN9QGseOg8Z5ms6cBvbf9OaTjV1NNo4m1/03xLVGkhtHa+7SUPzyNx59TDQQd0GsDN7xMkpt3YKkYtxBpPTfCnmDP8t3guTgJZS0Ab0CeWtpLfmCqdrIXJyuTXeW5MLjbrjxJHUR3ZIufwM= + + + 7V1Lc+LKFd6nKv+BYnVT44v1wB4zY99blkGADTIIIdnshNSDZITESM3Lq1Tq5h8k2SSVVf5FFvlHyV9I68HTwgMYqTVjlesUuNXNd06fR5/Tgtb//v2fy1+nAyMzBrajW+ZVlswR2QwwFUvVzd5VdgS//HyR/fWX3//u8mFgCBoYgAzqbzqfpo5+ldUgHH46PZ1MJrkJnbPs3ilFEOTpQ73WUlBf+WfddKBsKiCb8cZy8gBcZVljBExYAVO5Z5nBFXHOAIUYQHCZzCUz0g0V2Dzo6Q60ZYguO94VdA0x04IzA4T0yQRtwmyIsLLBiOXnFWUoZxD3n6DXYf5JLQ0AmD1MuAUGQmnY1hDYcNYCEKIpLNvWaOisdPCZD+uVYWQHqPdoDuqy3Qc2a9ngxjIs+6Qu6yarG0Z27XNegjkb10OxMvP/r7ICMICt93OSbt5YJrQtw8nxsloykEJMmOtUTRVMsxlRRgpDpkEg0zg9AoSoOyPZmKMwstL3xFwAUR9PMucEoovj4LWruZre0+AWXAoXMI0LOB83sGUjx8Oi5CVy7GpeQseu6CX0bqq+PP1GJLlsIXAFWnZ4iPHhW1CGYN4xs9J2lW1BWx+KOphUIRi43KOIBuwwRsKBLk+3BM2oImsk8uZq4Au8NvSe+e4k510rfZ+iMxaE1gCT7IItm85QtlFYcEU+qSqWuZyJsjEbagKYQpI6qetmS38GP1Hnn6nzP8SUargzlXMZWISp//7xb1GGxqItT/zwuEBkZcMBUWNWB3IPRAE5n8SSKXdRPuyJVkE8GC4fC0DBHkWCFyXSW9LE+BY0N6S3FMSwwYyQn6cunhSH2Igqf3lP7haf+Xvremr/ybf/v6b2H4X9u8zVdAemxp9g4//t76nxR2H8N4blAFyWv1HV0UQD2AoysJNrAwLblKE+BpFXeUvXzxV1x9WS+g5n4kUSgHEyVgKiX3j7bnqybRPgpCGr7r2On84+u3/5WCvfZAeS494+oPBXhenNg0TfPFgHXLjqAk/SdBjJ3gKLmhcodR0FMsf6AjOPcgXoJ5nCEGJYZJEjNVCS5IZXL866/otjaQmi5LWibERUejjdDKrHXmDC5iDnd8WxtGwsp5vSL9bdWKYBY7phjRxwP0aSbzWMWA0ht2AonYtcQzdNvFOyqDnXa1F8NxT+8WcM4XuuIpcfpBNcRVLDBg56m2phRQtL58C4lqSKeU0x8esjKbHqt8Qow19J3rVnJEcZL0NWqp9k6idVy7/+lES12GCMLqcrfsIV9G5X/gQpBZsqElc6ht04jFUpWO+wLdXx6l1mjOr5Z9Q3Lcj3dOM47tsxse+hc75Txe9J6I2uBF87jcFb2tXciuhz5biiF225V9FX7nZ8/Dg6bRQL+a406akDcaZQxrj7ROj1Vn5S1RmjO+DGnbIx6jwTuvrAD2pCT2885y/aA7bfkkitQ4mCXGYnnRaDPmM6Up6HeYVqFqoDjVAr1+e1WYFWaWWkPtdHXfrWrD1XJ/ViaSyVyHqb4qwO+gyEszK2v9fYmmSMFJrXEJ9G9QnxVWaHXZPnuhRvNPqcgd4biqEJauXWUMucJQmT8Vqfp+ltV2LNjsgRykDUusIZLz8zQnOgMs026xHPGt5rl/D+r7S99lLev37LNP32FeJZvozGP2gMV9q8dmR6QFZtXI8F91UvnLuvtWctWsy3EQf65HmNRvz2ifF9xec/AXxtJb5Enguti7zLd/umEPCvxscDVZi2KJVWCbLEl852GePaQbNGIL4frLHLr8v/DuNKzQeVEwQG4RljYX9eS60Hg+uKhofPlXx89YV/vKQN+w343wFzzf7hHP+1MTVZKkz5Es+g+eTqlUP9h1+z32A8vcMchdq/0Eb80EOhS7O1zsK2yK9IHs3XX8Fct7/9/Sd0/A7xKdz+1/AJQRreAok9D9P/3P7295/Q8Qfb/yr+HcHfgjYJpWCMa+9Km5/b/8H+s26/b7V/0uXnvB34/6vj3fkXh1+98ZR6oP8cbP9EgG/uGS8QvuePXGD//KH+swtWED8D/9+TzzcQ9vVjfzrU/rHRwesHNjp4/didUK47z9Hd/PdRIj40SqSmDFSU/9bRe9bpFvOwjvo1pamDcuGbLs0TXYr4UC+itkGBUMsFiNrrHalDNJ6uL2rE1OiYzQ8N9nbYoTS/jZy/n7a79PWHulBHbfxYKeZR/xU8ltE6ZX7YHSivYteE9uRo+OQK5k2h9Sjx83zfenxgjEbv6upoX5vbUnT5hd+1qbp7J/e2jtq9kyoWRVjFsvVn9/eiRjxFOVk4yeTPTzJndPS/Qq+a5uZP/+OE3x059t2IgNH4dyPSLYh0C+KY9KzBdrs5VvtDu9m6oFEayLSLid6CoFoDyNSe1TOpzzbvAv4TwNdWEiqG3BSv7fsyyfM3BZ//GFNI4QaK6PWMG0zN3bYg6vmuyJZqdOdOJkpjjvb43yWFrCuiyghCddxFdnvAFkRdReU/T/Zn3Rk85yo+/i4l2Jr93jg+/7ukkIH9CCbbVGYwwH91C4LiRLcsmE5FguXqT4f6z3TNfv3xO6WQofavPjAdVA7qd6SI4kZgWw+duw7BamDAfuVIZrhmf/v7TzFs/C5bEKH2Px9fvB3f0RaB5DebUokO039gf/v7z0Po+EPtfz7+XhGZ5ztiSkools+3INQnEZW//Nz+D/afNful32j/tDhB/J0/6p7/v2pbqiCaTXH49VGy6Ha5v7f/HGr/C/37+PtvQcwKDnrlAvvfZQviYPsP4mfg/3vy+QbCvX7sTwevH9jo4PUDGx28fuxO6RbEgVsQuMpRvMdVpaUphtLUWJamxV1KU7bxSmla8lON22A5jL40FSpip9nWau7S1jS5aEL7k4jk0fzUquQvTSr9SCKZq0fGIpUyx6jm7WZq/oRS0f1Tm1Dy+L9RwlPT1dSmskvaGE4T+7HN3gDB5Z+nw1PLVXymWKNIlL7vrz+hwj4iPOq10mQDn+pW1OJdopfmlJJE37bf8NJ0i/29u/G49ZfS90bTqVRi61zY1tgW+0OlNd2cwb2xhBuooTzlzLPfivpt+y/Vx11JZR4PXj/iWH/XKcgfZptbO0gGqnPcdZDipALTKvmlpb+1g9Z/P3+KxFbiyP/eSqjs28ij8xeCxM46FMrPUb3glZ86MUX9mG55gkrT27Fa4ceo3wS1LcrSRskvPb3ycpcyFOXzYrkwaTxNxqt4KMfv+3XLkbB1gqwXX8dfxUT9tE7JgI+SarQpTVPK7Q8JKoExHtOdFsBpAZzAAJgWwPtSWgCn9OMQ7gLyex+PW38pfW+UFsBpAbyj/tICOC2Aj1sA43xaE2fVZbunm8G5zNEe3y3PrBGGb2DHLyPOPQ0M0uI04PmB4sRn8jPxmXh5oHgE8mL90sbaIaixHHealBNfI1Pt5lOlcEo8P7gqfnmL1gTjmanxPjEBo8DxmPQWkX9kL954QsgP7sNh0v64HrxyMteP77svhMVlxfpAtmdxPQo9ST+jfbc/4F3CU5jx81jw3cwoCbNP4zN7PIrHLXV05nbgc3beuhslzIbLdSZAd9t2+ZKC24y6X9tAxvaz+Qiziu1FLqasIqYn24SfP5u8J+lFKfdqboVP8m+eTh2RxIl95EOU8uJx6tjk3TjeO1khLOqHYm45czYpz+uKS9wfc6/jVWnx2Dmuh9Jt37pN3vId24Nwk7GWJ31vJL4HVPuqcBqyCUKOVnuLHl7I4HVYfs7lKTPSDVTLFWUoL1tbcGYARwMA8sDwDoFbhb5E8eVlj0ww6bvWStl9i6vtp5FtYYgHPd2BtvePD7KCWARf5JEBj8YF0tLWSfM05V0OZnuVM6/PQg+rV9zh3lBBQ3C//B8= + + + 7Vlbc9o4FH7fmf0PjJ+20xQMJmloQztcbC4LLviCU95kWwsOsuXaAhP+2j7sT9q/sMfGJMQhTUNJ6O52QCNbOtI5+vQd63L+/vOvi49Ll+QWOAgd6lW5Yp7nctizqO14kyo3Z3+8Oec+fvj1l4tLl2hT7OIcyHvhu2XoVLkpY/67QiGKonwk5GkwKZR4vli47PdUC2TRG8cLGfIszOWStjJycZWTyBx7rI2XaEK9tGa0MaAEBoC6XO6iPneIjQMFT5yQBYhBdZjUQB0Yo7JrgnfI5NIy7doHXVza4ra/JmIoB9a/Y4nApid1ijHj9hvcjQ7QMgiojwN2rWLGAMJWQOd+uCWwNn6XVK6OQmx/AgwGyI7h/614+n7zf3Wi4gnFekfFrmNSYhf5/KlEPXZSsyxAU6IBblBCg5NB4LgouJYcQk6gR8eqU8aoW6cBDP5k07XwPvm94u6YBsapmGCL0SDMVKztbhAUhhuRnEhg5jyWFMZWT/DIwVEbI9DE5QrZrgu7+74oPADIIVDro2CGg6+go1E/hSYFuBKjeg+WjOrd6GSEcpv3KqfByANnljccrwHdB5SEeQXZHYbdvOghE5icGNF2JlMCCZg4QuAm0DKY4/tYfr++b9V0UXhk6I8wZuSEcwQuhhi+4c1WWZUDszbMgRJrFtv4w5DH8RKmbGrL75Pfc3iNRCk7htekn4ijeIDeyW/NfopLPiZAM0CTtuPdkvPt23lh0KyUTSOa2O7o2iqRhXnFO321HHWcOjFdeTFukfl4xTv2peL2tIkzWJXPdVeaqUZxOi6NNNSSorFahz6Wc2vll63SsNJxp7zdrp31riuCLVhze9Wfm0LX6606Ub8pLgyx2NdLMh1DH6Bnq+3sSW17BplbgjIFO0nnCuxqSb7pKbJZUshgJhN4JhYhmt3uErslU6MZLe7IXC27piF545HMW+5oamqnClrVtaFr14e6lCRFIklu8sm7aCd5N1jXd+vDdflWUiSlBe0vp3VZzNY9PSkiOdWM4hjrxS+q1/3u/nYlFebd0hVRu/TlXsk+g3woi8w3BUk8sC5ZESUBE0XGM37xqe3LmNQWmq7UbcFXDqQD8PJ/N/UijIMu8Axy9bwc53qjIsd5T/C7gCcz9tYhA17MA5tj+/kYN+xUzhL8VtMEvx6/rb/igbxv8sU95l8SNJ2PMvbfxe+ufpCHuZwdnic/038zPc7fe/7zNf7979ofe/5+pn9bgvWOL8r9J/AP5EVFPH26rlJlqZZsIeFvU3mc/yV7Ge8HtP3H9wLr792U7h/0DH7i8NI+0w87dz1kVJaKuN6/jNP1P90/PQtX9t7/adFis0eP97+fDf71QCxOLdeG/W8fnqXQbJZZH+SGxjKEvXDDFBTeLPGv+7BPHroV3m5VGJT3x8aYH1yJq0Gjkj4vVWTY1G6WIyjbPJ+PWpVocFU77xWVhQXvMAe3+qT6dNxSfNO1DqUb2teiWF53iYfaQ9CR6I1t0k2h9hry4WdDmSHj1BtcxXKZc4tWrv4Ah/P0jPbyx1Rj6jCs4eXmvkumgYtIcjjPXIztPr0+wyVFfi2K7ZdHo0/nIf60wEECQPaO66vH+OcA4sacI9zbBDiEx104vNzQmzTyjukSijjo1Rqi0dHatUZDlLX0lrNNNxRZO83t+9F95ricubkDfuKY45hC9h5vHWd4/HorLgbxWoDR0b6iGQ8R+AEOYmKc1AjDgYeYs8B7wLIfFZpOGF9EH/jzeW9JzERgLgpbcaDb0iQGFMYxIAWTO7GmpBoGcF8il870tzKAeyplHlpyAZ8HzU0weig2tg6sFR6IrCVNk2jch38A + + + 7Vtfd6JGFH/vOf0OHp+6Z7MKanbjGtuDCmqqRAEl6xt/ZpU4MBQGMT71O/T00/Sh36j9Cr0QjMTobpN11XaNGWFmLtw7v3tn7g+Qv//48/KnuY0zM+T5FnGqWTbHZDPIMYhpOeNqNqAf31xkf/rx++8ub2ysTJCNMiDv+O/nvlXNTih13+fzYRjmwmKOeON8gWHY/E23Ixsgq72xHJ9qjoGymfhYUbNRNSvgADm0hebamDhJz3BpQAEMAHWZzGUtsLCJPAmNLZ96GoVuP+6BPjBGpncYbZDJJG3KnQu6sskRq/M1NKplwPr3NBZYnkmeIESzLxvcgw7Q0vOIizx6JyNKAcKmRwLXTwncG79JKlPTfGReAwY9zYzg/4E9ryz/X51Br2XUCKXErhEPBnLW8yxb8+4EC+MzzjAAU4F4qE4w8c5kNCZo0JaRbekEmyyTOxeIQ8+Wpy5W4s+r7CPTntrvr/VvND+zrFezCsLIs6Y51XLqoM8j2M8NLT/QMI/BzQ7NyTYhdAJHdYkJcTHUIBqqWZE4UMmvW5P/jDmXMugzKPE221nHmu8vRTKJBXFjBPIYDS0UtpAGYG7Svfncl/kt/numk7uWI1sL9ANTuXiVduU+PDJo5zrWeEIfe6ZtAyQPHulPiwUu5O7/Gh+ibxJ99eKGfvRV4+pc6q/BN8YcN+dK6UbuPNDt/GvdPp/lbdjPn+qn+ql+qn8r9d1ntYjZrCe1e7azZa2/DigmZBplu2tgeh8xCZue5e4/520kNl3NmyJvRV1ioqMQdwPLSVhNOaIy+8iTkma2KbJzvKPpQDZjg1qQOHGUPB8ypeIFG7jLl+v7t5q+NJ7uWYBMNboKq1RbNQtmLdlSEkqRlfsPH3ViUaSgOT2T+F6Hq/NqW2lx9TovKk+5sEg8W8PpsFmS4c3h81Uwyt0LI/MYwWoRWAxSiK3qRwBYrksCH0XL1QGo+VJ1DMb6+vTJRejrgHJALHoe8mF3ExL7HHyDhM4BAkGznHjkycV3nJBWF25F5un1865Td5KvIyT8qAMsOkQYKJ7m+K7mRTcZIkAeMnmpwhYq8ffTTL4UOq8wFShHfrPhRBBePHMjmzjfJ4YFVbMWUEoOMVs/tWzverHaNORvZJ3ePvTDrNIrprPO/PYy8lVD1H0MhG+Nzu039I8Wj9QM2e+MOBpEmvjOncSItA3irPL01uReqFxUWDa6QR0ToA76SJdX5YlICVJ7aU+pfZn8ohE8ZLy/fv19N6l1v8QBqF2K7iZaI0flIg8k6D7oZc4y8P+Ghc2Jt+xw3i7ZdRc5wVGwluOaRgfA/0go1AH98NsR+eEwfC51sb2nh6FPl+Jc5JqGp41blrPyzrt3Qb7XKJd0NRyb9vDOKOCZfstYXbkUtq0a1m1xNmriYLRgLPNGsjvK2OotShcDW5jKKjsZFYaK1hTCkVyDc8wDY+GWjEK/3LYnjNni3nbuykWzaATmohvoxSuns2iH3QY/U3m2OyiIZATnAD2pY6fPOraj4sAoShOwE7dvwa6m4OqOJOoFCfemIoZ9bGCsmK0rbDZFojbC2SOZ2/mVrgrOaCgyhj2c6Mq5pC1qSt82a/2BEBdJwPFWZ+I6b8bbK+++/6rWv29PFUmQmnD8zaQm8ut9zy8Sj88VlR2hAfuL7Fx98fk2FRn8bgwkXrlxxU7BfAvbvshTVy8K/I51iRIvFBGWRDRlZtctV0SYmykDqWYWXWlHOgAv92d9wMI44JphClv5ohRtB/WyGG07RfcK8KTqi3WIgBd1wObIfibCDVnltzF+i0mMX4dJ6y87IO/qDPsC/wtFZcCEa/Y/xu+xfpAHX053Hyen8v8sn4/fJ/PnU/H3zR1/aP+dyn+tQL5jWLH7jPgDeV7iz5+vq1CeywWzGMdvQ/p8/BfMecQHlJePbw/593FJ+MNgDT++f2O+HezWdx1NLc8l/p6/jJL8n/CnrxIrL+Z/SjhbcvSI/35Qmdc9np0Ytgn8twv7gq83SrQLcn117gMXrutFidELzOsu8OS+XWbMZplCe3ekjpjeLb/o1cvJ/lzWVJOYjVIIbcv9i2GzHPZuuYsOK80MqIMPVvqE2mTUlFzdNnalm4oK92n9bEonyH1QpSXfJx9uarg3rlaP4vcnyVXa0fyCKXlMvO0BaKkSf478Aeg+fm0tgDmHubez/QfWO35kn4rWqBnEOQ9ph4vY012t1V2tdNO1i5xDPIVZWySKTA950fOpMw7D1HA0as3Q13hItQGOhuVH9+N3DMITx669BHOZT72Ks2qNX8Pxo9dwJIQfve4Td0NgPZXIJHH3bydk9rkzeHu+AYS2GhyjtO0FpVjmAYP115viQ+NXon78Bw== + + + rVTBbtpAEL1Xyj+s9kxsSNKqQXYiEUKL1LQIA8l1Y0/MivUu2h3X8G059JP6Cx2MSQjYqpT26J238968ed7fz7+C61Wm2E+wThod8o7X5gx0bBKp05Dn+HT6mV9fnXwIHjI1mUMGjPDadVdOhnyOuOz6flEUXnHuGZv6Z+12x3+4+xbFhBWnUjsUOgbOyrvfRQYhH6gcNH6FlUiNriqznYAzEkB0jAW9XKoE7BhS6dAKpLIrK1QjMRGuFdRgWHU2WS+Ji1c3Xvv1BQpG6rtYAnadojkA8vcN98JBLCNrlmBxHQEiWfjFmnzp9gBb8XUo1hMOkh/kwZ2wC7ADY+HGKGNbEaQGpsPLgdHI3/Q6JnQH9Vo+tvsO+QQUWLnw7qW+ofbWKOeNRTJEyLypgz48iVxhXzrxqCAZCUkS2EzQCmmRQjlarf8fKGfS5ULdKoqCRq8n4kU5+gtV57LFLj612MfzY77A/4sHQUSMMRpbb84mKTsEqyRs01NrjjFIBlW4OjX1bIHfsPf99BxOchCfwN8L8etpGWC3CfAY1JsfpSyT2mMEqwZqHnQ63ARhJFKYSSj4vzhDnjRKLH1p+pm3L4Hf8BSUV8vn4+oP + + + 7Vlbc5tGFH7vTP8Dw1MzcSQQsmPFVjKSBbpUEImLcPS2wFZgLZfAImT9tT70J/Uv9IAulmXZjhzHSduMtLOwe3a/c1s45/D3n3+df5j7hJnhOPHCoM7yJY5lcGCHjhdM6mxK/3hzyn54/+sv55c+0V3sYwbog+TdPPHqrEtp9K5czrKslAmlMJ6UKxzHly/lvmYDLXrjBQlFgY1ZplirIB/XWYmkOKAdPEeTMFjNjNYMVIABgGOY82bqEQfHKp54CY0RhemkmIE5YEaj1wTvoWFWY/p1BFjsasXNfi1EEQPcv6MFwXonzcWYsk8TboMBKIM4jHBMrzVMKaiwHYdplGwRLJnfR8U0UYKdj6CDQez5KL6WPEKOYNCzm2EMnLO3trmLlezM74Vi1vd1VscEx960ZHrBRRjQOCRJyeiWVOQM0ASPPJyJBEwT0FKXYr8Vo0nHC0BHIwQGrLNv36blQatWtcxs4vija7tCZtYV58laNet6TWL5ymzcJul4wXnOper39Yk3WFRPDV+aaibvjisjHbWlbKw1YY95ai+iql0Z1rq+yzmdxkn/uiY4gp06Czm1hF7QX3QzuSXOTJGXjYoSjmEPwNlaOz1obd8kqS2oLvBJulfAV1uKrEBVrIpKBlOFwDWxCdGdTo84bSU0W9nsFs3VvGeZUjAeKZztj1xLP1bRoqkPfac5NKSiqRIpeosr7kWn6Hvxcr7XHC7Ht5oqqW1Yf+k2FXF37vCmiuRYN/kxNvjPWtD76v32NQ3sbhuqqF9GSr/inEA/VEQaWYIkPjOWooqSgImq4Ck3+9iJFEwaM91Qm44Qqc+EAfqKfrcMHuQIZ3gKvXZazXvjoqbkfV+IeqBPaj4ZQwF90QB4zvnncr1hr3ZS6G/hFvrrc9v4tQDoI4vjn2B/SdANLtvh/7b+buMDPdhy+vx+8rP9N9vj/nvn/Dzkf/+79d/bfj/bv63B+47jFfkA/wN6URWPD8eq1OZaxREK/22pj/t/xZnn8YD+dPle4P17u63iB2NHf+Lw0jkxntd2fWTW5qq4jF/Gq/f/Kn76Jr7y5PhPz2brGD2Pfz+Z3OuByLu270D8K8O1lFitKpWBbmjOE4iFLyxB5awK91qGOHno1zinXaMwLo/NMTe4EheDi9rqeq4h0wmdVjWDsfX16ahdywZXjdM+r85suAcb3OBJTXfcViPLt58LG9Y3spzegJQPdYaAUeDmPBmW0HgN/fCTqU6ReRwMrnK6nbxFr9ZZpryblJUfycrONUi7bBrG+9O1kZekCFJSRPGakNkaq7Pb6dk8ImGM4yaKV5naPn72452X70lDD81VkZOXCn7jj8/W/1dH60HhrPi9OtLwJMRGV8O+Z4XE4bnSsQQp59F2ptuwbZBAAoEuQhDrTrb7sN4uCEqSjcZW6igGcx6X+upglKfRP4aOZOQFNxm+HkbLJH+ju+pZ8Xv1Eln/0sHW2b7mhyF1YZUcOniT7ithgJ/f3b/EbBKw8wOZLZ7ieOOlR3dqNRtLvoTh4GGQ12ZKYoAsgpe4HW/iEmg3lRo9TveY7uvxvhTpJZ+JMGJPcx5f3l/kME3wxxl4BzjDgY+vJ4lY2iB+h8MR4wQuX1bUVpgF30PUrZcUgUdRgKg3W5224rhTGvoHaiEvT+8+95Yl68fLsvkwkDdijL7Je//Oed2pYp+Xt2rpN6NFHT3J6+gqJrfq9cU0CHCXglmJ+KWis4fq6uEYCbR0L9OFpu77yrD8RFG+5xtFsbT4rvH+Hw== + + + 7Vndcto4FL7fmX0Hxle70xRsIGnohnYw2PwsuMY2mHLnHxUcZMuVZQy82l7sI+0r7LGBBEjSNilJtpvOoJElHek759PRkZD++evvi/cLH+fmiEYeCaqckOe5HAoc4nrBpMrF7NPrc+79u19/uRj52JgiH+VAPojeLiKvyk0ZC98WCkmS5JNSntBJocjzQmHU6+oOyFqvvSBiVuAgLpf1VSwfVTkZxyhgLbSwJiTYtAy3ChRBAYDL5S7E2MMuohqaeBGjFoPmKGuBNlBGZ0uMbpHJbeqMZQhY3KbH9XgNi1k50P4tywS2I+lThBj3MOOuMABFpSRElC11xBhQ2KQkDqMdgbXyt0nlRCtC7gfgwKBWEIUWBZZkD2NurzsMoCOMHEZodNCwHnvoRbEFRlkMbQVzO3VVTmfUC4ceStoM+XUSMMsLEOVyhUOcwu1AF4U7LPgRzMx30SdWw94keCkGa95k+rIsFgljxH8mk2uYIRpAKJqj1OQTaPCc1OlEQiH83JOCNIpd2S5hiJQBW0c2A2qpN8ubXpBaTgmO8oN2XrNc1ZqglJS0GsRrFFmbnk/Phjn1GDLQgp3UHAc0UAj1LfzovtC1liR+BnNVy003zt+E0z+2v99PDhbBiY4mBA3aFRnm5+SKoBt8HCDdTsuBUG5bvt0/1oRtnCGv+4SwKfTqERd26KEF+3KVU0iAbhL3EDRwxXQu8lJg2bBVZ+7fgmCE04B0hWfQ+FHwvhXpovAVor/XMXdWZOajqY7/Ec/sQbzMXFKT1G6tLplto1Wr1yXFUKnnW3QpE4rqBBMKonSG6HV548QCn3rxsdfyIWWZLc/DWxa+7wjdj7BC9yP4dqWmpjeoNWl5wbU7v3kTF9RGpWybycT1h0uniOf2Je/19HLS9kRs+8p83MTxeMV77kjzu8bEU1fl84Evz3RTmI6LQ8NqyslYF2GMReyswrJT7Ffa/pR3W7Wz7rJScktO7K56sV3qBN1VO+k1pLkpCb1BUSFjGANwdvrO7tW3a+LYKWlT0BO3L0GvphzagabYRQ2rMwXDN3YwNtxWB7tNhZiNZL4nc7no2KYcjIcK7/jDqW2catZKNPq+K/YHcpY0GWe5zWdlyc3yDl23d8T+un4nabLWhP6jqahIh233T5qETw1TGKOB8FkPOt893m1Jh3l3BppkjEKlW3TPIO8rEgvtkiwdGUvRJLmEsKagGT//0AoVhGtzY6CJbinUjoQBfIV/2gMB7CBzNINcPy+n+aBeUdK8Wwo7wCczH4yhAF8sAJ1T/fmUN+RVzjL+VtOMvy6/i18JQD60eeEB8y+XjAGfHOi/z98+PsjDXM6O7yc/0/8zfd1/b6yfL/nfi+v/3PP3M/1oCfY7XlB69/A/kJc06fT+WMXKQi+6pcx/G9rX/b/oLtLzgPFw+55g/91Pm/PD4IA/qT9yzwbHnbuuZVYWmrQ+v4w3+//m/PQovvLg85+RzLdn9PT8+9HkX6mSMHV8F86/PfiWI7tRZj2Q65uLCM7Cdbuk8XaRf9WDc3Lfr/Bus8Kgvjc2x7x6Ka3UemXzvdAt0yVuo5xA3fb7fNisJOpl7bwraHMHyjAH13iyOB03tdD2nWNhM8WofRlf2MEEuY+mtj3vk48jEauTavV5/86LljOLGBSe7XptfammUhRBRfZP/u77pEe4xsivRZH79Jb3SByhD3NEM6sPbieexPYrDV6s8Q2SHPmC/cbqPXg/uyjsvOJd12YveFH6gqchvPdSmDWDBTclcps7l2+9Tefue/3+pegAHN2pcsbTXa+b66fRwh1vo1nX7D313b8= + + + 7VjNThsxEL5X6jusfGol2A1QUSAJiITSIDUhIiFwNcmwa9VrR7aXJM/WQx+pr9DZ3/ywESGFDZVQThnPeGa+b2zPzp9fvysnY59bD6A0k6JKduwSsUD05YAJt0oCc799QE6OP36o3Pq864EPFuoLfTTWrEo8Y4ZHjjMajezRni2V6+yWSjvObfNHp4+6dJsJbajoA7Ei2xb1oUrOeQDCNGBMXSmSlV4awC4GgO4sq1ILGB+AugKXaaOowWUdreAaBtMxEw45OlYi606G6IskFtP9zqihFkZ/ZCKFdKeOB2DIesllPtBLW8khKDPpgDEI4Xclg6GeUYiDz9OyalTD4BIxaCvmUzU5Z5yTOVM07gCHvpFKLyzE+4ZJpxrWN47AChMD0UWpYj/tGybqUhglubavL+wrOmhTF3oMRqEY1U8V0MSSWM6ieyfff8VZktQzM29SJopIu0UfmBuVS5h5AygWxsaSPu330W9LKp/y3OQXzPMxWFCy0v/5GPSYDihPUrY7vpTGQ6umHOBZ7VE8oVXSkgLy0HginCe4ij13DDVTymZkVdKg/l2gXFC1wBgpUloebYbb1T080tkuc4e6zqnW6RJJiyKSVkm8c4T1mtfZIipJNeQkt5Fiaki80dc4SGuSYzdloOESfb7T9Bya2go0Coom6kyOxDtRb5uoxOM7TavRdOMxA10Ym60OuBKuL3ZK5/jWbbXpIOxkPx2WD8qH5a+fi2FvAz0EN6AEdjQPUFQLMd89zndUaRXHnVUDmOuZrK/Y288tpFcJoC45p0MEqU0F3LCB8bIwvpQ20Nw8FXDxlVNEqWDWKSGIBrtjnJlJRkTG0cvz8S/fQxcG/PhU67B4ePHUdBUVekgVBl2TCg/S7nC8NSMMT3p2w+2Xo9+L33BLKzbEZ1MfSzPv8dacJMZps6DYsU1+PRfa/SfYZN15jE6xYEw/Dd5mrWwAjaj/LhyN7Jp9nbwL+2xPwv+fOthHz9jCWLDizAwnp9JoMKnDweQV8LkBaLSMlfZYw0pes1VfOfLcZ3GFtmVJZLNT2tjbjOszuKcBN6uFs0rX/epBrPwwYuUsJTKqnmWj7HgO7iwZhEem0fD8+C8= + + + 7VZNj9MwEL0j8R8sn9mku1xQlexKbbewEl2qppS9mma2sdaxK3tC29/GgZ/EX2DqJv1MgV0oB7S3xDP2ezPvWZ7vX79FV/NcsS9gnTQ65udBgzPQY5NKPYl5gfdnb/jV5csX0V2uhhnkwChfu+bcyZhniNNmGM5ms2D2OjB2El40GufhXe99MqZccSa1Q6HHwJnfeytyiHlXFaDxHczFxOgyMqoIXBABgmMsahVSpWAHMJEOrUAKOx+hGJFJcKGgJoeVa8PFlLB4uWNzXkegYMS+iT6hOinJAJA/rbg1BqH0rZmCxUUCiNTCt9YUU7eVsCJfl8VawkH6gXrQgXtRKOwaja96wj6A7RoLbaOM5TtHHeK5vXgtHKv+Yz4EBVY+BJ+kbhOcNcoFA5HeIOTBtRafFVwrkkdjkonUzDgbCVKP9tmCRA332YS/oBMlhDdGY+t5LjWrMlgJvNKxlqcxSFzLvDo29WhReESBR8rUE1J3pVIHmvy8yJF0hSDTCdzUurUWc6qpLzSosrCgI91SiHQfxx/YzsjV63N2fN1WwrkqxKt++tUNiC/giXd6v+Fla2sK/MfK9K3MhV3UinOCC7MquJIrycmXGe3qmRTWF+bW6BNcmMd66dlCv2sh+pDjlrH0Yjxb6OQWKhv9v5lo6yE/8SPxd1+/A0/tjTFRuDVMbVb9IOWWg9QA1M7A5sNE+TCDlVfg+DP/8SaoiuV/MhRQQ47y8005NlGuxtHwyDzqt/oZ9vIH + + + xVZRTxpBEH5v0v+w2ac20TuxxjT00AhIJRElHlpftzAcG/d2ye6cwG/rQ39S/0KHu0NQjohCJPDCzux838w3s8y/P3+D03Gs2CNYJ42u8JJ3wBnorulJHVV4gv397/z05POn4D5WnQHEwMhfu/LYyQofIA7Lvj8ajbzRN8/YyD88OCj5963LsEu+Yl9qh0J3gbP07pWIocIbKgGNFzAWkdG55W5G4JAIEBxjQTWRqgf2BiLp0Aoks0stZCMyIU4UFPiw/KwzGRIWz2/M49UFCkbsy5g6zCKFAwDk70vuCYNQ2tYMweIkBEQq4U9rkqFbcMjIF3mxqnDQu6Ya1KEvEoUNo5E/u7oc372wF4Zns98V3gEFVj54v6SuUXhrlPNuRK+JEHu3DnLkunTit4JeW0iiwO4EKUa6CeVISf8lJf8VTkFIoF00tpjsVKiZBztX1AwaM/EKyRqDRDj3K2JTjBb4K8r+Rm1awj6AbRgLNaOM3QshMnDbvJTRAEvHhZJtM/3bpteRClJSO6tBW/Smz8OXox/p5+veWbdLRK6MjYVqSKU+omupEmnR76RLhMpr4XVgjGdKRjqrTN65HTO8hH5Bpd45LjO0GiiVF+MJ62iP5d+twaXTea6nI1k1lt6wC0pcTZOfZ2iTgtHcHG9dpE0fgUzFEAXOh2HhrMKJ1rTxd9bzWYu3LTg6KOzxrSbotUxCz7EZ6R2kqhCspj/TR3hHom9+zyjxttDGiljsWN0LQ3vQR2l7TVjbTXRpBl8sH4G/sALNT9P1x03XnxtQz9as1Ezclz1YLuC6wvLN/thXkFhc+7LACyj5KrMG8qs9SKKsrFEqzKpdNFtk/RWbbHo13X5P/gM= + + + 7Vlfb9owEH+ftO8Q5WmT2oTSPlQdtALSfxq0lDDWPbrkClYdG9lOA3y1Pewj7SvsEgh/g0qh0GoiSCG2z3e++53v/Ofv7z+5s67PjGeQigqeNw+sjGkAbwqP8lbeDPTj/rF5dvr5U+7eZ/U2+GAgPVcnXUXzZlvrzolth2FohYeWkC07m8kc2PeVsttEWrJPudKEN8E04r43xIe8ecEC4PoKuqQl+LClkQwgiwNAcYaRKwaUeSBr0KJKS6KxWcUt2IaDcXWPQQqNMayr9zooyxz2GPNziCYGjv5ExwQJJ7cNoM3VlBvJQClVKTogdc8FrdGEl1IEHTVBMBh8GpVRJAq8W7SBA48kYPpCcG1OdcXOLjBoaiHVTMOAb6R0QmGcMzQs1wND1LFW0ifrJ+Ul5CsFU1ZNCF0j3pDONOxZYXa6tJy9QIVX6okftFkUElHZq0rqE9m7oIxtVOcf11a9HfgPnFBWRqd5N+UnFN6bMMSmlUe8q95jg0II8uPoXqOttl5ggBlW6XaYITKS8gLHHzm9VSFdl/YxQDUIhqW8mdkzjucNsq4QyqeEHLydFIS0HBmvQVVAWCLw2ietsbi7p2y20CoMHudX9BbR63tccRe9ioVSYeJxzh2k7xaOJisL/Uq/Yh/ju2rjV9/elXflXXnNcpjPpwXgF6LeC2lhEA1cTfQ4O0zURRF4wP5SUi8KTfjf+QjpYBvRPz1kOpKEwwyUxM0LwhS8PTjrLViugHjvmLorhPJtATUNkOvjcrWNvSrCG+e2G8E3ANGL8weTezHQWvAEiDk2yKjUxh3HqP/UnqPEiFJJk5l4QVyL6+KYc2zlFXdbKSsLO12tbbuPCBTc4nZzhYX+q0GxRtJ28CwHT1WCws/tgeOIkO/AWQ6ckmCMdLCw0k7xI4S0JL/+Z8BUiRcdl305+hb/vm4AmTJ5gCQTvkfSl08YsoUE9EGxrS36tQbfOufkgcHAca5w1caildso+9dlkO4Ya8pbVtL21xlbx77ANEhONH2GraQFh6oIAW+XFZbDZ2ZuHmaqIJsp4XtzQL2pS87NqJkT9Jw9cY4/ro3P8FV0hl8DNnVXEDfj4OcpjOHkX/q81FznSB2NsnCMsWEWXWgMbkPsBdchcdf4CuX0Hw== + + + 7VzdcqM2FL7vTN+B4SqZccBOdnYyib07OLYTT5esa7vZ3UvF1mIlWGKEiO1c9236CL3oG7Wv0MOPCSa4IS4G2qAkTEDiHHG+j3MOEuKv3/9oflzOTekBc5sw2pIbSl2WMJ2wKaFGS3bE96NT+eOHH39ofp2b4xmeYwnaU/tsaZOWPBPCOlPVxWKhLE4Uxg31uF5vqF/1T6MJtEVHhNoC0QmWJe/cazTHLblnOpiKK7xEBqNBzc26A8fQAVAnSc22Q8wp5kNsEFtwJKDa9mqgDjozEisTJ7SRgmPjlQW65OCMJ3kdJJAEvT8TXoO1pNEMYyHvdnGhDtAy4MzCXKxGWAgw4SVnjmVHGvidT2oltZGNp5/BBjri95j3GMcXzGS81sHfkWOKHqOiNuBkjviqR0xT3hD7XLcdq09ULa33W/IYm5iTe+ULoRegijPTVn7pK0M0HZAHJi45mXZNwIoKZcgWV5gYM7DYDQI4AbdTWVL3pxCuV2CucYxiek/qe9ULADhzeoURMCfFFTfVFzBojkD3RDCeDI5L2nULKeiDT+T0fU7qVbLWprqFiq/ka5SfwF2D0IP6+VHD/z2MUrYG55BJm3EwZx70vSG2g8w1mKM5Y2IGZ+lsikMcrxnFJUDSg1EzDI4NJHAH2xNOLDjZbYMIBXuVAVcf1XqF6+tw9d1IWUGN3qwRIPOONf81UCEIlgJRbTKB/l4zPkemdzN+mRGBx3gpan6VD2fDWtYGaOomdgcn597P4f8bVl/zSIA/DdGNHGvJQegEaz4BWYooGkcwAm4REALjP7m5zyaUHY4Wgctf49hDpl0YkH6OWAIk1xA1zt2f+uHazx5D4IS/55DtkcbPJILMixk8CYWiNp6Fop5QftkVuhGCCPKAbUXjnC3C/R2fpJJSeTXZBIU42SsGT8rebRjZD91r5U230VDRmWPjzw/FhccBxzYciGAXHKnQS4lehy1o/uhV+WjqfDQe/wpMScccUdtCHPody0gvzZU1c/9rHENYXI7IIz5onJ43TnNJZIZo2hd4rrgdCDH889ffshlDWkvvUnRr4gC30QxN2eKlDClffu54cWtVQX4TKqnXpOOa5G6LTf16Dp24Q8BtRwhWgK8Kg9wm5/Mk9j9Rb8yd7LjgafMVdLAlZqGWRpk4UGTeEc04Ki6UhQvFZDHxeOhnoD02cexwmudtUaNUoULp2/5hHVNnNKsoslsSUwIANcsyCZ4W6+2Lhi6lK87XgZTB8RdPk80UsSJKCYniolMCoqyn5upJM3M6PNeXfxgk48fMk5r03nvMTHjlI8fhscKmFQJKvANKvEuaRdjPxE93aSEKnPMdBjGo97pUCEp/joyMoI8rc+eXXIUe0fcwfrJNX7o5razMGRgwUPbzff24rQWl883dMnfTdTd+RVu70CKl0+0YmrbU3mlVSVVW+t1P3/S7/mqeoVB93F06d/qjrp568jMUvdTHl+9B8qP62F/plpGd5E53qd8ykDxQ92yPSSZCs+7vW5Pnl73w/22UVquAzCMaMfJPOt5MlpFf1M87r6myjKqkK15U6GSXZfjyvCwgkygWkednRf8y64rLi1TtlHW58miyvKcSi+r0JaE+HtvlRfV79sg4S6xKzqXwLEPp28FuAQNf8XmQ+GKoN7PSIN2Q1AU2zeJGpDZGs1+DVMaXXuQ8f3Rcdvt723u3QN/2GxZxz8Yve4eXLbM2xyW4kemYCWT6a28qo2wYZehOwxR5p8SdhebOtlDkvjuey+0ycm4LZUcZbVEIKaqlLjugl7BOdC9JwLOria1nb6qRVfVPR73BG9tdUT/E5sbKfa96iKbPW0gBBKmXO6dYnjKEbO1pQnHTNFt6Ef2UgC84oiVYopVC88tLswGWrVbyoNn2gQOvTWj4+OcRvFO9Typ8+Bs= + + + 5VdNc9owEL13pv9Bo3Nik+TSYSCZAqVhJiQMBpqram9AE1lipHWA39ZDflL/Qhdjly+7XynhkKO1K723+yTr6fu359rVPFbsCayTRtf5mVfhDHRoIqnHdZ7gw+kHfnX5/l3tPlaDCcTAKF+76tzJOp8gTqu+P5vNvNmFZ+zYP69Uzvz77k0QUq44ldqh0CFwls69FTHUeVsloPEa5mJsdBYZ5QTOiQDBMVZrJFJFYPswlg6tQAq7NEIxIhPgQkFBDsvGBospYfFsxnq9lkDBiH0V04R8pWACgPzfivuJQSg9a6ZgcREAIrXwszXJ1G0krMgXZbGGcBDdUQ9a8CAShW2j8aQr7CPYtrHQNMpYvrXUPp7biRfCsfy7zgegwMpH74vUTYKzRjmvL6IOQuwNHWRMWtKJrwqinpCamjQSpCDpKJQjZf1dSv5vONUCAg3R2GKyS+HyDPZJ0ebQuBKzkKwxSISzvCI2xWg1v0SGv9RqR5+TpomnKy7CLtpSqddQbNjxbuR4giPpEqGyXngtK2YNY2nPH1qyFW6AAtfKbYzVOSlECGMLzjWEPZpYH8OQcG+NjYUq1OaFZQ6nBJ4X2tGRDAXl5Hp0HP3lkMbUsSq/NvSjP0ThZTW/mUKPK65CsJpuvydY1rx7Z1xUemCXXfnfzSg81V5+Wbyx432Eq8ckDu4OtNF//Ss7nsZdsiCverAPU+rejbtjFGv+hl1dj6ZW1S2tah/UliVOw3Qg9zNYZhPKPRTZh+2jzF/mu0p4bLr01cIbKJnT/APkPbYFHEia0k6l8pS9HlZPD7/k7ZFOTd8rlz8A + + + 7V1Pc+I2FL93pt+B4bQ7JfxNd5JNsh0TSGAmISQQQnpTsAJujMXIYoGe9rC3Htt+gX6DnjvTfqP0K1SSbTBgA06Q5RI7M+zKkiW993t6enp6sv/965/jH8Z9PfEZYlNDxkkyl84mE9DoIFUzuifJIXncO0j+8Onbb47bfb3Zg32YoOUN8+PY1E6SPUIGHzOZ0WiUHhXSCHcz+Ww2l2lfXjQ6tCzY0wyTAKMDkwn+bA304UnyTB9Cg1TgGHSRYee0nA7kaQdoc4nEcXGo6SrEN7CrmQQDQrNNnkPzaGcaZKJDjzIJ+15zMqBtJe0nZvWVAAEJ2vuPhBdwamr0ICTJlxE3bYO2UsdoADGZNCAhlIXnGA0HpquA1XmvUokiMKF6RXlQx1of4MmZpuspelPrFBGmPU/OVbPclrmQ79lUwkmfJJtQh1h7St9pxikyCEa6mb6tpp0C51hTm+BBh2WdAmSQdJXAfgVq3R7lUwtQEClaB8lEJoRmq4ZK/7uy2ePMGnYcN2jDHYKwN5+YvDglEnbblgwF7LBX17ybPs74iEJAebkE+AniM4ThKdIRTpXgIxjq5Ix2dklmBDJBIv2awQdLHahMb70rHPG/9yGNmAYBnacLMEFD4git/W9jADq0iqng7osZLgjpDwA7bc8nF0ZsIRu1oTPX2/CFJ2QF29LMIdAdqBp9hEiPPnWJVDjFqIYMuH2UrJaprJIZWK57tLsWEk04JkU0dgBZqovWdtqjU+m0krnJ9FQHpulkJR1p4HcZQ3jVNrdfaEl4DKCMN3khS5KjfbJHuaPsUfZ9akEvf8jWIe548FS8nBWpguJ9mE2h+/lUwvmJjLCFPvrP9cmgxzqRqnaQMZtCZzNJnmMZ0kxyA9TikBBkMKMnXdLMgQ4m3D6dAsc6u51ZhDbGm7FqtKt//vKHBGk4pb9dhLWfoarogx54gETrAL2Jul1m5DOOhC8bVBJ0MKAJn9khBJq3qXytKndU9wrGKgbotQB5q1c+UYakXj3VnbL349ZM8hcrb+HqNTo69a6nEcjn27UiIIjmtJWwSl1JYMHcSAiN6ks0NOHVZ6ZZpGEuCeI3TXsdQ5P25a2IuTRyHR/UG/chhGIouSvmPN81Y2mqsDwlSvwUEYMVACxb5YQKlaPmYqACAKV0mPNNBlw+c3KMXmD0KihsrehrS8boBUAvpAX+1CYiGJJOr8LcazQb6PpktgbHw/+zZeTebEuu322ztiXNdLUPulAxVLYWse7VgQF3T9CWHQy+Lnzx/lvpvgZhy8/gxO/kKvwFbJC4Qp3bjSz47kaGwJOSZrKIGQlcEG4EvkIkYosiMJDC7MFXKbgYyMBA1hDuAz0aSMb4BcEv9nxK2c7ffbkS6QTdRCnE+jxq/tBNUIuNKQFhcPtH/O8NhcF9/Vt6UOSOxr15ErnN0brTcVRNDAxzADAlV4SGDQmcnVSiik4gNgDRPkN+GuVSMxp0qnqXPfoQluK8YGc95o1k7vid6rXrp+yd0lWsq3TPfhH7qfMbVfZTVE4V11Uql2j5sbLvvqmo7VYuU2jl1MfDnNpuZ+J0nA4zvbWgTY8RU8Jg5Mwe9rA5A7opY1HpPijFdAn9d1CWdVbCfSzVMQy/P+J/7yWcU90MOe/dvh3zPbjFpAJ1eSLiOnm6ePop1aBLN3hbbcC+9oB09fAFx1MDM6KpEYnncgXbam5i2QpGGp0U6a5mvNtzQrlXKoMtEs0HXVTQTbnSFukWG5poIJ4TvGvMaJcnAyK9dUukOlpY4p5yaAS7hvabo7dqryNl7BSv095hHVGSbE+UxwNgUPU1g4Qv/Vk/JR7XzeVTqw8YhIXO85fft7YWcVhteT2pLdvQusZmK5Fttmg5Z8S3x9qad+ravgqp8m7NL65+yopRCVW2X4xNLOoBVMWvUZNtqs3tpOwTYimXao8FflcE/jcJAi9Xd/vupM6cZ7ElKWmNGhuJ0Vck0TUSIzNv+qiYt6hWeA+sLWVpWiUaIDx/+TNSONARcolU7VGTF+RvxYaLegXBCtKnrrIIMMGJxpPFhhIaGVLZEKHIi3xxGlQxi7woWzEXG0de+F25ZkdRancF+tzNwTVNPx7QdDszTT+w/NvC+ppKt8WuU76dpenWT/T5/Gl5rhRP1+5qLP9Qccpfn/vVlz18YvWVnPRaepR7p3wzf22n3fkXiLX/ne/zU/p98h8oX2uND046m2X9b45W9s/iZysz8stn9JduD6b13Y05/zagd92Vu9+f1rc/YvWvKb+Gfqu/FD67Pl5+3bWO/qDt88uqL0j7Quh/4PJ8tUn7q+m38Lbqq1UceViUX3f51fTb47Gu2PVZ17bln1+W/LYKbLx1Ln3Gs0//ePm26jd+rPHM9ZOlL+4pgLVub759lrb0Te7x2im/mb54lf47OYnYa5HLGCNcNVStA+jj0ozbqK01nr/+Ei0vBrVtqkZZ1YgVByQx4Eboq95vECKz9yvspkXvFfssc8c9HAPen2pmukugej6KWiy5jjwv1ZV49UvOdzLEPax3CETxxQFi5TLQWxO2Kq67frZNMHAxWltFS+hrQ4Od+o2YJznEs7OSTB1x74CIX/wg3hh4xWenAsf1s3UJ5bS05Yj7KMwCG8KKfZZKtHgiZccKrIvBExXRLnNjOSSAb9CoAoFMcEM6nyL3QMaCdt70o5LiBFtMKP+S848XmNVznHF9+HN2l8eUmOyjnzdQn/u4KM++AepyiYTtDlvpxKVPunmwwSs6V/nWfDri/uCpVbGrFXse3qDl9R9wpMj4Moqj4/cZVl5myvvFj7jyR/mHXz/9Bw== + + + 7Vtfc9o4EH+/mX4Hj5/amdT8u6a5FNopSWkyUwIXaK6vqtmAJrLESHIS7qvdQz9Sv8KtZRsMmKYkQJyMBsYztlba1e5vd6W19fO/H/UPtwFzrkEqKnjDrXhl1wHuiwHlw4Yb6svXB+6H9y/+qH8LWH8EAThIz9XhraINd6T1+LBUurm58W5qnpDDUrVcrpS+tb/0fKQlrylXmnAfXMf0PSMBNNwWC4HrE7glQ8GTlotUgCoKgOwcp94MKRuAPIchVVoSjc3KtGAbCtPTEwY5NE7yrD8ZIy836TEb75ho4qD0h9oQpCP1RgDavd/kpjyQS1eKMUg96YHWqMLPUoRjlSGIhc+jcppEwaCDOuhKGhA5aVHG9k59wZtCouDu3CjLrNRCey4nJ71vuH1gIOmV9w/lR4JrKZjyLqgKCfvE0CJce71ACD3CXm0xQBNeEDRcwz2hw9HfSEX1xHVKi0KV7pCq3kO2vhYyX9xYgJ4mGlJCJ/Os4Z6TAf6paIZaC55IuqgaM9rRCO09HWTO4hE20hbXSQaJAZOnla+nXsoW7XJ1T5Qs6SrSVv6Ul5SarzTTPQ9Ka+LtGC5JyHRLLGtyGyBDRZ5qCLyvChLOx1SR7wwGXUJRhBRoLcJUvtoeiOsm8a+OBItsn7DqS8LVmMgISxvHdBZtd4PtHH0ONZQiO0ea7YIBFcPIGG9WRJ0i+O8RI0otObB52nDlbPhkCs/NXzNojXLEkzaRmcBzM1A2gX/0fZy4TeF34Mvri+EQl2GGpMNtRn8QANuU9+i/8LKy/66y/+pJB4jIl6im1/DsjBRHhq4EtTrb2gCxIkB4id5soHgQBu32cl3onXINMoABxRsLvg0EwBNxDTJ3Hbt1BLaEhPmNYHnPqfxV2XOqtWoh0YeBry1CBZ3rZY+9C30248aAOxMyIKxIiHtTw8vBQUERZ3G29v6PDKL6+cvyu+hXfbXXxvCNQW5q/J0syHdeOvrIMDVyEpnUbH2xgfrx6qI6vrULjNUOlxZA7YLiYdte42a1MpJEgb4zJj5auSiRvvI2ivXJZTN17WkIVV40y+mtdxYG30F2Lo0EaibCk0e8TS5zZYOiYDsCde0NXvb/LAzENlMwsICLATfddthywa42bDa723rp/VFoC6Q2+D0C7Gy0s8B79KybLdJbRNr8Wyg82sS8uVrPdCdaK3fjos9Oaquz8sXOi6xr1Li2OnP7kmC31fIiG9OGpl+Fpt2YcsGCjxSXHjseb1UNSwuJhdMd9VLmjMnsqTlfoqLzJefA5s6xmGaczTKFkzjLbzlRrIrfcLxffVu+Qo7s0Zp44AyX5PP99Vx+5UtKNM1KTRnzrDryY2imyl88MGS6mkNG7/8H + + + 7V3dbupGEL6v1HewfJVICSbkVIoSOEf8JCdIIUmBJqeXG7PBqxgvWq8P0Ku+Q3/eo9e96Bu1r9D1D2DABJKDvQvMRCJh/3e+2Zmd8cb739//FD8Ne7b2FTOXUKekn+TyuoYdk3aI0y3pHn8+PtM/ffz+u+KXnt22cA9rorzjng9dUtItzvvnhjEYDHKD0xxlXaOQz58YXxo3LVOURcfEcTlyTKxrQd1b1MMl/cr2sMOv8RB1qRPlPIwHUBADEN1pWrHiEbuDWRN3icsZ4iLbDXJEnhhMi49snFBGi9Lao77oS49qTNurIY40MfpzHhQYt9SyMOb6+yY36UP0cs9oHzM+amHOBQs/M+r13ViBcPBJpbQKcnHnTvCghp+RZ/Mr6nB9pqqo3MI2Njll7lxG2K4/6XEJ7dIWjHV4yIi2SGXkJfdInKpol1HbzTUp5U3UicrpmjHfmZHcW9FYMoU3zvOekR5ioyti2wvznKuZPN25Qtr4e/J0f6rnbkjX4g/E9ZAdzTpXoUxIRYVyTnuPpMMtXXtAQkJLen6RI5vutk37mffZ9DMy7/UGP6/utGisgH2F+Icdtzji01UQSyvpQtqbyOlOcqWJfgMRJyu5n4Wj1ROr3hK1GrSDJ2DcUgdLwMOXijJjdFDxxPpz5rkRtFO1hN6eVJ/R3FUbue44Sx8rvCC1pIdNBkx+p81KWBNG8qwylp4qtW3UF1/CtfVGI6EAKtG4dw2Xe4Zd8Wfiwt4sJrkG9VxcowNYM2tiUzfFxCjDYu1QdvTZHvWtNh7yk0IWKljYnTrHvZzf40Tn/vvrn5uxu+PWLx30JPbEwdq6FobY9o3xpLs285Lx+cb+1u0pc2OSuVFXS5Ky5neoku6++nodOJ895wNjsE+c/12GA+ErOmC9OqyXo29U3EwkYAKbiY1JW/YylrKTtzBB8PLWBAZiN1kJ0E46oiA+gfi0TDFCGwKAqgWaEnGBcNObV/l4c5oxRsF+GDBaCyMVd/EQEpwpkIqRAXcR3MVUBE2+06iWQEli+55GolUDYO+iojIeBazargP/pfFfjgJKOWyYldu+o7HDTNCB0C7E5rZDjHYyrABC9IplrLsPok9iogX2gDipF0kEuLYoNA9g7URg7jcVdfU+uZHqAJCohwEKqREVqVDIcO7TNSvgSO6+D7AQHoaNioJOwPKnKICXel7A8kcugJaaZjVbLbijdlVFh+0PJQ3rPrkJCiGw9y6balhI99lUVFkJfvW3tL7nh78gbiYtWAMRM1VBkK53IQSzSjmBd7iWIKXoy4MXv0GcYMEnyxRIkmLxIIgEqY8RPATb6m2wjCiEovEHQEEFl1DFKFACPBAFSsWqZy5uZdMURuaWsh6y5b5fud5D3eme+MeXQqFSjqj2s/9J/Y/LrvgIMyrlajlGtcuayBuWP5SBgBapZkxoAO1D+0D7QLIeMvpuYdvyek9g0sGkA6VD225SoH257QNtI8k9NwRGfT2j7n9U6sEnGHWgvaB743V6lxGrrWj0bNOzAALKnBQw6hCHB/sOBLScwL4DAb2LpMfhFbDuaZ4Pjl9WG21s/CSZL/hMfdJzAO/8VON7VYmTjd3GfSQSiTm9uDkYYKqyXbUQ4y2xiLG/jUXEwexS1t3MIerXNHrbQiF/j5mfctdHJuGjOHOyP2oeDWJ6i3buByn3aMf1UvCbUKcpfokMO/H0VbqYtRly3D5igkWBAIcYygIp+f8BavgZeXaiQGcJV/BF2uJ6bfFscpZCIMwX0b1kLTI5fAqiuEIUZb4ze8bOA1JrISVnk9IgTov8gg9O8heFs8OjBmJd4hycXOT9n8PpuWqRMwwLfvDTHy3CcZAuIyC35Pj1XzKcpyhV+jmmNDfV83OU70JMNpMZzVWOGp1bnKsXY7R8j0/H6xdWZ6htpZ9ISF1g531eBQx/ltOVo4zSfs/ZvDKStvnOaKJTVFUNVuxrgGIGoYA7gJCaCPnKQi5AscDnGxVFe9Sfzi4afzv4v+8lz+VnfKoK7YykTTrVF8rCfRLbDhSgsx46KW4d4Z6PrYDplbsvAZy1wElVw71yNyzAozI8oOXeruVQpyNSD/IXfkDt9DCjJ/Y36AmPnQuFXvO4+aM30wfdfp6Ch4lTOm20Y97JykvDQd2sBZLEOy4AooQITVBg2k7RqHiCIZjVEEfT1BYf2di1MOZNbCNfm8W7LjZRZ7GEFsUwVsQ2OjMKRF8dEWlSykW1RNuxZCRN3CUuZ8GXsOFYL5OH5evFYmbHmzAKAc9SbgUQBdkRm+MjC8pMAIjn+NWDqm0hQ/jj/w== + + + 7VjNbtpAEL5X6jus9h6bpKrURjhRIaVEKgnFhOa6sif2Kmsv2l0HeLYe+kh9hQ62AQMmP0i4NOHonb9v5psdr+bPr9/183EkyAMozWXs0GOrRgnEnvR5HDg0MXdHn+j52ft39dtI9EOIgKB+rE/Hmjs0NGZ4atuj0cgafbCkCuyTWu3Yvu18dz3UZUc81obFHlCS2l6xCBzaEgnEpg1jFsg4lwxmAE4QAIYjpN5IuPBB9SDg2ihmUKxTCcoQjGsmAkp0SH7WnwwxFs0tFv4umGEE0Z+aVGHmyQ0BDN0uuXkMjNJVcgjKTFwwBkv4TclkqAsKGfgyLdJgGvxrrMEF3LFEmJaMDV0yXfevV+Sl7sns26F9EKD4vfWTx010r6TQ1oDrhImvAmmIjdVg3n1TCqkoGTBkCm0Ui/WQKZRSYq8Csp9AVHcxpGekKoc6pWmmQXIMGXVlUHtSmh7zc70yNOXR6vaGor+QmVdPRxbcNcwsWCmcObTHpl6XMFZPgwuBhJvLz9bH0jvyeIpNwbRebbn00KFNNpzOkOoz6ioeMTVpcSFemM5WjK15Ql/NEOfj3MXShCxeUvr0LZ0mww1/AG1NE5p/bjle18jIy16SecWsffE8LERXgcaDhlT4e6l+QrgRDsUQrTrSh/mUaPMg/IFa3Ez2ZEpU1nMZEa+969oSH227mBep48PQ2DF9HZlouMZKH8bGPrXe25gdh55b9Fx2Cn4K5tB7h9dS9S14aL1KW28Xj6Z/T+FbeDRdSRUxsQv+9ucv8P/yuDYnV5afdbuwgl2cputXPV2/9kAsrXlTcY/56xokr9zmit5cWmiZMfkMAh5bLG6AUFw6Z44LUfIV7jMiF4GWhEdCNtYnJWXTHjxbotsbtuipabp5P/sL + + + 7VjNbhoxEL5X6jtYPrUS2SVJD1XKJioQGqSSICBpru7uBKwYG9neAs/WQx+pr9Bhf4CAV6FBIU2FEBLrGc989jczzM7vn78qZ5OhID9AG65kQA+9MiUgQxVx2Q9obO8OPtKz07dvKrdD0RvAEAjqS3MyMTygA2tHJ74/Ho+98bGndN8/KpcP/dvW126IuuyAS2OZDIGSZO8lG0JAGyIGaS9gwvpKZpKbHMARAkB3hFSqMRcR6A70ubGaWRSbRIIyBNO1UwEOHZKt9aYj9EWzHQt7dWYZQfQnNlHILXUHAJY+7XBzH+ilrdUItJ12wVq8wi9axSOzpJCCd2mRKjMQXeEd1OGOxcI2lLT0wdZ1+2ZF7jRP8ueA9kCA5vfeNy5raF4rYbwOi5oWht61gcxznRv2XUDUZhwhkBuGjCFvTBhk0l+F5D+CqdJFp6FV2g12RlSuQc4FBoO0KXlOsEpZBJzpudC4vVX8gmv/S25aTN+DbigNNSWULrVZNEuVdx8+JZ/3pRci71zOGKsqjSF+wfsDgd8FdT0dO5jb3t+mnraNkRtuYoaJyuwiVJbWAoqwOjACZquxtUq+YHhw2eBC7IL69AKyo3rdIWbGAHe1VARzOi6V/IfoWDOG5moDLMtzKw8Kc00wY3IRzWtDshrQ1HJy10/8S3Kkg+8+3I6DCCuLYCN8SNN5LZZeCzkZ/P+NnpaKDVxhy+RM9Gchx5v73OfQZiS1NRj8uWuK6mos9xRtRtFKK3VcboMOHZXomfjKm9zdNwmfw9kxGyqMTVoiS4iXz9u3HZ2/abJWdV/5NyVu90Ul87gvKZsRVNh+v74UenX8rL1UrMw+Kv7SBGaxmkxfzGz60gHxYMqTiPHm1zVI9g5UPCa4bnornNHtZgsFQJYnT6nhJS95cDzueR2uAwSSU3hXCUFFI7F0nuYXDNSSrckQ7vQP + + + 7V3dbts4Fr5fYN/B8FUXcF036cx2Ju0M8teJgabJ2Ek62DvWZmwiiiRIcpP0ajCYB1jsYq/2PfYHe7FvNPsKS1I/lmwpsRMdkqYOiqSJrIgiv4+H5xyec/i///z3zfe3107rMw1C5rlv2y+7vXaLuiNvzNzJ2/Ysunz+uv39d7//3Zufrp2zKb2mLX6/G357G7K37WkU+d++eHFzc9O92e56weTFVq/38sVPx++HI34vec7cMCLuiLZb8m8/kGv6tv3OmVE3OqK3ZOK5yScX6Qts8RfgzbVab/ZmzBnTYEAnLIwCEvGPQ/kJ/4y/zDC6c2jJPa3k2tmdz9tqJ38xf94BiUiLv/23kbwhfdJwSmnUflznsjZ4K6eB59MguhvSKOJD+EPgzfwwd0P88mV3tfZISMcnfAyOCXPfMcdpF/5u+eHhwuelz26lv79tn1GHBuyq+5G5+54bBZ4Tdi9YOCPOocMxcKPu8Nrzoin/q2NvzEG7IByqt+0Pnst/ebH4Ni8eeJ03Q97eKPKC8veMWx5GJKLpja3ctbftARkP2KdPnrtHguQFF0dEPmt/yoHNHlGAdt8hYZh+1G4lT5FX+fPlw/eJL2gjx/uR3F4cGTE25R1cGsLyIZJ/XsaRNYm07zkO8fkve17Aqb/Ep00CKOkCQrQeRHIIj6jj782iiIvbOvFJkZFPRnwej88xc9k1+0IRI4MxIreIkeEY7TteiAA9DqCzgLihTwLea9Q9VfLJSs0T2aRvBUFCNYVQitRGJFRDCKXCTrSSTP0R75gXUK7lekHnB+fOn57R2+jlVueUjIUr9dn2zlc7/OsPKng2ION+RK+74hUyYv32519KB3Dtp5/3RQMxmLKZAxb6DrmTbtSsubjtOtpLe3Pokk8OjbXvIzaZOvxr3r2zYFZOkCe2t2pL6mdoySs0ieS6aFicVL/+G0leO8kX9JqGE72CeP9Eab75RC9ahA0nuiES/V9IdGCidznnrtNLY/W0N0tq64Hg2JuF9OSzcGTj8Gsa/gPvRoPQ1zj8JaJVM/sbLIrMAkPMBd1goDpUQpO/ozpU+wTI7ysqZzk6vtfUT9EVjvSqnV4f+BdZGh3k1r3cOibBFQ2yJXq7d0qDUUnUKYQbUiy/YinRoJcsTKnOrhPRwCUR+0xLpxgEZ7PeI2PXgU5DaKIS8WJpEJwuuBQoG5YiZpbNBrtXgzbUSkKvSU4csxyamUcNkdCMROZO04XEAb0kMyd655Vo54CgnPOuxy2nCuspYe4cp3fECUGkY7LyDqdk7N0AS0iR2poRImk4TnctfU9uDvN3Te7Tbr3UrVP1XZcGAohaVafsqWiVGAeJpZrsacCuSXCHTrN2llQcr2iHAKnFybaKGzdl5SRHR2yeUz/O2OhqdzSiYSi01EvHuwGIdPf4o99lj7aSVsBrh2Kc7FxKjpk75AbBs292XvaU+D3E2sWEPzrspqhll7qxTiwdNDnFOBNODREG9pGMurOPUxbR/jWZ0I78UdjEnZR9r17vbL1WGCpxwO8Rdm9Ba+jKt9t12MSNzZ+EgMdsPHboPr9UHgKnSsXZ9X2HjcjcT6veQFPi9C7tap2z7eTyko2o1b7u1KO9tdPb4V+qPNrpTOIDwD4xh0V32SySlxytNgIsq4oyZTcIrBXnYjl0o9hdiPaCKn7x6ZUjlZUGQ0ysI6kNgUUrlAGV25PYHYnLpySouUAZoqcEPTHGCN5jwTsNuJ1Dx4rhS1pFyDYHslTZOfGpi8gZuvd8jzaeGXJN0Zfkj9YRyQ57vIiUpRa57OH+lH4OPFdIzrk/zArU4p7YBlrmqdxQjPKeLuvAsUP45SGScQu2yj90Gmlml5WqtBFOBxiXUUOws86AtR43DBcqJdnhrU/cMYAQP/MmE8dmQmWiFFQI5PHJFbVBpNZASoWwLuAE4Ru2HiUU0A8TKyZBfMsJymvT5XURLhTfGyK+F2BDaW6wnwtMf7Xar5/lkXeK+eWLOeW5C6/4hVcak8x//hsWBN74pPbFCas8FriC+M2pd/fzX5HW0LReVNMbVCagTEprAqGRFYANGv9UbW7S6JcIVyNEUEMng7FwaJsb4nwdofnEOW2pdv9qR/5Tqt2j4hDTROeJR8ClS8r6WL+JbqX7RI2zco4LkG/SYoRUeCUX8ZEHKiA+K+GjygEJKtsa7n5sjlsGz9kDmJ3HB33dR+0h0/H8MUVM13zWHjIdj5ZRw3Stp8uoqaBe7CTqlYaBsyBrER/T8ClqfYjPivhgCKYeOlnpgFHgwlzCBt2YxrkxKzBCV6ZhGFWd34sYrYSRImlXdcg1orQSSqjg6LFnkEzNIROs58JKJqlZPHLA4Mphog62BBAqYKsDpLg83Z/67pjeZkL3ZW2u97SBYxJMmJs18Op1p9XrtOR/GqT7MAqYf8HojdgZEK9LmKsjmHTxqODc73se53ZyeFJn4STlr9OTlDtDOvHoef8bcXAbxj/W3VLF7NjSpo+ckU/qSbpAPk5G5sItHLyLcnYeGnIA3uLc68QVc/LTc9u/1Suuv/5aJyO78eeaj1ovysu8BrqIIBhvdaYl3NvjFTlbOyG0DkhxCLazJXPXiWjgEnHWEagU66ZHmmrv+7K60P2q9KTXp3adjLM4UvlG9dY6TR+9P525V8lh6dbp/dA5DKAQSWT2vPGdlSZZceBiMSoTj4ZT4i9XEDbKX/aY1nKnxMWdnZ8R95GNo2nWpA4LTqWssTQ8YuDN3PGANyD5K7/1lmzIzn0ng9eOoXXxb6AsFZLWUm5u/jKYKChWroQbjU7x0Zkzo2kYGaWegKsLB4w43iTeL5A8wH2I1WgEupe3hApu5Bm0kVeBDu7irY4OsHqpQqpZqmA2vnLar//AdK78DbVPReW27EOObaM0vno3wJ6XBCw8FfIzLiQzrJN2z6TgrJ7UPxCHf3SX7l3WKY37biANl6QJgOUy32HF1FUfqZAM7nBKxuJMQjAxFTdwQP2cv7S+6JpcE/HylTbxuifja3og4TU1zAzlwpH/wEYVWhjsXv3F8smf8pJTE9P0Wd1mS0gQxVWjjCzWIcj015dbzdFZsdpvrTprMlHOtRXsQ0r/9vNfkNL1U/rU82cJq5Hb+rhd0xkHyO08t4X/VRepq4Lq6nZsLnXVnGA66D6nq7HGHgN7rStldJ3GQFUjlrqz1UB2DlEadOHZCFA9awMARPOnWwoScFyLEpB2g8C7sXhLFTQgYVnvgAlIaAhWgMEJFUjVHpzQEKTUSD5I/cF2hFTIvXPY4xMaghS81DuHPUahITipkXlKzFzboVIh/JaAQilothSsAAzFoQ4PxWNiAY6pO4MIBBDPtW33PwkZWawSA5R+k1Be7IJATCXx3PgWWzOkYEugFQCCXaYaABVUOZsSlKDWJvtRErnnJAl7XWzaqMBm+Ehz/nggFzKnrO1aDmw+WwGauWDu7sqJeUqCehUdxAsKLzGqCJdRVt8CWOmZ0wjQWgDpD37P7Eyb1075o3XkgU5nVYWOpeELi1X/cqV7cucWbu3wL6wNmxt9o4VO3ufUXsmzFiubcWupe802qqM5qEBoWqwGWWUGIk4bYf5ZDNNmm30WA7O5GrvVmvrmwlJ8tKXw3GNIAUNlW67P0HdYhDRsFDZWY4KGJzR9GuCEv49E9aGC+4+mG6AVYOHmo3FWaB4p3HnEncenEAi3HddkjuzV/pR+DjxXKP3y0JVN0YaLAMWvjgA9DSDVmo2dqOF2sZHbxU8QRLhXjCa7Po+PlVqrelMd9x4bY/VZjIoOvwlGVzxRA0StT5vWx1/rzJtM+AgUdTHV+4GoLD2ASJ2iJf98OwUMcBpsCUBA6bDWQwWoRlUABaFRWQ/TxymLqCyzrAak+Fp8z8lcC1a+Lmnu91yo6K4/rHhyNqS7GvHVy2ztAKPRodXoGFCfkgiNDnOMjjJE0J+xEo+gzY0SaPDEYrMMjUqI8Nji1SEaeDOXj+RIHI/oU/mtp6Ae3EAe37ZHgnho5UupX4yeVl2ttn7XT1X5XLvODeW65IS5z3o7L3d6O71l1fGp8iQFRjY7pJwVhN/UveBvxEbEOQkYH2Qith3U8zR7uey9ZJiKnK0qtCihtDFx2HDYjRXo7AK/bVz/cadFrW1uIKbNbPVedVrpNx2qWwVZjryAfeGdKNKlzumdtZUhYN2KlEx0Oc0VTvRy7JRPdfVG0drTS7UE0Tady2Q/TmZjLICiKqXCAui7caNWWgLorDPHWVdKbfTfNpgSRQGk1WpGF+7DoODasxaldp2IBi4RKhCEqlCJ0/zkVQTMHPd7NVyQHnir8QLUwx9AC1Vx1X7pwugtDF7fdWkg9JvwPbnzZhp0ytIEws5DoSAAekXskC9Wl8kCJ+htJF9sQJ3EEZSqf/yT3U/eZ5okCmqyDeSg6i4olIfy3AfJBK3sbTf99cSnro7gpYfmaLM04WpW4j7sSnSCjWeonEWYUgO8dY4eEeNFDqZSmymQMDvWGBuvGi/MlX269aN5uVdvNzzJ23efeVvcyU07P+CKcr0lY0qbASBs4S0Uo8R/YKNHlSM1FiGQQqU6MVKwSJdvsKMP9hFgUXcmM4Bil1eWDNQ5Zu6QfaHPXr3e2XoNF/C06/sOG5G56trth3tkdMUHrtyTpXYpnA+NwhHA6mIWIqmgqKr9QJ77WmBccOsigusheMTGY+o+SmszPZ0BRHnTmNCQ06/PPP89vYwGwq227d/qL58rLzkAXr17TYPsFPVTz5/5wxF/UT6l6E3NqiZvZ/5s60wC9RtRQocsBpDLlcMc8myYg+Mxgjjpu3wP4ayvdcLkH77nje+sSyxTHXrw0PzZ2u51Wuk3Tanp6cqe7W+onkT9kedC1gb5ccZGV7ujEQ3DM89zeFeFPUwd7ybuu5Zw6zjF8Xmc49iRKgJXDuJFqvP4AqWPESmnXD8WAlRc5rfvBpRo48KGHo/UiKOotWw7AZqJDdp9SqOfS2PwtnunNBiVlCQBRDWNxtad6QLW9xUi0a3te8V+QgM6Xl6rpBEdLytLpq/jQt1zI/X1LytKK9a5bFlfDjPG7shTW2K2sjgkYrc2dh+84Jo42sBDyNaBDNjkqkhxrl+Rz3QtO60vaJhUFSlEeOqTewiPKfAoyYopeb5M80PMarXQQdYmuJ1t/UDlDxkELvWdd+BiyS5zSmhhuSxjfOn5g7TQe95McBpw9HhaomprR/7DElW5EQZeA6B2UYuqbY7A1pHX3G3u9XNk3wtKFtQW6+BSUP9Cy8JgZ2i0zpPrMSPB8J3KwjzTtz15X3yGki4jPzeIn+BreCPqXChCsCrUCUG0AET1NXjRzNVl5gLu5DTH0lVgOqmLGG6CoqNUNa1prUTQVJi8gPIQMQLBCKteWAAcupTM28bDJCXEpzE7rYBV/NQVgqhqx7JafsDnq8TRP2fk0zAKmH+oP81HRXfvTWBEWW8OUNUZh/WjZHUBQ2i0HkiTxDllCEr35nTWiZL1SVbAWCne4kWIDIQIoTHZC43omIwOircno8SI403i8ZODitNoTYCUhTZUI2VtfZK89yfJc9Ud2PG0ox9r6HGd0zJpzXYZqgazcx+h2hCooPWShoClvoyuOKLjEKCIgniudVVzRa1SEX0oS5UCJ3jPt2pkdeMN21EwuqLzPvFFDIhd9BzSiUfP+990vxLlB3TAtWEUNWE/Nn7wKXGps+cQ92roe5FtG7GyEBqkmCxWYgAqWJc1sj+duVeJBLFP/wCvFll9Dg5EiciTy0s2sno7BbhEpL7Tp6yHTvmCPRdhqfTS7OVScsSB5mMcOmne0h935L+H7QaYPKaEI91hFNBoNL3gN/P57DjzE5DeEScEyWNqbN5UjoxCUF468+Qm5TMP8tjUyn4C6WJytXOsdgQBqmDVaAFGBzcAMrWHChxRZ8k7rns9B+7yMbll1+wLbVi39x0vNKDP8Odu5ygNs24keq/FMgjccl/ESCwXiJFZGB0zNy8nESdjJV4ZUij1jESqqHsgUhuHlCghfZ1+WK9xg7hB4xafo4OgGaZolECGisbm4IQicWNRQ4H4CMguiMPGJAv9AffWoJa4QTjhwmVaJs097k/EyTicFnwZCJW5UJXtHSFM68D0ccoiekZvFWz5zJUI5Xs+qnspl+ANiyJePYQOetZZPN1UQXR46xN3DAmS9fU9FIcEHPSr9A7LowJEz5sZD8F7bkhIhNJuV4on5f0WC5mIcQUtiH3vsmkv1Lko7UPtRQVV9fqeiETNfe+7/H0iOl5IYoLE/75SY934w/jmEx26Mnh+0HoDgKrZGuBBH/2uD7qkroedh4rrhQ1xWhUnhTpCrjCAzprDcjGIdyIVJx/2wz0yuuKUWFY8n0TQBpQ/gxYnukGzVLpYONmsz/C1b6rlIeu7Lg1snW0LJ93InRBYP4cuebl5R94s5e3KG+bPefNib8ZHhgYHJCLzq8PozqHhlNJoQB05zvmm3/BRWb6jlaQYr5xav8IBpQPPi+YJ2cUxrOkt5ICk2ZyiEpfW10q0Ve3vsQ5I8V8UK+6WvBKncSWrJJXlxwkdB3TCwiiQN8l7MqLmPxF/HteS4nONfvd/ + + + 7Vhdb9owFH2ftP8Q5amVaJK2mrS10KqUslbqByKU9tXAbbDq2Mh2Cuyv7WE/aX9hNx9ACERt14Ff9sAD9o3PPccn9s39/fNX9XQSMusFpKKC1+x9x7Mt4H0xoDyo2ZF+2vtqn558/lR9DFlnCCFYGM/V0UTRmj3UenTkuuPx2BkfOkIG7oHn7buPN9d+H2PJHuVKE94H20qevSUh1Owmi4DrS5iQQPBspjtL4AATQDjLqtYjygYg2xBQpSXROK2SGZzDZHw9ZbAmxsrGOtMRYtnZE4v1GkQTC7M/0knAbCV/CKDtvyM3x0CUlhQjkHrqg9Yo4XcpopHKBaTJr4uy6kTB4A41uCHyGWRTSDgXTMjKGdMgObJ7gSZlzF5aDhf0gUFfC6kKEylWl6qIIEmiYRZo5cZqdp30n5FJAF0K4wuGu8FRCbeI4q6HqbolfN5J+mFINXRgoistSUMipxunegkE/WCS6Vm/j1rfChkStlG6VxpC1SIcmLH9zZm4LiQKvzVbnwuukbJZ+h1JuBoRieAx2coN5T79ATve8aG3W5lbYkWEwqrrtSgEWbP/CIukJH12HiiPZZCCKadNBrEfnAtOeizbjEsaDBn+UJkuwfM5TjiCVZk+jvdWpKr7CvV/5o8O6cX5mffE4mDAGyCgfOfLsXeMv93/rti+K+qR1oKbMUZ6L7QkKBxYtsbGTsnsLXDSMBhsn3Wh7Dn0WiBjHbZ3KzoNqmI3miAvIgV3WIent8OyFBvf9Dn69onnXW6EdkOMudFyaB31zZt/poFBy5dQ3lphuDjiDapgwv854gZfATNHXpG7mVPPh0DA/dW3pnj3Kx43NuYcs4srbXasLbOE0FhqbeS7Z6UYK3Q7qm6u57IYTfotKu63tIEt9XWSacx2NcLKCJUTvb+KS8o27fUErxO59KVvf0ynkpTyXad04RxKA55IxPQbkDHx1zowuEmlmiUbVdYMSztpbkkrLXk0ab+d/AE= + + + 7VbbitswEH0v9B+EnnftJN1ACc4um7RpF3pZ7DTdV609jUVkyUjyJvm2PvST+gud+BLnYlO6XcJCC0ZgzWjmaM4ZMT+///CuVokgD6ANV3JIu06HEpChiricD2lmv52/pleXL194d4mYxpAAQX9pBivDhzS2Nh247nK5dJavHKXnbq/T6bp3Hz8EIfqycy6NZTIESvKzn1gCQzoRGUj7HlZsrmRpmVUAeggA0xHijTIuItA+zLmxmlk0m9yCNgQT2LWABh9S7k3XKeai5Yk63htmGUH0A5s7VJGCGMDSx11umwOz3GqVgrbrAKzFEr7TKkvNjkMBvsmLjJiB6DPWwFeZjHwIbRCzFPKlQ/diHCcyB/bGPKT6H9IpCNB84Xzlcqyk1UoYZ8ZNxsRbgXxI64xYuBgroTQlM4aUITcXvTNSLZS4h5Dc32DyAkwaWqWbwW4YqzxIiaJgsQmsr5T1WVT6NaFpzua5LfX/Q5JOQciXG8fn9/dKTpRORkqjfG81T7jlD+AU/zlD3S1FU82kSZluLMmTQ0BpRmq5L5LTItgpQi3TzgUqtFyeXqZFlwSW2VqtO3vYvlu0lTiP4mCkcYzP0TbA3oM0FsyYykSrVsh3d6MXd3/km9VEjdt8uxM31rWwoCXb0DvhQpyiz+p3pBTUNObhQoIxW1F1z0j5PQtF/dPPXd3pyEev28el338OtDg3pt67Dje4//d+Kx0Hs5Hn7kxo9W4+nZnNdOaD2JsCczO27rEHKSXVPj1spMaiup70bwYOrEoryLwybbNqMei6LZNufjSfji9/AQ== + + + xVXbbhoxEH2v1H+w/JzsAolainYTCRKaSm0TsZTk1VomYGFsZM8W+LY89JP6Cxn2UhbYbdq0TV9WWs/xnDOe4/H3h2/B+Wqu2FewThod8qbX4Ax0bMZST0Ke4P1xm5+fvX4V3M3VcApzYITXrrNyMuRTxEXH95fLpbc88Yyd+K1Go+nfffoYxYQVx1I7FDoGztK9n8UcQt5XCWi8gpWYGJ1HRoWAFgkgOsaCbiLVGOwAJtKhFUhhl0YoRmIiXCuowLB8bbheEBfPd2zzXQgUjNR3MAUUmaIpAPLnFfeDg1hurFmAxXUEiHSE761JFq4EyMRXoVhXOBhf67Lo6qRuL16ZkxX/IR+CAitn3q3UPaPRGuW8kXSJUJeKzl6j1xXxrGeUsZyNBLUn5LdTidQ2//lUfWPnzhvIeDqEFV6OJRrrDcS4WOmaldc1llqyy9xqnB6x4vPPFUQEjze+iehcZrArpfn2Hak4eUOf0/bLSelLpfaEtNpH7Ak1gf+ETYKMwNhq//SUcK6AsNwZ6WLId5VWcVfnDvwas//mjbiAe5Eo7JN7Dy7Hz6vajIH9orLRUHUrBsYg1Zrj/m6dB/3Zmw2BX5pQ29V0OrnNdBqA2pmCaZjUHiJYXlB9oV8+lN2X+ZH/2fnUSCnP5ixxiSXvaz3zL9ybF1CxrX9XCJ3ijZjA/1VwBYJM06fObCapRiE12LIkMm2th1Lj1j2l2Tvs1zzE6db08T57BA== + + + 7V3bcuI4EH3fqv0HF08ztcRgMsw1zBSXZKAqFxaYJLtvAiugirEoWQYyv7YP+0n7CyvJYGRjcgVLZOyp8sQX1FL3aXWr1ZL/++ffo2/zsWNMIfEQdis5yyzmDOgOsI3cYSXn05uDj7lvX3//7eh67PRGcAwN9r7rfZ57qJIbUTr5XCjMZjNzdmhiMiyUikWrcH122h2wd8EBcj0K3AHMGeK352AMK7kTx4cubcI5GGJ38eRyWYESqwAjZxhHNR85NiQdOEQeJYCyx554wp6xynTpnQMT3jEW93p3E0Yrt/jFqrwGoMBgtf9MxQvLkrojCGnueY0LaTAqbYInkNC7LqSUsfA7wf7Ek14IKp/0llEDHrQvGA8a8Ab4Dj3BLs2fAXILyQkmsI4dTHKRolhhXejAAcXEiz0I6HAmLN8wjh3GaJcGjOmxuwTdmlfIrTM6BDue2cGYdoC9eC9nFOLECsnUjgobmvTEdsfammcP0KCGCZNaDVOKx6fwhnbQcETX2BArOJkbsZeM5XUyN360TMYMLmvbZ08XXDGrkwlGLuV/d0dgwqB9CRigK7k3Lnbh23WubZH2OZiiIeD8v0I2HYWkS++ThPUATx6ATt0BnhfHjrhZyYUVu0SeDxxlgGkTNAbk7gQ5TlqI4K3mZBFFU2jWfUK4SqExbHNUQBJoaSgYK2+UrDI7lcvbQ0a0Dk3sk1Pkwhjl4jtGdXHaNekuBYS2sYd4BxxWYWctPkOuT6HH+8eQWBcOMTR+tPLGR7NUniSAcTu0uwzOrJGKGC4BTVitVfPReOJAXqvtkI4ottkdM8swYr86w/aK5jlOoqag31krh5VUHzFrHxYTsfcRCrkYCcHwZ/oBSZwvxAmmblORm2L/2AB3lwjOmhAwo20G/zWhMNmhonxMFzSRKqlwagIB5EUP9aPVhWPUx479SXRfqUql6jjsLw1lI1csfQn1CHC9CeCGXAiKuaFD5L45sL4U+b+3cclZRbMsfHPph4GXmq8OBryUjd76DsT7/J76OdRWwwPz75Zrw3lIo7g1Ai0Kx+axC/psfCfY2mQYdSI47RF/ew2S6D2W0kt1IhAac5voangm3ZMsXaAUdeio87IDUDfxlI3NuH5cjRCFPThf77121mjzDPsevJiq6B6C5rcJ9NgNtQxo4JmrigHnmIyB80D7terfFCqp2fJ62AZ3v7iyqmNDB/uu3WEERIxGnIr5KiF4Vh/BKcEuV6XWGAzh0txza29xax+PQqXsQZ9y8xMFfYOAWWAJQ8SfAMfbkgVMpskhI/jTgQ6IDOv5kxq8YfwRzzOzv0Wl4s7wIsjHWK4uELtU4ETc76KNSg38pm5Bs24gU0ltVHIZiYcMHzNA7F9LRTVofXyILs0EyNNGejuo2QBcX7UP3VulQ28B5R6eiEnP9CAtgYwxBfWRg+hdKBFxy3mlof+ln/16JgBkQ5F23/ik3kqJTqt0POWY0n2C2UWzg1ehAtsttTSMlw98r9yGhF9cTMCA9TZpudr7EF6KBpauMLnl88CqYkuB6MJUnKWJCjJ08imnZOyf+JTGBe+X3T5r43atU0kzvChV+6gH8QggpWLANAgy7wljlIJH9nF04dDS91GHnH3gijawUeUaq+10lYebHz/rtHPTWMfElScaE81zJg9l8jhUGQEWQeAD663cT0TiwaoS71J3ZrO4rdSjBzmFekyh7s+UhCL57EMULpOT0rBhmEctd+0qfecoY7JB6CaNzkZZySqkEDLp+rIhH87YzRHPLViyQlpLGV+IsKUlVOn6YI9tbOC8hhU4zBvFvMHPiuZU43VVOynUOW6fVuvHV61es1qvH5/3Fj3+clm0UGeHQuICviguyccPl2g8tHxaK6P+TMgJ6ckBjOSlPVvSqM1Bc2t3LRIpeovctgW1P2+LpVp1cTT+4mfMT8f8FDyoVetV6WgcN4bV6rz6rpodr/ewm53iwD3/OSjNtlJe/8qize9lvz+t+f3xh5m4fmmhTVa/D2XLvr4u2NeXVuGQX78Al7y80lwq79Kybz6J6wEru//U8r5btN+Zi/bGyxPXJcEP2r8qDh5faO3n4PDij8TyYvWdDp9a4ezQ66hUdmcM1tfeSwsxFQyV4xVUug9GZKCjNsUrIUr/yoIka9BUNqST/ef7U8NThUDCxMBrh4DCSOaGCRC1ENjSqGCfIKB24jwzBZqAQH0WxebYcGYWVJkFHWcKMjSoRoM2yVb6wEL5DED6sFA/NaQnFH7BHkKrbMzowCJEiHagUCqmTDxZ963DmjqNwj8qltHc62up09H4JoNtYPMt1t9Y779YpS/iHG40aFlmKZi+3jQVvtqWJLo7WXh7w3x4SnAQiaEnDpqIjadS27NIowzpMKNCg/375M7hHAe5Jwv4re1yk5A3/UkD6GwvbTlLytZKG1iffMkIowFwXtkeOve0WbZI6lof7gyYX9vgUR75qTQlujt/myCtOK9zYzZcbHvi/Cr/VcEYP5YEWcwbB5ZIhDxImDJKT56ciRoYbVU5utw7dpAL5cxVBhZ/7D56w/BdVGGlaYoqoHH2bkJ1VU8upL1kV48xXkq6GjM9euzkH6uUkgWh8kjmsNgOdjCJp4qns1diA3ncA1cQCrovALhjl5ZvnqrUpb0v6WXbS9B34+atqWjsA3JHBekzdqu74mNAHv+E3XJvWJn0Ef+W2NobxqJP2fw9uNhXyHIv+YIcY8rGOgrGbPqen3gnbHb8a4Dip+ILgl//Bw== + + + 7VzNbts4EL4vsO8g6NQCqfzTLZDGdovaqRsDdRLYjtsrK00kITRpkFQc3/oQRV9mD/tG7SuUon7syHJSJ5bUVQRDgCUOOZz5ZkajIcGf//7Xfnszw9o1MO5S0tEbRl3XgJjUcond0T1x+eJQf/vm77/an2d44sAMNElP+NENdzu6I8T8qFZbLBbG4qVBmV1r1uuN2ufhx7EpadELl3CBiAm6pvqeohl09D72gIgTuEE2JWHLNJpAU05AstO0dtdzsQVsBLbLBUNCNnPVItvkZMZiiSGFRgufTZZzyUsPe6zGO0YCaXL2R0IRRCONHQChP0y4mIfkcs7oHJhYjkEIqcIPjHpzvkYQTD6NSusiDtaZ1EGPYozm8qZLmZyxfqu7HGAMGExBGU80BGP7gkcU2nsslUtEoIyJfMrcK+OTS3qUCEYxNy4Ghi+O5cmmU3Tt2kh2C3slGSsOPUeqMR7/liJ7GHEeNekRb/W0o29yCaV7oEHVNoWvJaRP6q2WrjjVLw2RHWEbIpf0XYw38Ep0S4ctQaRF9+mwTV3uIRxq2BjPKBWO7DWkllTNFEkP6+inlKToqV27ZzplMa+pC4tzRAArTEpjZU8kOMToVVHijrGrKPFYOwv/yMShihUlwbBsEeNxKAYxYCyQWIG59ixNnxNq235uLYTMzzOBbp1DJnClSJ0zahOGCJ8jJqUvf7j/k4xsfeAMwnnxlvXONKW0p5TNEE41rUyxMoKbgPasgm635I96HM6ugRWAW8y7gmwXyM4ZcPm3AMBCzhVcu8A1BpvCxaBRN1715XvxYIiY7ZJnzVazVW/Vn2cP4Uf0BXDaGzZbuT/g5dyZwI1oNA/OkeWXb581Wi9b8noeKaHeOpRKONxUQga5yAhZAwEzw59SnHz8+Po91XQeMnqc5ggGwnSmktg1EcbLmFsfYZ5uqg+W5j1BX6T7qIz1xLUdLK+VeBPmZcLvdzkVkMV1kXm1QMziYSJX2X263X+r7L5Udt+nrFCzf8cYXfQcuGaUjHwVDWbIhtgD/mmpXy4WfzHwYQsUEZu+ms4IsKrKxPCpp124pAwC/6h8okQ+MaEWWhblELkXyZJvvrxKnE+6aFYyFEv5BZa7JybexZUj/h8dsVAQS+mHuUO4/v7fJ34lxqiApb0sMSppMBwidgV+hAKJF2UHx3CJPCz8+mKmS+ojSsXq6yb/nHrrVpWS7Bso12aP6Nv/VUv9di117xG13A01WfZYVf3rft1f3d/y4HCV4HWwSJBnXbCqGty1D6CAEHfLMApbkn1igkdLm7mL/clxhao93l8qzXUXRXGKKFTuIj3gD9FAYa4QbCMqbnvDFj3sM+Ur/W6HAMMTWsyOoq2+XGG4A4Y5e2D8/R/gdUwXVbXmN5HKffdeAqu9+1aFVTbl64zgeqKF7FwDZBqQe4+RFZC5r+xWSO4TyZyjayqWVXi9H8uNel7iPIJ2be1UhNVTdSIC909EiLZwrbNuj5C1SaGFpcc7a8Z+zw0t649ZCZHa2TpZpaFt50Qomlj+5CkTQTHfP5nizS8= + + + 7Vtfb9owEH+ftO8Q5b0JbV+mCloN2q6VRocI7fpqyBWsGhvZTimfbQ/7SPsKO0ISAoS1o8TQNA+VqO3cne93uT927s+v39Wz5yGznkAqKnjNPnQqtgW8J3zK+zU70A8HX+yz08+fqvdD1hnAECxcz9XJs6I1e6D16MR1x+OxMz52hOy7R5XKoXvf/O71cC05oFxpwntgW+GzN2QINfuSBcD1FTyTvuDRzF0swBEKgOwsq1oPKPNBtqFPlZZE47QKZ3AOhfH0hEHGGisa60xGyMuOnpjTOyeaWCj9iQ4XxJS8AYC2N9tcwgO5tKQYgdQTD7RGFX6TIhip1IKZ8FmrrDpR4P/gaaGziaql+UyaVvx/ze4AA0kfnZ+UNwTXUjDltIl/rWHo3Co4hwcSMH1OFeky8FuEctTEHUGYECzCFMLnLovkviBT1UOmPS1ktrB3VAUENU80xAut1FjNRvm8HkrK6kReMLSQqUyrUmRzqbprdFwCsQ0gnFhC84i0JB0SObmkjJkAZ6aJeNveUAg9wKeawocEmBvB9wSXZY2EtBoDdHsJiQXH12BEqXjKtiIq4WjNToiHut7Q6y9rJTKEjM0ZtqOmCBT8wLCXaUlvhCZRXWcQDLtOwisffEImhQSpJUHhTwMQRZxKgP4PoI4kXI2IxE3XhfRXLfyD+eSUz5RK1wOtMcHNxaZmtCOlF9isykBv3KiK7qlKk5oj7kFPcL+0qY1s6hp1dykkNAQTRiJfXCpe8Gn1NXP+V7Q/YPg3LxQ7MsjW2hv5vZbTbhyi8Uq0RH/H6C/4LuPwN4l8xOoxNoDjSgtkL6MGz2W7OzyA+co0SE40fYJc67Ls7ZYhqizQ3lXiU9AKLTnSWmNVOUT4vI/RCo1XdL5lEK1cT9QKjVUqwuaMl/EYWyK2xTesBOx9pUVYT8U5EWqAdimjepIkROEQ21LptscZmLFry4KarvG6M9Pl7ODeP/+rQMPpSyELTjP36sbLgkJiZeoox3TSUkiwTDjAhXqg9ID77AEXoCpd4ObZFOX5f15Ufla0n6eL5l+ighYlZo4XTYengoKFdSMjo/zhytv1FRSeD9BzMG3NSeCPIJ6162QJe3vtJIdGXSLbQuj5UdouLv5NpAw5F0rFzR1yLmqzumFyzhwKCVP5wdRco6a+eZgF5K06zBXhl/odq26q63I+GnZcqmnHZRvYQmdnOD19yVZWWJGeXxcocLv2y6HlX7FkjRTpVtMZ4RSXKJi+gvOSrBkSICxrtRRCs64BNlyTKH65fTZ8NGy5Pf0L + + + 1VRNb9swDL0P2H8QdF6tJLsUgd0CTdetQD+GOOt6FRw2ESZLhkQ3yW/roT+pf2GMbKdO4hRYd+qVfO+RfAT58vQcny5zzR7BeWVNwvtRjzMwmZ0qM0t4iQ9Hx/z05POn+D7XkznkwAhv/HDpVcLniMVQiMViES2+RtbNxKDX64v766s0I6w8UsajNBlwFrg3MoeEX+gSDP6ApZxZU2fumgYG1ACVYyw+K5WeghvDTHl0EintQ4Zy1EyKKw0dGFbHJquCavGa8ap3LlEy6n6IAdAopXMA5O8bblODqvx0tgCHqxQQycLvzpaFbwGq5rtQ7Ex6mN6SBxMnjS+kI5culNZ8i04CKWjI0Dq/k6i075QvJQ0lERoga8USngJpSwp/0+S8wV39IDSak1sb/pZfIy29b1Kc1SohmvArZWDwTh+Z2B9IdE+0a4no9iTQu8z+x41cZtasV/FlZPOimle61YdcTv9DLScWbx9ULFpn/RoNJ+3XJz0GvfU6Qnosp/sINrIGndXV45hQy079iX4rU8d99OsyWjObDW3cfZOxt9AtIw+00n5olXqr1Dk8yFLj/5enxRz0KSzn0I+tHrQ48KEDNXz1k78= + + + 7VnbbtowGL6ftHeIfLVJbUJhF1WBVgFKh9R0lLC2u3TBBauOHdmmHF6tF3ukvcL+hIRj6ErLYWOAZMX2b/+H77Md//n1/DN31vOY8USkooLn0ZGZQgbhDdGkvJVHHf1weIzOTj9+yN15rN4mHjFAnquTnqJ51NbaP7GsbrdrdjOmkC0rnUodWXfOpdsAWXxIudKYNwgywrFX2CN5VGYdwvVX0sMtwaOem9iANBgA6gwjV+hQ1iSyRlpUaYk1dKuwB/rAGFf3GUmQMaK2et8HXSgaMZ6vhDU2wPoTHQrEM7ltQjR6m3MjHaClKoVPpO67RGsI4YUUHV9NCAyNT5IyCliR5jeIgYMpL1PG0NS4+cnVTH/i3EZcz6M6YUTSR/OW8qLgWgqmzBuqOpidM8CAa9P1hNBtGOWIJoB2gwGqPLoSHCrWrDXWH8zJuaCvoYVMtjMAKJYwIgOGoCXZ+b1iunRALiT1I9nZ6ITzFtsA8mjWKZiLDCsVd6FYY9iaR8G8YcjfSO/Z4AThmfFxLnzJ4QnHJfFjSRLBA20UhATKF4TWwrskD7pGW22d8XubYFYNN2NaAcnoPWVU90ecCpvY/0CrIQa7Q6yiYAz7UIkcWw6eqXAlROvKPb9dOQQVTby1wDClecM4xNGqeLhF/gUUxsbuDgh1ibnysQRPE0/svxCGYDGs4ajbZRT2GGz/WNgfCq8/FJKPhDW841Ul9aimT0SZoc5R3Yw2+uht7/oxg+1re/gr/QhKERSVblA6QVGwi/bEr3Reatl2z/4y2WgPnIFjHUNZteBpYO3r+/pL9cQ1+p6bjIN7wX1hROzUgZFZ/R1mC7thvGnszlZYIg+4w3QZUDxwsHwksiwkgWNKLHs4LXelrAmhx4xJIsd6/d7w3d6hfHZFpFObWHdJWraePNg42lXcDFK1n46y4f/zOm4gW3Mqlc1kU9n06p1arUtzrJvJ+uasidzzuDXMO6sg71wjbCq/HXYD++cljIh8L5IyGEkH+J6RqvA7ftSF3rd1LbBnMvU+nHhCS7QFv0LzxFIK3su3pDrBceDFQphCbiz6DjH8iGEt+IoxTOIFXz5OfwM= + + + 7Vxbb9pIFH5faf+D5adWSgwhu6sqgVaBlG2k0qBA0mrfpvYURhlmrJlxgN+2D/uT+hd6PL4EjGkCZQzrWMoFPJdz5nxnzs0ef//3v+a72YRaD1hIwlnLPnHqtoWZyz3CRi07UN+O39jv3v7+W/PLhA7HeIIt6M/k2UySlj1Wyj+r1abTqTM9dbgY1Rr1+kntS+/jwIW+6JgwqRBzsW3psZ/QBLfsLg0wUx/wDI04i1vuEgYawACQs6xmOyDUw+IGj4hUAilolroF2oCZgZpTnNPHiq8N5z7QsuMRj/NdIoUs4P5M6Q7JTIMxxsrebnEpDaDSF9zHQs0HWCkQ4d+CB75c6BAxn9fLaiOJvWuQQV+QCRLzLqHUXhq6Or/MtOdObyXfW/YQUyzIvfOZsA5nSnAqnTsiA0TfU4CBKWcw4VyNYVSPe4DbHQK0WvYnzuBLLctN7Ql2mgOg5you8vmMKA8UUjjpaC1ca9k3yBv4hMW8ZYWhp+mMAdZ09BKwHYqkTJpsK55FX23ZC/NqQW+p11mRhELJX9mK7PJlo4fn6ceGSnSJv6GAqi5flZsJJQKkrhSeOLcSx5QviURfKfb6iAALiSJ1EZUGNCnc7akSxLBGFiCXWVBxYDhRqxxuzGIDH4jb5gLMUcOfXQcKzJVATPpI5Ki5IbiSDf/PFfPwLAXoz9Ju80jgpdvoPSTusehygTuccvFXvY+FW5AaLbuONnLvNQ+pMn0eE3UAfqPwDZ7B5PSQMGn80Tiykj97x8ZJ3MQ+QCKsirHsW78dKAWR+C7NLoB8IQSfRlOXMsCq1EerzyWfskqBtlGgPvLCLPvVSf0o+jlu1F8f/fzq6Xn9HH5fFxnSv2ehgY6ipw9kNKbw+xjQD0WQL+RfpPdcSkUqeOEuquBUANZNvhJK1DwVOsQOFPky3z///z2T/lg6y/Ky1aYQj1ROxbmgCguGFHnAuaGNodC/qus9H6JMamkYonC7Q5wru9wN5N7z6IIW2+NBfo2yjIvVyO576RduWB3RrMRVuhdeA81svKoiuok2HXJ5vb5/1TLtdkuqVZGN0gby+gGLyk496UYq/dpIv8KMojPGD4KzMIXR905OGrM3VxM0WhHm7pIkR4MVfjeYLkVrKDNkt75ZwJJiSAXXLxdcqyLq/kp5xWdVicM2UdDIWtGQTnUb5IAAWraaFTxbGE2BJXw0D45hl1aBsxk4BQeIpYRnOT40HhpWAeFh41OIEyo/UqElKiAvrjA6fIyqHXXQzwjcXjmwRPf+I5rzQCUlw/j/wEcuTPH4XOru09IlkNcXFCP2ik9N04ck1tSSDz8sKGkp1jAwhfiYkkJj+AmVNFQzcpPsJaQ8ZvFZcP0VQrtIehIpmk9+CsCrnJFaNq42Dlmxm6ycoPWQGBH2St9oOm+s3mr6OUSbHWeFMBtEOsQz1eaz8O7PbkPZlSg8c6i9WVs4Wv94VR+rl+Gx+htMl47v6+bwOYKVHla8pqfWqoN3jyzq1nanfdewsfhCgWjiBSrx+eZnUF5gdpU4QLJWQhqWdW840H1SoWffj6CH6ncqvP0B + + + 7VtfTyIxEH+/5L7DZp800QX0LrkIaAT0zkSUCHq+VhihsbSk7YreV7uH+0j3FW72LwusoujuwboBkqWddqbzm22n087f338qBw9DZtyDVFTwqlmyiqYBvCt6lPerpq1vt7+ZB/ufP1Wuh6wzgCEYSM/V3oOiVXOg9WivUBiPx9Z41xKyX9gpFkuF6+Zpu4u0ZJtypQnvgmm4bc/IEKrmMbOB6x/wQPqC+zVXgQA7KACyM4xKzaasB/IC+lRpSTRWK7cG61CYtn5kEENj+GWdxxHyMv0Wk/4aRBMDpd/TLkHQU3sAoM3lBhfyQC4tKUYg9WMbtEYVfpfCHqkIgSd8HJVRIwp656iDBtwSm+ljwbU51XS+fzVTH9u9Efyvmh1gIOmd9ZPyOnYvBVPWBemdaBhalwp8zg2qyA2DXotQFMG4IogY4kaYQiQLsyIVFshUaSPTrhYyXlgHqIDCOGJoDFx74MUKK4RGgX26OGniuVUKT6j9ldjUBWNkhH9qQqI1zeHz/FivqLIJGhzRkyFHyqpme8Sortla45sx1wP2UR+gEYdNp8y4zohSQZUZaNItRZPCQTXEmHtd+7Iv+SrPqtxXbszYcmxegg2a86GUYpxjs3rYZBqTJk7vx5SxNBYZb7S+cq32EKfxAbZqih6EC8yZ4AmsLyvyXruK/jAW9H6QWE1hKzhHD9U67DoOXovIObcox2kBToEOUwTLUWmO1euxaklQ+Jg0Uj6bHJ2VRCfw189HwHOQcsdmpRybLFvOf1gok/FqsgxSul5nIo5MhuFZYwcmy6iQnhPT3ygVt7zv9k5xcyso/VreLeNvM8148xF3gsxebOUH7Q8Y/ibR5o6049X5Rn4v5bS2q/N0qDfi6mXOpCPnJFtNIu9w1RYS6oIJGRr2l7L7yQ17LQw7ehZkLj4MujzxvSePW3golDE7T8l2gz0MDpjeUMTwMbSkMHq/Xub0in2w+5g5y3FHVR/AvRTcWRNOhqQP63L2Mg2QJ3qWAbocJQ1PemGl7KOVxuuUcjg9B209Qjs5agmglvx5SDaBemYTlqSjkfrFr5mx7RZbILsQc0PvPZdr/x7eBxttvml8DwQpb9NfsFEsFze3goh5GBbB0vJ2Cb+pBEZQ5adOZGL6rKwhyTi4WZXsFdPVClnMqyLbxoeltLsO52k5lKsG5bKbnhzJlUDybeGGHMRM3j/K8Bnr7KY18GiTj+st6Tpnevc65zXOJGNVCpGUsEmpmw6mnHSwC2BTaWduNWplnsLwZ6FnZyenZXQHu3BGey7X6Qk5oplwXscRLv5W/WVz6bS0MTIgNE9qyoXnqQw9lyZU/mx+n9vUzQnc/wc= + + + 7Vpbk6I4FH7fqv0PFK87o3jZmbZLZ2q8YNuFjA1een0LkJG0gVAQRP1r+7A/af/CRgRbEXd6nNZ2LB6sSE5OzuVLcpJT59+//6l+nluYm0HXQ8Su8YWcwHPQ1omB7EmN9+m39zf850+//1Z9tHDfhBbk2Hjbu517qMablDq3+XwQBLmglCPuJF8UhEL+sSupOhsL3iPbo8DWIc+FvDKwYI0XsQ9tegfnYELsiDKMFSgyBZg4jqvWfYQN6CpwgjzqAsrIXkhhNKaMShcYpozhor7+wmGy+Ijjeb4moIBj2t/ScEA8k2pCSPnjjNvIYFJ6LnGgSxcqpJS5sO0S3/G2BqyVTxvF1YEHja/MB034DfiYisSm77rAnUJXJC5sEExcfmeqfXlegp4qjou/a3wfYuiiaW6E7AYT5xLs5RRgdCi0ci0baBi2MIPHpqoJDBLw3BAw9Bif6zNQ80lt8t9Rp6oyeTolbrqeK8ziEVwkeI1jqp6EUKZrNC5Nm3Rp1fwBBH4QJgYIBg77qBOXLaw9aP7f1iHyfMDWHqDPJm/11XgZzunAUR2MKGXL2fQtLSkinKthsnW9mWJnZTcw8LyYxMceDXtrfN2nlNiR7kfu6qTLI+em2HZmbPousD0HuMxcEWH8a2ITan5tyHR0ZtjB4+wEuJz9XDiphT0XzpoksN/YxhPvr3Qrsx32ImxOHJfOhc2VRqZz3ODWVkZOzdWBPl2fRc+3t83uff1L3HcXULxwIv0ksCD+G1zfMiBSgch1PPYYo0gHOMMk7Rg55j21LW3CTLYN9p5y4EbmxYA/8GBMWJ/CXrYILgWbJvJWD3LjOhEZdHKh2asOgOyN8bnYGSNkUHMD0M1bwZLUL0PjktC4+uj1g8AUhItB5hJCS+Jp9I4RkH6aZ1LiDN9emK/5Vtq49DpfSz0XWcBdnCLHkADoJKhcZX7hfJicetNcJTznjEJbUN0RFy1XZz7uWGDy/LT5+NHP95qVsjYKJoY1XOhFPNOeBNRVy0EH1bFmybNxG/vjpYCMR8WS+hPUW5ZvBpY4VUcFc1wc9kFbDMZqnc0x9/WlU9aLD5WOZQrG3ZcP0qJSMkq6byy7vla6t6VlJ+g2W7NRq9AdFGUyZnMwOVu80x/ilUbY10uKyfTEnSemV1t0NFuRtaKCe1MZs/9YfwpmO/1P83ttJNrjoSzo1tDU+n8qYNlZPIyM+sNADH+KiMNWE8JvKepX1u19/WHdv/VTRKXN+B/NutxK0sQP/UdHlpbmqn2QhAJryQxOWavelFftoFGRV61UclgrzL7esRZ/ma34IKpk/Bl/xp/xv5jfWAqVXqOSOOfKN1Lh3hy3MP1rZOBB0TT19uCP18mjpQSd+HaQhZwjQk5j3S/bWcjJ+DP+jP/S+X8u5Jw7a//m2a1fMWFypWms4/OMO15Lc9omzxq77tyr7vh00MttWydqXtOyvdMgUalbzW/VCz/3hrXC3qpWWIF4pyY5JCvA2B/BRTfYw5Ws7Ga74twxmf+5AtgDqmxXSq8n3pIS1R2/QPL+VXy/ioOhc9BZIUKHKrjDMRv/J+u/Q9awZvzTfw== + + + 3VTJTsMwEL0j8Q+W78QFLqhKQGpZJZaqKcvVSofWwrEje0rbb+PAJ/ELTJ0E2tKy3eAWzbyZN/NePC9Pz/HBJNfsEZxX1iR8O2pwBiazfWUGCR/h/dYeP9jf3Ijvct0bQg6M8MY3J14lfIhYNIUYj8fReDeybiB2Go1tcXdxnmaElVvKeJQmA85C7aXMIeHHegQGT2EiB9ZUmZt6gB0agOgYi1sjpfvgujBQHp1ESvuQoRwNk+JUwwoMq2K9aUFcvKp473coUTKavokBUHdKhwDIf7fcGwexdJwtwOE0BUSS8MTZUeHnAOXwq1CsJT30r0iDjlO5dNNjpTVfKKXiFDRkaJ1fSpR9Z0vXCHakSViDpRA9ijr1EN0q07YGndU+uj6L0kIr7EgDukIvE4bO7SFJ99Z3Qby2lt7XKV5zhmjCQ/cZnVQGXNjnl7+P+LiuWNp3WSmxWqpQt0r/H5pEHyprWUe/1H8yqdroT9gUi89fWyzm3vx7NLx3P3vvXdALdyWku7L/EcEqP77pE//a1661SFS1o3PSkSRrJwyyrDt95d0Uaw5n6cTs2O6/Ag== + + + 7V3dVuJKFr6fteYdWFxNLzwkgqi0es7iJyAtIgKi7V0JBaQJSUglIF7NxbzHPMNcz8W80TmvMPUTSPgvEEjU7F6dZZGdb/+msgm7kr/++7/LP157SmgADSRr6lX4OCqGQ1BtaE1ZbV+FLbP123n4j9///rfLp55S68AeDGF+FX1/RfJVuGOa+ndBGA6H0WE8qhltISaKx8LTbbHawLzgN1lFJlAbMByix5ZAD16Fc4oFVfMavoK2ptp76mMFYlgBLC4UukxbstKERgW2ZWQawMS7Ed2D92FlquZIgQt4QvZntZGOZYXtIxy8LDBBCGv/3aQMY6RqB0IzvJ1xExlYStnQdGiYoyo0TezCvKFZOnIxMOUXcYXSAMHmHfZB2ZB7wBjlZEU5ugVGFxo5zYAZTdGMI8wkN9KagS0JT8HOy0Yz+xeKDo3HV+EaVKAhd6OPsprRVNPQFBR9KEQroFnVDQiaiLhIUnC0VDOKNepZCkgD4xrK7Q52XR3guOIAnodDwj4lV01gWohP8KWwxieXVSy6YWrGYmeRJBpzhGwFWGJtovIivRbLvRSWJMeGGUSzeSwiJxvILPRAGx6VQZOc2P+IX9B/3w6RQtglBRP2opIKXvAZS1P3GkdOmYpezbDgbhJnWh6vpPdmSl1GFlBIbjoJ4/psJiR5rabRsKQt0ySToKcJUjbgQNYsFOSI33JkHBlfpEkJvgbTiO9ShETFF+lRBMFVxn/pQaLiVXrklZHeqeH8PI4dFRqa6lSx4wwRL2IX+P83Uua2ZRWPj/FYPGjGEAUnYfvzX//2QRWZajZLcDgVyxp4Idr6KIjexeif//FBjFxl/vRJZ8i6Z3V/zQAq0oGBhZNvj3Mh2mcNOweJQTMd/J17gjX1rTujAITGu8Jjl9NPr8IMkpqw5f2GBXO8sNjETx6imRIyiJIvo+Sq4oII+TJCrkIqiNCmEVpyw/JDxci2IYjSe6O017kuiNJHqRuCSH2IIvyThukWpza8G0Dj0N+TohPJQR3BFyo8EyH8pzeBymrDoODzYaCmL09BrPw9/y2KVjAF+jVaToEeRMrPc+BsnIL5z59xcm5LBHHy98w3G6lg5uOP1NQXX2xlj31zPJq5UTvTHcB++3W3OO41yJ79jJpqNGYcE9dfj9ydnn7wS7RgZy5sHt5Fe/xBmXSroujk51vXb7fRR83o0r9QlDUhoGhFG2KPWz31GnNhTKJhdOwXdu7aP0WLR6HjRBxvzt/X9boD/XKWooz8rmQJQwBlSrvHjmy+rydnB3pda+MrzFit42QSe8ze7KNl6LO2KHE1UmwcMjtYwaT0sSalr3i+ezeX+/DUnbLt8Gev3VaYuBAv8P9vK1fP7MA37v4wZ4EMq/mR5FVTmMvoSZEZIyUmLjIP5wXSwpfWXj3zwi2Q1S2+Q75zBdBksdLhDc7CFrAUM4d1O2Sr5gOCtuSsjEjh0SxjzztVRw4oyKuyw1FW00yssGfJuLZDfq9J6ZyUX3UyIgtRvZyM1jWvfdkFEttIwpEtEmh2d8OOaZQuRZlIu++KsXTKpuxPstXIRiIbtiOdyqRclJWy7VTqNXWSCmg5VbrP+Tepnqv8bE/GTfE5XzGPi1URVeiHEh6jV6kiVZ+5QDFn5YeSr3RB3/kwjcfPcYIff8B4Pfy/+yLci6Vsoc0D6jr+flYexlKbFK/yUM/JXEoyqojN6wo5fpB07GXychirTuQJIvbPC+IHlcxi9TXH9MHH3w5d8rB+FvFvX8/ei2WL7H/ms5/qR/x11qX20nFVNIvSA9Wf6Yvx6w+l7H0kgfFv17qC+ovZP4mHjU/1m/bH4xnVf7gcb4a/QPOLh52TqD9Fqu81jp3Enz/riOZXb2K/Ke4C9IvQ1ZUHS+UKKsLoOUttkMdGeLVGLqgEgkqAixQAs/XEo9o+buwOL54UWkJCaMWFCB1zzcxL8G6q0u0P0OqU7x51rSYofSAJCTp+0Av3GyMzvEynJWQYnh6RzhMOfvcmJ5z/qHY72e3wnOMzVD82Br1OOXKvPQlDyr8VnouJ4TM86g/Kv9wfLv519nHJn+Pn8dd2/uCiTf2xAW3qD35y+2N3+lJy5d9O8D48eVkJ2HcHgkIgKAT8XAjsjtK551J3WHmsPa+d2KV6N1Zj/GvxcvGHc6nSPC6v4Gd40lOzZvOT8WJUqh/Dk55Lv4SF/G68fO2nIK6RP69vN1ZOsuOpvG3wVurTipVL0lPy19tWePP+oHjUHw7+VnhT+jr6MX+QMU9+LMPblf0r4sGVHxvgOUwr8mMh6H7y38XP5S8nf9dx+pk8KQQypMVS+XqFQHC55KGMYLW6w8GZmlg7HRYjiUiN8a/FeynGzouxUXKwgp/hJdHgxeYn48WoVD+Gl7TKv4SF/FN4v06EszXy5/U9iZQj7Hgqbxu8VfpUxWT5TjTLtbet8Ob8QfFsf0zwt8Jz6evWj/iDjXnyYzHe7uxfEQ+u/NgAz2FakR8LQfeT/y5+Ln85+buO08/kl8tldNz0EVw3P/h189TKj+oRo4OU3dxvpniu+810/I67XqfNiHh7N2ghnOUnL2XhNJJ/EyJ0rMfPNr+fxvCeOmiQZXjJyNt5xMFPwPzo/E5tmZz3E2fxnOOzVD82HnSQICgnL8Uh5d8Kz8XE8Bke9QflX+4PF/86+7jkz/Hz+Gs7f3DRpv7YgDb1Bz+5/bE7fSm58m8neB+e/HK/Obhufpbrpt+pj+ntBm801vbSBz29eSpr/VJM0cED62Ai+9FI69/IfB1bN/j4Hz0dY7k6tjJ4rMQxhhYHGK9HNoZg3IwQX8eN6/jZjq0bLOsJUjxizyYdWwSvQuwbRBx7mTyjf2rWCZ5wSqA36Ni6eVT0Sn6ij7tji4ytU+Ib8pdhkS1fx1aG6kf4z/rUXjrWwaMiAao/0/fUMuqACkHGzXCtK6i/mP0TfW18qp9LPttFoLmuFpS/QPOLh52TqD9Pqb44HzsSf/6sI6Kv3mNGkvwPOrb4yTcdWx5eOPf6aIKFtjrPJPiUxk4VRJ/V1kU3TTy0dY/PQVlqKX3+yWeydGn+flZLF0xL3pi6+o0EB1/uyuBSimIf8GWWObqfJeL5Mt99206ttZ+YgsgO7HNoeLiydeo5MXGxDA3ysJmDPDBmP+XXXCk58x7FS8H1NkfnU/omR5qQFahMvTGS7iY5O8cRsiO7QbaH37fAdIke7pdYMmCXFHtJLYdknpcQ4tAs9RQNz7KXa1KeifNnX81JD6Wv8/z9/w== + + + 3VVLbtswEN0X6B0I7iM56aYwpASQE6cBkrSQ3CRbwh7LRClSIEe1fbYueqReoWNK8q9WACdAi3QnzPe9N9TMrx8/o4tFodh3sE4aHfPToMcZ6LGZSJ3HvMLpyUd+cf7+XfRUqNEMCmAUr11/4WTMZ4hlPwzn83kw/xAYm4dnvd5p+HR3m40pVpxI7VDoMXDmc+9FATEfqgo0foKFyI1uPA8tgDMCQO0Yi5JKqgnYFHLp0Aokt/Me8hGYDJcKDsSwxjZaltSLNxmbepcCBSP0ffQBbaVsBoD8ZeTWPajLF2tKsLjMAJEkvLamKt1WQA3+UBRLhIPJZ9LgEqaiUjg0GvlOKiVnoGCMxro9R113RbqNYFeKhNVYCzEiq5XfgkepB1TXGuWC1BhMxaSJ4yzcbxYe7haFHRSO5HltZXmfXT3eFCKHI5k+SFcJGp3ADeEtW8yJ2OqrcomwLcM/KlGtwYyexbrEzsMYKOFc6+Ktnt5ag6+Bv/CP2Fe70fUAsb88FvqQ48RY+lkSg2iKW5hiKvPZsa/xn89oXbxm899N6k5IPZRKvdm5ePBvaSpR+PyCj8KtM7Ox+hPjVicmBbVzyrzb670fwZo93b2/v94E60llSPuIv2bnkyydKL00XRe3Ptdhx732qf7Gn/8G + + + 7VnbbhoxEH2v1H+w/JRKsAubqqoCJApQkkglQYFcXt1lAlaMjWxvgPf+RT+lD/2j9hfqvXJbVEQDG9q8cPFtzswZz9ieX99/lE/GA4aeQCoqeAUXrQJGwF3RpbxXwZ5+yH/EJ8dv35TvB6zThwEgM56ro7GiFdzXenhk26PRyBodWkL2bKdQKNr3zc9t14wlecqVJtwFjIK5l2QAFdxgHnB9DmPSEzzquY0BOAaAEYdQuepR1gV5DT2qtCTadKugx/QZMG09YZAyBkVtncnQyMLRjOl6daIJMuiPdDAgXqndB9B4M+USGUZKS4ohSD1pg9bGhGdSeEM1MyAEnzYKVYmC7pWxQR0eiMd0Q3CdaxL5CLIhJNQEE/JDoQXSNebLtUjX5+jAKR2WnJLzDs8JWUaiFvpTgaD4fwV3gIGkj9Yd5TUDRAqmrFuqPMI+MUMY11aVuI8BKIxuieG0gu/6VBuu7UUo9h+wlNtGmKuFTAcZim1roiEeiGbaKviadDsw1lUxjrClYUiXUbZX0LE5Z7tgwmh8oWFg3SiIJNepIl8YdFuE+vpHjDQIU1tgxN9cCRWRzcMNlwpWCG0AZ8ZNS9IBkZMGZWz3u6Q9MNr3zaym6ELCy6XgL2OjLK1jVqr1TaRMFpiLlTVGlIq7cEx90OobI1g6sPOGaWLRIpETpCi2Yx86Y5Nh31cwd+EKnsRjPz73KD8olPLFkv+xkzgc734fT+JSP79+S7XfJqvHzhslmURGIYfyxRzyv5wM3DdysBoDIque1v7xYdfBZCEhH8YJ+SXkX+e9k0Pxx0sIL1aclTLnaYmeZ1fVZ8nkXtUQrqf+I32bwks/YmxX31PX33WBsatCmoP9rhneQuaMFPnXcmdIVeAnV+ammQldC+76St665GUbR7OOMuYHdUNmneH4ytMgO5JwNSQyLedvOci+eu2e8PbK1L4wNT2hvlK2LmVrX4Ge/bqX4X0iPMSci6ctJsMUhZNTU1YatyQo07BznetilMHt/pSZ+MOJpk+Q+ly4V+Fn7x7ilh4oFsonZXumiDNtDQo4yi/gXAObKxQF3cboyyNQ9Kiy+tX65sKa0oX/7pV7BYbZulW48IyU6F1/DclzSFPkG0pWWiigZVUtLSzE2SsqccHUoHp3/Bs= + + + zVfNbhoxEL5X6jtYPrUS2V0SqaoSSBRCSZBKgoDQXN1lAlaMjezZAPe+RR+lh75R+wqdXZafwNL0B7E5rdYz9nz+5vPY8/Pb99LZZKjYI1gnjS7zohdwBjo0Pan7ZR7h/cF7fnb6+lXpbqg6AxgCI3/tjidOlvkAcXTs++Px2Bsfecb2/cMgKPp3jY/tkHzFgdQOhQ6Bs2TutRhCmddUBBqvYCL6RqeW7hzAIQGgcIyVKpFUPbAt6EuHViCZXWIhG4Fp41RBhg9LxzrTEcXi6YzlelWBghH6Y0wc5iu1BwDI/21zixgUpWnNCCxO24BIFF5aE43cisMMfJYXqwgHvRvioAr3IlJYMxr5k6mb67s1e+bybP5f5h1QYOWD90nqC1reGuW8lujVEYberYM0clU68VlBrykkQWBdQRmjvAnlKJP+OiT/GUylNgUN0dhssHGi5h7sgyIxaJwlLxOsMUiAU78sNNnRSv4W2v8yNw1hH8DWjIULo4wtNK0cCjutSaUKa7Z3QRNsSCgLNFuGFWNJfoejSV1rsOm8jfz+nquudJEgwQpcUrYyVuZETQcmWDGTlLHciLpU09EgxlKoh0YvCbs2RFNf6qboxTWmkH7fBCfFk+AkeLtPxcfwFvL+8eXr7sX9bMLm2VIgbCVCjCti3po+D2PV1kwYuZlo96VSL/6lmuOS2PkTkf+5XTDSMFF28d0rI0eLknauEKymG/cRktr3Aqia31q5s5QeoCRlN/S0yvMQvVQB7ZqNzTqaox5m+b8yjys738OGF4LLa8dNC44G9r7nqhnv+NrcuPfXHvIlf6WdWI4mrYSLW4kWqCctS2KmI7vpwdLju/3Ne1v3Ng47/7+n8hYoq43UbOGVKGlz8AeRswBnwKAEbeUrSdK2Hm/WIPpbOsRkatJVnv4C + + + 7Zzdbts2FIDvB+wdBF1tQGo7zjYUid0itpPWwNIYsZMWu2Ml1iJCiwJJxfb9gD3ULvZG2yvs6Nd/chqnEqUyQuDAliieQ36HPBR5yP/+/qfzdjGjxgPmgjC3ax43WqaBXYvZxJ12TV9+efXafPvmxx86n2Z04uAZNiC9K04XgnRNR0rvtNmcz+eN+UmD8Wmz3WodNz9d/T62IC16RVwhkWth0wif/YBmuGteUh+78j1eoClz4zt3iQJtUADEGUan5xNqY36Dp0RIjiTcFuEduAfKjOWS4ow0RnxtsvRAlhk/scpvgCQyQPtTGSZIcho7GEvzeYVLZYCUEWce5nI5xlJCFb7jzPfEWoJI+axURg8JbF9DHQzwF+RTeclcaW48upu/2Lqfmb2R/O6aE0wxJ/eNj8TtQ/acUdG4QfZQ4lnjVuBY8oAI9Jlie4QIqGDcISAG3BAVQLK5rVLzKzp1xiDUkoxnKxuASlIYFxSMwZURvExlGZOgcJwuS5tsaZ3mnmo/kM0V4veYXzKO+4wy/ltrhLmF1YC6I8JHNC56o4es+1CHFNBHh8gCAEVixxLJFae1a10TeEzIDI+IBVVTFTInVSLT/qV9ZCT/KkKokbRy9aigcijy4EePceiSdwjlU9orJO6xfWET2WOLxCx3coQ8+w54hjSrDd/Qp0iI5JaZdE/h1cASFkHWcSGe6Ri36z6u5YxCqm5PzBf4GkYGl4TSo3MqMXfBwz7g4LdCZCs7LYBdWBbdyE04coWHOJQ2k1XhHeB4Bl7agaeumI3TTvADc8vwToFd3Xo9X0oYbeZpQmCz55yzeZS1lpa00Qfk3ebXwTRSSTWiwxCNOBbwVQ2gAZvXbehAQAV7zg1IhbjKmlEejIKmU1Oqcle3Rqju7Ko6YNiGVA8Z6veDPK2qtqVKTeUog6PpJI4CPArerTWFo2hxJ+l1ocDkM6FELtMuNzUPfedlwq+16WhnOkq8gp7GE5aq7+AHztxb77i9eD2coSn+Tp1DpLvOjAJTL5SSkrakJyc1S5kD0GEFqYi1TK0HWu/o0nOCFb+jEbKDyKafWmfHwd/PKvzo7TBwpXEjCAJtBkR4FC3DuKPUnwbqZVbhs+N5ohzj7P/98698c79wgznMyGDek6lD4bMSN+F+tkF8o7ynSlIVUZHdMJUHVNQzOiV2mlrO6xQ6kfsYoIKmdTVGVeCyyNdB5b5IojEoNTFUe4L88mS0EqMlpxEnM8SXtSfNjuytLenJlgRfiBWNkdve4tqH9r82VKu2cX3jlOEfQ9fGi1TGr3pbr6YvzgfabxEOLLAtBFUVjjZqet8ZvYKHH5qCO7eCjSuXzPLFnmnFSnmKcravJB1DWE21fR1uX+mLdqFT149Aq/v2F/COku8wslVe76NqO5mWL0JbmzPV9zWl70ctYbD8ooqc5VGUV0BZU7FDkVwfO/WE7JNxqZmQzUZWyJuRxqySlfuTs9YZfJSs3Ndr3buBXOr71Bp8meDXYsNKQ98G8O2zthL0FT9kJfMtRDmYzQjSxJUpiSRVsXtSz1DFEsJ+lezRewm0wl5HIbKC977qj0xhzHbdyHIjVnwzU7zJ/GVgUzIAUXuAg57gqjCAr8hZfI8fdZbriH6nSFunknaaa2ejrq6G+xNEcC7qDaYb56+Gt6EcuymMGMP+Azyj3RCredy0GTzvzM89aqyfCBtlvCYlPuX0CZK3lc1QAcDsracQzr6DasM0adVvH3MbPhoejfvmfw== + + + 5Vhfb9owEH+ftO8Q5WmTaBLaVZoKtCow1kp0RZD+efWSa2Lh2Mh2Gvhse9hH2lfYJYFCUtBa1pJKFS/kfPbd73dnn31/fv1unkwjZtyDVFTwllm3HNMA7gmf8qBlxvpu76t5cvzxQ/M2Ym4IERioz9XRVNGWGWo9ObLtJEms5MASMrD3Hadu3170Rx7qkj3KlSbcA9PI5v4gEbTMHouB6zOYkkDw+cj1woF9dADNGUazHVPmgxxCQJWWROOwykZwDJ0Z6RmDNTrGXObOJmjLnM9Yrtclmhjo/ZHOFBYrjUIAbW4H7sEGWhlIMQGpZyPQGin8LkU8USsKufPrtIw2UeBfIgcXRI5B9oSEjmBC1kYQCLg6rzs9wXVtIGlE5KxHGTMLC+PSI2DgaSFVaSC3mlKy0DC+MaSd65wmF6WSjq0byjtoQwqmrKtza0h8l0YwoB76kw7ghPk807DLxu311pv2BsDPZKXAwqsiHwqhEXplSAfET7ffpy+N7Pf5mWCvqYoJZjXRS8wrMsRciCmhHOSZiKU6A4IbZPd4T6UUSSeEeyl4H+70eUQCqLmScDUhEkOwRa4/iQSX/GSQo54HOzWfuVMtC0MahFXSkNmviIcLESu4xIpUQdStB+PvAvcyzFUCH0hQ+Lc62F2R8HcAu5TlFaEu1bbl5cY63KKwdxhRqlzZM2HL7DDhjQsM7B5u6fSula52rxb4XFoZ7JuQanBhqmunnoce7CLXC5CtXBn8KrHv5kQv4q7wHF/J9bbQWkRtIXHv1SdTTHvKs/xfbH+ncdhwGs7jq23JxHpySkrG4nvjQ6afnvhForqSJLmDpnFN8EmKD1PCFKzj7R9OvfSza3k/7wqOb1zkkr+NZ1cNxdTLadufTF8tp/HbG/fJTMRv4L25VWHaskaH1ZarUnk6cAYg0/N7R4dXl6pU+MKH9qP9W2rKNO2V1tBSmrWFVNoWGgIrtJ+y4SHxH2sY82387K6K+X9diQ3erPbF8oVXrHThjsTsKZaf3gnCMG1kLQvVpq5d3vKzN/T8sqlZn/D4Lw== + + + 7Z3fbts2FMbvB+wdBF21QCsnKTpsjdOiSZo2QNMasZP2lrNZWygtGhTdxLsc+gC734Nswy72RtsrjKL/ybacyK4skvaHwEBsSaTI38fDQ/KI+u/vf6ovbrvM+0JFHPLoyN8P9nyPRk3eCqP2kd+Xnx7/6L94/v131Y9d1ujQLvXU+VH87DYOj/yOlL1nlcrNzU1w8yTgol052Nvbr3y8eFtvqnPJ4zCKJYma1Pf0te9Ilx75Z6xPI/mG3pI2j0ZHrsc3cKBuQGXnedXjfshaVFzSdhhLQaQ6HOsj6pi6mbocMJpxjjf6rTHoqbz80RXT9E6JJJ66+2dSnzBOqd6hVPrrFW6Sh8qlJniPCjmoUylVFb4WvN+LUycMbz7rLO+YxLT1XtXBazbodRr0Vu4fPKqRVoLiwZPDp4fq8/DReZNHZ1zQE8648GdSXsw+njuembs3/n7kNyijIvwcfAijEx5JwVkcXJ0Hl6R13JeSR+eSdoPTMO4xMtDV5nvXROFMrrxV1VcpID+Vmc5mmOIo+X9/+7XY1F9F5GelHy6UJN6E7Q5Tn2l2DdGnm8gvb07Vyj0gq3WVV1NykU34Ooz7RAmbSDo+0Uv9prINpSo9EW8o6w3RZt1EdibVyhIFryhzpWBGeurLkMKClosv4kJCKqmTjjILkxRmDMMJI3E8PuR7r5gyVJHUvx75wyRHt76mUcwQWCW7aCWjaQgSxT0iVHHPQsbKMDPDQo/qOKh3OZcdddUFb02NzDseWdJYileSrudt09FLJqmIVL/8hUJHEx0Vqh6d6FaKxy43KNst+fpXMW6CKScLbpBukRdhFHbDX6gpV8guqdvh8X/9A1LfhNTJrTVSn1H2gvB3SOq/Q+obkPoJ47ExnWMIlcP6YBgFLa2vpVmnDVqCltbWUrqrgJByCamk6dvNktnS+duS2Gy8NwceqzvILcVTEzRW/2Z2jxtpOcEF78f0lN+g88mJSFfY+y9UlA0pyROQ8kFSrl3Y0kEZm6SUchCAyBFEMHX5EZW5uHWl0NBPpM/kaRgnc3qtGgmj6YTeGWGx0ZXTbQ1SKX5JGL7ZuiymYR5TYxWccdF9pz5kIdtvQrXFduu+iabiaYGRS4yC8zj58rKZRAcBWD5gWxb2ggXLOyZslraV0p0gqG6HVGdWanapyxSDLL8TYKwCAxqW0Eim+3QzGU/XtsDGFjYTE2YLG3gyBeZnuydjk/Ds0podBht+jYVgYJ8TNH/CPm9edNo+j35qQWvQWlla290uJ0NrlgwQwMY2NtOBNdjYxmax3QCHVU1ld90ZTG2UoLpUqMMutXsrR8xgYQWL+TAt6574LTdIYCETDwE11kADKSsjP1dehQc6J9AtWQQCvVz0zPVr4OYot8koGKhcQYUm5mLHBnpOtjo8pWIjp9nHvWccEKDKh8roc/lA5mjrQu/lFDfMhGyDfQQ/Sx3+JVsDoem53vQAz2F4GGpvCT8gy4fMdFcHYI4NCMApHyfzthC8VuFl2hCC1iq0DEbEZbywxtCLFVIbYe5SSKJtAPQ2lzsbCI7n2krQ2eySxy41dqPPgORbgQIOs7bXNA5Y4gLzc8oS40lJC4hgeyjL2WB7KLz61KzB3vUtiGwcMQOMhWCwaZftYLBLhwNsgMOGzgVNxQE28P4LSh3e/z1xC2j3FnSRYGGchfEdVAy+jRABuk6iQ2z1t6MrKW4wzQ7E3CUGSPkg2WERQctqWgjyXC+EmojPVEzG6o9qpNVSZz344VD/PXTnNb0npJeIbusI1Wmb06vzn4KnZ2oUtCKPhqq/SYWOKq2h6zRzdMW5VCOs0Xnlj1rmxPhkr0ZFk65c6NwiDMbv5oYa8yJ6zQa9TjL63j/Y/DtuV8WSVrt/v9xrQg3cE2851vMJk69bB22uXZU5UYMp07sGAKYtLJRgiRIML5+V3fGmK2HSB5de6g+dUFI9k1zmkHIXymnmcR0z5bSnFZvRM8pvsD83Lvnyi/ySSSoikkisrAmmjQwTd2dSaePuxHTEaNCbKEmXWWWFLPPJsoztIlJ8pi4fAOUCVML+EPN4tKcKPDbjwRq3o2YPy3FOskIjW8c2OrtumsRqbx2O++a5i1w1vToPVFGbn9+SAe9LY4unxmLuMbE/b1VNTo8YlkF5AlhNcGZlYHhi1OTLdeBMWOoF3v32bext7zQ/ePKOwgMx14hhS3uX3RPsj+52gwMyV5BhIngVXqZtImitQqvsgIe5Z87NBT2Y3tEf76h0FRg8ZRfpYZxjf4TYss4BlKyiNOt9gZLlHtcSXIV6XAuLVPqEaTrVynFfKYGKUyLJ9Ne6HDAadyiVl5TpJ+/TWVcvSWvxDG+0qnbnsra6chJ38G1PDy+5iUvaDmMp9JdhwqlcTukn0mcyR86zt5pxAwrK0jrSYPThUeWmb0qfM6n29JHkcn1pQzUZ+vx/ + + + 7VlfT9swEH+ftO8Q+WmTRlJgDxNrQaPAQFqhIuXPq5cciYVrV7azls+2h32kfYVd869tmmoU1mQbUVWptc93v7uffb7kfn7/0T6YDLn1DZRmUnTItt0iFghP+kwEHRKZu60P5GD/9av27ZAPQhiChfJC700065DQmNGe44zHY3u8a0sVODut1rZz2/vieihLt5jQhgoPiBWvPadD6JATHoEwpzChgRTpzHUGYAcBoDnLah9GjPugLiFg2ihqcFrHMziHYFzzwKFExkrHBg8jtEXSFTN9R9RQC9HvmVgg0+SGAIY8zbncBlrpKzkCZR5cMAZD+FnJaKTnBBLwZVLWIdXgX2AMjuCORtycSGHIwtJl/bowX6reyv53yAA4KHZv3zDRRfVKcm1fUv/MwNC+0pBaPmKafuXg9ylDCNY1RcaQN8o1MukUITm/wdR20ahnpCoHOyUqk7COOW4GYRLySsFKaRBwKleGptxa21kR9jW56WFIThjnVRBzzXREeeqq7Q7R9RBX9aQPOSnnUmyAk8Sya6iZUTM31iFIwUAGwfQEGiNFRseSMlTXDfHc5VoWTl6XU62zKZKRH49iROb0xxF/YuYpxibdCyUuVr2VZKThAlNv6X7aCEF2brOhah2q+go0/qyQqNRiQ9M6NH3yPPT2XKoh5RVylYwlMheioWwdynpU3WMGlAq6kkv1rk/9aen55v3H+PO2ygLoWEyrnkOpsEw8ZUHI8TsrfwYqKg/kM+091lJdd3rlJdZNyAwMYGKazfC3bYZiqquh/F5IFxVfxi/E3VmRWLnDyQ1+Kqutihd3dVMkP4e76kvlAntN5fwE7jC9cDrCP8mFVw1zf5SiRHMK/3+jJ7kHzgTmJAN+ctDyW2G31QfllcRzQ+cteztYezFQV8JZFYAm46xBXi0ZJ6euST3/Bk+bPGL/NW2FJ4e67oga3x7U/ezw0jzfyEPy0nuOQkO17cy1dWejcUtXT1u6l8AXWsfxNDq0LGGlr2RW9x6vzuxCKMjzGpYrgMy3sxPFc1bSFu0jLC/DLQGB5KyMVUzQqj57LJOHv9ilj5fGnf39Xw== + + + 3VjdbtowFL6ftHeIcrVJNAnQSVMLrUoZG1IpDGjXWzc5EKuOHdlOAWlvtos90l5hhyT8B7VbgXSTIiTsY5/vfOfH9vn142flfBww4xGkooJXzaLlmAZwV3iUD6tmpAdHH83zs7dvKncB6/sQgIHyXJ2MFa2avtbhiW2PRiNrVLaEHNolxynad62rnouy5IhypQl3wTTitdckgKrZYBFw/QXGZCh4OnM7A1BCAKjOMCq1iDIPZBeGVGlJNE6reAbnEExPTxhkyBjpWH8Soi4zXbHYr040MRD9iY4FZjv1fABt/p1xcx2opSNFCFJPeqA1UvhZiihUSwIJ+Cwpo0YUeG3koCsi7nXB1T2fhBD/lJxCXxKuQiKRuz6MdaEjaUDkpEEZKzRdwWtConnFcGyuqNvEpNbmMyEZs/9Vsw8MJH2wvlF+KbiWginrpmld0aGvb6mKCPvE0IVcW3VJRgkM07gl6GZcLCP0vr0DlV3izfS0iBxSPtfhFAz8ivjtXFNM/sKYLOEVZ33/4OwGwyqxvUAI7eOqlvAWcL6gB76iFNWTTaUV+wm3V3qo1tVCZsdDAqCniYaZoLE0hlFKvL4YDjF1RlS7fgo1C0i2ooq9JRH+MFvW8uIQ0Y+mNzUE1o2COgxIxHSdKnLPwOsQOuUgdVCDMLWj6F+NhxpxHy4FE8t5Nmdh97EwraXzIEgxJPU1OyOEXqTQ4QPiyfKZlKi4aMbVMykn78qn5dPj0+P3GxH0wkRZzpK+HwX3ueZIanx6erREpKCNx38uRFhN1eavgQ00/AFk2cFFLo62Q+JiUZ1ysn8OZqXj8DxcuFNjOxIUDhzG2Dje6mKUg9cTaxvCjdQBbZ3mVk5hnqd7czU5Dx/nZeu1kAFhcfVOBtKK9qw3xH/6UvhX7875H4f7Tpo2fw3PhL1bORjkZuaiE1B2OsltphiOV5oFF0yD5ETTR9gHE1tiO79rTgvfZOn1lqbclDK6JPs1O//cfkVX3T2QsVGy1zpvFXup/7cYjXt/atr76wJb6THG0+jUTQkjPWi2v4DxzFsLB/Nlz+YtQJb7nsnGS1rSzsQzNG/CzQCBztnKVeygbQ3ZpJtrb2nnxkvjFvDZbw== + + + 7ZvNbts4EIDvC+w7CDq1gOu/XoLYbhEnTRMgaQ3bTXtlJcYmQpMCSdXxnvYd9udl9rBvtPsKO6J+bMtS16ljUXGEwIEtUZwhv+FwSHH+/evv7tv7GbW+YSEJZz27VW/aFmYOdwmb9Gxf3b46st+++fmn7pcZHU/xDFtQnsnje0l69lQp77jRmM/n9fnrOheTRrvZbDW+XF+NHCiLXhEmFWIOti397Ac0wz37nPqYqQt8jyacRXduYgXaoACIs6xu3yfUxWKIJ0QqgRTclvoO3ANlRmpBcUYZK7o2Xnggy46eWNZ3hhSyQPtjpQvENY2mGCv7xxqXyAApA8E9LNRihJWCLnwvuO/JlQKh8lmlrD6S2P0IfXCGb5FP1Tlnyl57dLN+mbqfWb0V/+7ZY0yxIHf1z4SdQvWCU1kfIvdS4Vn9k8SR5DMi0VeK3QEioIJ1g4AYcENUAslGWqXG/+jUHYFQR3GRrWwAKi5hvaNgDEyF8DKV5VyBwlG5LG2ypXUbOd3+QDaXDmfnXOBTTrmovacLbzrG96rVrg2QGwyaF81OuwOfl0Wg+3QZ0Ov7SnGmGQI5j6KFNukEXKDgZk/tYiphjVH1//z65+PW/o4F1tfnAobrBZlMKXyW4sbCz7DC3eVtK2lXe78h0kfgdJBamv3KtZ59hW/ViRB8HnI1bONFeqCUWf1hvvPrlxKmJkUcRIvncI3EHRYJidfNARYOzpgUHrnNsft/BpZXEgf6mwFLHwa+riymXq5pNYfS79U0t0f7K97owNgo8uBHyGDPbjVdva7ndAqLkuTxtWXJKUVSxrfsODLWV3t2WGWk9w8uyTJsq5HdrsPismF4FZgtwYwFYtJDApp7Tih9egNGa11ReRCVAobLQWK55r7EH79BAF8AlHoircJTAjzpFVVF54F0BgJL+FoYmzM+rxybeTbZbq2Csz2cgoOB1U2DitBWhFK7eskGR7uj/zY3OHZFhlwwCueuj4SxtybFLhwqo3wi0VAFqkyTb25gVGEqE6b8GKniVC6/l79Ir0iVaUSlHV8kqoJUJkgbg6mi9EgrkP0vOJ7FKYqMZps7SAGNnhD2otk56sDnZe17A3M/xyrivrgiDMf9MaLExScCo8/EVdPkBXTbwNvnDPWMUdKMOs2K0jaUjPqSEyfwHB+4mCG6j0kubu8QsYk5swxbecH3FBZnNXLlDYmh5u4xdMlvsN7ZNnDuZeaFWiCxKKzB5ibD9KitDbnP3CFIHE2Rh/W/Vrsgj3sVxLFhbyU9I9A8PjHy/bP2O3r58dSffY2l6h8j8svymONRzWo3DXr5VfUO1uutMTDu9cowKJbpHPVrwtYsslmzMgzy+YyCEgQ7+QOiDKZghkrmPt7hLmzTOy/mZvLCIpc13KYjlwJC003zNhOaGm6w0fEMX4iz1zYT5y4Orx5zqzRYnbcObpf0SeNoPykcG7N4Km2621hJ3l5e1UlaMkjcHmK6liCub0MwsVnCimKN/AzjMCUshmTvlpKco8RqwnpY8YqUKAl7C8nrqmYoAFBy+0iDycui12WSbk/n4OtHdd7+m/8A + + + 7V1bk6pIEn7fiP0Phk+70Y7gpT3tme6ZQMVLj9iK2Hb7VkC1osVluHj7a/uwP2n/whaFF7R1+nQL4hnJCASpIr+kMqnMytLif//57/3vcxUlptC0FF17SGbSdDIBNUmXFW34kHTst1/ukr//9s9/3L+oSBhBFSZwfc36PreUh+TIto3vFDWbzdKzXFo3h1SWpjPUC9fsSrgu+EXRLBtoEkwmyLUtoMKHZBU5ULPrcA6GurYqeV4LkMUCYLhE4r7kKEiGJg+HimWbwMbFFinBZViYrr1A8ECdxOqcsDAwVnJ1xZZfBdgggaX/bpMKa07dEYR28ms3t8HAKG1TN6BpL7rQtnET1kzdMSxfBU/4Q7USJWBB+Qm3QQW+AQfZVV2zU/2RYkMBzu3kDpP3SNZe+UGgxPr7Q1KACJrKJN1XtDIGMnVkpXkgN2yopnsWXMlQUSwgIii3gaLh5nkGWHdYgwBZWKdUAJDPiuUAxCJsA5qdLgFpUtaRbm6gMsVUIl9IJW5zweDxum7j21wDMoaBFt0RMKCgr+psoAXTOXCT99QHDX/fxbCSrZuHNeLa5bpGYiWGZ6sfi3tImsNo99QRK/ukKXLAnECzqpuQqCXlN01cSZFKuokfqnMYZ6/h2qdgQviswNlaga691qEyHG2tM3sXjKkcB6zg6+r+B+LbN4dqV4p5sT8byurzQsqiqTimFa6bnzWUEhLV1nRQQ85gSSvyC682haHSXubvemp10u1nRoPsswBq1dmgW8I85o60NPJStlNsqCNarjOF5qKYk3OSIy85R8w9as1lY8ZV2GmfzXC9bEsfYB4Yx3ft5FPXNvvIkXL8CMuJGmMsV61qiBrfErM8ak9aCB8jCSFBrj8iudbS+5XZdKfOeP4o9qva4LlFS+rzSBRuebAsCR1VLnV6VbLxVUT2Ik2+szLZP5pe+WOp4533bXyVr+HrX0alFrtf9vmNZ9Gt0M8MYC/zZ1d7PJnfoa2L9S71eFZ4MVrNrFzA+06LtQ0xV2UDxmrxbDUHEd+CE3r6VDdaEDFToceX5JzBB4SB28v4Q+xl8H3oUzjB++5d3t33ysWWu2/mjEfcnnb/yxgt3F62hmV25afddoNKsUDabzki7dek/fhFDdc3RDrzBf1Xc0KPnu3Jv9t+u/i4PtblJHg7ibe/5/ax/b57fv7K/q7u+qj1F28/24b9HZ1pcZ+wP1yf5dnbz2Nli/NuVs4R+63wH9t/Vp678YDw9fs7g//d3VbxQ2+v/djOi1zoBau7JugX5zzrxS+Dlf9fxU+h2MqX4z9hNl3H6G78+9qnb9psZiSpMo5/OXxctcRK3uZwvU5/buFYuCzmeFrM0jccjpM7apGWa0Ubn+cG/QHdHrPLdrm4Op53QV/W5Up+hs+tj++ea8VZe8zcNTP8VMLfsQ62eNXSaFDjDVGVgsLG1zMzt35PRRqodzAGwXVl6ok55gbvO699fgL6t1p77NbbG7cI+YcwB11NRYO7eYEsnU8l1h9hQ5MM0Qa6qyNF/jmzH/gWm+5Y+QhuNirgXFTA+XMDk3RJQ9OguWfP31KJAo234JIXPwCfjRg/FzF+PhL8Jnyzo9M+7xZEBy/oRnTgESNH87hF+KRF8pCVkWKQGZMPpitOzeR7qF0b2NuEvu/cQ/J9NBF9Ar9tKiowF1UFoVQbyO40379uf6V/xdu/U4IJNMsAJpbU01/WmJ8jtb+rv66q6/YIX8Xp8jbqaulaQFNO61kuVnOntrwbrWMzQjuzCIdnf07HCxlp3YiDhibD+QaDjuPVOF79SQOWcE1sF3HTUW7wyAR8OFC+CUROkUzd0t/sxCuoQyWVKBoHnUXIHst1Vy3c616Mu+KAohFfxUgSFqiqS451vinn4/3pAeM7t3LSVQchXp95ldNlxzQjUZmnmZZuqgARVR2KIs7+O5YjestenN68HTyQUApbcRuVpN6pMH7aflBr0T12nO5Y8GmKO0tXYfv9ZlSR/HEdZi5Oh5sWPL/y2ia08OFPorpL6DRXYjY0INnKFF7c43imX8CxcwNobgrTHVBWTDDrKkNt1UWH8OvMY4iu4Z4Dz8XanXxpqGAYItiK/QqsM6GzJWZFlVf3U3c/WPfDKygxZcZHFbYyZJg5k2di+iFacOM/XrlxY6EGyJQT2Lkz5pYcdUf4B8h6zgm1Aua8pJaNBWcMg+NcYeecqGPObSrk9pACYRq0vNfGz6NQ7P866CG4nxxc34TRF9Ne54v7fJ75OqK5OPyI6ceIuItKcOGHx4+EB4G4Nx8/L1w6MRzb5+cr+lI45vLTDvPb0p671z5i6unjOD8/PmmPgMPHmM5Mh8KPSNxjumGtvkaQRN7LXuXoNjTd3HGKQTY0NeAma0i2INIM1oHp77NnsNZ/pY2jGSaOZsKhOJmypjiZcl38PIqTKV+my4lm6rotmECaYLzYVTKxq4xpQ/HAf0PxwD+miOgiXWWkSYDYa14HVbTprPx6++2OCTLAvjXzjOMoFNOmCP/gOFfU6bBcKDTvGOoGUsxjgL3uE7hhmqY+nVWoENsD8y8HM8AMWt5r40coHPu/DrpUrxnd769jrxnT5RLp5Z6C85oev7VXO71X9vEjXv7UKGKf37bka1GEW187yM9HPi9F6n/ElOhjfJyf/35IewQc9cR0Zrp0rxkPO2MHGjpVitRb9pV6yxWDDLtdfs6UconwD44zkbdAOFO5IjUIsANuY36i6bEOtz2CGXYGLe+18SMUjv1fB12OA42HmrGnjOkQkZ6tHZyn9PhRWzqx5/Tx8zz7iZHDPr9tydciB5efdpCfj/Y804dDTaKP8XF+e/jONOBIJ6Yz0yV6ykiHlyf/ST/kv8BH/6f3k1YQCbh1om+NMwVZEa2TFS9ueRGLWx5dQPg8+q7rprLEVQB6vyT35v1Z0b4yCwu+7htcGS23AOCDCJZ5uawe4W/07+ULfSw/0RmdLbJyBccSRraiX9TPQLRrV0a62nXEK33HvU/c+5AEYCh9z7tb2HvV6j3le+Hr9ixZTcpyX/bKQ7TzUllSzAP5fY3Eqvn/MubwLfadPOW9nrhNjopI2uXYi29Jnc1d7782l1xKXrX72/8B + + + 7V3ddtq4Fr4/a807sLiaWSfDT5KZSdtkZkGcBNqYUqBp2jvVVkGtbRFZDj/X523OI5yL80bnvMJIMmBjDAT8Iyd4Z4UEW97S3p+0f2RZ/v9//nv+19g0Co+Q2AhbF8VqqVIsQEvDOrL6F0WHfvv1rPjXnz/94/zeNHoDaMICK2/Zr8c2uigOKB2+LpdHo1FpdFLCpF8+rlSq5Xv1tquxsuBXZNkUWBosFsS1LWDCi+K14UCLNuAY9LE1O3M3b8AxawCrrlA4rzvI0CHpwD6yKQGUnbbFGXaONaZLJwYMKVOYHetNhqyu4uwKj58CKCiw1r+mosCcU3cAIS3uJ9yiDlZLm+AhJHTShZQyFd4Q7AxtXwG38WGlCnVgQ/0904ECvwHHoNfYokcqID8gucYEXmIDkyNWCGl1TJgkxSW2jHEXGlCjmNiBE26dXCHzEoUrgyndoq6SeuwoQT9Kn5B1yeok2LBLH5ulDtDvEKEOMG4I0mdXFAvlYLXl8HrPy2sE3VEbK2IGiodLGyhUmH9fK61P1B74asCZvKWaQSGxAGfSwSMBQrFwB1gfZp319PioMP9Y1UzMLbl0CGF/WSsaEDD8mybow0VbPvyoHNdrM1I+80/MP674h3uiXrus+Ui5Uvq12rh2WstJHqlKbTTt4od3/VF8TBV1qpbPJur321P1e3PypR8L16k6bZcZ52l5KviPVEVpvUP4QYnA1MfPx785UR/7rP1vyV5MlSC/WPSRoPwLec0IrDxifUpVKw+sbWos/HKKSBcXsbmHW9Qf0DtkMxcx9wwKAaNrZBgLZ3ANDBsm7pCudPSMvVFwNLPPlh2Vabg1Y5/HEay7Z81uufWyAtbt635chbz8+jPOr1Jj1ufd51j0oQh5eftGnN8HhVm3YT8WfQh5hfyi/TWuDzPXx3p9sO/afqyD+hirvcZbHq2c9D5WWx210lI6vb04u/r41hiX//Dx4+1tRNVHS/lQ+TgN4Vc+E/XtxdQlLi9aGd9c3xGYCvLrg3E1ovLbSjF6o3W+gbkjljcJ78D9lZcynSVeteuPVqs+ST5Fa8GRFJGlVNq0dPaHZcSOaX1COh1srPy8vCVvj3v6Yk2z05/A8E3Z1DGl2OwIpFKY1uiA+bRN6QtHa7xA6DR+gNyQtEsB9XDyHbso+gBZDFG5oAgg1kympQpHNVvjZQWelRpYHZcDZOiLGpZmVEO6QnFtX5iZEWgYi86w3xRziLkrBxSRcifrEWDZQ8Bn7Xh6FpzMTWlmc03COOv3CaSMrJ83KTRLVxa3u249DdYIY8lD9YiTSH1PrSl9e7fUx9M2eIG+uOPNg0jClpp2FxMK9ZqtQYvfWTpM8RUoT34VOzZ8/8isT9rSL2pOX+g2gTb7V47ICh5ZB4lzFoZ7ltQgc9hLHwFZ6AzZUYLUrgB0XvHP1Tf8p/ILj0b7yPr59E3lDfv9JY1odDkK9QLheaT2W/Wo4P5mLV7bMQPyJx3F7elXmyATUfQI7VKNEDxafI85FwrRQcq9sKZpPAQLW8+yaXIkPmgXE5MvekFLqlMNu6tfaiZ0Y0yGgx4c06Omhi2vK84NZOXNMTOJxwsDyYylMJgppesMurrDRoIlcloF2UMDTMQaNS+hZY2PLXWe95MuJZBqgztWGGnAMCZJTg24Esz4/+9f/5bQKd2eeO1YGl826Ko8/c641AXjNnthIsrMxyQJKycTm3s6zbElAczCTrdAbTg0ENQPTQez0FuyDpjQBhiyL3ut2t3PjO0YrV4awLZXwlVx9KLospzPFr+wcDThacGUwHHXfuXQRIVmxVjkUD0JqkRn27YEMTlEWYcoH1WZm7bcEivnAGUboHxExbMeI1uLgCpyZ+ZkTom6eWILExMYocPpkBbHeUDw+0aitIy8dVv8nSokJxmCZPYc5qGPkt8zBMl8lOToPA90Sg1MmX3Rfki5E54tpLLobeTik3uezZ5HLjqbZxIO6V62D5ssjZfwPUN6eOgusHBTnfd0AInvwvRX/3RNjOmAXaVi3bu13cJWfLeas5loSV38wG/Buj0gs91kPXC/ZQa4LAWaR58GiEKxoCX7EEqOdgLL8qUl1xsw9EZoPthWIh+ZmKW/EVUb9NklbWBBb80sIjZlx+Fsjdhz23UjpyWqV/X7+3LoqZvhA+iPJ5p129qVq35/Vy0HN1BotKba8ZeK3uidhp7fRo27qv7tTPwLzOGD0ng70eyqaL/gd+Kdfzq58mvW2wk46VT09iDA79V6/Wwg9/qAvD5+WZM/eFRjbf9iefrYkWk4/m59D8DEKtf39MOuXHOKRsnsuhHiI1osjMhdxMsiMWQ/cZcQ4zaBwqS9EiZSmJxYtgmsB024cGHCZEbgGmrCXZfB+O+5TWAjyC8OfSQpv5B3ytoWzzaBrgsTLiEWfjlFpNRcRJvAR4QdO3cTB0ARMolQippJ+Ci+SNqluDMJQUF5o2YSPopb/iBFzSTWU55JyKPU3MQtyCebXg7Vt0SiGyajNtC2yHT/yRZ/ZB6IVBv7T7asmPBGp/JPboJNGkH+0MxE6CNz8gt5uUv7HHp+R6ZbM9OoLjKnfSjMRaS+peCqR3mxd22uxkNg8W3QxUP7BIy6qG8luCd7aH3JbekXrJHXtrwnwSw4SKqyPPZImdztz+PY3tpHau9q7Hyfv4zjXdABRaGx2rv5ffEyjWE8bzwRpFyN1a84vu2+fRTQhxYL07jbe2j8XEqk/x8GJRF77LJ0xO888oAjDzjygCOnhMh930p8AUfY+1uiOCAfPzdAihiABfn5Tu0VgPneZxTk51HAwVvbmLp4rOfnr1/oI+aAMaeUKUsBR6lpz74e+jO72XmwjTcWIGuxdpivLbYPHJ3sPCA6R2e2xpuDk2OTXWyyMpq6sI/hx2YXmugrNvRX4nXZ0rcXdt8AJnkjDQkbLkrfZlG65Cq0nO5AylajMrfK88ReYV7INyEK3TUKmYBM9gAqyiu9FMhsNpMejqQ+fuqOUt/GWdVKGxJ+7P0QaIhOnuFTqdl5nJgNyjayLBnm13t+cQXiZwBhpp5KdSGU+qjjJjTz51M3YZaFB1W3bmuXnJtZDn93jAjy10ZKx2/l7Sg5hEm+8zc5IHMIN0G44ihEAY/PebnuMAVBogAKvKPiBqQ9gJB2oAF4MuSv+pz5qtUShRlAG4FjV/qU+oQXRnUwpp5rXFbfmnZ0YB/ZlIgvLmNfLQr8BhyDPqHmldaGtIFBs1ZTAh5xeqZif7tEmYXy/Wf45W6PYB0H/vk3 + + + 7VndbtowFL6ftHewcrVJNAl0W6sOWpUytkr9E2Ftb73EDRbGRrYz2r3aLvZIe4WdhITfQNOWBLYhVaDaJ/6+c853bJPz++ev6tF9j6HvRCoqeM0om7aBCHeFR7lfMwJ9t7NvHB2+flW97bF2h/QIAnuuDu4VrRkdrfsHljUYDMzBrimkb1Vsu2zdnp85LtjiHcqVxtwlBoqevcA9UjOaLCBcfyH32Bc8nrlOCFSAAMAhVK0HlHlEtohPlZZYw7SKZmAOyDj6gZEUGxSPtR/6gGXET4zXa2CNEbA/0JFBspLTIUQbz3NuhAEoV1L0idQPDtEaQvhZiqCvJgyG5NOsUB0r4l1CDK6wF4b/zU75Y/L3tgSz1G1Sxoyp1eYh1cx8KiJK/q8ZbcKIpF3zhvITwbUUTJlfT80z6nf0NVUBZp8YZIhrsyHxoC4kBNFA1xiyCLnETEF2rdVgtrB3g2loW8cyQY1HTrlHXayFdOgPMsIv23YJld/NM6haj4Sl6gAHF9ZLj9fQc0djTRJDNDFWM9K4ptFIh6laC1TwRKk0yB0OmG5CEEvnWHaJbApJTgQTck4nyx0O62XkaezPsIbSktUSQkME1uZ3EUUwLf46drvDuCbaC5X3fhc+9vdXVgEpVXcR9L4ReXkXgaux8leGOZaxQ/pYhjWWYI8GbqinOyPsFH9zr7cUlv+m7CAjId7Y39HOl2Ql/s5fjQ2h1Rnly7g0on2ABmNhfli9OJ62N2UivtVOztoJebTAcgmXUw5TUYFLHY8dc5+NT/fKnr0hYnL6lHMit3paq56y8AjCXCT6SbkY5h+Gygi/LTFXcFgt0EfBOg43xOUVuRXxBoq4ePQN1rBD/NCGeFsh/xVCzi6lAiuqXNkAJYe3iq2I1y7iR66o8Xfuv8Ez3ZbhAjrzW6u8VySDGfBKivuFl1ETh69K/+NCeo5qCtVtBtU893Wx0FjH2VePxiCadLs+ZIp705tLxX5XQsnHOs7IzTur8yCSNV+XgX5RvgrfhDI6Vvw+dOy64eklZA+z1N7Ryl7K5uvrXEZn+mpVa6K7Nx6NOnsq7Oy1CJvqIEbTsDPNW6A4scsTPtn8MV7WLllAY7KnOVx4AiVu+2RAXtBVm6QAiVkYpyg5i1qtwz6ttaBRGz0aNXcP/wA= + + + 7Vxfc9o4EH+/mX4Hj5/uZlJD2+v1kkI7hZSGmZIwgaZ9VWEDmsiSR5JD0q92D/eR7ivcWsb8cczVKTX2gYaX2F5p//x2V+uVo3/++rvx9s5nzi1IRQVvus+8uusAH4kx5ZOmG+rrp3+6b988+aXxxWfDKfjgID1XJ3eKNt2p1sFJrTabzbzZC0/ISe15vf6s9qX3cTBCWvKUcqUJH4HrmLHnxIem22EhcH0Gd2Qi+PzJVSLAcxQA2TlOoxVSNgZ5CROqtCQaHyvzBJ+hMAN9zyCDxpnfG94HyMudj1jOd0o0cVD6E20IkpkGUwDt/phyCx7IpS9FAFLfD0BrNOEHKcJArRDEwmdROS2iYHyBNugReQOyIyS0BRPSXRuOEwyAwUgLqVIP4rkjxRMK5z1D43IdG2OIdyW98T5T3hZcS8GU96mLl9+IHB+/uqIwc51amlstm12jtkGPRyr7jmmQHKG7hQ5l7GgAEwGfusfeyw7KeNQn48gVf/3jtfn99khjXFEVEkSY6KVNVu413Vj5PpnAGRB0j7nBdm+HB4qlyLP1SxE5yXU22JdkPNfPQyPQr5RRfe86VwQjsumiszESoDhZyn9Hmm1hsMavivG9rvoMbCR8iILCQlEuFG3hBwyida0cNKqZncv20cpapWx3uQhMmdYKtRa860cy7CCcsYb5SCdTHRspscYQ7rQR4RKYqQwXAW7utuAaC6yIqIQwH1LNYK9Xu/83JmUnGItQDoTKTnbpVSBJ+7+/Nr+C0v7xK9TbJ3z8TgI5SKXLDs5qmKBs7/9ek6KYsr2rwffec/KVQUtIrH3OMIWxKI0t8tRQhhnm2J5fXk6Fp8F21HRicY1VQvWQAv4IryeUo/fX0fvrD73fOkJRjtAio5vYDUr3ghf1PshRVM0WpqN3SlVk/szX8v1QtkM5VdODUXctkR2AvudYNpcO7qK7FafN4uI1PbOZoj2lbLwYubYN02ZEqeSRm+xcmLs4rZlyLvIPbkFlrAS1bJX2C5LVrGJBqQgo60WcRaUaqCwztIUkLyQ9Qnn0HryLwn+9VzXwhdBTHNUTY1gU4+eCl1GMF+o6xr776jhlvEFW2JGKXhn22pcO3HcKLvWs6+yv6xT64raXjtOXoPDPTN/5eV2vnggVnIqZhSUnLENJuAqIRGULhmbRxLHIVAGZ7O6pxaYK2Gxo9VpwcoFj1oCLW5DFQ7NgZbHJh03BgZO1Z2CRyYXMGbCgO9r0HeKWuESTl7X3uiPFyv7OZndqlv0tTfyFz9zYS2GM4oMpCR6r/VrEpwJ+ziU26l5rmpq+9H1l+2XM0sC7a8Zb1A8G9bXu5+5xL7JIXykDbYVenT5dGhbbp6sELBmvtBaZ/MgUmsnWunQ2l1UnaB4CY2MmPzCFxkx6O8hGTEKTRbCcp1FbOfRjedcc+KGiAz+Sf3JbZd3A6vYhhTMvfv/zJA0cGb/gulsevLFBhtVzTuKZV9icwjUJmd6ONaKx0TgGkU3Hrhiahb3Th7aYoeaglzf/Ag== + + + 7VzNcts2EL53pu/A4ameUfTjtJ3UlpKxZMvWTGxrLMXOFRHXIiYgwAEhS+qpT5GXyaFv1L5CQZCUKIqK6WgoqApGFxN/i91vd7HAwvj369/NdzOPWE/AA8xoy25U67YFdMQcTMcteyIeX72x3739+afmR48MXfDAku1pcDILcMt2hfBParXpdFqdvq4yPq4d1+uN2sfr94ORbIteYRoIREdgW6rvDfKgZXfJBKi4ghkaMxrX3CcTOJYTkOQsq9meYOIAv4MxDgRHQlYHqkbWyckMxJxAThsrLhvOfUnLjnssxztHAlly9idCNUhGGrgAwv4+5hY0JJU+Zz5wMR+AEFKEl5xN/CDVIJp8XiurjQJwbqUMrhH/DLzLOHQYYdxe6S4HGACBkWA8yFREY4eMJy2sCyKFS0UkjKEs5fhz9QHTDqOCMxJUP/Tk55+IO2fA2T2GqW3VsvRq+QSbtQ2cvJDdAYwZfOj9Uf2tK2dVOSMCOJVYPkEXE1LpIydUxl9+P1W/oxeK4x4HEyQxRmIplVRZy47Y76MxXAGSChKLzMghkkO1FzwAGTEPwiojlYVUOszzCYQuR49gLgHxBxcL6HmSfuXWVx6yPRGCUVW0JorMePkSyTSyku+N7uM9HrsiklkinCHMhJrCHRDllG3rHkmv37JVaRsepW8LG+VJ7ZlZbgvoEAsC2mzcYPIcJrr9jUGoAEK6fd8uQLpDTsKwFAX+hAkW8wUkMjIjyJfT0QDGXq3PBop9CgqScOjXU/U7ysZL5YRHkmsPUeeMA/oBWdZtgfsgAN16/9yWuRyn1BPgVS8o+kSgzbh0BFdyVSfhyr5wTkM+yRHH9vSKUirdA3bCIxASbTs0BNQZ4Cvye4yptIW6tIX6+nbQKEJZitDFFAdupAja9eB1vQ98FG7xylT36jkOQgxyI4/D4DeNqkZ2FzFeZF5lcpkdWw3ScTFxFn1Xjo87BAVBUmUnJ66qtGVHQ8aT/s6j8xyfUctn6rBAWV1ZDCr7gcoNzIQxlJc6a0xzI/ESopHVM6WBx5hwZa9r5sAiQrhhVEeEUKrqKPkemuIMOaKBj7hktoyd3BKQ5dJukNkHZDaEmQacQuAYf7uTAMrozuHqTsk7ooNUnZLXhPytuMGmEDZXQPzeKL4ZUdnuhlWBrBDxdR2ErTBaHmO6kx67Y1N3amMn2Zzw9t+Q+Re67sVoYFK3ButhWbc2m/Aqg07kZxLDM6t5IS26JHPfDa9CNd4sboCqhN9p46gSLgtrCcHj02NZWz9KNW+ogl1mCKPLW7Hm/fPXlzLygT9s/nGTSR1sam4DwxqzdOYumMZ/H4jUIQ5plsu8CpAHLvJfGiWvrC2ZpSUz/GEzG1PRxOmuvEleLkA3s+Y2j7bVNJWr060Fpal8apuvT+X7HAL5Z+kHhtdsEsA5m5rT3KJaGArs9kkq4k6gCSkZaIpBU6LNrCZejdHsk9HkYGOspjg2JVpNKng0JrNPJpMFxthLcWBKTuc+e3xjYCoEU4lubRNExsftk4/7JkrG4RVHqeSb47vLef0Pr5GvHehkXg5q1lLvFy1L1dtFQfh2UfJoQJp08w456y2s+Ozpm48CyZ4RXvbWbwhtmEX60aZo7BShc3hEEyK2JS4R2SgghcqmV6RUm4XMs29Qqa7q3aq3/wE= + + + pVNNTwIxEL2b+B+a3tkCXgxZIEFETfwKi8K1YQdo7LabdlbAv+bBn+RfcFgW+ZD1oNe+92bevJl+vn+E7UWi2Ss4r6xp8lpQ5QzM2MbKTJs8w0nlnLdbpyfhKNGDGSTAiG98Y+FVk88Q04YQ8/k8mJ8F1k1FvVqtidHdbTQmrqwo41GaMXCWa+9lAk3e0xkYvIaFnFpTIM8bA3UyQO0YCzuZ0jG4PkyVRyeRYJ8jhJGZCJcajnBY8TZYptSLF4ptva5Eych9A3PCplI0A0D+t+G+e1CXR2dTcLiMAJEivHI2S/0OYW3+GIt1pIf4gTLowkRmGnvWIN+TkjgCDWO0zh8A67qroTcMdqkpWIPrIAb06tRLMFTmguo6q33Qtxb7Mi54nInDZuJ4t1CUjLAbhPg9iVDs7GP7mu/Cr3bRB7238xwmtz8ZrBiofNCnm4CUQ/UmXcz/kwslUmowT6XsKtcnLUpuOpfm/6D1BQ== + + + FluentHexagon + \ No newline at end of file diff --git a/Analysis/bin/x64/Debug/logs/2024-09-21.log b/Analysis/bin/x64/Debug/logs/2024-09-21.log new file mode 100644 index 0000000..9a13cb5 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-09-21.log @@ -0,0 +1,48 @@ +2024-09-21 17:00:55.9019 [INFO] : --软件Program Main函数开始执行-- +2024-09-21 17:00:55.9250 [INFO] : 加载配置文件——>开始 +2024-09-21 17:00:55.9461 [INFO] : 加载配置文件——>完成 +2024-09-21 17:00:55.9461 [INFO] : Log in using the CLMS authorization. +2024-09-21 17:00:59.7480 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-21 17:01:01.2389 [INFO] : 启动PLC写线程! +2024-09-21 17:01:01.2389 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-21 17:01:01.2389 [INFO] : 连接PLC.... +2024-09-21 17:01:01.2389 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-21 17:01:01.2389 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-21 17:01:02.1187 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:01:02.2865 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-21 17:01:02.4696 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:01:03.6923 [ERROR] : PLC S7连接失败。 +2024-09-21 17:01:03.7065 [ERROR] : 连接PLC失败 +2024-09-21 17:02:51.3391 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-21 17:48:29.8048 [INFO] : --软件Program Main函数开始执行-- +2024-09-21 17:48:29.8244 [INFO] : 加载配置文件——>开始 +2024-09-21 17:48:29.8454 [INFO] : 加载配置文件——>完成 +2024-09-21 17:48:29.8454 [INFO] : Log in using the CLMS authorization. +2024-09-21 17:48:32.2503 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-21 17:48:32.9998 [INFO] : 启动PLC写线程! +2024-09-21 17:48:32.9998 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-21 17:48:32.9998 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-21 17:48:32.9998 [INFO] : 连接PLC.... +2024-09-21 17:48:32.9998 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-21 17:48:33.6655 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:48:33.8172 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-21 17:48:34.0023 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:48:35.0265 [ERROR] : PLC S7连接失败。 +2024-09-21 17:48:35.0265 [ERROR] : 连接PLC失败 +2024-09-21 17:51:57.4352 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-21 17:52:26.0157 [INFO] : --软件Program Main函数开始执行-- +2024-09-21 17:52:26.0316 [INFO] : 加载配置文件——>开始 +2024-09-21 17:52:26.0486 [INFO] : 加载配置文件——>完成 +2024-09-21 17:52:26.0486 [INFO] : Log in using the CLMS authorization. +2024-09-21 17:52:28.6580 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-21 17:52:29.8033 [INFO] : 启动PLC写线程! +2024-09-21 17:52:29.8033 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-21 17:52:29.8043 [INFO] : 连接PLC.... +2024-09-21 17:52:29.8043 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-21 17:52:29.8043 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-21 17:52:30.4382 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:52:30.5932 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-21 17:52:30.7444 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:52:31.8313 [ERROR] : PLC S7连接失败。 +2024-09-21 17:52:31.8313 [ERROR] : 连接PLC失败 +2024-09-21 17:54:17.2184 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-09-23.log b/Analysis/bin/x64/Debug/logs/2024-09-23.log new file mode 100644 index 0000000..e94d269 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-09-23.log @@ -0,0 +1,52 @@ +2024-09-23 08:58:35.8137 [INFO] : --软件Program Main函数开始执行-- +2024-09-23 08:58:35.8137 [INFO] : 加载配置文件——>开始 +2024-09-23 08:58:35.8362 [INFO] : 加载配置文件——>完成 +2024-09-23 08:58:35.8362 [INFO] : Log in using the CLMS authorization. +2024-09-23 08:58:37.5700 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-23 08:58:38.3574 [INFO] : 启动PLC写线程! +2024-09-23 08:58:38.3574 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-23 08:58:38.3574 [INFO] : 连接PLC.... +2024-09-23 08:58:38.3574 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-23 08:58:38.3574 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-23 08:58:38.8978 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 08:58:38.9786 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-23 08:58:39.0958 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 08:58:40.4005 [ERROR] : PLC S7连接失败。 +2024-09-23 08:58:40.4005 [ERROR] : 连接PLC失败 +2024-09-23 08:58:48.1574 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 08:58:48.7524 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 08:58:49.0584 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 09:01:45.3858 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-23 09:01:49.8169 [INFO] : --软件Program Main函数开始执行-- +2024-09-23 09:01:49.8169 [INFO] : 加载配置文件——>开始 +2024-09-23 09:01:49.8309 [INFO] : 加载配置文件——>完成 +2024-09-23 09:01:49.8309 [INFO] : Log in using the CLMS authorization. +2024-09-23 09:01:51.3166 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-23 09:01:51.7625 [INFO] : 启动PLC写线程! +2024-09-23 09:01:51.7625 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-23 09:01:51.7625 [INFO] : 连接PLC.... +2024-09-23 09:01:51.7625 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-23 09:01:51.7625 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-23 09:01:52.3728 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 09:01:52.4631 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-23 09:01:52.5773 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 09:01:53.8034 [ERROR] : PLC S7连接失败。 +2024-09-23 09:01:53.8034 [ERROR] : 连接PLC失败 +2024-09-23 09:02:03.0005 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-23 13:40:50.7856 [INFO] : --软件Program Main函数开始执行-- +2024-09-23 13:40:50.7976 [INFO] : 加载配置文件——>开始 +2024-09-23 13:40:50.8095 [INFO] : 加载配置文件——>完成 +2024-09-23 13:40:50.8095 [INFO] : Log in using the CLMS authorization. +2024-09-23 13:40:52.6730 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-23 13:40:53.3877 [INFO] : 启动PLC写线程! +2024-09-23 13:40:53.3877 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-23 13:40:53.3877 [INFO] : 连接PLC.... +2024-09-23 13:40:53.3877 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-23 13:40:53.3877 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-23 13:40:53.9235 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 13:40:54.0187 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-23 13:40:54.1578 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 13:40:55.4907 [ERROR] : PLC S7连接失败。 +2024-09-23 13:40:55.4907 [ERROR] : 连接PLC失败 +2024-09-23 13:40:59.5166 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 13:41:15.9000 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-09-27.log b/Analysis/bin/x64/Debug/logs/2024-09-27.log new file mode 100644 index 0000000..5686626 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-09-27.log @@ -0,0 +1,1494 @@ +2024-09-27 09:57:25.9808 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 09:57:25.9808 [INFO] : 加载配置文件——>开始 +2024-09-27 09:57:26.0052 [INFO] : 加载配置文件——>完成 +2024-09-27 09:57:26.0052 [INFO] : Log in using the CLMS authorization. +2024-09-27 09:57:28.4030 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 09:57:29.5607 [INFO] : 启动PLC写线程! +2024-09-27 09:57:29.5607 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 09:57:29.5607 [INFO] : 连接PLC.... +2024-09-27 09:57:29.5607 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 09:57:29.5607 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 09:57:30.1513 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 09:57:30.3503 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 09:57:30.4862 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 09:57:31.6407 [ERROR] : PLC S7连接失败。 +2024-09-27 09:57:31.6407 [ERROR] : 连接PLC失败 +2024-09-27 10:09:58.9966 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 10:58:01.1809 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 10:58:01.1974 [INFO] : 加载配置文件——>开始 +2024-09-27 10:58:01.2175 [INFO] : 加载配置文件——>完成 +2024-09-27 10:58:01.2196 [INFO] : Log in using the CLMS authorization. +2024-09-27 10:58:03.4360 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 10:58:04.2843 [INFO] : 启动PLC写线程! +2024-09-27 10:58:04.2843 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 10:58:04.2843 [INFO] : 连接PLC.... +2024-09-27 10:58:04.2843 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 10:58:04.2843 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 10:58:04.9036 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 10:58:05.1041 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 10:58:05.2593 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 10:58:06.3002 [ERROR] : PLC S7连接失败。 +2024-09-27 10:58:06.3002 [ERROR] : 连接PLC失败 +2024-09-27 10:59:44.8132 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 10:59:49.7419 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 10:59:49.7544 [INFO] : 加载配置文件——>开始 +2024-09-27 10:59:49.7544 [INFO] : 加载配置文件——>完成 +2024-09-27 10:59:49.7544 [INFO] : Log in using the CLMS authorization. +2024-09-27 10:59:51.4852 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 10:59:52.1391 [INFO] : 启动PLC写线程! +2024-09-27 10:59:52.1391 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 10:59:52.1391 [INFO] : 连接PLC.... +2024-09-27 10:59:52.1391 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 10:59:52.1391 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 10:59:52.7591 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 10:59:52.9505 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 10:59:53.1196 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 10:59:54.1537 [ERROR] : PLC S7连接失败。 +2024-09-27 10:59:54.1537 [ERROR] : 连接PLC失败 +2024-09-27 11:10:37.7048 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 11:29:50.3128 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 11:29:50.3296 [INFO] : 加载配置文件——>开始 +2024-09-27 11:29:50.3475 [INFO] : 加载配置文件——>完成 +2024-09-27 11:29:50.3475 [INFO] : Log in using the CLMS authorization. +2024-09-27 11:29:52.6833 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 11:29:53.9108 [INFO] : 启动PLC写线程! +2024-09-27 11:29:53.9108 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 11:29:53.9108 [INFO] : 连接PLC.... +2024-09-27 11:29:53.9108 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 11:29:53.9108 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 11:29:54.4845 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:29:54.7014 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 11:29:54.8315 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:29:55.9291 [ERROR] : PLC S7连接失败。 +2024-09-27 11:29:55.9291 [ERROR] : 连接PLC失败 +2024-09-27 11:31:57.0780 [INFO] : 启动PLC写线程! +2024-09-27 11:31:57.0780 [INFO] : 连接PLC.... +2024-09-27 11:31:57.0780 [INFO] : PLC S7连接成功。 +2024-09-27 11:31:57.0890 [INFO] : 连接PLC成功 +2024-09-27 11:31:57.4230 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:57.7340 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:58.0457 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:58.3539 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:58.6687 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:58.9832 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:59.2927 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:59.6054 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:59.9194 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:00.2303 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:00.5435 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:00.8587 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:01.1687 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:01.4818 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:01.7945 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:02.1081 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:02.4168 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:02.7306 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:03.0456 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:03.3575 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:03.6702 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:03.9800 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:04.2941 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:04.6051 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:04.9201 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:05.2311 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:05.5431 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:05.8556 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:06.1681 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:06.4842 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:06.7927 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:07.1052 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:07.4202 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:07.7308 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:08.0426 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:08.3558 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:08.6690 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:08.9828 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:09.2944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:09.6076 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:09.9187 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:10.2298 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:10.5434 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:10.8569 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:11.1683 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:11.4809 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:11.7934 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:12.1085 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:12.4197 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:12.7319 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:13.0452 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:13.3548 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:13.6709 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:13.9815 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:14.2944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:14.6075 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:14.9201 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:15.2313 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:15.5433 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:15.8574 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:16.1704 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:16.4820 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:16.7938 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:17.1070 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:17.4210 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:17.7334 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:18.0434 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:18.3561 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:18.6673 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:18.9805 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:19.2932 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:19.6092 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:19.9186 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:20.2305 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:20.5465 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:20.8560 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:21.1687 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:21.4815 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:21.7948 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:22.1087 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:22.4187 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:22.7306 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:23.0429 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:23.3549 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:23.6705 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:23.9834 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:24.2934 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:24.6078 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:24.9176 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:25.2330 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:25.5461 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:25.8563 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:26.1693 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:26.4804 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:26.7929 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:27.1053 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:27.4184 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:27.7330 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:28.0462 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:28.3592 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:28.6670 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:28.9803 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:29.2950 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:29.6066 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:29.9175 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:30.2326 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:30.5448 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:30.8570 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:31.1695 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:31.4822 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:31.7924 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:32.1059 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:32.4183 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:32.7356 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:33.0459 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:33.3590 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:33.6681 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:33.9801 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:34.2930 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:34.6049 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:34.9206 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:35.2310 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:35.5464 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:35.8582 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:36.1675 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:36.4832 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:36.7936 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:37.1082 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:37.4189 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:37.7311 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:38.0416 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:38.3544 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:38.6699 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:38.9798 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:39.2939 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:39.6070 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:39.9177 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:40.2327 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:40.5439 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:40.8559 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:41.1677 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:41.4849 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:41.7934 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:42.1053 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:42.4182 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:42.7317 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:43.0472 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:43.3587 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:43.6686 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:43.9822 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:44.2955 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:44.6050 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:44.9174 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:45.2301 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:45.5439 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:45.8564 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:46.1690 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:46.4801 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:46.7950 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:47.1047 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:47.4178 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:47.7336 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:48.0434 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:48.3578 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:48.6688 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:48.9810 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:49.2936 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:49.6063 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:49.9193 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:50.2328 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:50.5441 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:50.8556 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:51.1680 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:51.4803 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:51.7937 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:52.1071 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:52.4207 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:52.7314 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:53.0439 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:53.3557 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:53.6703 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:53.9821 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:54.2937 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:54.6075 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:54.9184 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:55.2297 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:55.5425 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:55.8548 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:56.1673 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:56.4799 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:56.7944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:57.1066 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:57.4194 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:57.7326 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:58.0453 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:58.3559 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:58.6686 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:58.9817 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:59.2921 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:59.6060 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:59.9184 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:00.2303 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:00.5422 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:00.8552 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:01.1686 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:01.4799 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:01.7940 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:02.1058 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:02.4177 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:02.7298 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:03.0433 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:03.3557 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:03.6707 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:03.9818 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:04.2932 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:04.6052 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:04.9183 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:05.2315 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:05.5441 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:05.8558 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:06.1692 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:06.4826 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:06.7931 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:07.1060 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:07.4193 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:07.7316 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:08.0433 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:08.3573 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:08.6694 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:08.9801 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:09.2953 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:09.6051 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:09.9204 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:10.2316 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:10.5452 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:10.8548 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:11.1685 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:11.4809 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:11.7929 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:12.1068 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:12.4175 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:12.7319 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:13.0454 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:13.3548 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:13.6677 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:13.9825 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:14.2943 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:14.6066 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:14.9180 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:15.2325 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:15.5438 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:15.8581 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:16.1670 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:16.4821 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:16.7928 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:17.1049 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:17.4181 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:17.7291 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:18.0447 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:18.3562 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:18.6717 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:18.9843 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:19.2937 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:19.6062 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:19.9173 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:20.2300 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:20.5427 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:20.8567 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:21.1682 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:21.4812 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:21.7926 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:22.1060 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:22.4180 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:22.7333 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:23.0445 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:23.3551 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:23.6680 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:23.9824 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:24.2939 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:24.6066 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:24.9187 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:25.2313 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:25.5422 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:25.8565 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:26.1693 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:26.4806 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:26.7920 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:27.1046 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:27.4216 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:27.7303 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:28.0448 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:28.3549 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:28.6673 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:28.9808 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:29.2933 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:29.6085 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:29.9185 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:30.2322 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:30.5437 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:30.8560 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:31.1674 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:31.4823 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:31.7930 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:32.1051 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:32.4186 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:32.7323 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:33.0433 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:33.3567 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:33.6712 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:33.9854 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:34.2955 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:34.6056 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:34.9172 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:35.2308 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:35.5421 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:35.8564 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:36.1693 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:36.4826 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:36.7949 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:37.1053 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:37.4195 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:37.7323 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:38.0425 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:38.3572 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:38.6682 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:38.9813 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:39.2956 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:39.6057 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:39.9179 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:40.2325 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:40.5466 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:40.8564 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:41.1672 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:41.4818 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:41.7919 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:42.1061 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:42.4213 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:42.7311 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:43.0421 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:43.3544 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:43.6686 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:43.9802 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:44.2959 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:44.6049 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:44.9216 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:45.2300 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:45.5421 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:45.8578 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:46.1675 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:46.4818 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:46.7931 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:47.1086 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:47.4175 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:47.7324 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:48.0423 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:48.3565 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:48.6700 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:48.9807 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:49.2944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:49.6045 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:49.9174 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:50.2304 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:50.5459 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:50.8557 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:51.1676 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:51.4824 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:51.7930 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:52.1045 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:52.4168 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:52.7328 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:53.0437 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:53.3565 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:53.6702 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:53.9802 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:54.2928 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:54.6064 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:54.9177 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:55.2297 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:55.5421 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:55.8559 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:56.1699 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:56.4833 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:56.7931 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:57.1060 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:57.4202 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:57.7297 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:58.0447 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:58.3554 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:58.6680 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:58.9807 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:59.2944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:59.6070 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:59.9194 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:00.2332 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:00.5418 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:00.8560 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:01.1670 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:01.4817 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:01.7945 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:02.1064 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:02.4182 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:02.7337 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:03.0461 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:03.3568 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:03.6687 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:03.9807 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:04.2920 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:04.6054 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:04.9205 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:05.2315 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:05.5456 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:05.7753 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 11:34:10.6407 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 11:34:10.6548 [INFO] : 加载配置文件——>开始 +2024-09-27 11:34:10.6548 [INFO] : 加载配置文件——>完成 +2024-09-27 11:34:10.6548 [INFO] : Log in using the CLMS authorization. +2024-09-27 11:34:12.4358 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 11:34:13.2403 [INFO] : 启动PLC写线程! +2024-09-27 11:34:13.2403 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 11:34:13.2403 [INFO] : 连接PLC.... +2024-09-27 11:34:13.2403 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 11:34:13.2403 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 11:34:13.2569 [INFO] : PLC S7连接成功。 +2024-09-27 11:34:13.3950 [INFO] : 连接PLC成功 +2024-09-27 11:34:13.8105 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:34:14.0092 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 11:34:14.1560 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:14.2022 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:34:14.4640 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:14.7781 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:15.0902 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:15.4036 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:15.7137 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:16.0252 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:16.3524 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 11:37:55.4831 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 11:37:55.5024 [INFO] : 加载配置文件——>开始 +2024-09-27 11:37:55.5082 [INFO] : 加载配置文件——>完成 +2024-09-27 11:37:55.5082 [INFO] : Log in using the CLMS authorization. +2024-09-27 11:37:58.0775 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 11:38:02.7190 [INFO] : 启动PLC写线程! +2024-09-27 11:38:02.7190 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 11:38:02.7190 [INFO] : 连接PLC.... +2024-09-27 11:38:02.7190 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 11:38:02.7190 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 11:38:02.7429 [INFO] : PLC S7连接成功。 +2024-09-27 11:38:02.9123 [INFO] : 连接PLC成功 +2024-09-27 11:38:03.2860 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:38:06.6803 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 11:38:12.1539 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:12.1812 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:38:12.4648 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:12.7780 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:13.0880 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:13.4020 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:13.7121 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:14.0272 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:14.3376 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:14.6516 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:14.9626 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:15.2741 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:15.5873 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:15.9019 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:16.2117 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:16.5243 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:16.8406 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:17.1494 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:17.4627 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:17.7754 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:18.0891 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:18.4009 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:18.7127 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:19.0284 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:19.3359 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:19.6513 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:19.9629 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:20.2777 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:20.5886 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:20.9022 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:21.2134 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:21.5270 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:21.8371 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:22.1514 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:22.4623 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:22.7774 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:23.0862 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:23.3999 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:23.7119 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:24.0266 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:24.3371 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:24.6511 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:24.9627 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:25.2761 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:25.5871 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:25.8988 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:26.2130 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:26.5270 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:26.8360 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:27.1516 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:27.4619 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:27.7771 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:28.0883 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:28.3985 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:28.7111 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:29.0257 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:29.3379 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:29.6499 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:29.9624 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:30.2754 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:30.5869 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:30.9022 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:31.2139 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:31.5248 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:31.8394 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:32.1512 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:32.4607 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:32.7748 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:33.0886 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:33.3998 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:33.7115 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:34.0271 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:34.3382 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:34.6487 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:34.9626 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:35.2754 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:35.5888 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:35.8994 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:36.2117 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:36.5282 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:36.8361 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:37.1530 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:37.4637 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:37.7752 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:38.0869 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:38.3984 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:38.7124 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:39.0248 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:39.3380 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:39.6482 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:39.9613 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:40.2748 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:40.5860 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:40.9005 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:41.2146 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:41.5246 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:41.8367 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:42.1505 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:42.4616 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:42.7760 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:43.0865 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:43.3998 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:43.7101 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:44.0233 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:44.3379 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:44.6498 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:44.9633 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:45.2785 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:45.5856 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:45.8990 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:46.2109 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:46.5251 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:46.8381 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:47.1483 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:47.4623 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:47.7764 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:48.0855 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:48.3999 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:48.7125 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:49.0233 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:49.3372 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:49.6496 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:49.9606 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:50.2728 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:50.5868 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:50.8985 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:51.2111 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:51.5265 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:51.8367 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:52.1507 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:52.4606 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:52.7737 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:53.0864 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:53.4027 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:53.7148 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:54.0261 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:54.3356 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:54.6498 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:54.9615 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:55.2753 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:55.5884 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:55.9010 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:56.2145 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:56.5268 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:56.8364 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:57.1490 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:57.4632 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:57.7728 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:58.0870 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:58.4004 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:58.7111 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:59.0228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:59.3378 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:59.6494 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:59.9627 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:00.2729 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:00.5879 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:00.8978 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:01.2102 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:01.5255 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:01.8377 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:02.1510 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:02.4605 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:02.7768 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:03.0857 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:03.3992 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:03.7104 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:04.0230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:04.3367 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:04.6517 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:04.9625 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:05.2730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:05.5898 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:05.8974 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:06.2114 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:06.5227 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:06.8372 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:07.1499 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:07.4600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:07.7754 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:08.0868 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:08.3994 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:08.7128 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:09.0223 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:09.3382 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:09.6515 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:09.9609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:10.2737 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:10.5877 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:10.8977 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:11.2118 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:11.5251 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:11.8356 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:12.1501 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:12.4617 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:12.7744 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:13.0850 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:13.3994 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:13.7124 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:14.0246 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:14.3373 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:14.6490 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:14.9603 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:15.2746 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:15.5853 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:15.9009 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:16.2100 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:16.5235 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:16.8364 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:17.1474 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:17.4602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:17.7746 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:18.0859 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:18.3982 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:18.7120 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:19.0225 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:19.3361 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:19.6488 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:19.9600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:20.2772 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:20.5867 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:20.8972 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:21.2111 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:21.5242 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:21.8359 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:22.1483 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:22.4631 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:22.7742 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:23.0862 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:23.3996 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:23.7134 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:24.0246 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:24.3357 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:24.6502 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:24.9609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:25.2746 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:25.5860 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:25.9001 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:26.2131 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:26.5226 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:26.8378 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:27.1465 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:27.4609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:27.7733 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:28.0853 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:28.3983 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:28.7111 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:29.0275 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:29.3344 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:29.6484 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:29.9637 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:30.2722 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:30.5857 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:30.8976 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:31.2118 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:31.5241 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:31.8378 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:32.1495 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:32.4608 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:32.7730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:33.0855 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:33.3985 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:33.7122 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:34.0233 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:34.3344 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:34.6497 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:34.9610 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:35.2733 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:35.5884 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:35.8984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:36.2103 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:36.5224 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:36.8373 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:37.1480 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:37.4621 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:37.7753 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:38.0869 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:38.3980 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:38.7104 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:39.0235 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:39.3366 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:39.6485 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:39.9622 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:40.2723 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:40.5858 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:40.8984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:41.2106 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:41.5227 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:41.8354 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:42.1512 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:42.4602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:42.7750 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:43.0846 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:43.3986 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:43.7094 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:44.0235 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:44.3364 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:44.6471 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:44.9626 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:45.2747 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:45.5848 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:45.8981 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:46.2102 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:46.5236 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:46.8359 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:47.1472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:47.4599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:47.7761 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:48.0853 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:48.3976 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:48.7135 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:49.0228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:49.3353 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:49.6472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:49.9609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:50.2747 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:50.5858 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:50.8985 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:51.2092 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:51.5232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:51.8340 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:52.1490 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:52.4610 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:52.7728 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:53.0871 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:53.3993 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:53.7115 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:54.0218 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:54.3351 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:54.6475 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:54.9596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:55.2762 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:55.5840 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:55.8985 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:56.2091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:56.5217 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:56.8355 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:57.1466 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:57.4609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:57.7727 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:58.0859 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:58.3984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:58.7098 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:59.0236 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:59.3351 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:59.6494 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:59.9592 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:00.2725 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:00.5845 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:00.8975 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:01.2093 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:01.5242 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:01.8367 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:02.1479 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:02.4601 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:02.7721 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:03.0850 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:03.3970 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:03.7119 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:04.0231 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:04.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:04.6472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:04.9590 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:05.2722 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:05.5875 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:05.8964 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:06.2105 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:06.5249 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:06.8360 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:07.1465 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:07.4602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:07.7747 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:08.0843 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:08.3982 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:08.7089 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:09.0226 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:09.3371 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:09.6470 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:09.9596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:10.2728 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:10.5882 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:10.8981 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:11.2088 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:11.5234 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:11.8350 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:12.1473 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:12.4587 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:12.7741 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:13.0863 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:13.3984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:13.7094 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:14.0228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:14.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:14.6502 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:14.9620 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:15.2742 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:15.5842 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:15.8977 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:16.2096 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:16.5230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:16.8343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:17.1473 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:17.4597 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:17.7714 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:18.0834 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:18.3986 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:18.7121 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:19.0228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:19.3369 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:19.6467 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:19.9601 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:20.2718 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:20.5850 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:20.8985 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:21.2088 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:21.5230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:21.8361 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:22.1479 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:22.4595 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:22.7738 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:23.0843 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:23.3989 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:23.7100 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:24.0230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:24.3338 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:24.6460 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:24.9587 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:25.2727 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:25.5849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:25.9008 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:26.2085 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:26.5225 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:26.8353 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:27.1487 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:27.4592 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:27.7730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:28.0869 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:28.3960 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:28.7084 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:29.0221 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:29.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:29.6460 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:29.9599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:30.2750 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:30.5847 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:30.8988 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:31.2084 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:31.5231 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:31.8375 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:32.1489 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:32.4614 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:32.7734 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:33.0857 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:33.3980 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:33.7095 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:34.0221 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:34.3342 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:34.6495 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:34.9600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:35.2722 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:35.5864 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:35.8981 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:36.2098 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:36.5220 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:36.8367 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:37.1484 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:37.4619 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:37.7730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:38.0849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:38.3959 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:38.7081 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:39.0232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:39.3345 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:39.6491 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:39.9593 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:40.2735 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:40.5860 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:40.8977 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:41.2106 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:41.5219 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:41.8340 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:42.1460 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:42.4592 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:42.7732 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:43.0858 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:43.3986 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:43.7089 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:44.0216 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:44.3344 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:44.6458 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:44.9584 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:45.2730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:45.5843 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:45.8958 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:46.2086 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:46.5207 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:46.8333 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:47.1496 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:47.4599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:47.7732 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:48.0837 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:48.3976 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:48.7108 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:49.0213 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:49.3348 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:49.6487 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:49.9602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:50.2712 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:50.5839 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:50.8963 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:51.2094 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:51.5232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:51.8363 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:52.1491 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:52.4603 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:52.7724 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:53.0851 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:53.3953 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:53.7080 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:54.0227 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:54.3352 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:54.6489 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:54.9574 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:55.2723 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:55.5863 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:55.8973 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:56.2079 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:56.5223 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:56.8343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:57.1461 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:57.4587 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:57.7717 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:58.0849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:58.3964 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:58.7101 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:59.0203 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:59.3348 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:59.6451 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:59.9593 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:00.2709 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:00.5849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:00.9005 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:01.2112 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:01.5228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:01.8335 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:02.1478 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:02.4599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:02.7737 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:03.0839 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:03.3980 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:03.7094 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:04.0200 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:04.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:04.6463 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:04.9612 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:05.2731 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:05.5839 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:05.8956 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:06.2091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:06.5228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:06.8330 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:07.1476 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:07.4612 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:07.7707 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:08.0837 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:08.3967 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:08.7112 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:09.0224 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:09.3360 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:09.6461 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:09.9600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:10.2705 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:10.5835 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:10.8974 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:11.2077 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:11.5232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:11.8347 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:12.1453 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:12.4605 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:12.7715 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:13.0856 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:13.3968 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:13.7079 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:14.0214 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:14.3335 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:14.6466 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:14.9580 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:15.2700 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:15.5836 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:15.8960 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:16.2106 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:16.5198 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:16.8326 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:17.1457 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:17.4580 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:17.7703 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:18.0841 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:18.3965 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:18.7110 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:19.0214 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:19.3322 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:19.6460 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:19.9566 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:20.2716 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:20.5862 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:20.8977 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:21.2093 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:21.5202 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:21.8338 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:22.1474 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:22.4574 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:22.7717 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:23.0842 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:23.3949 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:23.7090 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:24.0202 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:24.3326 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:24.6451 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:24.9596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:25.2700 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:25.5837 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:25.8965 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:26.2082 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:26.5224 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:26.8334 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:27.1502 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:27.4584 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:27.7727 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:28.0836 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:28.3968 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:28.7091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:29.0234 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:29.3345 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:29.6472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:29.9605 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:30.2708 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:30.5840 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:30.8947 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:31.2100 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:31.5234 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:31.8344 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:32.1447 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:32.4581 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:32.7718 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:33.0854 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:33.3955 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:33.7098 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:34.0221 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:34.3336 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:34.6446 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:34.9586 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:35.2716 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:35.5836 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:35.8984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:36.2086 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:36.5199 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:36.8348 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:37.1474 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:37.4589 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:37.7716 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:38.0838 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:38.3961 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:38.7091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:39.0212 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:39.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:39.6468 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:39.9581 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:40.2705 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:40.5825 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:40.8953 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:41.2086 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:41.5205 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:41.8327 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:42.1473 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:42.4600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:42.7720 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:43.0821 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:43.3947 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:43.7091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:44.0245 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:44.3321 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:44.6480 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:44.9603 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:45.2738 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:45.5826 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:45.8959 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:46.2085 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:46.5215 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:46.8359 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:47.1448 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:47.4586 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:47.7700 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:48.0851 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:48.3962 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:48.7105 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:49.0218 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:49.3335 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:49.6455 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:49.9582 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:50.2713 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:50.5833 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:50.8956 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:51.2091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:51.5213 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:51.8336 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:52.1469 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:52.4607 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:52.7707 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:53.0820 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:53.4003 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:53.7085 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:54.0203 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:54.3350 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:54.6467 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:54.9589 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:55.2734 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:55.5867 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:55.8966 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:56.2084 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:56.5193 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:56.8320 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:57.1481 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:57.4575 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:57.7729 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:58.0834 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:58.3950 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:58.7104 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:59.0201 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:59.3357 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:59.6464 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:59.9618 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:00.2725 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:00.5842 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:00.8974 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:01.2106 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:01.5211 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:01.8341 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:02.1491 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:02.4572 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:02.7708 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:03.0832 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:03.3942 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:03.7097 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:04.0205 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:04.3366 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:04.6447 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:04.9591 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:05.2731 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:05.5857 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:05.8949 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:06.2079 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:06.5225 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:06.8349 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:07.1469 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:07.4571 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:07.7706 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:08.0836 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:08.3991 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:08.7078 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:09.0200 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:09.3332 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:09.6477 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:09.9585 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:10.2717 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:10.5818 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:10.8979 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:11.2081 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:11.5202 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:11.8327 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:12.1447 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:12.4595 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:12.7693 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:13.0849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:13.3960 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:13.7080 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:14.0192 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:14.3350 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:14.6448 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:14.9599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:15.2728 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:15.5828 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:15.8975 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:16.2073 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:16.5220 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:16.8353 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:17.1444 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:17.4591 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:17.7730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:18.0824 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:18.3962 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:18.7085 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:19.0192 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:19.3327 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:19.6492 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:19.9584 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:20.2704 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:20.5862 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:20.8968 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:21.2066 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:21.5220 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:21.8355 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:22.1457 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:22.4596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:22.7710 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:23.0833 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:23.3978 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:23.7093 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:24.0210 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:24.3317 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:24.6481 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:24.9580 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:25.2720 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:25.5821 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:25.8961 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:26.2080 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:26.5214 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:26.8331 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:27.1444 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:27.4565 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:27.7713 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:28.0826 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:28.3962 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:28.7074 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:29.0205 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:29.3322 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:29.6476 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:29.9602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:30.2720 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:30.5853 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:30.8972 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:31.2081 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:31.5195 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:31.8324 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:32.1477 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:32.4580 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:32.7706 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:33.0831 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:33.3962 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:33.7079 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:34.0222 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:34.3335 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:34.6444 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:34.9619 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:35.2718 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:35.5828 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:35.8952 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:36.2082 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:36.5230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:36.8348 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:37.1468 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:37.4565 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:37.7705 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:38.0835 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:38.3973 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:38.7064 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:39.0196 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:39.3370 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:39.6454 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:39.9572 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:40.2721 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:40.5835 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:40.8966 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:41.2098 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:41.5237 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:41.8324 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:42.1462 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:42.4589 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:42.7700 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:43.0821 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:43.3944 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:43.7083 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:44.0215 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:44.3315 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:44.6458 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:44.9612 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:45.2721 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:45.5825 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:45.8958 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:46.2080 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:46.5193 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:46.8351 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:47.1473 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:47.4570 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:47.7695 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:48.0825 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:48.3958 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:48.7076 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:49.0211 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:49.3314 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:49.6454 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:49.9590 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:50.2721 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:50.5826 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:50.8953 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:51.2083 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:51.5194 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:51.8341 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:52.1465 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:52.4596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:52.7702 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:53.0840 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:53.3974 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:53.7069 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:54.0189 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:54.3331 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:54.6484 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:54.9573 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:55.2717 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:55.5827 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:55.8954 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:56.2070 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:56.5218 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:56.8336 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:57.1482 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:57.4586 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:57.7689 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:58.0812 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:58.3953 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:58.7067 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:59.0232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:59.3347 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:59.6450 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:59.9572 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:00.2696 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:00.5822 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:00.8973 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:01.2111 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:01.5199 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:01.8345 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:02.1472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:02.4579 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:02.7696 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:03.2643 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:03.5693 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:03.8782 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:04.1920 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:04.5077 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:04.8184 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:05.1303 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:05.4422 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:44:55.5553 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 13:27:12.9534 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 13:27:12.9534 [INFO] : 加载配置文件——>开始 +2024-09-27 13:27:12.9534 [INFO] : 加载配置文件——>完成 +2024-09-27 13:27:12.9534 [INFO] : Log in using the CLMS authorization. +2024-09-27 13:27:14.8742 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 13:27:15.3909 [INFO] : 启动PLC写线程! +2024-09-27 13:27:15.3909 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 13:27:15.3909 [INFO] : 连接PLC.... +2024-09-27 13:27:15.3909 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 13:27:15.3909 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 13:27:15.3909 [INFO] : PLC S7连接成功。 +2024-09-27 13:27:15.5325 [INFO] : 连接PLC成功 +2024-09-27 13:27:15.9305 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:27:16.0765 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 13:27:16.2083 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:37:15.6402 [INFO] : PLC心跳检测10分钟内未变化,断开PLC,进行PLC重连! +2024-09-27 13:37:15.6563 [INFO] : PLC断开,重连! +2024-09-27 13:37:15.6583 [INFO] : PLC S7连接成功。 +2024-09-27 13:37:16.6638 [INFO] : 重新连接PLC成功! +2024-09-27 13:41:11.0555 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 13:43:12.2093 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 13:43:12.2237 [INFO] : 加载配置文件——>开始 +2024-09-27 13:43:12.2384 [INFO] : 加载配置文件——>完成 +2024-09-27 13:43:12.2384 [INFO] : Log in using the CLMS authorization. +2024-09-27 13:43:14.2705 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 13:43:15.1350 [INFO] : 启动PLC写线程! +2024-09-27 13:43:15.1350 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 13:43:15.1350 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 13:43:15.1350 [INFO] : 连接PLC.... +2024-09-27 13:43:15.1350 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 13:43:15.2069 [INFO] : PLC S7连接成功。 +2024-09-27 13:43:15.2822 [INFO] : 连接PLC成功 +2024-09-27 13:43:15.6409 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:43:15.7991 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 13:43:15.9368 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:43:25.0367 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:43:39.0334 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-10-08.log b/Analysis/bin/x64/Debug/logs/2024-10-08.log new file mode 100644 index 0000000..b3777b6 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-08.log @@ -0,0 +1,16 @@ +2024-10-08 13:29:47.7936 [INFO] : --软件Program Main函数开始执行-- +2024-10-08 13:29:47.8050 [INFO] : 加载配置文件——>开始 +2024-10-08 13:29:47.8168 [INFO] : 加载配置文件——>完成 +2024-10-08 13:29:47.8168 [INFO] : Log in using the CLMS authorization. +2024-10-08 13:29:49.6682 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-08 13:29:50.4355 [INFO] : 启动PLC写线程! +2024-10-08 13:29:50.4355 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-08 13:29:50.4355 [INFO] : 连接PLC.... +2024-10-08 13:29:50.4355 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-08 13:29:50.4355 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-08 13:29:51.0390 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-08 13:29:51.1585 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-08 13:29:51.2848 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-08 13:29:52.4839 [ERROR] : PLC S7连接失败。 +2024-10-08 13:29:52.4839 [ERROR] : 连接PLC失败 +2024-10-08 13:30:24.7725 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-10-12.log b/Analysis/bin/x64/Debug/logs/2024-10-12.log new file mode 100644 index 0000000..61657c3 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-12.log @@ -0,0 +1,96 @@ +2024-10-12 13:51:47.9983 [INFO] : --软件Program Main函数开始执行-- +2024-10-12 13:51:48.0134 [INFO] : 加载配置文件——>开始 +2024-10-12 13:51:48.0134 [INFO] : 加载配置文件——>完成 +2024-10-12 13:51:48.0134 [INFO] : Log in using the CLMS authorization. +2024-10-12 13:51:49.8664 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-12 13:51:50.3342 [INFO] : 启动PLC写线程! +2024-10-12 13:51:50.3342 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-12 13:51:50.3342 [INFO] : 连接PLC.... +2024-10-12 13:51:50.3342 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-12 13:51:50.3342 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-12 13:51:50.9243 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-12 13:51:51.0839 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-12 13:51:51.2198 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-12 13:51:52.3946 [ERROR] : PLC S7连接失败。 +2024-10-12 13:51:52.3946 [ERROR] : 连接PLC失败 +2024-10-12 13:52:10.3443 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-12 15:32:37.1682 [INFO] : --软件Program Main函数开始执行-- +2024-10-12 15:32:37.1682 [INFO] : 加载配置文件——>开始 +2024-10-12 15:32:37.1862 [INFO] : 加载配置文件——>完成 +2024-10-12 15:32:37.1862 [INFO] : Log in using the CLMS authorization. +2024-10-12 15:32:38.8678 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-12 15:32:39.4205 [INFO] : 启动PLC写线程! +2024-10-12 15:32:39.4205 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-12 15:32:39.4205 [INFO] : 连接PLC.... +2024-10-12 15:32:39.4205 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-12 15:32:39.4205 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-12 15:32:39.9222 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-12 15:32:40.0866 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-12 15:32:40.2238 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-12 15:32:41.4787 [ERROR] : PLC S7连接失败。 +2024-10-12 15:32:41.4787 [ERROR] : 连接PLC失败 +2024-10-12 15:33:25.4024 [INFO] : 存在EH3 CSV文件,开始解析: +2024-10-12 15:33:25.4024 [INFO] : Copy D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-12 15:33:25.4024 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-12 15:33:25.4024 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23084 +2024-10-12 15:33:25.4024 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-12 15:33:25.4024 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-21 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-21 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-22 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-22 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-14 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-14 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4654 [ERROR] : EH3 L-15 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4654 [ERROR] : EH3 L-15 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4654 [ERROR] : EH3 L-16 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4654 [ERROR] : EH3 L-16 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4826 [ERROR] : EH3 L-18 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4826 [ERROR] : EH3 L-18 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6030 [ERROR] : EH3 R-14 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6111 [ERROR] : EH3 R-14 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6111 [ERROR] : EH3 R-15 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6300 [ERROR] : EH3 R-15 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6388 [ERROR] : EH3 R-16 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6388 [ERROR] : EH3 R-16 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6388 [ERROR] : EH3 R-18 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6557 [ERROR] : EH3 R-18 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.7032 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-12 15:33:25.7032 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-10-12 15:33:25.7293 [INFO] : 将EH3总结果插入数据库完毕。 +2024-10-12 15:33:25.7293 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-12 15:33:25.7293 [INFO] : EH3数据生成报告功能未启用! +2024-10-12 15:33:25.7293 [INFO] : 数据上传IOT功能未启用! +2024-10-12 15:35:29.8196 [INFO] : 存在EH3 CSV文件,开始解析: +2024-10-12 15:35:29.8196 [INFO] : Copy D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-12 15:35:29.8196 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-12 15:35:29.8196 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23085 +2024-10-12 15:35:29.8196 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:WNNBBDEC8RDA23085 +2024-10-12 15:35:29.8196 [INFO] : 在数据库表TTempSaveVIN中删除该VIN:WNNBBDEC8RDA23085 +2024-10-12 15:35:29.8580 [ERROR] : EH3 L-21 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8580 [ERROR] : EH3 L-21 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8580 [ERROR] : EH3 L-22 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8580 [ERROR] : EH3 L-22 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8694 [ERROR] : EH3 L-14 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8694 [ERROR] : EH3 L-14 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8694 [ERROR] : EH3 L-15 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8694 [ERROR] : EH3 L-15 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8850 [ERROR] : EH3 L-16 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8850 [ERROR] : EH3 L-16 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8850 [ERROR] : EH3 L-18 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8850 [ERROR] : EH3 L-18 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0049 [ERROR] : EH3 R-14 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0129 [ERROR] : EH3 R-14 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0129 [ERROR] : EH3 R-15 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0279 [ERROR] : EH3 R-15 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0373 [ERROR] : EH3 R-16 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0373 [ERROR] : EH3 R-16 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0373 [ERROR] : EH3 R-18 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0545 [ERROR] : EH3 R-18 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0875 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-12 15:35:30.0875 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-10-12 15:35:30.0875 [INFO] : 将EH3总结果插入数据库完毕。 +2024-10-12 15:35:30.0875 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-12 15:35:30.0875 [INFO] : EH3数据生成报告功能未启用! +2024-10-12 15:35:30.0875 [INFO] : 数据上传IOT功能未启用! +2024-10-12 15:37:17.0987 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-10-22.log b/Analysis/bin/x64/Debug/logs/2024-10-22.log new file mode 100644 index 0000000..3a8fff3 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-22.log @@ -0,0 +1,32 @@ +2024-10-22 10:11:33.2937 [INFO] : --软件Program Main函数开始执行-- +2024-10-22 10:11:33.2937 [INFO] : 加载配置文件——>开始 +2024-10-22 10:11:33.3170 [INFO] : 加载配置文件——>完成 +2024-10-22 10:11:33.3170 [INFO] : Log in using the CLMS authorization. +2024-10-22 10:11:34.9861 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-22 10:11:35.6488 [INFO] : 启动PLC写线程! +2024-10-22 10:11:35.6488 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-22 10:11:35.6488 [INFO] : 连接PLC.... +2024-10-22 10:11:35.6488 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-22 10:11:35.6488 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-22 10:11:36.1538 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-22 10:11:36.3181 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-22 10:11:36.4690 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-22 10:11:37.6955 [ERROR] : PLC S7连接失败。 +2024-10-22 10:11:37.6955 [ERROR] : 连接PLC失败 +2024-10-22 10:19:20.3929 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-22 11:42:00.4117 [INFO] : --软件Program Main函数开始执行-- +2024-10-22 11:42:00.4117 [INFO] : 加载配置文件——>开始 +2024-10-22 11:42:00.4326 [INFO] : 加载配置文件——>完成 +2024-10-22 11:42:00.4326 [INFO] : Log in using the CLMS authorization. +2024-10-22 11:42:01.9976 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-22 11:42:02.6044 [INFO] : 启动PLC写线程! +2024-10-22 11:42:02.6044 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-22 11:42:02.6044 [INFO] : 连接PLC.... +2024-10-22 11:42:02.6044 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-22 11:42:02.6044 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-22 11:42:03.0922 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-22 11:42:03.2706 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-22 11:42:03.4162 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-22 11:42:04.6519 [ERROR] : PLC S7连接失败。 +2024-10-22 11:42:04.6519 [ERROR] : 连接PLC失败 +2024-10-22 13:50:01.1628 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-10-23.log b/Analysis/bin/x64/Debug/logs/2024-10-23.log new file mode 100644 index 0000000..3dd2b96 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-23.log @@ -0,0 +1,294 @@ +2024-10-23 10:04:56.3174 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 10:05:00.3004 [INFO] : 加载配置文件——>开始 +2024-10-23 10:05:00.3167 [INFO] : 加载配置文件——>完成 +2024-10-23 10:05:00.3167 [INFO] : Log in using the CLMS authorization. +2024-10-23 10:05:02.3946 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 10:05:03.3208 [INFO] : 启动PLC写线程! +2024-10-23 10:05:03.3208 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 10:05:03.3208 [INFO] : 连接PLC.... +2024-10-23 10:05:03.3208 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 10:05:03.3208 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 10:05:03.8579 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-23 10:05:04.0519 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-23 10:05:04.1963 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-23 10:05:05.3853 [ERROR] : PLC S7连接失败。 +2024-10-23 10:05:05.3853 [ERROR] : 连接PLC失败 +2024-10-23 10:06:27.7542 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 10:06:30.1222 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 10:06:30.1222 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 10:06:30.1261 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23999 +2024-10-23 10:06:30.1261 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 10:06:30.1261 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 10:06:36.3555 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 10:06:36.3555 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 10:06:36.3804 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 10:06:36.3804 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 10:06:36.3804 [INFO] : iCreateReportFlag=0 : EHY数据生成报告功能未启用! +2024-10-23 10:06:36.3804 [INFO] : EHY数据上传IOT功能未启用! +2024-10-23 10:07:56.5082 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 10:08:01.0826 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 10:08:01.0826 [INFO] : 加载配置文件——>开始 +2024-10-23 10:08:01.0957 [INFO] : 加载配置文件——>完成 +2024-10-23 10:08:01.0957 [INFO] : Log in using the CLMS authorization. +2024-10-23 10:08:03.2131 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 10:08:03.9328 [INFO] : 启动PLC写线程! +2024-10-23 10:08:03.9328 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 10:08:03.9328 [INFO] : 连接PLC.... +2024-10-23 10:08:03.9328 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 10:08:03.9328 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 10:08:04.5510 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-23 10:08:04.7347 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-23 10:08:04.8636 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-23 10:08:06.0531 [ERROR] : PLC S7连接失败。 +2024-10-23 10:08:06.0531 [ERROR] : 连接PLC失败 +2024-10-23 10:09:30.0979 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 10:09:30.0979 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 10:09:30.0979 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 10:09:30.0979 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23998 +2024-10-23 10:09:30.0979 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 10:09:30.0979 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 10:09:30.5658 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 10:09:30.5658 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 10:09:30.5854 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 10:09:30.5854 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 10:09:30.5943 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-23 10:09:30.5943 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241023100930_LNNBBDEC8RDA23998.csv +2024-10-23 10:09:30.7341 [INFO] : Update To IOT Data Content: {"serno":"20241023100930734","requestData":[{"vin":"LNNBBDEC8RDA23998","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 10:09:30","targetRate":"60.00%","rate":"89.29%","GapList":[{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-01","actualValue":"3.7","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"}]}]} +2024-10-23 10:09:40.7881 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1266 +2024-10-23 10:09:40.7881 [ERROR] : EHY数据上传IOT失败! +2024-10-23 11:00:37.5378 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 13:14:43.3743 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 13:14:43.3743 [INFO] : 加载配置文件——>开始 +2024-10-23 13:14:43.3980 [INFO] : 加载配置文件——>完成 +2024-10-23 13:14:43.3980 [INFO] : Log in using the CLMS authorization. +2024-10-23 13:14:45.3305 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 13:14:46.3625 [INFO] : 启动PLC写线程! +2024-10-23 13:14:46.3625 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 13:14:46.3625 [INFO] : 连接PLC.... +2024-10-23 13:14:46.3625 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 13:14:46.3625 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 13:14:48.4154 [ERROR] : PLC S7连接失败。 +2024-10-23 13:14:48.4154 [ERROR] : 连接PLC失败 +2024-10-23 13:15:11.4963 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:02:03.4498 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:02:03.4613 [INFO] : 加载配置文件——>开始 +2024-10-23 14:02:03.4613 [INFO] : 加载配置文件——>完成 +2024-10-23 14:02:03.4613 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:02:05.1381 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:02:05.7326 [INFO] : 启动PLC写线程! +2024-10-23 14:02:05.7326 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:02:05.7326 [INFO] : 连接PLC.... +2024-10-23 14:02:05.7326 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:02:05.7326 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:02:07.7914 [ERROR] : PLC S7连接失败。 +2024-10-23 14:02:07.7914 [ERROR] : 连接PLC失败 +2024-10-23 14:03:31.3437 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:20:01.8223 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:20:01.8338 [INFO] : 加载配置文件——>开始 +2024-10-23 14:20:01.8475 [INFO] : 加载配置文件——>完成 +2024-10-23 14:20:01.8475 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:20:03.7521 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:20:04.6498 [INFO] : 启动PLC写线程! +2024-10-23 14:20:04.6498 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:20:04.6498 [INFO] : 连接PLC.... +2024-10-23 14:20:04.6498 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:20:04.6498 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:20:06.7141 [ERROR] : PLC S7连接失败。 +2024-10-23 14:20:06.7141 [ERROR] : 连接PLC失败 +2024-10-23 14:29:31.8066 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:29:33.1442 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:29:33.1442 [INFO] : 加载配置文件——>开始 +2024-10-23 14:29:33.1598 [INFO] : 加载配置文件——>完成 +2024-10-23 14:29:33.1598 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:29:34.8100 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:29:35.6439 [INFO] : 启动PLC写线程! +2024-10-23 14:29:35.6439 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:29:35.6439 [INFO] : 连接PLC.... +2024-10-23 14:29:35.6439 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:29:35.6439 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:29:37.6987 [ERROR] : PLC S7连接失败。 +2024-10-23 14:29:37.6987 [ERROR] : 连接PLC失败 +2024-10-23 14:31:00.9365 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:31:07.5510 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:31:07.5510 [INFO] : 加载配置文件——>开始 +2024-10-23 14:31:07.5510 [INFO] : 加载配置文件——>完成 +2024-10-23 14:31:07.5510 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:31:09.1709 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:31:09.9346 [INFO] : 启动PLC写线程! +2024-10-23 14:31:09.9346 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:31:09.9346 [INFO] : 连接PLC.... +2024-10-23 14:31:09.9346 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:31:09.9346 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:31:11.9773 [ERROR] : PLC S7连接失败。 +2024-10-23 14:31:11.9773 [ERROR] : 连接PLC失败 +2024-10-23 14:33:40.9002 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:36:36.3807 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:36:36.3807 [INFO] : 加载配置文件——>开始 +2024-10-23 14:36:36.3807 [INFO] : 加载配置文件——>完成 +2024-10-23 14:36:36.3930 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:36:37.9213 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:36:38.6950 [INFO] : 启动PLC写线程! +2024-10-23 14:36:38.6950 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:36:38.6950 [INFO] : 连接PLC.... +2024-10-23 14:36:38.6950 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:36:38.6950 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:36:40.7571 [ERROR] : PLC S7连接失败。 +2024-10-23 14:36:40.7571 [ERROR] : 连接PLC失败 +2024-10-23 14:37:57.1822 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:38:53.7067 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:38:53.7185 [INFO] : 加载配置文件——>开始 +2024-10-23 14:38:53.7185 [INFO] : 加载配置文件——>完成 +2024-10-23 14:38:53.7308 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:38:55.6340 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:38:56.7717 [INFO] : 启动PLC写线程! +2024-10-23 14:38:56.7717 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:38:56.7717 [INFO] : 连接PLC.... +2024-10-23 14:38:56.7717 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:38:56.7717 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:38:58.8738 [ERROR] : PLC S7连接失败。 +2024-10-23 14:38:58.8738 [ERROR] : 连接PLC失败 +2024-10-23 14:41:08.9543 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:41:12.7458 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:41:12.7458 [INFO] : 加载配置文件——>开始 +2024-10-23 14:41:12.7615 [INFO] : 加载配置文件——>完成 +2024-10-23 14:41:12.7615 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:41:14.2639 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:41:15.0677 [INFO] : 启动PLC写线程! +2024-10-23 14:41:15.0677 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:41:15.0677 [INFO] : 连接PLC.... +2024-10-23 14:41:15.0677 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:41:15.0677 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:41:17.1234 [ERROR] : PLC S7连接失败。 +2024-10-23 14:41:17.1234 [ERROR] : 连接PLC失败 +2024-10-23 14:41:46.0880 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:45:28.8317 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:45:28.8317 [INFO] : 加载配置文件——>开始 +2024-10-23 14:45:28.8464 [INFO] : 加载配置文件——>完成 +2024-10-23 14:45:28.8464 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:45:30.3738 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:45:31.1593 [INFO] : 启动PLC写线程! +2024-10-23 14:45:31.1593 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:45:31.1593 [INFO] : 连接PLC.... +2024-10-23 14:45:31.1593 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:45:31.1593 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:45:33.2069 [ERROR] : PLC S7连接失败。 +2024-10-23 14:45:33.2069 [ERROR] : 连接PLC失败 +2024-10-23 14:47:11.0158 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 16:47:36.2974 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 16:47:36.3106 [INFO] : 加载配置文件——>开始 +2024-10-23 16:47:36.3261 [INFO] : 加载配置文件——>完成 +2024-10-23 16:47:36.3261 [INFO] : Log in using the CLMS authorization. +2024-10-23 16:47:38.3732 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 16:47:39.4171 [INFO] : 启动PLC写线程! +2024-10-23 16:47:39.4171 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 16:47:39.4171 [INFO] : 连接PLC.... +2024-10-23 16:47:39.4171 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 16:47:39.4171 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 16:47:41.4666 [ERROR] : PLC S7连接失败。 +2024-10-23 16:47:41.4666 [ERROR] : 连接PLC失败 +2024-10-23 16:49:19.5651 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 16:49:19.5651 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:49:19.5701 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:49:19.5701 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23997 +2024-10-23 16:49:19.5701 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:49:19.5701 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:49:19.8688 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:49:19.8688 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 16:49:19.8926 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 16:49:19.8926 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:49:19.8976 [INFO] : LNNBBDEC8RDA23997 EHY开始计算极差:============ +2024-10-23 16:49:19.9197 [INFO] : LNNBBDEC8RDA23997 EHY计算极差完成,并插入数据库:============ +2024-10-23 16:49:19.9557 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-23 16:49:19.9557 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241023164919_LNNBBDEC8RDA23997.csv +2024-10-23 16:49:20.0835 [INFO] : Update To IOT Data Content: {"serno":"20241023164920083","requestData":[{"vin":"LNNBBDEC8RDA23997","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:49:19","targetRate":"60.00%","rate":"89.29%","GapList":[{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-01","actualValue":"3.7","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD01L","actualValue":"0.3","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD07","actualValue":"0.2","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 16:49:30.1367 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 16:49:30.1367 [ERROR] : EHY数据上传IOT失败! +2024-10-23 16:55:26.0299 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 16:55:26.0299 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:55:26.0299 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:55:26.0299 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23996 +2024-10-23 16:55:26.0299 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:55:26.0299 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:55:26.2711 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:55:26.2711 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 16:55:26.2711 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 16:55:26.2711 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:55:26.2805 [INFO] : LNNBBDEC8RDA23996 EHY开始计算极差:============ +2024-10-23 16:55:26.2961 [INFO] : LNNBBDEC8RDA23996 EHY计算极差完成,并插入数据库:============ +2024-10-23 16:55:26.3266 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-23 16:55:26.3266 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241023165526_LNNBBDEC8RDA23996.csv +2024-10-23 16:55:26.3266 [INFO] : Update To IOT Data Content: {"serno":"20241023165526328","requestData":[{"vin":"LNNBBDEC8RDA23996","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:55:26","targetRate":"60.00%","rate":"89.09%","GapList":[{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-01","actualValue":"","controlLine":"-1.7/0.3","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-01","actualValue":"3.7","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD01L","actualValue":"0.3","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD07","actualValue":"0.2","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 16:55:36.3605 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 16:55:36.3605 [ERROR] : EHY数据上传IOT失败! +2024-10-23 16:56:48.3579 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 16:56:48.3579 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:56:48.3579 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:56:48.3579 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23995 +2024-10-23 16:56:48.3579 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:56:48.3579 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:56:48.6501 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:56:48.6511 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 16:56:48.6511 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 16:56:48.6511 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:56:48.6511 [INFO] : LNNBBDEC8RDA23995 EHY开始计算极差:============ +2024-10-23 16:56:48.6511 [INFO] : L-01G G 查询的测量值为inv +2024-10-23 16:56:48.6725 [INFO] : L-01G G 查询的测量值为inv +2024-10-23 16:56:48.6725 [INFO] : LNNBBDEC8RDA23995 EHY计算极差完成,并插入数据库:============ +2024-10-23 16:56:48.7121 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-23 16:56:48.7121 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241023165648_LNNBBDEC8RDA23995.csv +2024-10-23 16:56:48.7141 [INFO] : Update To IOT Data Content: {"serno":"20241023165648714","requestData":[{"vin":"LNNBBDEC8RDA23995","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:56:48","targetRate":"60.00%","rate":"89.09%","GapList":[{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-01","actualValue":"","controlLine":"2.4/4.2","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD01L","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD07","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 16:56:58.7366 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 16:56:58.7366 [ERROR] : EHY数据上传IOT失败! +2024-10-23 16:58:42.4020 [INFO] : 存在EH3 CSV文件,开始解析: +2024-10-23 16:58:42.4020 [INFO] : Copy D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:58:42.4020 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:58:42.4020 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA22999 +2024-10-23 16:58:42.4020 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:58:42.4020 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:58:42.6358 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:58:42.6358 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-10-23 16:58:42.6358 [INFO] : 将EH3总结果插入数据库完毕。 +2024-10-23 16:58:42.6358 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:58:42.6358 [INFO] : LNNBBDEC8RDA22999 EH3开始计算极差:============ +2024-10-23 16:58:42.6358 [INFO] : L-01G G 查询的测量值为inv +2024-10-23 16:58:42.6524 [INFO] : L-01G G 查询的测量值为inv +2024-10-23 16:58:42.6524 [INFO] : LNNBBDEC8RDA22999 EH3计算极差完成,并插入数据库:============ +2024-10-23 16:58:42.6817 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241023165842_LNNBBDEC8RDA22999.csv +2024-10-23 16:58:42.6817 [INFO] : Update To IOT Data Content: {"serno":"20241023165842682","requestData":[{"vin":"LNNBBDEC8RDA22999","model":"EH3","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:58:42","targetRate":"60.00%","rate":"89.09%","GapList":[{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-01","actualValue":"","controlLine":"2.4/4.2","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-02","actualValue":"2.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD01L","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD07","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 16:58:52.7129 [ERROR] : EH3数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 16:58:52.7129 [ERROR] : EH3数据上传IOT失败! +2024-10-23 16:59:51.4632 [INFO] : 存在EH3 CSV文件,开始解析: +2024-10-23 16:59:51.4632 [INFO] : Copy D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:59:51.4632 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:59:51.4632 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA22998 +2024-10-23 16:59:51.4632 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:59:51.4632 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:59:51.7086 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:59:51.7086 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-10-23 16:59:51.7152 [INFO] : 将EH3总结果插入数据库完毕。 +2024-10-23 16:59:51.7152 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:59:51.7152 [INFO] : LNNBBDEC8RDA22998 EH3开始计算极差:============ +2024-10-23 16:59:51.7345 [INFO] : LNNBBDEC8RDA22998 EH3计算极差完成,并插入数据库:============ +2024-10-23 16:59:51.7581 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241023165951_LNNBBDEC8RDA22998.csv +2024-10-23 16:59:51.7581 [INFO] : Update To IOT Data Content: {"serno":"20241023165951759","requestData":[{"vin":"LNNBBDEC8RDA22998","model":"EH3","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:59:51","targetRate":"60.00%","rate":"89.29%","GapList":[{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-01","actualValue":"2.6","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-02","actualValue":"2.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD01L","actualValue":"1.3","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD07","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 17:00:01.7805 [ERROR] : EH3数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 17:00:01.7805 [ERROR] : EH3数据上传IOT失败! +2024-10-23 17:01:05.8332 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-10-24.log b/Analysis/bin/x64/Debug/logs/2024-10-24.log new file mode 100644 index 0000000..fa70061 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-24.log @@ -0,0 +1,32 @@ +2024-10-24 14:19:09.8451 [INFO] : --软件Program Main函数开始执行-- +2024-10-24 14:19:09.8558 [INFO] : 加载配置文件——>开始 +2024-10-24 14:19:09.8558 [INFO] : 加载配置文件——>完成 +2024-10-24 14:19:09.8558 [INFO] : Log in using the CLMS authorization. +2024-10-24 14:19:11.7946 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-24 14:19:12.8062 [INFO] : 启动PLC写线程! +2024-10-24 14:19:12.8062 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-24 14:19:12.8062 [INFO] : 连接PLC.... +2024-10-24 14:19:12.8082 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-24 14:19:12.8082 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-24 14:19:13.3777 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:19:13.3885 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:19:13.5659 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-24 14:19:14.8698 [ERROR] : PLC S7连接失败。 +2024-10-24 14:19:14.8788 [ERROR] : 连接PLC失败 +2024-10-24 14:21:12.4495 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-24 14:31:31.8417 [INFO] : --软件Program Main函数开始执行-- +2024-10-24 14:31:31.8551 [INFO] : 加载配置文件——>开始 +2024-10-24 14:31:31.8551 [INFO] : 加载配置文件——>完成 +2024-10-24 14:31:31.8551 [INFO] : Log in using the CLMS authorization. +2024-10-24 14:31:33.7788 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-24 14:31:34.2886 [INFO] : 启动PLC写线程! +2024-10-24 14:31:34.2886 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-24 14:31:34.2886 [INFO] : 连接PLC.... +2024-10-24 14:31:34.2886 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-24 14:31:34.2886 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-24 14:31:34.9032 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:31:35.1371 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:31:35.2962 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-24 14:31:36.3452 [ERROR] : PLC S7连接失败。 +2024-10-24 14:31:36.3452 [ERROR] : 连接PLC失败 +2024-10-24 14:33:43.0475 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-10-25.log b/Analysis/bin/x64/Debug/logs/2024-10-25.log new file mode 100644 index 0000000..f803a96 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-25.log @@ -0,0 +1,48 @@ +2024-10-25 08:54:53.4485 [INFO] : --软件Program Main函数开始执行-- +2024-10-25 08:54:53.4605 [INFO] : 加载配置文件——>开始 +2024-10-25 08:54:53.4759 [INFO] : 加载配置文件——>完成 +2024-10-25 08:54:53.4759 [INFO] : Log in using the CLMS authorization. +2024-10-25 08:54:55.4776 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-25 08:54:56.4966 [INFO] : 启动PLC写线程! +2024-10-25 08:54:56.4966 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-25 08:54:56.4966 [INFO] : 连接PLC.... +2024-10-25 08:54:56.4966 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-25 08:54:56.4966 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-25 08:54:57.0338 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-25 08:54:57.0566 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-25 08:54:57.2322 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-25 08:54:58.6023 [ERROR] : PLC S7连接失败。 +2024-10-25 08:54:58.6023 [ERROR] : 连接PLC失败 +2024-10-25 08:58:15.7830 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-25 10:24:13.4677 [INFO] : --软件Program Main函数开始执行-- +2024-10-25 10:24:13.4677 [INFO] : 加载配置文件——>开始 +2024-10-25 10:24:13.4924 [INFO] : 加载配置文件——>完成 +2024-10-25 10:24:13.4924 [INFO] : Log in using the CLMS authorization. +2024-10-25 10:24:15.3397 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-25 10:24:16.0226 [INFO] : 启动PLC写线程! +2024-10-25 10:24:16.0226 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-25 10:24:16.0226 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-25 10:24:16.0226 [INFO] : 连接PLC.... +2024-10-25 10:24:16.0226 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-25 10:24:16.5304 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-25 10:24:16.7679 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-25 10:24:16.9615 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-25 10:24:18.0774 [ERROR] : PLC S7连接失败。 +2024-10-25 10:24:18.0774 [ERROR] : 连接PLC失败 +2024-10-25 10:29:12.0287 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-25 21:10:49.2901 [INFO] : --软件Program Main函数开始执行-- +2024-10-25 21:10:49.2901 [INFO] : 加载配置文件——>开始 +2024-10-25 21:10:49.3134 [INFO] : 加载配置文件——>完成 +2024-10-25 21:10:49.3134 [INFO] : Log in using the CLMS authorization. +2024-10-25 21:10:51.9005 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-25 21:10:53.0414 [INFO] : 启动PLC写线程! +2024-10-25 21:10:53.0414 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-25 21:10:53.0414 [INFO] : 连接PLC.... +2024-10-25 21:10:53.0414 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-25 21:10:53.0414 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-25 21:10:53.2467 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-25 21:10:53.8082 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-25 21:10:54.1766 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-25 21:10:55.0985 [ERROR] : PLC S7连接失败。 +2024-10-25 21:10:55.1033 [ERROR] : 连接PLC失败 +2024-10-25 21:13:13.5219 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-10-28.log b/Analysis/bin/x64/Debug/logs/2024-10-28.log new file mode 100644 index 0000000..011a1c5 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-28.log @@ -0,0 +1,131 @@ +2024-10-28 11:09:57.9723 [INFO] : --软件Program Main函数开始执行-- +2024-10-28 11:09:57.9723 [INFO] : 加载配置文件——>开始 +2024-10-28 11:09:57.9948 [INFO] : 加载配置文件——>完成 +2024-10-28 11:09:57.9948 [INFO] : Log in using the CLMS authorization. +2024-10-28 11:09:59.9602 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-28 11:10:00.9633 [INFO] : 启动PLC写线程! +2024-10-28 11:10:00.9633 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-28 11:10:00.9633 [INFO] : 连接PLC.... +2024-10-28 11:10:00.9633 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-28 11:10:00.9633 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-28 11:10:01.4599 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-28 11:10:01.4599 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-28 11:10:01.6433 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-28 11:10:03.0548 [ERROR] : PLC S7连接失败。 +2024-10-28 11:10:03.0548 [ERROR] : 连接PLC失败 +2024-10-28 11:34:00.3505 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-28 11:39:22.9612 [INFO] : --软件Program Main函数开始执行-- +2024-10-28 11:39:22.9732 [INFO] : 加载配置文件——>开始 +2024-10-28 11:39:22.9732 [INFO] : 加载配置文件——>完成 +2024-10-28 11:39:22.9732 [INFO] : Log in using the CLMS authorization. +2024-10-28 11:39:24.5599 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-28 11:39:24.9829 [INFO] : 启动PLC写线程! +2024-10-28 11:39:24.9829 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-28 11:39:24.9829 [INFO] : 连接PLC.... +2024-10-28 11:39:24.9829 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-28 11:39:24.9829 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-28 11:39:25.6191 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-28 11:39:25.8262 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-28 11:39:26.0277 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-28 11:39:27.0385 [ERROR] : PLC S7连接失败。 +2024-10-28 11:39:27.0385 [ERROR] : 连接PLC失败 +2024-10-28 11:40:59.6375 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-28 11:40:59.6409 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-28 11:40:59.6409 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-28 11:40:59.6409 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23989 +2024-10-28 11:40:59.6409 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-28 11:40:59.6409 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-28 11:40:59.9067 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-28 11:40:59.9067 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-28 11:40:59.9067 [INFO] : LNNBBDEC8RDA23989 EHY开始计算极差:============ +2024-10-28 11:40:59.9305 [INFO] : LNNBBDEC8RDA23989 EHY计算极差完成,并插入数据库:============ +2024-10-28 11:41:00.0671 [INFO] : 将总结果插入数据库完毕。 +2024-10-28 11:41:00.0671 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-28 11:41:00.0671 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-28 11:41:00.0671 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241028114100_LNNBBDEC8RDA23989.csv +2024-10-28 11:41:00.2120 [INFO] : Update To IOT Data Content: {"serno":"20241028114100211","requestData":[{"vin":"LNNBBDEC8RDA23989","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-28 11:40:59","targetRate":"60.00%","rate":"89.29%","GapList":[{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-01","actualValue":"2.6","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-02","actualValue":"2.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD01L","actualValue":"1.3","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD07","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23989","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-28 11:41:10.2676 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1449 +2024-10-28 11:41:10.2676 [ERROR] : EHY数据上传IOT失败! +2024-10-28 11:44:14.3919 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-28 11:45:28.7062 [INFO] : --软件Program Main函数开始执行-- +2024-10-28 11:45:28.7062 [INFO] : 加载配置文件——>开始 +2024-10-28 11:45:28.7266 [INFO] : 加载配置文件——>完成 +2024-10-28 11:45:28.7266 [INFO] : Log in using the CLMS authorization. +2024-10-28 11:45:30.6378 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-28 11:45:31.5423 [INFO] : 启动PLC写线程! +2024-10-28 11:45:31.5423 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-28 11:45:31.5423 [INFO] : 连接PLC.... +2024-10-28 11:45:31.5423 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-28 11:45:31.5423 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-28 11:45:32.0060 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-28 11:45:32.0615 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-28 11:45:32.2256 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-28 11:45:33.6410 [ERROR] : PLC S7连接失败。 +2024-10-28 11:45:33.6410 [ERROR] : 连接PLC失败 +2024-10-28 11:45:50.1109 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-28 11:45:50.1109 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-28 11:45:50.1109 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-28 11:45:50.1109 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23988 +2024-10-28 11:45:50.1109 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-28 11:45:50.1109 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-28 11:45:50.5023 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-28 11:45:50.5023 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-28 11:45:50.5023 [INFO] : LNNBBDEC8RDA23988 EHY开始计算极差:============ +2024-10-28 11:45:50.5288 [INFO] : LNNBBDEC8RDA23988 EHY计算极差完成,并插入数据库:============ +2024-10-28 11:45:50.6315 [INFO] : 计算合格率的时:包含极差计算项! +2024-10-28 11:45:50.6486 [INFO] : 将总结果插入数据库完毕。 +2024-10-28 11:45:50.6486 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-28 11:45:50.6486 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-28 11:45:50.6486 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241028114550_LNNBBDEC8RDA23988.csv +2024-10-28 11:45:50.6486 [INFO] : EHY数据上传IOT功能未启用! +2024-10-28 11:51:09.3510 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-28 13:04:32.5072 [INFO] : --软件Program Main函数开始执行-- +2024-10-28 13:04:32.5072 [INFO] : 加载配置文件——>开始 +2024-10-28 13:04:32.5406 [INFO] : 加载配置文件——>完成 +2024-10-28 13:04:32.5406 [INFO] : Log in using the CLMS authorization. +2024-10-28 13:04:35.2191 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-28 13:04:36.2499 [INFO] : 启动PLC写线程! +2024-10-28 13:04:36.2499 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-28 13:04:36.2499 [INFO] : 连接PLC.... +2024-10-28 13:04:36.2499 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-28 13:04:36.2499 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-28 13:04:36.9419 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-28 13:04:36.9569 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-28 13:04:37.1866 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-28 13:04:38.3876 [ERROR] : PLC S7连接失败。 +2024-10-28 13:04:38.5630 [ERROR] : 连接PLC失败 +2024-10-28 13:04:54.8953 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-28 13:04:54.8994 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-28 13:04:54.8994 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-28 13:04:54.8994 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23986 +2024-10-28 13:04:54.9152 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-28 13:04:54.9152 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-28 13:04:55.2717 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-28 13:04:55.2717 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-28 13:04:55.2717 [INFO] : LNNBBDEC8RDA23986 EHY开始计算极差:============ +2024-10-28 13:04:55.3138 [INFO] : LNNBBDEC8RDA23986 EHY计算极差完成,并插入数据库:============ +2024-10-28 13:04:55.6991 [INFO] : 计算合格率的时:包含极差计算项! +2024-10-28 13:04:55.7237 [INFO] : 将总结果插入数据库完毕。 +2024-10-28 13:04:55.7264 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-28 13:04:55.7264 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-28 13:04:55.7264 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241028130455_LNNBBDEC8RDA23986.csv +2024-10-28 13:04:55.7264 [INFO] : EHY数据上传IOT功能未启用! +2024-10-28 13:06:51.7277 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-28 13:06:51.7277 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-28 13:06:51.7277 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-28 13:06:51.7277 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23985 +2024-10-28 13:06:51.7277 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-28 13:06:51.7277 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-28 13:06:52.0731 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-28 13:06:52.0731 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-28 13:06:52.0731 [INFO] : LNNBBDEC8RDA23985 EHY开始计算极差:============ +2024-10-28 13:06:52.1132 [INFO] : LNNBBDEC8RDA23985 EHY计算极差完成,并插入数据库:============ +2024-10-28 13:06:52.2336 [INFO] : 将总结果插入数据库完毕。 +2024-10-28 13:06:52.2336 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-28 13:06:52.2432 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-28 13:06:52.2432 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241028130652_LNNBBDEC8RDA23985.csv +2024-10-28 13:06:52.2432 [INFO] : EHY数据上传IOT功能未启用! +2024-10-28 13:07:22.3402 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-10-29.log b/Analysis/bin/x64/Debug/logs/2024-10-29.log new file mode 100644 index 0000000..63ca56c --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-29.log @@ -0,0 +1,15 @@ +2024-10-29 08:39:25.7460 [INFO] : --软件Program Main函数开始执行-- +2024-10-29 08:39:25.7604 [INFO] : 加载配置文件——>开始 +2024-10-29 08:39:25.7604 [INFO] : 加载配置文件——>完成 +2024-10-29 08:39:25.7604 [INFO] : Log in using the CLMS authorization. +2024-10-29 08:39:27.8604 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-29 08:39:28.7505 [INFO] : 启动PLC写线程! +2024-10-29 08:39:28.7505 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-29 08:39:28.7505 [INFO] : 连接PLC.... +2024-10-29 08:39:28.7505 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-29 08:39:28.7505 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-29 08:39:29.2731 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-29 08:39:29.2731 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-29 08:39:29.4676 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-29 08:39:30.8631 [ERROR] : PLC S7连接失败。 +2024-10-29 08:39:30.8631 [ERROR] : 连接PLC失败 diff --git a/Analysis/bin/x64/Debug/logs/2024-10-30.log b/Analysis/bin/x64/Debug/logs/2024-10-30.log new file mode 100644 index 0000000..7f71f75 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-10-30.log @@ -0,0 +1,68 @@ +2024-10-30 19:15:25.9273 [INFO] : --软件Program Main函数开始执行-- +2024-10-30 19:15:25.9406 [INFO] : 加载配置文件——>开始 +2024-10-30 19:15:25.9599 [INFO] : 加载配置文件——>完成 +2024-10-30 19:15:25.9599 [INFO] : Log in using the CLMS authorization. +2024-10-30 19:15:28.5359 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-30 19:15:29.8510 [INFO] : 启动PLC写线程! +2024-10-30 19:15:29.8510 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-30 19:15:29.8510 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-30 19:15:29.8510 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-30 19:15:29.8510 [INFO] : 连接PLC.... +2024-10-30 19:15:30.8794 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-30 19:15:30.8899 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-30 19:15:31.1795 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-30 19:15:31.9943 [ERROR] : PLC S7连接失败。 +2024-10-30 19:15:31.9943 [ERROR] : 连接PLC失败 +2024-10-30 19:41:03.5489 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-30 19:41:09.2521 [INFO] : --软件Program Main函数开始执行-- +2024-10-30 19:41:09.3190 [INFO] : 加载配置文件——>开始 +2024-10-30 19:41:09.3374 [INFO] : 加载配置文件——>完成 +2024-10-30 19:41:09.3419 [INFO] : Log in using the CLMS authorization. +2024-10-30 19:41:12.7135 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-30 19:41:13.9867 [INFO] : 启动PLC写线程! +2024-10-30 19:41:13.9867 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-30 19:41:13.9867 [INFO] : 连接PLC.... +2024-10-30 19:41:13.9867 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-30 19:41:13.9867 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-30 19:41:14.5559 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-30 19:41:14.5595 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-30 19:41:14.8776 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-30 19:41:16.1479 [ERROR] : PLC S7连接失败。 +2024-10-30 19:41:16.1479 [ERROR] : 连接PLC失败 +2024-10-30 19:42:16.2455 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-30 19:42:24.9076 [INFO] : --软件Program Main函数开始执行-- +2024-10-30 19:42:24.9318 [INFO] : 加载配置文件——>开始 +2024-10-30 19:42:24.9375 [INFO] : 加载配置文件——>完成 +2024-10-30 19:42:24.9375 [INFO] : Log in using the CLMS authorization. +2024-10-30 19:42:27.6564 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-30 19:42:28.4533 [INFO] : 启动PLC写线程! +2024-10-30 19:42:28.4533 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-30 19:42:28.4533 [INFO] : 连接PLC.... +2024-10-30 19:42:28.4901 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-30 19:42:28.4901 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-30 19:42:29.3068 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-30 19:42:29.3448 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-30 19:42:29.6262 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-30 19:42:30.5471 [ERROR] : PLC S7连接失败。 +2024-10-30 19:42:30.5471 [ERROR] : 连接PLC失败 +2024-10-30 19:42:41.4254 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-30 19:42:41.4254 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-30 19:42:41.4254 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-30 19:42:41.4349 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23981 +2024-10-30 19:42:41.4349 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-30 19:42:41.4349 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-30 19:42:41.8289 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-30 19:42:41.8289 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-30 19:42:41.8289 [INFO] : LNNBBDEC8RDA23981 EHY开始计算极差:============ +2024-10-30 19:42:41.8822 [INFO] : LNNBBDEC8RDA23981 EHY计算极差完成,并插入数据库:============ +2024-10-30 19:42:42.3510 [INFO] : 计算合格率的时:包含极差计算项! +2024-10-30 19:42:42.3744 [INFO] : 将总结果插入数据库完毕。 +2024-10-30 19:42:42.3744 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-30 19:42:42.3744 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-30 19:42:42.3744 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241030194242_LNNBBDEC8RDA23981.csv +2024-10-30 19:46:30.5684 [INFO] : Update To IOT Data Content: {"serno":"20241030194630568","requestData":[{"vin":"LNNBBDEC8RDA23981","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-30 19:42:41","targetRate":"60.00%","rate":"87.84%","GapList":[{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-01","actualValue":"2.6","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-02","actualValue":"2.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD01L","actualValue":"1.3","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD07","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23981","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-30 19:46:40.7087 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1488 +2024-10-30 19:46:40.7087 [ERROR] : EHY数据上传IOT失败! diff --git a/Analysis/bin/x64/Debug/logs/2024-11-04.log b/Analysis/bin/x64/Debug/logs/2024-11-04.log new file mode 100644 index 0000000..3840fb8 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-11-04.log @@ -0,0 +1,40 @@ +2024-11-04 13:57:14.4424 [INFO] : --软件Program Main函数开始执行-- +2024-11-04 13:57:14.4534 [INFO] : 加载配置文件——>开始 +2024-11-04 13:57:14.4534 [INFO] : 加载配置文件——>完成 +2024-11-04 13:57:14.4645 [INFO] : Log in using the CLMS authorization. +2024-11-04 13:57:16.3121 [INFO] : 进入显示车身模式!显示车身界面。 +2024-11-04 13:57:17.1323 [INFO] : 启动PLC写线程! +2024-11-04 13:57:17.1323 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-11-04 13:57:17.1323 [INFO] : 连接PLC.... +2024-11-04 13:57:17.1323 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-11-04 13:57:17.1370 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-11-04 13:57:17.6566 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-11-04 13:57:17.6787 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-11-04 13:57:17.8484 [INFO] : 显示左侧EHY车身数据界面。 +2024-11-04 13:57:19.2413 [ERROR] : PLC S7连接失败。 +2024-11-04 13:57:19.2413 [ERROR] : 连接PLC失败 +2024-11-04 13:58:33.2828 [INFO] : 存在EHY CSV文件,开始解析: +2024-11-04 13:58:33.2828 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-11-04 13:58:33.2828 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-11-04 13:58:33.2828 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23979 +2024-11-04 13:58:33.2921 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-11-04 13:58:33.2921 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-11-04 13:58:33.6369 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-11-04 13:58:33.6369 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-11-04 13:58:33.6369 [INFO] : LNNBBDEC8RDA23979 EHY开始计算极差:============ +2024-11-04 13:58:33.6627 [INFO] : LNNBBDEC8RDA23979 EHY计算极差完成,并插入数据库:============ +2024-11-04 13:58:33.9819 [INFO] : 计算合格率的时:包含极差计算项! +2024-11-04 13:58:34.0019 [INFO] : 将总结果插入数据库完毕。 +2024-11-04 13:58:34.0019 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-11-04 13:58:34.0019 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-11-04 13:58:34.0019 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241104135834_LNNBBDEC8RDA23979.csv +2024-11-04 13:58:34.1311 [INFO] : Update To IOT Data Content: {"serno":"20241104135834131","requestData":[{"vin":"LNNBBDEC8RDA23979","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-11-04 13:58:33","targetRate":"60.00%","rate":"87.84%","GapList":[{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-01","actualValue":"2.6","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-02","actualValue":"2.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD01L","actualValue":"1.3","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD07","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23979","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-11-04 13:58:44.1834 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1488 +2024-11-04 13:58:44.1834 [ERROR] : EHY数据上传IOT失败! +2024-11-04 14:01:05.2871 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-11-04 14:01:05.4598 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-11-04 14:01:05.6160 [INFO] : 显示右侧EHY车身数据界面。 +2024-11-04 14:02:03.7890 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-11-25.log b/Analysis/bin/x64/Debug/logs/2024-11-25.log new file mode 100644 index 0000000..d74aa14 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-11-25.log @@ -0,0 +1,37 @@ +2024-11-25 18:52:55.4032 [INFO] : --软件Program Main函数开始执行-- +2024-11-25 18:52:55.4032 [INFO] : 加载配置文件——>开始 +2024-11-25 18:52:55.4295 [INFO] : 加载配置文件——>完成 +2024-11-25 18:52:55.4295 [INFO] : Log in using the CLMS authorization. +2024-11-25 18:52:59.0483 [INFO] : 进入显示车身模式!显示车身界面。 +2024-11-25 18:53:00.0579 [INFO] : 启动PLC写线程! +2024-11-25 18:53:00.0579 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-11-25 18:53:00.0579 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-11-25 18:53:00.0579 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-11-25 18:53:00.0579 [INFO] : 连接PLC.... +2024-11-25 18:53:00.1609 [ERROR] : PLC S7连接失败。 +2024-11-25 18:53:00.3116 [ERROR] : 连接PLC失败 +2024-11-25 18:53:00.7807 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-11-25 18:53:00.8142 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-11-25 18:53:01.0531 [INFO] : 显示右侧EHY车身数据界面。 +2024-11-25 19:03:05.8190 [INFO] : 存在EH3 CSV文件,开始解析: +2024-11-25 19:03:05.8190 [INFO] : Copy D:\cherytestEH3\CheryEH3_20241125_163248.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEH3_20241125_163248.csv Done. 备份完成 +2024-11-25 19:03:05.8230 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\CheryEH3_20241125_163248.csv +2024-11-25 19:03:05.8230 [INFO] : 解析出NextSense CSV中的VIN为:NNACDEC6RDA37462 +2024-11-25 19:03:05.8230 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-11-25 19:03:05.8230 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-11-25 19:03:06.2483 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-11-25 19:03:06.2483 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-11-25 19:03:06.2483 [INFO] : LNNACDEC6RDA37462 EH3开始计算极差:============ +2024-11-25 19:03:06.2802 [INFO] : L-18G G 查询的测量值为inv +2024-11-25 19:03:06.2802 [INFO] : LNNACDEC6RDA37462 EH3计算极差完成,并插入数据库:============ +2024-11-25 19:03:06.8161 [INFO] : 计算合格率的时:包含极差计算项! +2024-11-25 19:03:06.8484 [INFO] : 将EH3总结果插入数据库完毕。 +2024-11-25 19:03:06.8484 [INFO] : 全部插入解析完毕,删除文件:CheryEH3_20241125_163248.csv +2024-11-25 19:03:06.8590 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241125190306_LNNACDEC6RDA37462.csv +2024-11-25 19:03:07.0013 [INFO] : Update To IOT Data Content: {"serno":"20241125190307001","requestData":[{"vin":"LNNACDEC6RDA37462","model":"EH3","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-11-25 19:03:06","targetRate":"60.00%","rate":"82.19%","GapList":[{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-01","actualValue":"-1.2","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-01","actualValue":"3.7","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-02","actualValue":"-1.8","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-02","actualValue":"3.2","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-03","actualValue":"-1.2","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-03","actualValue":"3.2","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-04","actualValue":"-0.0","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-04","actualValue":"2.7","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-10","actualValue":"3.6","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-08","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-12","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-12","actualValue":"3.6","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-13","actualValue":"0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-13","actualValue":"3.5","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-21","actualValue":"-0.6","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-21","actualValue":"3.0","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-22","actualValue":"0.3","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-22","actualValue":"1.4","controlLine":"1.8/2.8","measurementResult":"NG"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-14","actualValue":"-1.3","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-14","actualValue":"2.3","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-15","actualValue":"-0.8","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-15","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-16","actualValue":"-1.6","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"L-18","actualValue":"-2.3","controlLine":"-2.7/-0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"L-18","actualValue":"","controlLine":"2.6/5.0","measurementResult":"NG"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-01","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-01","actualValue":"3.8","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-02","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-03","actualValue":"-1.5","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-03","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-04","actualValue":"0.6","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-04","actualValue":"2.6","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-06","actualValue":"1.1","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-06","actualValue":"3.2","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-10","actualValue":"0.4","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-10","actualValue":"3.5","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-08","actualValue":"3.5","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-12","actualValue":"-0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-13","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-13","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-14","actualValue":"-1.8","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-14","actualValue":"3.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-15","actualValue":"0.0","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-15","actualValue":"4.0","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-16","actualValue":"-1.1","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-16","actualValue":"3.8","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"F","pointNumber":"R-18","actualValue":"2.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"R-18","actualValue":"3.4","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD01L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD03L","actualValue":"0.3","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD04L","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD05L","actualValue":"1.6","controlLine":"0.0/0.5","measurementResult":"NG"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD06L","actualValue":"1.0","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD01R","actualValue":"0.8","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD02R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD03R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD04R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD06R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD07","actualValue":"0.1","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD08","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD09","actualValue":"0.2","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD10","actualValue":"1.4","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD11","actualValue":"0.1","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD12","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC6RDA37462","gfNo":"G","pointNumber":"FD13","actualValue":"inv","controlLine":"0.0/1.2","measurementResult":"NG"}]}]} +2024-11-25 19:03:17.0717 [ERROR] : EH3数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1488 +2024-11-25 19:03:17.0717 [ERROR] : EH3数据上传IOT失败! +2024-11-25 19:21:23.8635 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-12-24.log b/Analysis/bin/x64/Debug/logs/2024-12-24.log new file mode 100644 index 0000000..1761dc5 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-12-24.log @@ -0,0 +1,347 @@ +2024-12-24 14:30:30.1733 [INFO] : --软件Program Main函数开始执行-- +2024-12-24 14:30:30.1733 [INFO] : 加载配置文件——>开始 +2024-12-24 14:30:30.1932 [INFO] : 加载配置文件——>完成 +2024-12-24 14:30:30.1932 [INFO] : Log in using the CLMS authorization. +2024-12-24 14:30:32.2280 [INFO] : 进入显示车身模式!显示车身界面。 +2024-12-24 14:30:32.9463 [INFO] : 启动PLC写线程! +2024-12-24 14:30:32.9463 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-12-24 14:30:32.9463 [INFO] : 连接PLC.... +2024-12-24 14:30:32.9463 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-12-24 14:30:32.9463 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-12-24 14:30:33.4364 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 14:30:33.6195 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 14:30:33.7516 [INFO] : 显示右侧EHY车身数据界面。 +2024-12-24 14:30:35.0630 [ERROR] : PLC S7连接失败。 +2024-12-24 14:30:35.0630 [ERROR] : 连接PLC失败 +2024-12-24 14:30:55.6145 [INFO] : 存在EH3 CSV文件,开始解析: +2024-12-24 14:30:55.6145 [INFO] : Copy D:\cherytestEH3\CheryEH3_20241222_010605.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEH3_20241222_010605.csv Done. 备份完成 +2024-12-24 14:30:55.6145 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\CheryEH3_20241222_010605.csv +2024-12-24 14:30:55.6145 [INFO] : 解析出NextSense CSV中的VIN为:NNACDEC7RDA51631 +2024-12-24 14:30:55.6145 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-12-24 14:30:55.6145 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-12-24 14:30:55.8088 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-12-24 14:30:55.8088 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-12-24 14:30:55.8088 [INFO] : LNNACDEC7RDA51631 EH3开始计算极差:============ +2024-12-24 14:30:55.8257 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:30:55.8257 [INFO] : R-04G G 查询的测量值为no find +2024-12-24 14:30:55.8257 [INFO] : R-08G G 查询的测量值为no find +2024-12-24 14:30:55.8257 [INFO] : R-12G G 查询的测量值为no find +2024-12-24 14:30:55.8257 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:30:55.8287 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:30:55.8287 [INFO] : R-02G G 查询的测量值为no find +2024-12-24 14:30:55.8287 [INFO] : R-03G G 查询的测量值为no find +2024-12-24 14:30:55.8287 [INFO] : R-14G G 查询的测量值为no find +2024-12-24 14:30:55.8287 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:30:55.8287 [INFO] : R-16G G 查询的测量值为no find +2024-12-24 14:30:55.8287 [INFO] : LNNACDEC7RDA51631 EH3计算极差完成,并插入数据库:============ +2024-12-24 14:30:55.9944 [INFO] : 计算合格率的时:包含极差计算项! +2024-12-24 14:30:56.0114 [INFO] : 将EH3总结果插入数据库完毕。 +2024-12-24 14:30:56.0114 [INFO] : 全部插入解析完毕,删除文件:CheryEH3_20241222_010605.csv +2024-12-24 14:30:56.0158 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241224143056_LNNACDEC7RDA51631.csv +2024-12-24 14:30:56.1387 [INFO] : Update To IOT Data Content: {"serno":"20241224143056138","requestData":[{"vin":"LNNACDEC7RDA51631","model":"EH3","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-12-24 14:30:55","targetRate":"60.00%","rate":"62.50%","GapList":[{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-01","actualValue":"-0.7","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-01","actualValue":"3.2","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-02","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-02","actualValue":"2.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-03","actualValue":"-1.4","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-03","actualValue":"3.1","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-06","actualValue":"1.2","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-10","actualValue":"-0.8","controlLine":"-0.4/0.8","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-10","actualValue":"3.3","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-08","actualValue":"0.3","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-08","actualValue":"3.0","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-12","actualValue":"-0.3","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-12","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-13","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-13","actualValue":"4.0","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-21","actualValue":"-0.1","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-21","actualValue":"2.6","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-22","actualValue":"-0.9","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-22","actualValue":"2.0","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-14","actualValue":"-0.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-15","actualValue":"-0.2","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-15","actualValue":"4.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-16","actualValue":"-0.3","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-16","actualValue":"3.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"F","pointNumber":"L-18","actualValue":"-1.6","controlLine":"-2.7/-0.7","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"L-18","actualValue":"4.6","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD01L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD03L","actualValue":"0.3","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD04L","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD05L","actualValue":"0.6","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD06L","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD01R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD02R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD03R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD04R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD06R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD07","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD08","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD09","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD10","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD11","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD12","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC7RDA51631","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-12-24 14:31:06.1928 [ERROR] : EH3数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1488 +2024-12-24 14:31:06.1928 [ERROR] : EH3数据上传IOT失败! +2024-12-24 14:31:47.4233 [INFO] : 存在EH3 CSV文件,开始解析: +2024-12-24 14:31:47.4233 [INFO] : Copy D:\cherytestEH3\CheryEH3_20241222_124000.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEH3_20241222_124000.csv Done. 备份完成 +2024-12-24 14:31:47.4233 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\CheryEH3_20241222_124000.csv +2024-12-24 14:31:47.4233 [INFO] : 解析出NextSense CSV中的VIN为:NNACDEC4RDA51862 +2024-12-24 14:31:47.4233 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-12-24 14:31:47.4233 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-12-24 14:31:47.6506 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-12-24 14:31:47.6506 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-12-24 14:31:47.6506 [INFO] : LNNACDEC4RDA51862 EH3开始计算极差:============ +2024-12-24 14:31:47.6607 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-04G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-08G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-12G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-02G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-03G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-14G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:31:47.6607 [INFO] : R-16G G 查询的测量值为no find +2024-12-24 14:31:47.6727 [INFO] : LNNACDEC4RDA51862 EH3计算极差完成,并插入数据库:============ +2024-12-24 14:31:47.8317 [INFO] : 计算合格率的时:包含极差计算项! +2024-12-24 14:31:47.8317 [INFO] : 将EH3总结果插入数据库完毕。 +2024-12-24 14:31:47.8317 [INFO] : 全部插入解析完毕,删除文件:CheryEH3_20241222_124000.csv +2024-12-24 14:31:47.8317 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241224143147_LNNACDEC4RDA51862.csv +2024-12-24 14:31:47.8317 [INFO] : Update To IOT Data Content: {"serno":"20241224143147841","requestData":[{"vin":"LNNACDEC4RDA51862","model":"EH3","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-12-24 14:31:47","targetRate":"60.00%","rate":"70.83%","GapList":[{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-01","actualValue":"-0.6","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-01","actualValue":"3.7","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-02","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-02","actualValue":"3.6","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-03","actualValue":"-0.8","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-03","actualValue":"4.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-04","actualValue":"-0.3","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-04","actualValue":"2.7","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-06","actualValue":"1.3","controlLine":"-0.8/0.8","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-06","actualValue":"3.1","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-10","actualValue":"-0.7","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-10","actualValue":"3.4","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-08","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-08","actualValue":"3.1","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-12","actualValue":"3.6","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-13","actualValue":"-0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-21","actualValue":"-0.6","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-21","actualValue":"2.6","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-22","actualValue":"-0.3","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-22","actualValue":"1.9","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-14","actualValue":"-1.7","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-14","actualValue":"3.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-15","actualValue":"-0.1","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-15","actualValue":"4.0","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-16","actualValue":"-0.3","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-16","actualValue":"3.1","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"F","pointNumber":"L-18","actualValue":"-1.3","controlLine":"-2.7/-0.7","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"L-18","actualValue":"3.7","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD01L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD02L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD03L","actualValue":"0.3","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD04L","actualValue":"0.3","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD05L","actualValue":"0.7","controlLine":"0.0/0.5","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD06L","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD01R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD02R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD03R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD04R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD06R","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD07","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD08","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD09","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD10","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD11","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD12","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNACDEC4RDA51862","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-12-24 14:31:57.8640 [ERROR] : EH3数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1488 +2024-12-24 14:31:57.8640 [ERROR] : EH3数据上传IOT失败! +2024-12-24 14:33:03.3317 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-12-24 14:33:08.2898 [INFO] : --软件Program Main函数开始执行-- +2024-12-24 14:33:08.3007 [INFO] : 加载配置文件——>开始 +2024-12-24 14:33:08.3007 [INFO] : 加载配置文件——>完成 +2024-12-24 14:33:08.3007 [INFO] : Log in using the CLMS authorization. +2024-12-24 14:33:10.0445 [INFO] : 进入显示车身模式!显示车身界面。 +2024-12-24 14:33:10.4170 [INFO] : 启动PLC写线程! +2024-12-24 14:33:10.4170 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-12-24 14:33:10.4170 [INFO] : 连接PLC.... +2024-12-24 14:33:10.4170 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-12-24 14:33:10.4170 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-12-24 14:33:11.2272 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 14:33:11.3963 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 14:33:11.5631 [INFO] : 显示右侧EHY车身数据界面。 +2024-12-24 14:33:12.4642 [ERROR] : PLC S7连接失败。 +2024-12-24 14:33:12.4642 [ERROR] : 连接PLC失败 +2024-12-24 14:33:22.1907 [INFO] : 存在EHY CSV文件,开始解析: +2024-12-24 14:33:22.1907 [INFO] : Copy D:\cherytestEHY\CheryEHY_20241222_210242.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEHY_20241222_210242.csv Done. 备份完成 +2024-12-24 14:33:22.1907 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\CheryEHY_20241222_210242.csv +2024-12-24 14:33:22.1907 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDECXRDA52019 +2024-12-24 14:33:22.1907 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-12-24 14:33:22.1907 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-12-24 14:33:22.3871 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-12-24 14:33:22.3871 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-12-24 14:33:22.3871 [INFO] : LNNBBDECXRDA52019 EHY开始计算极差:============ +2024-12-24 14:33:22.4030 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:33:22.4030 [INFO] : R-04G G 查询的测量值为no find +2024-12-24 14:33:22.4030 [INFO] : R-08G G 查询的测量值为no find +2024-12-24 14:33:22.4030 [INFO] : R-12G G 查询的测量值为no find +2024-12-24 14:33:22.4030 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:33:22.4060 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:33:22.4060 [INFO] : R-02G G 查询的测量值为no find +2024-12-24 14:33:22.4060 [INFO] : R-03G G 查询的测量值为no find +2024-12-24 14:33:22.4060 [INFO] : R-14G G 查询的测量值为no find +2024-12-24 14:33:22.4060 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:33:22.4060 [INFO] : R-16G G 查询的测量值为no find +2024-12-24 14:33:22.4060 [INFO] : LNNBBDECXRDA52019 EHY计算极差完成,并插入数据库:============ +2024-12-24 14:33:22.5865 [INFO] : 计算合格率的时:包含极差计算项! +2024-12-24 14:33:22.6054 [INFO] : 将总结果插入数据库完毕。 +2024-12-24 14:33:22.6054 [INFO] : 全部插入解析完毕,删除文件:CheryEHY_20241222_210242.csv +2024-12-24 14:33:22.6104 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-12-24 14:33:22.6104 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241224143322_LNNBBDECXRDA52019.csv +2024-12-24 14:33:22.6104 [INFO] : EHY数据上传IOT功能未启用! +2024-12-24 14:33:29.8866 [INFO] : 存在EHY CSV文件,开始解析: +2024-12-24 14:33:29.8906 [INFO] : Copy D:\cherytestEHY\CheryEHY_20241223_100433.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEHY_20241223_100433.csv Done. 备份完成 +2024-12-24 14:33:29.8906 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\CheryEHY_20241223_100433.csv +2024-12-24 14:33:29.8906 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA52682 +2024-12-24 14:33:29.8906 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-12-24 14:33:29.8906 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-12-24 14:33:29.9979 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-12-24 14:33:29.9979 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-12-24 14:33:29.9979 [INFO] : LNNBBDEC8RDA52682 EHY开始计算极差:============ +2024-12-24 14:33:30.0079 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-04G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-08G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-12G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-02G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-03G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-14G G 查询的测量值为no find +2024-12-24 14:33:30.0079 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:33:30.0159 [INFO] : R-16G G 查询的测量值为no find +2024-12-24 14:33:30.0159 [INFO] : LNNBBDEC8RDA52682 EHY计算极差完成,并插入数据库:============ +2024-12-24 14:33:30.1664 [INFO] : 计算合格率的时:包含极差计算项! +2024-12-24 14:33:30.1664 [INFO] : 将总结果插入数据库完毕。 +2024-12-24 14:33:30.1664 [INFO] : 全部插入解析完毕,删除文件:CheryEHY_20241223_100433.csv +2024-12-24 14:33:30.1739 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-12-24 14:33:30.1739 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241224143330_LNNBBDEC8RDA52682.csv +2024-12-24 14:33:30.1739 [INFO] : EHY数据上传IOT功能未启用! +2024-12-24 14:34:17.6817 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-12-24 14:38:24.5852 [INFO] : --软件Program Main函数开始执行-- +2024-12-24 14:38:24.5852 [INFO] : 加载配置文件——>开始 +2024-12-24 14:38:24.6001 [INFO] : 加载配置文件——>完成 +2024-12-24 14:38:24.6001 [INFO] : Log in using the CLMS authorization. +2024-12-24 14:38:26.3224 [INFO] : 进入显示车身模式!显示车身界面。 +2024-12-24 14:38:26.8810 [INFO] : 启动PLC写线程! +2024-12-24 14:38:26.8810 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-12-24 14:38:26.8810 [INFO] : 连接PLC.... +2024-12-24 14:38:26.8810 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-12-24 14:38:26.8810 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-12-24 14:38:27.4784 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 14:38:27.7911 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 14:38:27.9995 [INFO] : 显示右侧EHY车身数据界面。 +2024-12-24 14:38:28.9294 [ERROR] : PLC S7连接失败。 +2024-12-24 14:38:28.9294 [ERROR] : 连接PLC失败 +2024-12-24 14:38:51.1635 [INFO] : 存在EH3 CSV文件,开始解析: +2024-12-24 14:38:51.1635 [INFO] : Copy D:\cherytestEH3\CheryEH3_20241222_023436.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEH3_20241222_023436.csv Done. 备份完成 +2024-12-24 14:38:51.1635 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\CheryEH3_20241222_023436.csv +2024-12-24 14:38:51.1635 [INFO] : 解析出NextSense CSV中的VIN为:NNACDEB0RDA50893 +2024-12-24 14:38:51.1635 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-12-24 14:38:51.1635 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-12-24 14:38:51.3250 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-12-24 14:38:51.3250 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-12-24 14:38:51.3250 [INFO] : LNNACDEB0RDA50893 EH3开始计算极差:============ +2024-12-24 14:38:51.3419 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:38:51.3419 [INFO] : R-04G G 查询的测量值为no find +2024-12-24 14:38:51.3419 [INFO] : R-08G G 查询的测量值为no find +2024-12-24 14:38:51.3419 [INFO] : R-12G G 查询的测量值为no find +2024-12-24 14:38:51.3419 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:38:51.3419 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 14:38:51.3419 [INFO] : R-02G G 查询的测量值为no find +2024-12-24 14:38:51.3459 [INFO] : R-03G G 查询的测量值为no find +2024-12-24 14:38:51.3459 [INFO] : R-14G G 查询的测量值为no find +2024-12-24 14:38:51.3459 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 14:38:51.3459 [INFO] : R-16G G 查询的测量值为no find +2024-12-24 14:38:51.3459 [INFO] : L-18G G 查询的测量值为inv +2024-12-24 14:38:51.3459 [INFO] : LNNACDEB0RDA50893 EH3计算极差完成,并插入数据库:============ +2024-12-24 14:38:51.4994 [INFO] : 计算合格率的时:包含极差计算项! +2024-12-24 14:38:51.5248 [INFO] : 将EH3总结果插入数据库完毕。 +2024-12-24 14:38:51.5248 [INFO] : 全部插入解析完毕,删除文件:CheryEH3_20241222_023436.csv +2024-12-24 14:38:51.5248 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241224143851_LNNACDEB0RDA50893.csv +2024-12-24 14:38:51.5248 [INFO] : 数据上传IOT功能未启用! +2024-12-24 14:40:57.4092 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-12-24 15:01:51.6933 [INFO] : --软件Program Main函数开始执行-- +2024-12-24 15:01:51.6933 [INFO] : 加载配置文件——>开始 +2024-12-24 15:01:51.7193 [INFO] : 加载配置文件——>完成 +2024-12-24 15:01:51.7193 [INFO] : Log in using the CLMS authorization. +2024-12-24 15:01:53.5682 [INFO] : 进入显示车身模式!显示车身界面。 +2024-12-24 15:01:54.6327 [INFO] : 启动PLC写线程! +2024-12-24 15:01:54.6327 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-12-24 15:01:54.6327 [INFO] : 连接PLC.... +2024-12-24 15:01:54.6327 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-12-24 15:01:54.6327 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-12-24 15:01:55.1136 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 15:01:55.2454 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 15:01:55.4409 [INFO] : 显示右侧EHY车身数据界面。 +2024-12-24 15:01:56.7394 [ERROR] : PLC S7连接失败。 +2024-12-24 15:01:56.7394 [ERROR] : 连接PLC失败 +2024-12-24 15:05:39.6062 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-12-24 15:16:02.5332 [INFO] : --软件Program Main函数开始执行-- +2024-12-24 15:16:02.5791 [INFO] : 加载配置文件——>开始 +2024-12-24 15:16:02.5791 [INFO] : 加载配置文件——>完成 +2024-12-24 15:16:02.5791 [INFO] : Log in using the CLMS authorization. +2024-12-24 15:16:05.0564 [INFO] : 进入显示车身模式!显示车身界面。 +2024-12-24 15:16:05.9702 [INFO] : 启动PLC写线程! +2024-12-24 15:16:05.9702 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-12-24 15:16:05.9702 [INFO] : 连接PLC.... +2024-12-24 15:16:05.9702 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-12-24 15:16:05.9702 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-12-24 15:16:06.5368 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 15:16:06.6116 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 15:16:06.8206 [INFO] : 显示右侧EHY车身数据界面。 +2024-12-24 15:16:08.1162 [ERROR] : PLC S7连接失败。 +2024-12-24 15:16:08.1162 [ERROR] : 连接PLC失败 +2024-12-24 15:16:39.2165 [INFO] : 存在EH3 CSV文件,开始解析: +2024-12-24 15:16:39.2185 [INFO] : Copy D:\cherytestEH3\CheryEH3_20241222_010605.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEH3_20241222_010605.csv Done. 备份完成 +2024-12-24 15:16:39.2185 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\CheryEH3_20241222_010605.csv +2024-12-24 15:16:39.2185 [INFO] : 解析出NextSense CSV中的VIN为:NNACDEC7RDA51631 +2024-12-24 15:16:39.2185 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-12-24 15:16:39.2185 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-12-24 15:16:39.3934 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-12-24 15:16:43.9619 [INFO] : 解析NextSense EH3 CSV 报告完毕!检测项数=30 +2024-12-24 15:16:56.5746 [INFO] : LNNACDEC7RDA51631 EH3开始计算极差:============ +2024-12-24 15:16:56.5831 [INFO] : L-01G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : L-04G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : L-08G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : L-12G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : L-21G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : L-15G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : R-04G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : R-08G G 查询的测量值为no find +2024-12-24 15:16:56.5831 [INFO] : R-12G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : L-01G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : L-02G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : L-03G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : L-14G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : L-15G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : L-16G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : L-18G G 查询的测量值为no find +2024-12-24 15:16:56.5941 [INFO] : LNNACDEC7RDA51631 EH3计算极差完成,并插入数据库:============ +2024-12-24 15:16:56.7618 [INFO] : 计算合格率的时:包含极差计算项! +2024-12-24 15:16:59.0230 [INFO] : 将EH3总结果插入数据库完毕。 +2024-12-24 15:16:59.0230 [INFO] : 全部插入解析完毕,删除文件:CheryEH3_20241222_010605.csv +2024-12-24 15:17:01.1836 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241224151701_LNNACDEC7RDA51631.csv +2024-12-24 15:17:01.1836 [INFO] : 数据上传IOT功能未启用! +2024-12-24 15:17:06.2052 [INFO] : 存在EH3 CSV文件,开始解析: +2024-12-24 15:17:06.2052 [INFO] : Copy D:\cherytestEH3\CheryEH3_20241222_010750.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEH3_20241222_010750.csv Done. 备份完成 +2024-12-24 15:17:06.2052 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\CheryEH3_20241222_010750.csv +2024-12-24 15:17:06.2052 [INFO] : 解析出NextSense CSV中的VIN为:NNACDEC0RDA51647 +2024-12-24 15:17:06.2052 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-12-24 15:17:06.2052 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-12-24 15:17:06.2916 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-12-24 15:17:10.6475 [INFO] : 解析NextSense EH3 CSV 报告完毕!检测项数=30 +2024-12-24 15:17:18.6252 [INFO] : LNNACDEC0RDA51647 EH3开始计算极差:============ +2024-12-24 15:17:18.6252 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 15:17:18.6252 [INFO] : R-04G G 查询的测量值为no find +2024-12-24 15:17:18.6252 [INFO] : R-08G G 查询的测量值为no find +2024-12-24 15:17:18.6252 [INFO] : R-12G G 查询的测量值为no find +2024-12-24 15:17:18.6252 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 15:17:18.6252 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 15:17:18.6402 [INFO] : R-02G G 查询的测量值为no find +2024-12-24 15:17:18.6402 [INFO] : R-03G G 查询的测量值为no find +2024-12-24 15:17:18.6402 [INFO] : R-14G G 查询的测量值为no find +2024-12-24 15:17:18.6750 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 15:17:18.6750 [INFO] : R-16G G 查询的测量值为no find +2024-12-24 15:17:18.6750 [INFO] : LNNACDEC0RDA51647 EH3计算极差完成,并插入数据库:============ +2024-12-24 15:17:19.7621 [INFO] : 计算合格率的时:包含极差计算项! +2024-12-24 15:17:25.4176 [INFO] : 将EH3总结果插入数据库完毕。 +2024-12-24 15:17:25.4176 [INFO] : 全部插入解析完毕,删除文件:CheryEH3_20241222_010750.csv +2024-12-24 15:17:25.4226 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241224151725_LNNACDEC0RDA51647.csv +2024-12-24 15:17:25.4226 [INFO] : 数据上传IOT功能未启用! +2024-12-24 15:18:46.4094 [INFO] : 存在EHY CSV文件,开始解析: +2024-12-24 15:18:46.4094 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-12-24 15:18:46.4094 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-12-24 15:18:46.4094 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23979 +2024-12-24 15:18:46.4094 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-12-24 15:18:46.4094 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-12-24 15:18:46.6999 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-12-24 15:18:49.8428 [INFO] : 解析NextSense EHY CSV 报告完毕!检查数量=56 +2024-12-24 15:19:05.4768 [INFO] : LNNBBDEC8RDA23979 EHY开始计算极差:============ +2024-12-24 15:19:05.4768 [INFO] : L-01G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-04G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-08G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-12G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-21G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-15G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : R-01G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : R-04G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : R-08G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : R-12G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : R-15G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-01G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-02G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-03G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-14G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-15G G 查询的测量值为no find +2024-12-24 15:19:05.4837 [INFO] : L-16G G 查询的测量值为no find +2024-12-24 15:19:05.4997 [INFO] : L-18G G 查询的测量值为no find +2024-12-24 15:19:05.5256 [INFO] : LNNBBDEC8RDA23979 EHY计算极差完成,并插入数据库:============ +2024-12-24 15:19:05.8623 [INFO] : 计算合格率的时:包含极差计算项! +2024-12-24 15:19:05.8623 [INFO] : 将总结果插入数据库完毕。 +2024-12-24 15:19:05.8623 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-12-24 15:19:05.8623 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-12-24 15:19:05.8623 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241224151905_LNNBBDEC8RDA23979.csv +2024-12-24 15:19:05.8623 [INFO] : EHY数据上传IOT功能未启用! +2024-12-24 15:20:56.1552 [INFO] : --软件Program Main函数开始执行-- +2024-12-24 15:20:56.1552 [INFO] : 加载配置文件——>开始 +2024-12-24 15:20:56.1552 [INFO] : 加载配置文件——>完成 +2024-12-24 15:20:56.1552 [INFO] : Log in using the CLMS authorization. +2024-12-24 15:20:57.7075 [INFO] : 进入显示车身模式!显示车身界面。 +2024-12-24 15:20:58.3567 [INFO] : 启动PLC写线程! +2024-12-24 15:20:58.3567 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-12-24 15:20:58.3567 [INFO] : 连接PLC.... +2024-12-24 15:20:58.3567 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-12-24 15:20:58.3567 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-12-24 15:20:58.8927 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 15:20:59.2102 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 15:20:59.3361 [INFO] : 显示右侧EHY车身数据界面。 +2024-12-24 15:21:00.4245 [ERROR] : PLC S7连接失败。 +2024-12-24 15:21:00.4245 [ERROR] : 连接PLC失败 +2024-12-24 15:21:24.5076 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-12-24 15:21:32.2236 [INFO] : --软件Program Main函数开始执行-- +2024-12-24 15:21:32.2386 [INFO] : 加载配置文件——>开始 +2024-12-24 15:21:32.2386 [INFO] : 加载配置文件——>完成 +2024-12-24 15:21:32.2386 [INFO] : Log in using the CLMS authorization. +2024-12-24 15:21:34.0589 [INFO] : 进入显示车身模式!显示车身界面。 +2024-12-24 15:21:34.6051 [INFO] : 启动PLC写线程! +2024-12-24 15:21:34.6051 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-12-24 15:21:34.6051 [INFO] : 连接PLC.... +2024-12-24 15:21:34.6051 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-12-24 15:21:34.6051 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-12-24 15:21:35.2242 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 15:21:35.5172 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-24 15:21:35.7072 [INFO] : 显示右侧EHY车身数据界面。 +2024-12-24 15:21:36.6627 [ERROR] : PLC S7连接失败。 +2024-12-24 15:21:36.6627 [ERROR] : 连接PLC失败 +2024-12-24 15:42:22.1763 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2024-12-25.log b/Analysis/bin/x64/Debug/logs/2024-12-25.log new file mode 100644 index 0000000..52f8be7 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2024-12-25.log @@ -0,0 +1,16 @@ +2024-12-25 14:34:29.0527 [INFO] : --软件Program Main函数开始执行-- +2024-12-25 14:34:29.0666 [INFO] : 加载配置文件——>开始 +2024-12-25 14:34:29.0806 [INFO] : 加载配置文件——>完成 +2024-12-25 14:34:29.0806 [INFO] : Log in using the CLMS authorization. +2024-12-25 14:34:31.3257 [INFO] : 进入显示车身模式!显示车身界面。 +2024-12-25 14:34:32.2168 [INFO] : 启动PLC写线程! +2024-12-25 14:34:32.2168 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-12-25 14:34:32.2168 [INFO] : 连接PLC.... +2024-12-25 14:34:32.2168 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-12-25 14:34:32.2168 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-12-25 14:34:32.7905 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-25 14:34:32.8189 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-12-25 14:34:32.9759 [INFO] : 显示右侧EHY车身数据界面。 +2024-12-25 14:34:34.2772 [ERROR] : PLC S7连接失败。 +2024-12-25 14:34:34.2804 [ERROR] : 连接PLC失败 +2024-12-25 14:37:19.9505 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2025-02-21.log b/Analysis/bin/x64/Debug/logs/2025-02-21.log new file mode 100644 index 0000000..7fdcfa4 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2025-02-21.log @@ -0,0 +1,21 @@ +2025-02-21 10:49:43.9960 [INFO] : --软件Program Main函数开始执行-- +2025-02-21 10:49:44.0150 [INFO] : 加载配置文件——>开始 +2025-02-21 10:49:44.0350 [INFO] : 加载配置文件——>完成 +2025-02-21 10:49:44.0350 [INFO] : Log in using the CLMS authorization. +2025-02-21 10:49:44.5258 [INFO] : The CLMS module is unavailable! +2025-02-21 10:55:45.2135 [INFO] : --软件Program Main函数开始执行-- +2025-02-21 10:55:45.2285 [INFO] : 加载配置文件——>开始 +2025-02-21 10:55:45.2285 [INFO] : 加载配置文件——>完成 +2025-02-21 10:55:45.2285 [INFO] : Log in using the CLMS authorization. +2025-02-21 10:55:47.7784 [INFO] : 进入显示车身模式!显示车身界面。 +2025-02-21 10:55:48.7084 [INFO] : 启动PLC写线程! +2025-02-21 10:55:48.7084 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-02-21 10:55:48.7084 [INFO] : 连接PLC.... +2025-02-21 10:55:48.7084 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-02-21 10:55:48.7084 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-02-21 10:55:48.7760 [ERROR] : PLC S7连接失败。 +2025-02-21 10:55:49.2306 [ERROR] : 连接PLC失败 +2025-02-21 10:55:49.6496 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-02-21 10:55:49.6866 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-02-21 10:55:49.8794 [INFO] : 显示右侧EHY车身数据界面。 +2025-02-21 10:57:35.0644 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2025-02-27.log b/Analysis/bin/x64/Debug/logs/2025-02-27.log new file mode 100644 index 0000000..474ba60 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2025-02-27.log @@ -0,0 +1,93 @@ +2025-02-27 21:39:23.6425 [INFO] : --软件Program Main函数开始执行-- +2025-02-27 21:39:23.6614 [INFO] : 加载配置文件——>开始 +2025-02-27 21:39:23.6775 [INFO] : 加载配置文件——>完成 +2025-02-27 21:39:23.6775 [INFO] : Log in using the CLMS authorization. +2025-02-27 21:39:25.9772 [INFO] : 进入显示车身模式!显示车身界面。 +2025-02-27 21:39:27.1440 [INFO] : 启动PLC写线程! +2025-02-27 21:39:27.1440 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-02-27 21:39:27.1440 [INFO] : 连接PLC.... +2025-02-27 21:39:27.1440 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-02-27 21:39:27.1440 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-02-27 21:39:27.2375 [ERROR] : PLC S7连接失败。 +2025-02-27 21:39:27.3972 [ERROR] : 连接PLC失败 +2025-02-27 21:39:27.8198 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-02-27 21:39:27.8492 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-02-27 21:39:28.1009 [INFO] : 显示右侧EHY车身数据界面。 +2025-02-27 21:42:16.5194 [INFO] : 存在EH3 CSV文件,开始解析: +2025-02-27 21:42:16.5194 [INFO] : Copy D:\cherytestEH3\5mm_SelfTest_20250226_141125.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250226_141125.csv Done. 备份完成 +2025-02-27 21:42:16.5194 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\5mm_SelfTest_20250226_141125.csv +2025-02-27 21:42:16.5194 [INFO] : 解析出NextSense CSV中的VIN为: +2025-02-27 21:42:16.5301 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:L123123123 +2025-02-27 21:42:16.5301 [INFO] : 在数据库表TTempSaveVIN中删除该VIN:L123123123 +2025-02-27 21:42:16.5301 [ERROR] : EH3 R01 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2025-02-27 21:42:16.5408 [ERROR] : EH3 R01 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2025-02-27 21:42:16.5408 [ERROR] : EH3 L01 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2025-02-27 21:42:16.5408 [ERROR] : EH3 L01 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2025-02-27 21:42:16.6099 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2025-02-27 21:42:16.6099 [INFO] : 解析NextSense EH3 CSV 报告完毕!检测项数=4 +2025-02-27 21:42:16.6099 [INFO] : L123123123 EH3开始计算极差:============ +2025-02-27 21:42:16.6226 [INFO] : L-01G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-04G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-08G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-12G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-21G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-15G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : R-01G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : R-04G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : R-08G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : R-12G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : R-15G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-01G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-02G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-03G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-14G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-15G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-16G G 查询的测量值为no find +2025-02-27 21:42:16.6226 [INFO] : L-18G G 查询的测量值为no find +2025-02-27 21:42:16.6411 [INFO] : L123123123 EH3计算极差完成,并插入数据库:============ +2025-02-27 21:42:16.7074 [INFO] : 计算合格率的时:包含极差计算项! +2025-02-27 21:42:16.7332 [INFO] : 将EH3总结果插入数据库完毕。 +2025-02-27 21:42:16.7332 [INFO] : 全部插入解析完毕,删除文件:5mm_SelfTest_20250226_141125.csv +2025-02-27 21:42:16.7332 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20250227214216_L123123123.csv +2025-02-27 21:42:16.7332 [INFO] : 数据上传IOT功能未启用! +2025-02-27 21:44:26.4800 [INFO] : 存在EH3 CSV文件,开始解析: +2025-02-27 21:44:26.4800 [INFO] : Copy D:\cherytestEH3\5mm_SelfTest_20250226_141125.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250226_141125.csv Done. 备份完成 +2025-02-27 21:44:26.4800 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\5mm_SelfTest_20250226_141125.csv +2025-02-27 21:44:26.4800 [INFO] : 解析出NextSense CSV中的VIN为: +2025-02-27 21:44:26.4800 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2025-02-27 21:44:26.4800 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2025-02-27 21:44:26.4940 [ERROR] : EH3 R01 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2025-02-27 21:44:26.4940 [ERROR] : EH3 R01 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2025-02-27 21:44:26.4940 [ERROR] : EH3 L01 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2025-02-27 21:44:26.4940 [ERROR] : EH3 L01 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2025-02-27 21:44:26.5533 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2025-02-27 21:44:26.5533 [INFO] : 解析NextSense EH3 CSV 报告完毕!检测项数=4 +2025-02-27 21:44:26.5533 [INFO] : L EH3开始计算极差:============ +2025-02-27 21:44:26.6241 [INFO] : L-01G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : L-04G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : L-08G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : L-12G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : L-21G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : L-15G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : R-01G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : R-04G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : R-08G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : R-12G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : R-15G G 查询的测量值为no find +2025-02-27 21:44:26.6241 [INFO] : L-01G G 查询的测量值为no find +2025-02-27 21:44:26.6352 [INFO] : L-02G G 查询的测量值为no find +2025-02-27 21:44:26.6352 [INFO] : L-03G G 查询的测量值为no find +2025-02-27 21:44:26.6352 [INFO] : L-14G G 查询的测量值为no find +2025-02-27 21:44:26.6352 [INFO] : L-15G G 查询的测量值为no find +2025-02-27 21:44:26.6352 [INFO] : L-16G G 查询的测量值为no find +2025-02-27 21:44:26.6352 [INFO] : L-18G G 查询的测量值为no find +2025-02-27 21:44:26.6352 [INFO] : L EH3计算极差完成,并插入数据库:============ +2025-02-27 21:44:26.7338 [INFO] : 计算合格率的时:包含极差计算项! +2025-02-27 21:44:26.7338 [INFO] : 将EH3总结果插入数据库完毕。 +2025-02-27 21:44:26.7338 [INFO] : 全部插入解析完毕,删除文件:5mm_SelfTest_20250226_141125.csv +2025-02-27 21:44:26.7538 [INFO] : AnalysisNextSenseCSV 函数分析异常:System.ArgumentException: 字符串的长度不能为零。 +参数名: oldValue + 在 System.String.ReplaceInternal(String oldValue, String newValue) + 在 System.String.Replace(String oldValue, String newValue) + 在 NSAnalysis.CenterControl.AnalysisNextSenseEH3CSV() 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 799 +2025-02-27 21:49:55.0056 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2025-03-03.log b/Analysis/bin/x64/Debug/logs/2025-03-03.log new file mode 100644 index 0000000..ce97bae --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2025-03-03.log @@ -0,0 +1,192 @@ +2025-03-03 10:24:58.3488 [INFO] : --软件Program Main函数开始执行-- +2025-03-03 10:24:58.3488 [INFO] : 加载配置文件——>开始 +2025-03-03 10:24:58.3708 [INFO] : 加载配置文件——>完成 +2025-03-03 10:24:58.3708 [INFO] : Log in using the CLMS authorization. +2025-03-03 10:25:00.1878 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-03 10:25:00.8555 [INFO] : 启动PLC写线程! +2025-03-03 10:25:00.8555 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-03 10:25:00.8555 [INFO] : 连接PLC.... +2025-03-03 10:25:00.8555 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-03 10:25:00.8555 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-03 10:25:00.8715 [ERROR] : PLC S7连接失败。 +2025-03-03 10:25:01.1720 [ERROR] : 连接PLC失败 +2025-03-03 10:25:01.5272 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 10:25:01.5362 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 10:25:01.6819 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-03 10:58:11.5165 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-03 11:36:51.1540 [INFO] : --软件Program Main函数开始执行-- +2025-03-03 11:36:51.1540 [INFO] : 加载配置文件——>开始 +2025-03-03 11:36:51.1726 [INFO] : 加载配置文件——>完成 +2025-03-03 11:36:51.1726 [INFO] : Log in using the CLMS authorization. +2025-03-03 11:36:52.9228 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-03 11:36:53.7865 [INFO] : 启动PLC写线程! +2025-03-03 11:36:53.7865 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-03 11:36:53.7865 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-03 11:36:53.7865 [INFO] : 连接PLC.... +2025-03-03 11:36:53.7865 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-03 11:36:53.8001 [INFO] : PLC S7连接成功。 +2025-03-03 11:36:53.9467 [INFO] : 连接PLC成功 +2025-03-03 11:36:54.2832 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 11:36:54.3932 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 11:36:54.5471 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-03 11:36:54.9969 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:36:56.0071 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:36:57.0175 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:36:58.0262 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:36:59.0356 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:36:59.9447 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:00.9548 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:01.9636 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:02.9736 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:03.9829 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:04.9925 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:06.0025 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:07.0128 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:08.0233 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:09.0332 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:09.9429 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:10.9529 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:11.9630 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:12.9724 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:13.9829 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:14.9946 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:16.0052 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:17.0141 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:18.0252 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:19.0353 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:19.9439 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:20.9545 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:21.9639 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:22.9743 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:23.9859 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:24.9953 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:26.0047 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:27.0157 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:28.0246 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:29.0340 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:30.0436 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:30.9548 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:31.9642 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:32.9743 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:34.0849 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:34.9950 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:36.0052 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:37.0151 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:38.0245 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:39.0345 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:39.9436 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:40.9536 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:0 +2025-03-03 11:37:41.9631 [ERROR] : 写入PLC失败:地址为:DB4100.0; 值为:1 +2025-03-03 11:37:42.7610 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-03 14:27:27.4999 [INFO] : --软件Program Main函数开始执行-- +2025-03-03 14:27:27.5163 [INFO] : 加载配置文件——>开始 +2025-03-03 14:27:27.5358 [INFO] : 加载配置文件——>完成 +2025-03-03 14:27:27.5358 [INFO] : Log in using the CLMS authorization. +2025-03-03 14:27:29.2153 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-03 14:27:30.1750 [INFO] : 启动PLC写线程! +2025-03-03 14:27:30.1750 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-03 14:27:30.1750 [INFO] : 连接PLC.... +2025-03-03 14:27:30.1750 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-03 14:27:30.1750 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-03 14:27:30.7155 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 14:27:30.7415 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 14:27:30.9016 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-03 14:27:32.2996 [ERROR] : PLC S7连接失败。 +2025-03-03 14:27:32.2996 [ERROR] : 连接PLC失败 +2025-03-03 14:28:02.4841 [INFO] : 存在EHY CSV文件,开始解析: +2025-03-03 14:28:02.4841 [INFO] : Copy D:\test\5mm_SelfTest_20250226_141125.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250226_141125.csv Done. 备份完成 +2025-03-03 14:28:02.4841 [INFO] : 开始解析NextSense EHY CSV 报告:D:\test\5mm_SelfTest_20250226_141125.csv +2025-03-03 14:28:02.4841 [INFO] : 解析NextSense 自检报告完毕!检查数量=4 +2025-03-03 14:28:02.4984 [INFO] : 开始生成客户所需要的CSV格式文件: +2025-03-03 14:28:02.4984 [INFO] : 客户自检报告生成完毕,路径为:D:\QMLTest\20250303142802_SelfMeasure20250303142802.csv +2025-03-03 14:30:14.9122 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-03 14:30:20.6405 [INFO] : --软件Program Main函数开始执行-- +2025-03-03 14:30:20.6525 [INFO] : 加载配置文件——>开始 +2025-03-03 14:30:20.6525 [INFO] : 加载配置文件——>完成 +2025-03-03 14:30:20.6525 [INFO] : Log in using the CLMS authorization. +2025-03-03 14:30:22.0705 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-03 14:30:22.4132 [INFO] : 启动PLC写线程! +2025-03-03 14:30:22.4132 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-03 14:30:22.4132 [INFO] : 连接PLC.... +2025-03-03 14:30:22.4132 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-03 14:30:22.4132 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-03 14:30:23.2513 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 14:30:23.4064 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 14:30:23.5735 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-03 14:30:24.4525 [ERROR] : PLC S7连接失败。 +2025-03-03 14:30:24.4525 [ERROR] : 连接PLC失败 +2025-03-03 14:30:25.1050 [INFO] : 存在EHY CSV文件,开始解析: +2025-03-03 14:30:25.1050 [INFO] : Copy D:\test\5mm_SelfTest_20250226_141125.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250226_141125.csv Done. 备份完成 +2025-03-03 14:30:25.1050 [INFO] : 开始解析NextSense EHY CSV 报告:D:\test\5mm_SelfTest_20250226_141125.csv +2025-03-03 14:30:25.1050 [INFO] : 解析NextSense 自检报告完毕!检查数量=4 +2025-03-03 14:30:25.1050 [INFO] : 开始生成客户所需要的CSV格式文件: +2025-03-03 14:30:25.1050 [INFO] : 客户自检报告生成完毕,路径为:D:\QMLTest\20250303143025_SelfMeasure20250303143025.csv +2025-03-03 14:30:46.6137 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-03 14:31:07.7684 [INFO] : --软件Program Main函数开始执行-- +2025-03-03 14:31:07.8205 [INFO] : 加载配置文件——>开始 +2025-03-03 14:31:07.8255 [INFO] : 加载配置文件——>完成 +2025-03-03 14:31:07.8255 [INFO] : Log in using the CLMS authorization. +2025-03-03 14:31:09.4589 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-03 14:31:10.0429 [INFO] : 启动PLC写线程! +2025-03-03 14:31:10.0429 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-03 14:31:10.0429 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-03 14:31:10.0429 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-03 14:31:10.0429 [INFO] : 连接PLC.... +2025-03-03 14:31:10.6310 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 14:31:10.9364 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 14:31:11.1037 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-03 14:31:12.1119 [ERROR] : PLC S7连接失败。 +2025-03-03 14:31:12.1119 [ERROR] : 连接PLC失败 +2025-03-03 14:31:15.2790 [INFO] : 存在EHY CSV文件,开始解析: +2025-03-03 14:31:15.2790 [INFO] : Copy D:\test\5mm_SelfTest_20250226_141125.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250226_141125.csv Done. 备份完成 +2025-03-03 14:31:15.2790 [INFO] : 开始解析NextSense EHY CSV 报告:D:\test\5mm_SelfTest_20250226_141125.csv +2025-03-03 14:33:08.4819 [INFO] : --软件Program Main函数开始执行-- +2025-03-03 14:33:08.4819 [INFO] : 加载配置文件——>开始 +2025-03-03 14:33:08.4959 [INFO] : 加载配置文件——>完成 +2025-03-03 14:33:08.4959 [INFO] : Log in using the CLMS authorization. +2025-03-03 14:33:09.9759 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-03 14:33:10.5401 [INFO] : 启动PLC写线程! +2025-03-03 14:33:10.5411 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-03 14:33:10.5411 [INFO] : 连接PLC.... +2025-03-03 14:33:10.5411 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-03 14:33:10.5411 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-03 14:33:11.0532 [INFO] : 存在EHY CSV文件,开始解析: +2025-03-03 14:33:11.0532 [INFO] : Copy D:\test\5mm_SelfTest_20250226_141125.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250226_141125.csv Done. 备份完成 +2025-03-03 14:33:11.0532 [INFO] : 开始解析NextSense EHY CSV 报告:D:\test\5mm_SelfTest_20250226_141125.csv +2025-03-03 14:33:11.0602 [INFO] : 解析NextSense 自检报告完毕!检查数量=4 +2025-03-03 14:33:11.0602 [INFO] : 开始生成客户所需要的CSV格式文件: +2025-03-03 14:33:11.0602 [INFO] : 客户自检报告生成完毕,路径为:D:\QMLTest\20250303143311_SelfMeasure20250303143311.csv +2025-03-03 14:33:11.2048 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 14:33:11.4210 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 14:33:11.5853 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-03 14:33:12.5719 [ERROR] : PLC S7连接失败。 +2025-03-03 14:33:12.5719 [ERROR] : 连接PLC失败 +2025-03-03 14:33:45.3540 [INFO] : 存在EHY CSV文件,开始解析: +2025-03-03 14:33:45.3540 [INFO] : Copy D:\test\5mm_SelfTest_20250226_141125.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250226_141125.csv Done. 备份完成 +2025-03-03 14:33:45.3540 [INFO] : 开始解析NextSense EHY CSV 报告:D:\test\5mm_SelfTest_20250226_141125.csv +2025-03-03 14:33:45.3540 [INFO] : 解析NextSense 自检报告完毕!检查数量=4 +2025-03-03 14:33:45.3540 [INFO] : 开始生成客户所需要的CSV格式文件: +2025-03-03 14:33:45.3540 [INFO] : 客户自检报告生成完毕,路径为:D:\QMLTest\20250303143345_SelfMeasure20250303143345.csv +2025-03-03 15:02:15.0061 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-03 15:23:17.1049 [INFO] : --软件Program Main函数开始执行-- +2025-03-03 15:23:17.1049 [INFO] : 加载配置文件——>开始 +2025-03-03 15:23:17.1185 [INFO] : 加载配置文件——>完成 +2025-03-03 15:23:17.1185 [INFO] : Log in using the CLMS authorization. +2025-03-03 15:23:18.7091 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-03 15:23:20.1094 [INFO] : 启动PLC写线程! +2025-03-03 15:23:20.1094 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-03 15:23:20.1094 [INFO] : 连接PLC.... +2025-03-03 15:23:20.1094 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-03 15:23:20.1094 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-03 15:23:20.1944 [ERROR] : PLC S7连接失败。 +2025-03-03 15:23:20.3831 [ERROR] : 连接PLC失败 +2025-03-03 15:23:20.7115 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 15:23:20.7115 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-03 15:23:20.8534 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-03 15:28:21.2452 [INFO] : 存在EHY CSV文件,开始解析: +2025-03-03 15:28:21.2452 [INFO] : Copy D:\test\5mm_SelfTest_20250226_141125.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250226_141125.csv Done. 备份完成 +2025-03-03 15:28:21.2452 [INFO] : 开始解析NextSense EHY CSV 报告:D:\test\5mm_SelfTest_20250226_141125.csv +2025-03-03 15:28:21.2452 [INFO] : 解析NextSense 自检报告完毕!检查数量=4 +2025-03-03 15:28:21.2592 [INFO] : 开始生成客户所需要的CSV格式文件: +2025-03-03 15:28:21.2592 [INFO] : 客户自检报告生成完毕,路径为:D:\QMLTest\20250303152821_SelfMeasure20250303152821.csv +2025-03-03 15:29:31.5562 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2025-03-05.log b/Analysis/bin/x64/Debug/logs/2025-03-05.log new file mode 100644 index 0000000..0e8d749 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2025-03-05.log @@ -0,0 +1,100 @@ +2025-03-05 09:44:15.7775 [INFO] : --软件Program Main函数开始执行-- +2025-03-05 09:44:15.7899 [INFO] : 加载配置文件——>开始 +2025-03-05 09:44:15.8075 [INFO] : 加载配置文件——>完成 +2025-03-05 09:44:15.8075 [INFO] : Log in using the CLMS authorization. +2025-03-05 09:44:17.7477 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-05 09:44:18.6852 [INFO] : 启动PLC写线程! +2025-03-05 09:44:18.6852 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-05 09:44:18.6852 [INFO] : 连接PLC.... +2025-03-05 09:44:18.6852 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-05 09:44:18.6852 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-05 09:44:18.7620 [ERROR] : PLC S7连接失败。 +2025-03-05 09:44:18.9192 [ERROR] : 连接PLC失败 +2025-03-05 09:44:19.2720 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-05 09:44:19.2971 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-05 09:44:19.4573 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-05 10:17:57.0959 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-05 11:13:41.7618 [INFO] : --软件Program Main函数开始执行-- +2025-03-05 11:13:41.7773 [INFO] : 加载配置文件——>开始 +2025-03-05 11:13:41.8007 [INFO] : 加载配置文件——>完成 +2025-03-05 11:13:41.8007 [INFO] : Log in using the CLMS authorization. +2025-03-05 11:13:41.9075 [INFO] : CLMS check license failed! Please authorize the operation. +2025-03-05 11:15:02.5705 [INFO] : --软件Program Main函数开始执行-- +2025-03-05 11:15:02.5986 [INFO] : 加载配置文件——>开始 +2025-03-05 11:15:02.6126 [INFO] : 加载配置文件——>完成 +2025-03-05 11:15:02.6482 [INFO] : Log in using the CLMS authorization. +2025-03-05 11:15:05.3569 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-05 11:15:06.2338 [INFO] : 启动PLC写线程! +2025-03-05 11:15:06.2338 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-05 11:15:06.2338 [ERROR] : 错误:软件首次启动,读取NextSense生成EH3 CSV报告的路径:D:\cherytestEH3 不存在!请检查并进行修改!点击是按钮,软件将自动创建该路径! +2025-03-05 11:15:06.2338 [INFO] : 连接PLC.... +2025-03-05 11:15:06.3088 [ERROR] : 错误:软件首次启动,读取NextSense生成EHY CSV报告的路径:D:\cherytestEHY 不存在!请检查并进行修改!点击是按钮,软件将自动创建该路径! +2025-03-05 11:15:09.6252 [ERROR] : PLC S7连接失败。 +2025-03-05 11:15:26.2806 [INFO] : --软件Program Main函数开始执行-- +2025-03-05 11:15:26.3211 [INFO] : 加载配置文件——>开始 +2025-03-05 11:15:26.3712 [INFO] : 加载配置文件——>完成 +2025-03-05 11:15:26.3712 [INFO] : Log in using the CLMS authorization. +2025-03-05 11:15:28.9387 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-05 11:15:29.3810 [INFO] : 启动PLC写线程! +2025-03-05 11:15:29.3833 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-05 11:15:29.3833 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-05 11:15:29.3833 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-05 11:15:29.3833 [INFO] : 连接PLC.... +2025-03-05 11:19:30.1906 [INFO] : --软件Program Main函数开始执行-- +2025-03-05 11:19:30.2629 [INFO] : 加载配置文件——>开始 +2025-03-05 11:19:30.3123 [INFO] : 加载配置文件——>完成 +2025-03-05 11:19:30.3161 [INFO] : Log in using the CLMS authorization. +2025-03-05 11:19:33.6048 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-05 11:19:34.0776 [INFO] : 启动PLC写线程! +2025-03-05 11:19:34.0776 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-05 11:19:34.0776 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-05 11:19:34.0776 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-05 11:19:34.0776 [INFO] : 连接PLC.... +2025-03-05 11:21:50.9494 [INFO] : --软件Program Main函数开始执行-- +2025-03-05 11:21:50.9768 [INFO] : 加载配置文件——>开始 +2025-03-05 11:21:51.0041 [INFO] : 加载配置文件——>完成 +2025-03-05 11:21:51.0041 [INFO] : Log in using the CLMS authorization. +2025-03-05 11:21:53.5809 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-05 11:21:54.0366 [INFO] : 启动PLC写线程! +2025-03-05 11:21:54.0366 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-05 11:21:54.0366 [INFO] : 连接PLC.... +2025-03-05 11:21:54.0366 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-05 11:21:54.0428 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-05 11:21:56.1341 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-05 11:21:56.1425 [ERROR] : PLC S7连接失败。 +2025-03-05 11:21:56.1425 [ERROR] : 连接PLC失败 +2025-03-05 11:21:56.1550 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-05 11:21:56.3064 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-05 11:22:40.0160 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-05 11:22:47.5138 [INFO] : --软件Program Main函数开始执行-- +2025-03-05 11:22:47.5296 [INFO] : 加载配置文件——>开始 +2025-03-05 11:22:47.5517 [INFO] : 加载配置文件——>完成 +2025-03-05 11:22:47.5517 [INFO] : Log in using the CLMS authorization. +2025-03-05 11:22:49.6036 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-05 11:22:50.0176 [INFO] : 启动PLC写线程! +2025-03-05 11:22:50.0176 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-05 11:22:50.0176 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-05 11:22:50.0176 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-05 11:22:50.0176 [INFO] : 连接PLC.... +2025-03-05 11:22:50.8463 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-05 11:22:50.9245 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-05 11:22:51.1100 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-05 11:22:52.1105 [ERROR] : PLC S7连接失败。 +2025-03-05 11:22:52.1105 [ERROR] : 连接PLC失败 +2025-03-05 11:23:44.6633 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-05 14:52:27.5382 [INFO] : --软件Program Main函数开始执行-- +2025-03-05 14:52:27.5780 [INFO] : 加载配置文件——>开始 +2025-03-05 14:52:27.6473 [INFO] : 加载配置文件——>完成 +2025-03-05 14:52:27.6473 [INFO] : Log in using the CLMS authorization. +2025-03-05 14:52:32.0564 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-05 14:52:33.3753 [INFO] : 启动PLC写线程! +2025-03-05 14:52:33.3823 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-05 14:52:33.3823 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-05 14:52:33.3823 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-05 14:52:33.3823 [INFO] : 连接PLC.... +2025-03-05 14:52:34.9162 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-05 14:52:34.9334 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-05 14:52:35.6221 [ERROR] : PLC S7连接失败。 +2025-03-05 14:52:35.6374 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-05 14:52:35.6422 [ERROR] : 连接PLC失败 +2025-03-05 15:01:34.1009 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2025-03-07.log b/Analysis/bin/x64/Debug/logs/2025-03-07.log new file mode 100644 index 0000000..c80a529 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2025-03-07.log @@ -0,0 +1,107 @@ +2025-03-07 11:49:23.7306 [INFO] : --软件Program Main函数开始执行-- +2025-03-07 11:49:23.8049 [INFO] : 加载配置文件——>开始 +2025-03-07 11:49:23.8339 [INFO] : 加载配置文件——>完成 +2025-03-07 11:49:23.8375 [INFO] : Log in using the CLMS authorization. +2025-03-07 11:49:26.4633 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-07 11:49:27.3505 [INFO] : 启动PLC写线程! +2025-03-07 11:49:27.3525 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-07 11:49:27.4301 [INFO] : 连接PLC.... +2025-03-07 11:49:27.4301 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-07 11:49:27.4301 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-07 11:49:28.6229 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 11:49:28.6544 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 11:49:28.7444 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-07 11:49:29.5910 [ERROR] : PLC S7连接失败。 +2025-03-07 11:49:29.5910 [ERROR] : 连接PLC失败 +2025-03-07 11:49:38.9020 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-07 11:51:04.8682 [INFO] : --软件Program Main函数开始执行-- +2025-03-07 11:51:04.9034 [INFO] : 加载配置文件——>开始 +2025-03-07 11:51:04.9322 [INFO] : 加载配置文件——>完成 +2025-03-07 11:51:04.9322 [INFO] : Log in using the CLMS authorization. +2025-03-07 11:51:07.4314 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-07 11:51:07.9428 [INFO] : 启动PLC写线程! +2025-03-07 11:51:07.9777 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-07 11:51:07.9777 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-07 11:51:07.9777 [INFO] : 连接PLC.... +2025-03-07 11:51:07.9777 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-07 11:51:08.8813 [INFO] : 存在EHY CSV文件,开始解析: +2025-03-07 11:51:08.8873 [INFO] : Copy D:\test\5mm_SelfTest_20250304_141005.csv TO D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250304_141005.csv Done. 备份完成 +2025-03-07 11:51:08.8873 [INFO] : 开始解析NextSense EHY CSV 报告:D:\test\5mm_SelfTest_20250304_141005.csv +2025-03-07 11:51:11.2935 [ERROR] : PLC S7连接失败。 +2025-03-07 11:51:14.8251 [INFO] : 解析NextSense 自检报告完毕!检查数量=4 +2025-03-07 11:51:14.8251 [INFO] : 开始生成客户所需要的CSV格式文件: +2025-03-07 11:51:14.8251 [INFO] : 客户自检报告生成完毕,路径为:D:\QMLTest\20250307115114_SelfMeasure20250307115108.csv +2025-03-07 11:51:14.8580 [ERROR] : 连接PLC失败 +2025-03-07 11:51:14.9739 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 11:51:14.9856 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 11:51:15.1596 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-07 15:50:31.2198 [INFO] : --软件Program Main函数开始执行-- +2025-03-07 15:50:31.3032 [INFO] : 加载配置文件——>开始 +2025-03-07 15:50:31.3281 [INFO] : 加载配置文件——>完成 +2025-03-07 15:50:31.3281 [INFO] : Log in using the CLMS authorization. +2025-03-07 15:50:31.4442 [INFO] : CLMS check license failed! Please authorize the operation. +2025-03-07 15:50:53.1374 [INFO] : --软件Program Main函数开始执行-- +2025-03-07 15:50:53.1587 [INFO] : 加载配置文件——>开始 +2025-03-07 15:50:53.1738 [INFO] : 加载配置文件——>完成 +2025-03-07 15:50:55.9586 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-07 15:50:56.8453 [INFO] : 启动PLC写线程! +2025-03-07 15:50:56.8503 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-07 15:50:56.8866 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-07 15:50:56.8866 [INFO] : 连接PLC.... +2025-03-07 15:50:56.9156 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-07 15:50:58.4221 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 15:50:58.4659 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 15:50:58.6570 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-07 15:50:59.0932 [ERROR] : PLC S7连接失败。 +2025-03-07 15:50:59.0932 [ERROR] : 连接PLC失败 +2025-03-07 15:51:50.4117 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-07 16:01:38.5863 [INFO] : --软件Program Main函数开始执行-- +2025-03-07 16:01:38.6472 [INFO] : 加载配置文件——>开始 +2025-03-07 16:01:38.6732 [INFO] : 加载配置文件——>完成 +2025-03-07 16:01:41.0239 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-07 16:01:41.5683 [INFO] : 启动PLC写线程! +2025-03-07 16:01:41.5683 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-07 16:01:41.6026 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-07 16:01:41.6026 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-07 16:01:41.6026 [INFO] : 连接PLC.... +2025-03-07 16:01:42.5115 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 16:01:42.5225 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 16:01:42.6752 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-07 16:01:43.7337 [ERROR] : PLC S7连接失败。 +2025-03-07 16:01:43.7407 [ERROR] : 连接PLC失败 +2025-03-07 16:03:25.7070 [INFO] : --软件Program Main函数开始执行-- +2025-03-07 16:03:25.7351 [INFO] : 加载配置文件——>开始 +2025-03-07 16:03:25.7526 [INFO] : 加载配置文件——>完成 +2025-03-07 16:03:28.1729 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-07 16:03:28.7326 [INFO] : 启动PLC写线程! +2025-03-07 16:03:28.7326 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-07 16:03:28.7326 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-07 16:03:28.7326 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-07 16:03:28.7386 [INFO] : 连接PLC.... +2025-03-07 16:03:29.6605 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 16:03:29.6605 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 16:03:29.8407 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-07 16:03:30.8301 [ERROR] : PLC S7连接失败。 +2025-03-07 16:03:30.8376 [ERROR] : 连接PLC失败 +2025-03-07 16:03:44.6581 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-03-07 16:06:21.0674 [INFO] : --软件Program Main函数开始执行-- +2025-03-07 16:06:21.1279 [INFO] : 加载配置文件——>开始 +2025-03-07 16:06:21.1552 [INFO] : 加载配置文件——>完成 +2025-03-07 16:06:23.5239 [INFO] : 进入显示车身模式!显示车身界面。 +2025-03-07 16:06:23.9591 [INFO] : 启动PLC写线程! +2025-03-07 16:06:23.9591 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-03-07 16:06:23.9591 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-03-07 16:06:23.9591 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-03-07 16:06:23.9591 [INFO] : 连接PLC.... +2025-03-07 16:06:26.0592 [ERROR] : PLC S7连接失败。 +2025-03-07 16:06:26.0674 [ERROR] : 连接PLC失败 +2025-03-07 16:06:26.1193 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 16:06:26.1321 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-03-07 16:06:26.3130 [INFO] : 显示右侧EHY车身数据界面。 +2025-03-07 16:06:31.1071 [INFO] : 存在EHY CSV文件,开始解析: +2025-03-07 16:06:31.1071 [INFO] : Copy D:\test\5mm_SelfTest_20250304_141005.csv TO D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\5mm_SelfTest_20250304_141005.csv Done. 备份完成 +2025-03-07 16:06:31.1168 [INFO] : 开始解析NextSense EHY CSV 报告:D:\test\5mm_SelfTest_20250304_141005.csv +2025-03-07 16:06:31.1363 [INFO] : 解析NextSense 自检报告完毕!检查数量=4 +2025-03-07 16:06:31.1435 [INFO] : 开始生成客户所需要的CSV格式文件: +2025-03-07 16:06:31.1435 [INFO] : 客户自检报告生成完毕,路径为:D:\QMLTest\20250307160631_SelfMeasure20250307160631.csv +2025-03-07 16:10:12.2160 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Debug/logs/2025-05-19.log b/Analysis/bin/x64/Debug/logs/2025-05-19.log new file mode 100644 index 0000000..2a4f11a --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2025-05-19.log @@ -0,0 +1,70 @@ +2025-05-19 11:04:49.4949 [INFO] : --软件Program Main函数开始执行-- +2025-05-19 11:04:49.5275 [INFO] : 加载配置文件——>开始 +2025-05-19 11:04:49.5531 [INFO] : 加载配置文件——>完成 +2025-05-19 11:04:51.5937 [INFO] : 进入显示车身模式!显示车身界面。 +2025-05-19 11:04:52.1524 [INFO] : 启动PLC写线程! +2025-05-19 11:04:52.1748 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-05-19 11:04:52.1787 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-05-19 11:04:52.1787 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-05-19 11:04:52.1787 [INFO] : 连接PLC.... +2025-05-19 11:04:52.9050 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 11:04:52.9188 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 11:04:53.0571 [INFO] : 显示右侧EHY车身数据界面。 +2025-05-19 11:04:54.2402 [ERROR] : PLC S7连接失败。 +2025-05-19 11:04:54.2402 [ERROR] : 连接PLC失败 +2025-05-19 11:06:28.9454 [INFO] : 存在EHY CSV文件,开始解析: +2025-05-19 11:06:28.9454 [INFO] : Copy D:\cherytestEHY\CheryEHY_20250519_102428.csv TO D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\CheryEHY_20250519_102428.csv Done. 备份完成 +2025-05-19 11:06:28.9454 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\CheryEHY_20250519_102428.csv +2025-05-19 11:06:28.9454 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDFC0SDF39699 +2025-05-19 11:06:28.9454 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2025-05-19 11:06:28.9454 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2025-05-19 11:06:29.4810 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2025-05-19 11:06:32.2098 [INFO] : 解析NextSense EHY CSV 报告完毕!检查数量=56 +2025-05-19 11:06:32.2098 [INFO] : LNNBBDFC0SDF39699 EHY开始计算极差:============ +2025-05-19 11:06:32.2744 [INFO] : LNNBBDFC0SDF39699 EHY计算极差完成,并插入数据库:============ +2025-05-19 11:06:32.6131 [INFO] : 计算合格率的时:包含极差计算项! +2025-05-19 11:06:32.6422 [INFO] : 将总结果插入数据库完毕。 +2025-05-19 11:06:32.6422 [INFO] : 全部插入解析完毕,删除文件:CheryEHY_20250519_102428.csv +2025-05-19 11:06:32.6492 [INFO] : 开始生成客户所需要的CSV格式文件: +2025-05-19 11:06:32.6492 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20250519110632_LNNBBDFC0SDF39699.csv +2025-05-19 11:06:32.6492 [INFO] : EHY数据上传IOT功能未启用! +2025-05-19 11:14:21.6193 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-05-19 13:52:25.2061 [INFO] : --软件Program Main函数开始执行-- +2025-05-19 13:52:25.2313 [INFO] : 加载配置文件——>开始 +2025-05-19 13:52:25.2688 [INFO] : 加载配置文件——>完成 +2025-05-19 13:52:27.7669 [INFO] : 进入显示车身模式!显示车身界面。 +2025-05-19 13:52:28.6190 [INFO] : 启动PLC写线程! +2025-05-19 13:52:28.6190 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-05-19 13:52:28.6190 [INFO] : 连接PLC.... +2025-05-19 13:52:28.6581 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-05-19 13:52:28.6581 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-05-19 13:52:29.7100 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 13:52:29.7387 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 13:52:29.9326 [INFO] : 显示右侧EHY车身数据界面。 +2025-05-19 13:52:30.7808 [ERROR] : PLC S7连接失败。 +2025-05-19 13:52:30.7829 [ERROR] : 连接PLC失败 +2025-05-19 13:52:34.9668 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-05-19 13:53:16.5244 [INFO] : --软件Program Main函数开始执行-- +2025-05-19 13:53:16.5496 [INFO] : 加载配置文件——>开始 +2025-05-19 13:53:16.5664 [INFO] : 加载配置文件——>完成 +2025-05-19 13:53:18.4446 [INFO] : 进入显示车身模式!显示车身界面。 +2025-05-19 13:53:18.8856 [INFO] : 启动PLC写线程! +2025-05-19 13:53:18.8856 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-05-19 13:53:18.8924 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-05-19 13:53:18.8924 [INFO] : 连接PLC.... +2025-05-19 13:53:18.9161 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-05-19 13:53:20.9581 [ERROR] : PLC S7连接失败。 +2025-05-19 13:53:39.3498 [ERROR] : 连接PLC失败 +2025-05-19 13:53:39.8037 [INFO] : Right EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 13:53:39.8353 [INFO] : Right EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2025-05-19 13:53:40.1225 [INFO] : 显示右侧EHY车身数据界面。 +2025-05-19 13:53:43.1508 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2025-05-19 14:11:36.4894 [INFO] : --软件Program Main函数开始执行-- +2025-05-19 14:11:36.5783 [INFO] : 加载配置文件——>开始 +2025-05-19 14:11:36.6233 [INFO] : 数据库连接 SqlServerName:127.0.0.1 +2025-05-19 14:11:36.6233 [INFO] : 数据库连接 SqlUserName:sa +2025-05-19 14:11:36.6233 [INFO] : 数据库连接 SqlPassword:Hexagon123 +2025-05-19 14:11:36.6233 [INFO] : 数据库连接 SqlDbName:NextSenseStandardDB +2025-05-19 14:11:36.6297 [INFO] : 加载配置文件——>完成 +2025-05-19 14:11:36.6297 [INFO] : Log in using the CLMS authorization. +2025-05-19 14:11:36.7570 [INFO] : CLMS check license failed! Please authorize the operation. diff --git a/Analysis/bin/x64/Debug/logs/2025-08-01.log b/Analysis/bin/x64/Debug/logs/2025-08-01.log new file mode 100644 index 0000000..a336959 --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2025-08-01.log @@ -0,0 +1,9 @@ +2025-08-01 17:24:11.8007 [INFO] : --软件Program Main函数开始执行-- +2025-08-01 17:24:11.8149 [INFO] : 加载配置文件——>开始 +2025-08-01 17:24:11.8342 [INFO] : 数据库连接 SqlServerName:127.0.0.1 +2025-08-01 17:24:11.8342 [INFO] : 数据库连接 SqlUserName:sa +2025-08-01 17:24:11.8342 [INFO] : 数据库连接 SqlPassword:Hexagon123 +2025-08-01 17:24:11.8342 [INFO] : 数据库连接 SqlDbName:NextSenseStandardDB +2025-08-01 17:24:11.8342 [INFO] : 加载配置文件——>完成 +2025-08-01 17:24:11.8342 [INFO] : Log in using the CLMS authorization. +2025-08-01 17:24:12.0011 [INFO] : CLMS check license failed! Please authorize the operation. diff --git a/Analysis/bin/x64/Debug/logs/2025-08-04.log b/Analysis/bin/x64/Debug/logs/2025-08-04.log new file mode 100644 index 0000000..adccc5a --- /dev/null +++ b/Analysis/bin/x64/Debug/logs/2025-08-04.log @@ -0,0 +1,46 @@ +2025-08-04 09:57:55.6200 [INFO] : --软件Program Main函数开始执行-- +2025-08-04 09:57:55.7354 [INFO] : 加载配置文件——>开始 +2025-08-04 09:57:55.7546 [INFO] : 数据库连接 SqlServerName:127.0.0.1 +2025-08-04 09:57:55.7546 [INFO] : 数据库连接 SqlUserName:sa +2025-08-04 09:57:55.7546 [INFO] : 数据库连接 SqlPassword:Hexagon123 +2025-08-04 09:57:55.7546 [INFO] : 数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 09:57:55.7546 [INFO] : 加载配置文件——>完成 +2025-08-04 09:57:55.7546 [INFO] : Log in using the CLMS authorization. +2025-08-04 09:57:55.8876 [INFO] : CLMS check license failed! Please authorize the operation. +2025-08-04 10:07:25.3267 [INFO] : --软件Program Main函数开始执行-- +2025-08-04 10:07:25.3760 [INFO] : 加载配置文件——>开始 +2025-08-04 10:07:25.3760 [INFO] : 数据库连接 SqlServerName:127.0.0.1 +2025-08-04 10:07:25.3760 [INFO] : 数据库连接 SqlUserName:sa +2025-08-04 10:07:25.3760 [INFO] : 数据库连接 SqlPassword:Hexagon123 +2025-08-04 10:07:25.3760 [INFO] : 数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 10:07:25.3760 [INFO] : 加载配置文件——>完成 +2025-08-04 10:07:27.4662 [INFO] : 数据库连接 SqlServerName:127.0.0.1 +2025-08-04 10:07:27.4673 [INFO] : 数据库连接 SqlUserName:sa +2025-08-04 10:07:27.4673 [INFO] : 数据库连接 SqlPassword:Hexagon123 +2025-08-04 10:07:27.4673 [INFO] : 数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 10:07:27.4673 [INFO] : 数据库连接字符串:Data Source=127.0.0.1;initial Catalog=NextSenseStandardDB;User ID=sa;password=Hexagon123; +2025-08-04 10:07:27.7771 [INFO] : 进入显示车身模式!显示车身界面。 +2025-08-04 10:07:28.2491 [INFO] : 启动PLC写线程! +2025-08-04 10:07:28.2850 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-08-04 10:07:28.2850 [INFO] : 连接PLC.... +2025-08-04 10:07:28.2850 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-08-04 10:07:28.2850 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-08-04 10:07:30.3726 [ERROR] : PLC S7连接失败。 +2025-08-04 10:07:30.3778 [ERROR] : 连接PLC失败 +2025-08-04 11:42:26.6915 [INFO] : --软件Program Main函数开始执行-- +2025-08-04 11:42:26.7063 [INFO] : 加载配置文件——>开始 +2025-08-04 11:42:26.7258 [INFO] : 数据库连接 SqlServerName:127.0.0.1 +2025-08-04 11:42:26.7258 [INFO] : 数据库连接 SqlUserName:sa +2025-08-04 11:42:26.7258 [INFO] : 数据库连接 SqlPassword:Hexagon123 +2025-08-04 11:42:26.7258 [INFO] : 数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 11:42:26.7258 [INFO] : 加载配置文件——>完成 +2025-08-04 11:42:28.4820 [INFO] : 数据库连接 SqlServerName:127.0.0.1 +2025-08-04 11:42:28.4820 [INFO] : 数据库连接 SqlUserName:sa +2025-08-04 11:42:28.4820 [INFO] : 数据库连接 SqlPassword:Hexagon123 +2025-08-04 11:42:28.4820 [INFO] : 数据库连接 SqlDbName:NextSenseStandardDB +2025-08-04 11:42:28.4820 [INFO] : 数据库连接字符串:Data Source=127.0.0.1;initial Catalog=NextSenseStandardDB;User ID=sa;password=Hexagon123; +2025-08-04 11:42:28.8521 [INFO] : 进入显示车身模式!显示车身界面。 +2025-08-04 11:42:28.8521 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2025-08-04 11:42:28.8521 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2025-08-04 11:42:28.8521 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2025-08-04 11:42:32.8197 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/advapi32.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/advapi32.dll new file mode 100644 index 0000000..b0573d8 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/advapi32.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll new file mode 100644 index 0000000..2fe309a Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-convert-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll new file mode 100644 index 0000000..f8c413e Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-filesystem-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll new file mode 100644 index 0000000..cd53a03 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-heap-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll new file mode 100644 index 0000000..2064a85 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-runtime-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll new file mode 100644 index 0000000..6e7b0ff Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-stdio-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll new file mode 100644 index 0000000..7cf2bc6 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-string-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll new file mode 100644 index 0000000..76637b3 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-time-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll new file mode 100644 index 0000000..03c6d50 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/api-ms-win-crt-utility-l1-1-0.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/kernel32.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/kernel32.dll new file mode 100644 index 0000000..f2d0776 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/kernel32.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/mfc140u.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/mfc140u.dll new file mode 100644 index 0000000..93ecfff Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/mfc140u.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/msvcp140.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/msvcp140.dll new file mode 100644 index 0000000..ac8cc56 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/msvcp140.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/netapi32.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/netapi32.dll new file mode 100644 index 0000000..bfbdfbf Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/netapi32.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/shlwapi.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/shlwapi.dll new file mode 100644 index 0000000..1bae023 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/shlwapi.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/ucrtbase.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/ucrtbase.dll new file mode 100644 index 0000000..0006edc Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/ucrtbase.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/ucrtbased.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/ucrtbased.dll new file mode 100644 index 0000000..ad1175f Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/ucrtbased.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/vcruntime140.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/vcruntime140.dll new file mode 100644 index 0000000..5de800b Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/vcruntime140.dll differ diff --git a/Analysis/bin/x64/Release/CLMSWin环境依赖/vcruntime140_1.dll b/Analysis/bin/x64/Release/CLMSWin环境依赖/vcruntime140_1.dll new file mode 100644 index 0000000..f27fb49 Binary files /dev/null and b/Analysis/bin/x64/Release/CLMSWin环境依赖/vcruntime140_1.dll differ diff --git a/Analysis/bin/x64/Release/Covert.dll b/Analysis/bin/x64/Release/Covert.dll new file mode 100644 index 0000000..a7cfe3a Binary files /dev/null and b/Analysis/bin/x64/Release/Covert.dll differ diff --git a/Analysis/bin/x64/Release/DAL.dll b/Analysis/bin/x64/Release/DAL.dll new file mode 100644 index 0000000..8d23ffa Binary files /dev/null and b/Analysis/bin/x64/Release/DAL.dll differ diff --git a/Analysis/bin/x64/Release/DAL.dll.config b/Analysis/bin/x64/Release/DAL.dll.config new file mode 100644 index 0000000..ed0ef66 --- /dev/null +++ b/Analysis/bin/x64/Release/DAL.dll.config @@ -0,0 +1,23 @@ + + + + + +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Release/DAL.pdb b/Analysis/bin/x64/Release/DAL.pdb new file mode 100644 index 0000000..8658f1c Binary files /dev/null and b/Analysis/bin/x64/Release/DAL.pdb differ diff --git a/Analysis/bin/x64/Release/DataBase/CheryAnalysisDB.db b/Analysis/bin/x64/Release/DataBase/CheryAnalysisDB.db new file mode 100644 index 0000000..2789702 Binary files /dev/null and b/Analysis/bin/x64/Release/DataBase/CheryAnalysisDB.db differ diff --git a/Analysis/bin/x64/Release/Debug.txt b/Analysis/bin/x64/Release/Debug.txt new file mode 100644 index 0000000..996cfb1 --- /dev/null +++ b/Analysis/bin/x64/Release/Debug.txt @@ -0,0 +1,16 @@ +2024-10-24 14:42:08.647----软件Program Main函数开始执行-- +2024-10-24 14:42:08.648--加载配置文件——>开始 +2024-10-24 14:42:08.661--加载配置文件——>完成 +2024-10-24 14:42:08.661--Log in using the CLMS authorization. +2024-10-24 14:42:10.639-- 进入显示车身模式!显示车身界面。 +2024-10-24 14:42:11.380--启动PLC写线程! +2024-10-24 14:42:11.381-- 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-24 14:42:11.381--连接PLC.... +2024-10-24 14:42:11.381--软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-24 14:42:11.381--软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-24 14:42:11.877--Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:42:12.111--Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:42:12.279--显示左侧EHY车身数据界面。 +2024-10-24 14:42:13.443--PLC S7连接失败。 +2024-10-24 14:42:13.445--连接PLC失败 +2024-10-24 14:42:18.869---------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/EncoderLogs/2024-09-27.csv b/Analysis/bin/x64/Release/EncoderLogs/2024-09-27.csv new file mode 100644 index 0000000..c8a6990 --- /dev/null +++ b/Analysis/bin/x64/Release/EncoderLogs/2024-09-27.csv @@ -0,0 +1,939 @@ +2024-09-27 11:38:12.1539,1,2,3,15.237 +2024-09-27 11:38:12.4648,1,2,3,15.237 +2024-09-27 11:38:12.7780,1,2,3,15.237 +2024-09-27 11:38:13.0880,1,2,3,15.237 +2024-09-27 11:38:13.4020,1,2,3,15.237 +2024-09-27 11:38:13.7121,1,2,3,15.237 +2024-09-27 11:38:14.0272,1,2,3,15.237 +2024-09-27 11:38:14.3376,1,2,3,15.237 +2024-09-27 11:38:14.6516,1,2,3,15.237 +2024-09-27 11:38:14.9626,1,2,3,15.237 +2024-09-27 11:38:15.2741,1,2,3,15.237 +2024-09-27 11:38:15.5873,1,2,3,15.237 +2024-09-27 11:38:15.9019,1,2,3,15.237 +2024-09-27 11:38:16.2117,1,2,3,15.237 +2024-09-27 11:38:16.5243,1,2,3,15.237 +2024-09-27 11:38:16.8406,1,2,3,15.237 +2024-09-27 11:38:17.1494,1,2,3,15.237 +2024-09-27 11:38:17.4627,1,2,3,15.237 +2024-09-27 11:38:17.7754,1,2,3,15.237 +2024-09-27 11:38:18.0891,1,2,3,15.237 +2024-09-27 11:38:18.4009,1,2,3,15.237 +2024-09-27 11:38:18.7127,1,2,3,15.237 +2024-09-27 11:38:19.0284,1,2,3,15.237 +2024-09-27 11:38:19.3359,1,2,3,15.237 +2024-09-27 11:38:19.6513,1,2,3,15.237 +2024-09-27 11:38:19.9629,1,2,3,15.237 +2024-09-27 11:38:20.2777,1,2,3,15.237 +2024-09-27 11:38:20.5886,1,2,3,15.237 +2024-09-27 11:38:20.9022,1,2,3,15.237 +2024-09-27 11:38:21.2134,1,2,3,15.237 +2024-09-27 11:38:21.5270,1,2,3,15.237 +2024-09-27 11:38:21.8371,1,2,3,15.237 +2024-09-27 11:38:22.1514,1,2,3,15.237 +2024-09-27 11:38:22.4623,1,2,3,15.237 +2024-09-27 11:38:22.7774,1,2,3,15.237 +2024-09-27 11:38:23.0862,1,2,3,15.237 +2024-09-27 11:38:23.3999,1,2,3,15.237 +2024-09-27 11:38:23.7119,1,2,3,15.237 +2024-09-27 11:38:24.0266,1,2,3,15.237 +2024-09-27 11:38:24.3371,1,2,3,15.237 +2024-09-27 11:38:24.6511,1,2,3,15.237 +2024-09-27 11:38:24.9627,1,2,3,15.237 +2024-09-27 11:38:25.2761,1,2,3,15.237 +2024-09-27 11:38:25.5871,1,2,3,15.237 +2024-09-27 11:38:25.8988,1,2,3,15.237 +2024-09-27 11:38:26.2130,1,2,3,15.237 +2024-09-27 11:38:26.5270,1,2,3,15.237 +2024-09-27 11:38:26.8360,1,2,3,15.237 +2024-09-27 11:38:27.1516,1,2,3,15.237 +2024-09-27 11:38:27.4619,1,2,3,15.237 +2024-09-27 11:38:27.7771,1,2,3,15.237 +2024-09-27 11:38:28.0883,1,2,3,15.237 +2024-09-27 11:38:28.3985,1,2,3,15.237 +2024-09-27 11:38:28.7111,1,2,3,15.237 +2024-09-27 11:38:29.0257,1,2,3,15.237 +2024-09-27 11:38:29.3379,1,2,3,15.237 +2024-09-27 11:38:29.6499,1,2,3,15.237 +2024-09-27 11:38:29.9624,1,2,3,15.237 +2024-09-27 11:38:30.2754,1,2,3,15.237 +2024-09-27 11:38:30.5869,1,2,3,15.237 +2024-09-27 11:38:30.9022,1,2,3,15.237 +2024-09-27 11:38:31.2139,1,2,3,15.237 +2024-09-27 11:38:31.5248,1,2,3,15.237 +2024-09-27 11:38:31.8394,1,2,3,15.237 +2024-09-27 11:38:32.1512,1,2,3,15.237 +2024-09-27 11:38:32.4607,1,2,3,15.237 +2024-09-27 11:38:32.7748,1,2,3,15.237 +2024-09-27 11:38:33.0886,1,2,3,15.237 +2024-09-27 11:38:33.3998,1,2,3,15.237 +2024-09-27 11:38:33.7115,1,2,3,15.237 +2024-09-27 11:38:34.0271,1,2,3,15.237 +2024-09-27 11:38:34.3382,1,2,3,15.237 +2024-09-27 11:38:34.6487,1,2,3,15.237 +2024-09-27 11:38:34.9626,1,2,3,15.237 +2024-09-27 11:38:35.2754,1,2,3,15.237 +2024-09-27 11:38:35.5888,1,2,3,15.237 +2024-09-27 11:38:35.8994,1,2,3,115.237 +2024-09-27 11:38:36.2117,1,2,3,115.237 +2024-09-27 11:38:36.5282,1,2,3,115.237 +2024-09-27 11:38:36.8361,1,2,3,115.237 +2024-09-27 11:38:37.1530,1,2,3,115.237 +2024-09-27 11:38:37.4637,1,2,3,115.237 +2024-09-27 11:38:37.7752,1,2,3,115.237 +2024-09-27 11:38:38.0869,1,2,3,115.237 +2024-09-27 11:38:38.3984,1,2,3,115.237 +2024-09-27 11:38:38.7124,1,2,3,115.237 +2024-09-27 11:38:39.0248,1,2,3,115.237 +2024-09-27 11:38:39.3380,1,2,3,115.237 +2024-09-27 11:38:39.6482,1,2,3,115.237 +2024-09-27 11:38:39.9613,1,2,3,115.237 +2024-09-27 11:38:40.2748,1,2,3,115.237 +2024-09-27 11:38:40.5860,1,2,3,115.237 +2024-09-27 11:38:40.9005,1,2,3,115.237 +2024-09-27 11:38:41.2146,1,2,3,115.237 +2024-09-27 11:38:41.5246,1,2,3,115.237 +2024-09-27 11:38:41.8367,1,2,3,115.237 +2024-09-27 11:38:42.1505,1,2,3,115.237 +2024-09-27 11:38:42.4616,1,2,3,115.237 +2024-09-27 11:38:42.7760,1,2,3,115.237 +2024-09-27 11:38:43.0865,1,2,3,115.237 +2024-09-27 11:38:43.3998,1,2,3,115.237 +2024-09-27 11:38:43.7101,1,2,3,115.237 +2024-09-27 11:38:44.0233,1,2,3,115.237 +2024-09-27 11:38:44.3379,1,2,3,115.237 +2024-09-27 11:38:44.6498,1,2,3,115.237 +2024-09-27 11:38:44.9633,1,2,3,115.237 +2024-09-27 11:38:45.2785,1,2,3,115.237 +2024-09-27 11:38:45.5856,1,2,3,115.237 +2024-09-27 11:38:45.8990,1,2,3,115.237 +2024-09-27 11:38:46.2109,1,2,3,115.237 +2024-09-27 11:38:46.5251,1,2,3,115.237 +2024-09-27 11:38:46.8381,1,2,3,115.237 +2024-09-27 11:38:47.1483,1,2,3,115.237 +2024-09-27 11:38:47.4623,1,2,3,115.237 +2024-09-27 11:38:47.7764,1,2,3,115.237 +2024-09-27 11:38:48.0855,1,2,3,115.237 +2024-09-27 11:38:48.3999,1,2,3,115.237 +2024-09-27 11:38:48.7125,1,2,3,115.237 +2024-09-27 11:38:49.0233,1,2,3,115.237 +2024-09-27 11:38:49.3372,1,2,3,115.237 +2024-09-27 11:38:49.6496,1,2,3,115.237 +2024-09-27 11:38:49.9606,1,2,3,115.237 +2024-09-27 11:38:50.2728,1,2,3,115.237 +2024-09-27 11:38:50.5868,1,2,3,115.237 +2024-09-27 11:38:50.8985,1,2,3,115.237 +2024-09-27 11:38:51.2111,1,2,3,115.237 +2024-09-27 11:38:51.5265,1,2,3,115.237 +2024-09-27 11:38:51.8367,1,2,3,115.237 +2024-09-27 11:38:52.1507,1,2,3,115.237 +2024-09-27 11:38:52.4606,1,2,3,115.237 +2024-09-27 11:38:52.7737,1,2,3,115.237 +2024-09-27 11:38:53.0864,1,2,3,115.237 +2024-09-27 11:38:53.4027,1,2,3,115.237 +2024-09-27 11:38:53.7148,1,2,3,115.237 +2024-09-27 11:38:54.0261,1,2,3,115.237 +2024-09-27 11:38:54.3356,1,2,3,115.237 +2024-09-27 11:38:54.6498,1,2,3,115.237 +2024-09-27 11:38:54.9615,1,2,3,115.237 +2024-09-27 11:38:55.2753,1,2,3,115.237 +2024-09-27 11:38:55.5884,1,2,3,115.237 +2024-09-27 11:38:55.9010,1,2,3,115.237 +2024-09-27 11:38:56.2145,1,2,3,115.237 +2024-09-27 11:38:56.5268,1,2,3,115.237 +2024-09-27 11:38:56.8364,1,2,3,115.237 +2024-09-27 11:38:57.1490,1,2,3,115.237 +2024-09-27 11:38:57.4632,1125.237,2,3,115.237 +2024-09-27 11:38:57.7728,1125.237,2,3,115.237 +2024-09-27 11:38:58.0870,1125.237,2,3,115.237 +2024-09-27 11:38:58.4004,1125.237,2,3,115.237 +2024-09-27 11:38:58.7111,1125.237,2,3,115.237 +2024-09-27 11:38:59.0228,1125.237,2,3,115.237 +2024-09-27 11:38:59.3378,1125.237,2,3,115.237 +2024-09-27 11:38:59.6494,1125.237,2,3,115.237 +2024-09-27 11:38:59.9627,1125.237,2,3,115.237 +2024-09-27 11:39:00.2729,1125.237,2,3,115.237 +2024-09-27 11:39:00.5879,1125.237,2,3,115.237 +2024-09-27 11:39:00.8978,1125.237,2,3,115.237 +2024-09-27 11:39:01.2102,1125.237,2,3,115.237 +2024-09-27 11:39:01.5255,1125.237,2,3,115.237 +2024-09-27 11:39:01.8377,1125.237,2,3,115.237 +2024-09-27 11:39:02.1510,1125.237,2,3,115.237 +2024-09-27 11:39:02.4605,1125.237,2,3,115.237 +2024-09-27 11:39:02.7768,1125.237,2,3,115.237 +2024-09-27 11:39:03.0857,1125.237,2,3,115.237 +2024-09-27 11:39:03.3992,1125.237,2,3,115.237 +2024-09-27 11:39:03.7104,1125.237,2,3,115.237 +2024-09-27 11:39:04.0230,1125.237,2,3,115.237 +2024-09-27 11:39:04.3367,1125.237,2,3,115.237 +2024-09-27 11:39:04.6517,1125.237,2,3,115.237 +2024-09-27 11:39:04.9625,1125.237,2,3,115.237 +2024-09-27 11:39:05.2730,1125.237,2,3,115.237 +2024-09-27 11:39:05.5898,1125.237,2,3,115.237 +2024-09-27 11:39:05.8974,1125.237,2,3,115.237 +2024-09-27 11:39:06.2114,1125.237,2,3,115.237 +2024-09-27 11:39:06.5227,1125.237,2,3,115.237 +2024-09-27 11:39:06.8372,1125.237,2,3,115.237 +2024-09-27 11:39:07.1499,1125.237,2,3,115.237 +2024-09-27 11:39:07.4600,1125.237,2,3,115.237 +2024-09-27 11:39:07.7754,1125.237,2,3,115.237 +2024-09-27 11:39:08.0868,1125.237,2,3,115.237 +2024-09-27 11:39:08.3994,1125.237,2,3,115.237 +2024-09-27 11:39:08.7128,1125.237,2,3,115.237 +2024-09-27 11:39:09.0223,1125.237,2,3,115.237 +2024-09-27 11:39:09.3382,1125.237,2,3,115.237 +2024-09-27 11:39:09.6515,1125.237,2,3,115.237 +2024-09-27 11:39:09.9609,1125.237,2,3,115.237 +2024-09-27 11:39:10.2737,1125.237,2,3,115.237 +2024-09-27 11:39:10.5877,1125.237,2,3,115.237 +2024-09-27 11:39:10.8977,1125.237,2,3,115.237 +2024-09-27 11:39:11.2118,1125.237,2,3,115.237 +2024-09-27 11:39:11.5251,1125.237,2,3,115.237 +2024-09-27 11:39:11.8356,1125.237,2,3,115.237 +2024-09-27 11:39:12.1501,1125.237,2,3,115.237 +2024-09-27 11:39:12.4617,1125.237,2,3,115.237 +2024-09-27 11:39:12.7744,1125.237,2,3,115.237 +2024-09-27 11:39:13.0850,1125.237,2,3,115.237 +2024-09-27 11:39:13.3994,1125.237,2,3,115.237 +2024-09-27 11:39:13.7124,1125.237,2,3,115.237 +2024-09-27 11:39:14.0246,1125.237,2,3,115.237 +2024-09-27 11:39:14.3373,1125.237,2,3,115.237 +2024-09-27 11:39:14.6490,1125.237,2,3,115.237 +2024-09-27 11:39:14.9603,1125.237,2,3,115.237 +2024-09-27 11:39:15.2746,1125.237,2,3,115.237 +2024-09-27 11:39:15.5853,1125.237,2,3,115.237 +2024-09-27 11:39:15.9009,1125.237,2,3,115.237 +2024-09-27 11:39:16.2100,1125.237,2,3,115.237 +2024-09-27 11:39:16.5235,1125.237,2,3,115.237 +2024-09-27 11:39:16.8364,1125.237,2,3,115.237 +2024-09-27 11:39:17.1474,1125.237,2,3,115.237 +2024-09-27 11:39:17.4602,1125.237,2,3,115.237 +2024-09-27 11:39:17.7746,1125.237,2,3,115.237 +2024-09-27 11:39:18.0859,1125.237,2,3,115.237 +2024-09-27 11:39:18.3982,1125.237,2,3,115.237 +2024-09-27 11:39:18.7120,1125.237,2,3,115.237 +2024-09-27 11:39:19.0225,1125.237,2,3,115.237 +2024-09-27 11:39:19.3361,1125.237,2,3,115.237 +2024-09-27 11:39:19.6488,1125.237,2,3,115.237 +2024-09-27 11:39:19.9600,1125.237,2,3,115.237 +2024-09-27 11:39:20.2772,1125.237,2,3,115.237 +2024-09-27 11:39:20.5867,1125.237,2,3,115.237 +2024-09-27 11:39:20.8972,1125.237,2,3,115.237 +2024-09-27 11:39:21.2111,1125.237,2,3,115.237 +2024-09-27 11:39:21.5242,1125.237,2,3,115.237 +2024-09-27 11:39:21.8359,1125.237,2,3,115.237 +2024-09-27 11:39:22.1483,1125.237,2,3,115.237 +2024-09-27 11:39:22.4631,1125.237,2,3,115.237 +2024-09-27 11:39:22.7742,1125.237,2,3,115.237 +2024-09-27 11:39:23.0862,1125.237,2,3,115.237 +2024-09-27 11:39:23.3996,1125.237,2,3,115.237 +2024-09-27 11:39:23.7134,1125.237,2,3,115.237 +2024-09-27 11:39:24.0246,1125.237,2,3,115.237 +2024-09-27 11:39:24.3357,1125.237,2,3,115.237 +2024-09-27 11:39:24.6502,1125.237,2,3,115.237 +2024-09-27 11:39:24.9609,1125.237,2,3,115.237 +2024-09-27 11:39:25.2746,1125.237,2,3,115.237 +2024-09-27 11:39:25.5860,1125.237,2,3,115.237 +2024-09-27 11:39:25.9001,1125.237,2,3,115.237 +2024-09-27 11:39:26.2131,1125.237,2,3,115.237 +2024-09-27 11:39:26.5226,1125.237,2,3,115.237 +2024-09-27 11:39:26.8378,1125.237,2,3,115.237 +2024-09-27 11:39:27.1465,1125.237,2,3,115.237 +2024-09-27 11:39:27.4609,1125.237,2,3,115.237 +2024-09-27 11:39:27.7733,1125.237,2,3,115.237 +2024-09-27 11:39:28.0853,1125.237,2,3,115.237 +2024-09-27 11:39:28.3983,1125.237,2,3,115.237 +2024-09-27 11:39:28.7111,1125.237,2,3,115.237 +2024-09-27 11:39:29.0275,1125.237,2,3,115.237 +2024-09-27 11:39:29.3344,1125.237,2,3,115.237 +2024-09-27 11:39:29.6484,1125.237,2,3,115.237 +2024-09-27 11:39:29.9637,1125.237,2,3,115.237 +2024-09-27 11:39:30.2722,1125.237,2,3,115.237 +2024-09-27 11:39:30.5857,1125.237,2,3,115.237 +2024-09-27 11:39:30.8976,1125.237,2,3,115.237 +2024-09-27 11:39:31.2118,1125.237,2,3,115.237 +2024-09-27 11:39:31.5241,1125.237,2,3,115.237 +2024-09-27 11:39:31.8378,1125.237,2,3,115.237 +2024-09-27 11:39:32.1495,1125.237,2,3,115.237 +2024-09-27 11:39:32.4608,1125.237,2,3,115.237 +2024-09-27 11:39:32.7730,1125.237,2,3,115.237 +2024-09-27 11:39:33.0855,1125.237,2,3,115.237 +2024-09-27 11:39:33.3985,1125.237,2,3,115.237 +2024-09-27 11:39:33.7122,1125.237,2,3,115.237 +2024-09-27 11:39:34.0233,1125.237,2,3,115.237 +2024-09-27 11:39:34.3344,1125.237,2,3,115.237 +2024-09-27 11:39:34.6497,1125.237,2,3,115.237 +2024-09-27 11:39:34.9610,1125.237,2,3,115.237 +2024-09-27 11:39:35.2733,1125.237,2,3,115.237 +2024-09-27 11:39:35.5884,1125.237,2,3,115.237 +2024-09-27 11:39:35.8984,1125.237,2,3,115.237 +2024-09-27 11:39:36.2103,1125.237,2,3,115.237 +2024-09-27 11:39:36.5224,1125.237,2,3,115.237 +2024-09-27 11:39:36.8373,1125.237,2,3,115.237 +2024-09-27 11:39:37.1480,1125.237,2,3,115.237 +2024-09-27 11:39:37.4621,1125.237,2,3,115.237 +2024-09-27 11:39:37.7753,1125.237,2,3,115.237 +2024-09-27 11:39:38.0869,1125.237,2,3,115.237 +2024-09-27 11:39:38.3980,1125.237,2,3,115.237 +2024-09-27 11:39:38.7104,1125.237,2,3,115.237 +2024-09-27 11:39:39.0235,1125.237,2,3,115.237 +2024-09-27 11:39:39.3366,1125.237,2,3,115.237 +2024-09-27 11:39:39.6485,1125.237,2,3,115.237 +2024-09-27 11:39:39.9622,1125.237,2,3,115.237 +2024-09-27 11:39:40.2723,1125.237,2,3,115.237 +2024-09-27 11:39:40.5858,1125.237,2,3,115.237 +2024-09-27 11:39:40.8984,1125.237,2,3,115.237 +2024-09-27 11:39:41.2106,1125.237,2,3,115.237 +2024-09-27 11:39:41.5227,1125.237,2,3,115.237 +2024-09-27 11:39:41.8354,1125.237,2,3,115.237 +2024-09-27 11:39:42.1512,1125.237,2,3,115.237 +2024-09-27 11:39:42.4602,1125.237,2,3,115.237 +2024-09-27 11:39:42.7750,1125.237,2,3,115.237 +2024-09-27 11:39:43.0846,1125.237,2,3,115.237 +2024-09-27 11:39:43.3986,1125.237,2,3,115.237 +2024-09-27 11:39:43.7094,1125.237,2,3,115.237 +2024-09-27 11:39:44.0235,1125.237,2,3,115.237 +2024-09-27 11:39:44.3364,1125.237,2,3,115.237 +2024-09-27 11:39:44.6471,1125.237,2,3,115.237 +2024-09-27 11:39:44.9626,1125.237,2,3,115.237 +2024-09-27 11:39:45.2747,1125.237,2,3,115.237 +2024-09-27 11:39:45.5848,1125.237,2,3,115.237 +2024-09-27 11:39:45.8981,1125.237,2,3,115.237 +2024-09-27 11:39:46.2102,1125.237,2,3,115.237 +2024-09-27 11:39:46.5236,1125.237,2,3,115.237 +2024-09-27 11:39:46.8359,1125.237,2,3,115.237 +2024-09-27 11:39:47.1472,1125.237,2,3,115.237 +2024-09-27 11:39:47.4599,1125.237,2,3,115.237 +2024-09-27 11:39:47.7761,1125.237,2,3,115.237 +2024-09-27 11:39:48.0853,1125.237,2,3,115.237 +2024-09-27 11:39:48.3976,1125.237,2,3,115.237 +2024-09-27 11:39:48.7135,1125.237,2,3,115.237 +2024-09-27 11:39:49.0228,1125.237,2,3,115.237 +2024-09-27 11:39:49.3353,1125.237,2,3,115.237 +2024-09-27 11:39:49.6472,1125.237,2,3,115.237 +2024-09-27 11:39:49.9609,1125.237,2,3,115.237 +2024-09-27 11:39:50.2747,1125.237,2,3,115.237 +2024-09-27 11:39:50.5858,1125.237,2,3,115.237 +2024-09-27 11:39:50.8985,1125.237,2,3,115.237 +2024-09-27 11:39:51.2092,1125.237,2,3,115.237 +2024-09-27 11:39:51.5232,1125.237,2,3,115.237 +2024-09-27 11:39:51.8340,1125.237,2,3,115.237 +2024-09-27 11:39:52.1490,1125.237,2,3,115.237 +2024-09-27 11:39:52.4610,1125.237,2,3,115.237 +2024-09-27 11:39:52.7728,1125.237,2,3,115.237 +2024-09-27 11:39:53.0871,1125.237,2,3,115.237 +2024-09-27 11:39:53.3993,1125.237,2,3,115.237 +2024-09-27 11:39:53.7115,1125.237,2,3,115.237 +2024-09-27 11:39:54.0218,1125.237,2,3,115.237 +2024-09-27 11:39:54.3351,1125.237,2,3,115.237 +2024-09-27 11:39:54.6475,1125.237,2,3,115.237 +2024-09-27 11:39:54.9596,1125.237,2,3,115.237 +2024-09-27 11:39:55.2762,1125.237,2,3,115.237 +2024-09-27 11:39:55.5840,1125.237,2,3,115.237 +2024-09-27 11:39:55.8985,1125.237,2,3,115.237 +2024-09-27 11:39:56.2091,1125.237,2,3,115.237 +2024-09-27 11:39:56.5217,1125.237,2,3,115.237 +2024-09-27 11:39:56.8355,1125.237,2,3,115.237 +2024-09-27 11:39:57.1466,1125.237,2,3,115.237 +2024-09-27 11:39:57.4609,1125.237,2,3,115.237 +2024-09-27 11:39:57.7727,1125.237,2,3,115.237 +2024-09-27 11:39:58.0859,1125.237,2,3,115.237 +2024-09-27 11:39:58.3984,1125.237,2,3,115.237 +2024-09-27 11:39:58.7098,1125.237,2,3,115.237 +2024-09-27 11:39:59.0236,1125.237,2,3,115.237 +2024-09-27 11:39:59.3351,1125.237,2,3,115.237 +2024-09-27 11:39:59.6494,1125.237,2,3,115.237 +2024-09-27 11:39:59.9592,1125.237,2,3,115.237 +2024-09-27 11:40:00.2725,1125.237,2,3,115.237 +2024-09-27 11:40:00.5845,1125.237,2,3,115.237 +2024-09-27 11:40:00.8975,1125.237,2,3,115.237 +2024-09-27 11:40:01.2093,1125.237,2,3,115.237 +2024-09-27 11:40:01.5242,1125.237,2,3,115.237 +2024-09-27 11:40:01.8367,1125.237,2,3,115.237 +2024-09-27 11:40:02.1479,1125.237,2,3,115.237 +2024-09-27 11:40:02.4601,1125.237,2,3,115.237 +2024-09-27 11:40:02.7721,1125.237,2,3,115.237 +2024-09-27 11:40:03.0850,1125.237,2,3,115.237 +2024-09-27 11:40:03.3970,1125.237,2,3,115.237 +2024-09-27 11:40:03.7119,1125.237,2,3,115.237 +2024-09-27 11:40:04.0231,1125.237,2,3,115.237 +2024-09-27 11:40:04.3343,1125.237,2,3,115.237 +2024-09-27 11:40:04.6472,1125.237,2,3,115.237 +2024-09-27 11:40:04.9590,1125.237,2,3,115.237 +2024-09-27 11:40:05.2722,1125.237,2,3,115.237 +2024-09-27 11:40:05.5875,1125.237,2,3,115.237 +2024-09-27 11:40:05.8964,1125.237,2,3,115.237 +2024-09-27 11:40:06.2105,1125.237,2,3,115.237 +2024-09-27 11:40:06.5249,1125.237,2,3,115.237 +2024-09-27 11:40:06.8360,1125.237,2,3,115.237 +2024-09-27 11:40:07.1465,1125.237,2,3,115.237 +2024-09-27 11:40:07.4602,1125.237,2,3,115.237 +2024-09-27 11:40:07.7747,1125.237,2,3,115.237 +2024-09-27 11:40:08.0843,1125.237,2,3,115.237 +2024-09-27 11:40:08.3982,1125.237,2,3,115.237 +2024-09-27 11:40:08.7089,1125.237,2,3,115.237 +2024-09-27 11:40:09.0226,1125.237,2,3,115.237 +2024-09-27 11:40:09.3371,1125.237,2,3,115.237 +2024-09-27 11:40:09.6470,1125.237,2,3,115.237 +2024-09-27 11:40:09.9596,1125.237,2,3,115.237 +2024-09-27 11:40:10.2728,1125.237,2,3,115.237 +2024-09-27 11:40:10.5882,1125.237,2,3,115.237 +2024-09-27 11:40:10.8981,1125.237,2,3,115.237 +2024-09-27 11:40:11.2088,1125.237,2,3,115.237 +2024-09-27 11:40:11.5234,1125.237,2,3,115.237 +2024-09-27 11:40:11.8350,1125.237,2,3,115.237 +2024-09-27 11:40:12.1473,1125.237,2,3,115.237 +2024-09-27 11:40:12.4587,1125.237,2,3,115.237 +2024-09-27 11:40:12.7741,1125.237,2,3,115.237 +2024-09-27 11:40:13.0863,1125.237,2,3,115.237 +2024-09-27 11:40:13.3984,1125.237,2,3,115.237 +2024-09-27 11:40:13.7094,1125.237,2,3,115.237 +2024-09-27 11:40:14.0228,1125.237,2,3,115.237 +2024-09-27 11:40:14.3343,1125.237,2,3,115.237 +2024-09-27 11:40:14.6502,1125.237,2,3,115.237 +2024-09-27 11:40:14.9620,1125.237,2,3,115.237 +2024-09-27 11:40:15.2742,1125.237,2,3,115.237 +2024-09-27 11:40:15.5842,1125.237,2,3,115.237 +2024-09-27 11:40:15.8977,1125.237,2,3,115.237 +2024-09-27 11:40:16.2096,1125.237,2,3,115.237 +2024-09-27 11:40:16.5230,1125.237,2,3,115.237 +2024-09-27 11:40:16.8343,1125.237,2,3,115.237 +2024-09-27 11:40:17.1473,1125.237,2,3,115.237 +2024-09-27 11:40:17.4597,1125.237,2,3,115.237 +2024-09-27 11:40:17.7714,1125.237,2,3,115.237 +2024-09-27 11:40:18.0834,1125.237,2,3,115.237 +2024-09-27 11:40:18.3986,1125.237,2,3,115.237 +2024-09-27 11:40:18.7121,1125.237,2,3,115.237 +2024-09-27 11:40:19.0228,1125.237,2,3,115.237 +2024-09-27 11:40:19.3369,1125.237,2,3,115.237 +2024-09-27 11:40:19.6467,1125.237,2,3,115.237 +2024-09-27 11:40:19.9601,1125.237,2,3,115.237 +2024-09-27 11:40:20.2718,1125.237,2,3,115.237 +2024-09-27 11:40:20.5850,1125.237,2,3,115.237 +2024-09-27 11:40:20.8985,1125.237,2,3,115.237 +2024-09-27 11:40:21.2088,1125.237,2,3,115.237 +2024-09-27 11:40:21.5230,1125.237,2,3,115.237 +2024-09-27 11:40:21.8361,1125.237,2,3,115.237 +2024-09-27 11:40:22.1479,1125.237,2,3,115.237 +2024-09-27 11:40:22.4595,1125.237,2,3,115.237 +2024-09-27 11:40:22.7738,1125.237,2,3,115.237 +2024-09-27 11:40:23.0843,1125.237,2,3,115.237 +2024-09-27 11:40:23.3989,1125.237,2,3,115.237 +2024-09-27 11:40:23.7100,1125.237,2,3,115.237 +2024-09-27 11:40:24.0230,1125.237,2,3,115.237 +2024-09-27 11:40:24.3338,1125.237,2,3,115.237 +2024-09-27 11:40:24.6460,1125.237,2,3,115.237 +2024-09-27 11:40:24.9587,1125.237,2,3,115.237 +2024-09-27 11:40:25.2727,1125.237,2,3,115.237 +2024-09-27 11:40:25.5849,1125.237,2,3,115.237 +2024-09-27 11:40:25.9008,1125.237,2,3,115.237 +2024-09-27 11:40:26.2085,1125.237,2,3,115.237 +2024-09-27 11:40:26.5225,1125.237,2,3,115.237 +2024-09-27 11:40:26.8353,1125.237,2,3,115.237 +2024-09-27 11:40:27.1487,1125.237,2,3,115.237 +2024-09-27 11:40:27.4592,1125.237,2,3,115.237 +2024-09-27 11:40:27.7730,1125.237,2,3,115.237 +2024-09-27 11:40:28.0869,1125.237,2,3,115.237 +2024-09-27 11:40:28.3960,1125.237,2,3,115.237 +2024-09-27 11:40:28.7084,1125.237,2,3,115.237 +2024-09-27 11:40:29.0221,1125.237,2,3,115.237 +2024-09-27 11:40:29.3343,1125.237,2,3,115.237 +2024-09-27 11:40:29.6460,1125.237,2,3,115.237 +2024-09-27 11:40:29.9599,1125.237,2,3,115.237 +2024-09-27 11:40:30.2750,1125.237,2,3,115.237 +2024-09-27 11:40:30.5847,1125.237,2,3,115.237 +2024-09-27 11:40:30.8988,1125.237,2,3,115.237 +2024-09-27 11:40:31.2084,1125.237,2,3,115.237 +2024-09-27 11:40:31.5231,1125.237,2,3,115.237 +2024-09-27 11:40:31.8375,1125.237,2,3,115.237 +2024-09-27 11:40:32.1489,1125.237,2,3,115.237 +2024-09-27 11:40:32.4614,1125.237,2,3,115.237 +2024-09-27 11:40:32.7734,1125.237,2,3,115.237 +2024-09-27 11:40:33.0857,1125.237,2,3,115.237 +2024-09-27 11:40:33.3980,1125.237,2,3,115.237 +2024-09-27 11:40:33.7095,1125.237,2,3,115.237 +2024-09-27 11:40:34.0221,1125.237,2,3,115.237 +2024-09-27 11:40:34.3342,1125.237,2,3,115.237 +2024-09-27 11:40:34.6495,1125.237,2,3,115.237 +2024-09-27 11:40:34.9600,1125.237,2,3,115.237 +2024-09-27 11:40:35.2722,1125.237,2,3,115.237 +2024-09-27 11:40:35.5864,1125.237,2,3,115.237 +2024-09-27 11:40:35.8981,1125.237,2,3,115.237 +2024-09-27 11:40:36.2098,1125.237,2,3,115.237 +2024-09-27 11:40:36.5220,1125.237,2,3,115.237 +2024-09-27 11:40:36.8367,1125.237,2,3,115.237 +2024-09-27 11:40:37.1484,1125.237,2,3,115.237 +2024-09-27 11:40:37.4619,1125.237,2,3,115.237 +2024-09-27 11:40:37.7730,1125.237,2,3,115.237 +2024-09-27 11:40:38.0849,1125.237,2,3,115.237 +2024-09-27 11:40:38.3959,1125.237,2,3,115.237 +2024-09-27 11:40:38.7081,1125.237,2,3,115.237 +2024-09-27 11:40:39.0232,1125.237,2,3,115.237 +2024-09-27 11:40:39.3345,1125.237,2,3,115.237 +2024-09-27 11:40:39.6491,1125.237,2,3,115.237 +2024-09-27 11:40:39.9593,1125.237,2,3,115.237 +2024-09-27 11:40:40.2735,1125.237,2,3,115.237 +2024-09-27 11:40:40.5860,1125.237,2,3,115.237 +2024-09-27 11:40:40.8977,1125.237,2,3,115.237 +2024-09-27 11:40:41.2106,1125.237,2,3,115.237 +2024-09-27 11:40:41.5219,1125.237,2,3,115.237 +2024-09-27 11:40:41.8340,1125.237,2,3,115.237 +2024-09-27 11:40:42.1460,1125.237,2,3,115.237 +2024-09-27 11:40:42.4592,1125.237,2,3,115.237 +2024-09-27 11:40:42.7732,1125.237,2,3,115.237 +2024-09-27 11:40:43.0858,1125.237,2,3,115.237 +2024-09-27 11:40:43.3986,1125.237,2,3,115.237 +2024-09-27 11:40:43.7089,1125.237,2,3,115.237 +2024-09-27 11:40:44.0216,1125.237,2,3,115.237 +2024-09-27 11:40:44.3344,1125.237,2,3,115.237 +2024-09-27 11:40:44.6458,1125.237,2,3,115.237 +2024-09-27 11:40:44.9584,1125.237,2,3,115.237 +2024-09-27 11:40:45.2730,1125.237,2,3,115.237 +2024-09-27 11:40:45.5843,1125.237,2,3,115.237 +2024-09-27 11:40:45.8958,1125.237,2,3,115.237 +2024-09-27 11:40:46.2086,1125.237,2,3,115.237 +2024-09-27 11:40:46.5207,1125.237,2,3,115.237 +2024-09-27 11:40:46.8333,1125.237,2,3,115.237 +2024-09-27 11:40:47.1496,1125.237,2,3,115.237 +2024-09-27 11:40:47.4599,1125.237,2,3,115.237 +2024-09-27 11:40:47.7732,1125.237,2,3,115.237 +2024-09-27 11:40:48.0837,1125.237,2,3,115.237 +2024-09-27 11:40:48.3976,1125.237,2,3,115.237 +2024-09-27 11:40:48.7108,1125.237,2,3,115.237 +2024-09-27 11:40:49.0213,1125.237,2,3,115.237 +2024-09-27 11:40:49.3348,1125.237,2,3,115.237 +2024-09-27 11:40:49.6487,1125.237,2,3,115.237 +2024-09-27 11:40:49.9602,1125.237,2,3,115.237 +2024-09-27 11:40:50.2712,1125.237,2,3,115.237 +2024-09-27 11:40:50.5839,1125.237,2,3,115.237 +2024-09-27 11:40:50.8963,1125.237,2,3,115.237 +2024-09-27 11:40:51.2094,1125.237,2,3,115.237 +2024-09-27 11:40:51.5232,1125.237,2,3,115.237 +2024-09-27 11:40:51.8363,1125.237,2,3,115.237 +2024-09-27 11:40:52.1491,1125.237,2,3,115.237 +2024-09-27 11:40:52.4603,1125.237,2,3,115.237 +2024-09-27 11:40:52.7724,1125.237,2,3,115.237 +2024-09-27 11:40:53.0851,1125.237,2,3,115.237 +2024-09-27 11:40:53.3953,1125.237,2,3,115.237 +2024-09-27 11:40:53.7080,1125.237,2,3,115.237 +2024-09-27 11:40:54.0227,1125.237,2,3,115.237 +2024-09-27 11:40:54.3352,1125.237,2,3,115.237 +2024-09-27 11:40:54.6489,1125.237,2,3,115.237 +2024-09-27 11:40:54.9574,1125.237,2,3,115.237 +2024-09-27 11:40:55.2723,1125.237,2,3,115.237 +2024-09-27 11:40:55.5863,1125.237,2,3,115.237 +2024-09-27 11:40:55.8973,1125.237,2,3,115.237 +2024-09-27 11:40:56.2079,1125.237,2,3,115.237 +2024-09-27 11:40:56.5223,1125.237,2,3,115.237 +2024-09-27 11:40:56.8343,1125.237,2,3,115.237 +2024-09-27 11:40:57.1461,1125.237,2,3,115.237 +2024-09-27 11:40:57.4587,1125.237,2,3,115.237 +2024-09-27 11:40:57.7717,1125.237,2,3,115.237 +2024-09-27 11:40:58.0849,1125.237,2,3,115.237 +2024-09-27 11:40:58.3964,1125.237,2,3,115.237 +2024-09-27 11:40:58.7101,1125.237,2,3,115.237 +2024-09-27 11:40:59.0203,1125.237,2,3,115.237 +2024-09-27 11:40:59.3348,1125.237,2,3,115.237 +2024-09-27 11:40:59.6451,1125.237,2,3,115.237 +2024-09-27 11:40:59.9593,1125.237,2,3,115.237 +2024-09-27 11:41:00.2709,1125.237,2,3,115.237 +2024-09-27 11:41:00.5849,1125.237,2,3,115.237 +2024-09-27 11:41:00.9005,1125.237,2,3,115.237 +2024-09-27 11:41:01.2112,1125.237,2,3,115.237 +2024-09-27 11:41:01.5228,1125.237,2,3,115.237 +2024-09-27 11:41:01.8335,1125.237,2,3,115.237 +2024-09-27 11:41:02.1478,1125.237,2,3,115.237 +2024-09-27 11:41:02.4599,1125.237,2,3,115.237 +2024-09-27 11:41:02.7737,1125.237,2,3,115.237 +2024-09-27 11:41:03.0839,1125.237,2,3,115.237 +2024-09-27 11:41:03.3980,1125.237,2,3,115.237 +2024-09-27 11:41:03.7094,1125.237,2,3,115.237 +2024-09-27 11:41:04.0200,1125.237,2,3,115.237 +2024-09-27 11:41:04.3343,1125.237,2,3,115.237 +2024-09-27 11:41:04.6463,1125.237,2,3,115.237 +2024-09-27 11:41:04.9612,1125.237,2,3,115.237 +2024-09-27 11:41:05.2731,1125.237,2,3,115.237 +2024-09-27 11:41:05.5839,1125.237,2,3,115.237 +2024-09-27 11:41:05.8956,1125.237,2,3,115.237 +2024-09-27 11:41:06.2091,1125.237,2,3,115.237 +2024-09-27 11:41:06.5228,1125.237,2,3,115.237 +2024-09-27 11:41:06.8330,1125.237,2,3,115.237 +2024-09-27 11:41:07.1476,1125.237,2,3,115.237 +2024-09-27 11:41:07.4612,1125.237,2,3,115.237 +2024-09-27 11:41:07.7707,1125.237,2,3,115.237 +2024-09-27 11:41:08.0837,1125.237,2,3,115.237 +2024-09-27 11:41:08.3967,1125.237,2,3,115.237 +2024-09-27 11:41:08.7112,1125.237,2,3,115.237 +2024-09-27 11:41:09.0224,1125.237,2,3,115.237 +2024-09-27 11:41:09.3360,1125.237,2,3,115.237 +2024-09-27 11:41:09.6461,1125.237,2,3,115.237 +2024-09-27 11:41:09.9600,1125.237,2,3,115.237 +2024-09-27 11:41:10.2705,1125.237,2,3,115.237 +2024-09-27 11:41:10.5835,1125.237,2,3,115.237 +2024-09-27 11:41:10.8974,1125.237,2,3,115.237 +2024-09-27 11:41:11.2077,1125.237,2,3,115.237 +2024-09-27 11:41:11.5232,1125.237,2,3,115.237 +2024-09-27 11:41:11.8347,1125.237,2,3,115.237 +2024-09-27 11:41:12.1453,1125.237,2,3,115.237 +2024-09-27 11:41:12.4605,1125.237,2,3,115.237 +2024-09-27 11:41:12.7715,1125.237,2,3,115.237 +2024-09-27 11:41:13.0856,1125.237,2,3,115.237 +2024-09-27 11:41:13.3968,1125.237,2,3,115.237 +2024-09-27 11:41:13.7079,1125.237,2,3,115.237 +2024-09-27 11:41:14.0214,1125.237,2,3,115.237 +2024-09-27 11:41:14.3335,1125.237,2,3,115.237 +2024-09-27 11:41:14.6466,1125.237,2,3,115.237 +2024-09-27 11:41:14.9580,1125.237,2,3,115.237 +2024-09-27 11:41:15.2700,1125.237,2,3,115.237 +2024-09-27 11:41:15.5836,1125.237,2,3,115.237 +2024-09-27 11:41:15.8960,1125.237,2,3,115.237 +2024-09-27 11:41:16.2106,1125.237,2,3,115.237 +2024-09-27 11:41:16.5198,1125.237,2,3,115.237 +2024-09-27 11:41:16.8326,1125.237,2,3,115.237 +2024-09-27 11:41:17.1457,1125.237,2,3,115.237 +2024-09-27 11:41:17.4580,1125.237,2,3,115.237 +2024-09-27 11:41:17.7703,1125.237,2,3,115.237 +2024-09-27 11:41:18.0841,1125.237,2,3,115.237 +2024-09-27 11:41:18.3965,1125.237,2,3,115.237 +2024-09-27 11:41:18.7110,1125.237,2,3,115.237 +2024-09-27 11:41:19.0214,1125.237,2,3,115.237 +2024-09-27 11:41:19.3322,1125.237,2,3,115.237 +2024-09-27 11:41:19.6460,1125.237,2,3,115.237 +2024-09-27 11:41:19.9566,1125.237,2,3,115.237 +2024-09-27 11:41:20.2716,1125.237,2,3,115.237 +2024-09-27 11:41:20.5862,1125.237,2,3,115.237 +2024-09-27 11:41:20.8977,1125.237,2,3,115.237 +2024-09-27 11:41:21.2093,1125.237,2,3,115.237 +2024-09-27 11:41:21.5202,1125.237,2,3,115.237 +2024-09-27 11:41:21.8338,1125.237,2,3,115.237 +2024-09-27 11:41:22.1474,1125.237,2,3,115.237 +2024-09-27 11:41:22.4574,1125.237,2,3,115.237 +2024-09-27 11:41:22.7717,1125.237,2,3,115.237 +2024-09-27 11:41:23.0842,1125.237,2,3,115.237 +2024-09-27 11:41:23.3949,1125.237,2,3,115.237 +2024-09-27 11:41:23.7090,1125.237,2,3,115.237 +2024-09-27 11:41:24.0202,1125.237,2,3,115.237 +2024-09-27 11:41:24.3326,1125.237,2,3,115.237 +2024-09-27 11:41:24.6451,1125.237,2,3,115.237 +2024-09-27 11:41:24.9596,1125.237,2,3,115.237 +2024-09-27 11:41:25.2700,1125.237,2,3,115.237 +2024-09-27 11:41:25.5837,1125.237,2,3,115.237 +2024-09-27 11:41:25.8965,1125.237,2,3,115.237 +2024-09-27 11:41:26.2082,1125.237,2,3,115.237 +2024-09-27 11:41:26.5224,1125.237,2,3,115.237 +2024-09-27 11:41:26.8334,1125.237,2,3,115.237 +2024-09-27 11:41:27.1502,1125.237,2,3,115.237 +2024-09-27 11:41:27.4584,1125.237,2,3,115.237 +2024-09-27 11:41:27.7727,1125.237,2,3,115.237 +2024-09-27 11:41:28.0836,1125.237,2,3,115.237 +2024-09-27 11:41:28.3968,1125.237,2,3,115.237 +2024-09-27 11:41:28.7091,1125.237,2,3,115.237 +2024-09-27 11:41:29.0234,1125.237,2,3,115.237 +2024-09-27 11:41:29.3345,1125.237,2,3,115.237 +2024-09-27 11:41:29.6472,1125.237,2,3,115.237 +2024-09-27 11:41:29.9605,1125.237,2,3,115.237 +2024-09-27 11:41:30.2708,1125.237,2,3,115.237 +2024-09-27 11:41:30.5840,1125.237,2,3,115.237 +2024-09-27 11:41:30.8947,1125.237,2,3,115.237 +2024-09-27 11:41:31.2100,1125.237,2,3,115.237 +2024-09-27 11:41:31.5234,1125.237,2,3,115.237 +2024-09-27 11:41:31.8344,1125.237,2,3,115.237 +2024-09-27 11:41:32.1447,1125.237,2,3,115.237 +2024-09-27 11:41:32.4581,1125.237,2,3,115.237 +2024-09-27 11:41:32.7718,1125.237,2,3,115.237 +2024-09-27 11:41:33.0854,1125.237,2,3,115.237 +2024-09-27 11:41:33.3955,1125.237,2,3,115.237 +2024-09-27 11:41:33.7098,1125.237,2,3,115.237 +2024-09-27 11:41:34.0221,1125.237,2,3,115.237 +2024-09-27 11:41:34.3336,1125.237,2,3,115.237 +2024-09-27 11:41:34.6446,1125.237,2,3,115.237 +2024-09-27 11:41:34.9586,1125.237,2,3,115.237 +2024-09-27 11:41:35.2716,1125.237,2,3,115.237 +2024-09-27 11:41:35.5836,1125.237,2,3,115.237 +2024-09-27 11:41:35.8984,1125.237,2,3,115.237 +2024-09-27 11:41:36.2086,1125.237,2,3,115.237 +2024-09-27 11:41:36.5199,1125.237,2,3,115.237 +2024-09-27 11:41:36.8348,1125.237,2,3,115.237 +2024-09-27 11:41:37.1474,1125.237,2,3,115.237 +2024-09-27 11:41:37.4589,1125.237,2,3,115.237 +2024-09-27 11:41:37.7716,1125.237,2,3,115.237 +2024-09-27 11:41:38.0838,1125.237,2,3,115.237 +2024-09-27 11:41:38.3961,1125.237,2,3,115.237 +2024-09-27 11:41:38.7091,1125.237,2,3,115.237 +2024-09-27 11:41:39.0212,1125.237,2,3,115.237 +2024-09-27 11:41:39.3343,1125.237,2,3,115.237 +2024-09-27 11:41:39.6468,1125.237,2,3,115.237 +2024-09-27 11:41:39.9581,1125.237,2,3,115.237 +2024-09-27 11:41:40.2705,1125.237,2,3,115.237 +2024-09-27 11:41:40.5825,1125.237,2,3,115.237 +2024-09-27 11:41:40.8953,1125.237,2,3,115.237 +2024-09-27 11:41:41.2086,1125.237,2,3,115.237 +2024-09-27 11:41:41.5205,1125.237,2,3,115.237 +2024-09-27 11:41:41.8327,1125.237,2,3,115.237 +2024-09-27 11:41:42.1473,1125.237,2,3,115.237 +2024-09-27 11:41:42.4600,1125.237,2,3,115.237 +2024-09-27 11:41:42.7720,1125.237,2,3,115.237 +2024-09-27 11:41:43.0821,1125.237,2,3,115.237 +2024-09-27 11:41:43.3947,1125.237,2,3,115.237 +2024-09-27 11:41:43.7091,1125.237,2,3,115.237 +2024-09-27 11:41:44.0245,1125.237,2,3,115.237 +2024-09-27 11:41:44.3321,1125.237,2,3,115.237 +2024-09-27 11:41:44.6480,1125.237,2,3,115.237 +2024-09-27 11:41:44.9603,1125.237,2,3,115.237 +2024-09-27 11:41:45.2738,1125.237,2,3,115.237 +2024-09-27 11:41:45.5826,1125.237,2,3,115.237 +2024-09-27 11:41:45.8959,1125.237,2,3,115.237 +2024-09-27 11:41:46.2085,1125.237,2,3,115.237 +2024-09-27 11:41:46.5215,1125.237,2,3,115.237 +2024-09-27 11:41:46.8359,1125.237,2,3,115.237 +2024-09-27 11:41:47.1448,1125.237,2,3,115.237 +2024-09-27 11:41:47.4586,1125.237,2,3,115.237 +2024-09-27 11:41:47.7700,1125.237,2,3,115.237 +2024-09-27 11:41:48.0851,1125.237,2,3,115.237 +2024-09-27 11:41:48.3962,1125.237,2,3,115.237 +2024-09-27 11:41:48.7105,1125.237,2,3,115.237 +2024-09-27 11:41:49.0218,1125.237,2,3,115.237 +2024-09-27 11:41:49.3335,1125.237,2,3,115.237 +2024-09-27 11:41:49.6455,1125.237,2,3,115.237 +2024-09-27 11:41:49.9582,1125.237,2,3,115.237 +2024-09-27 11:41:50.2713,1125.237,2,3,115.237 +2024-09-27 11:41:50.5833,1125.237,2,3,115.237 +2024-09-27 11:41:50.8956,1125.237,2,3,115.237 +2024-09-27 11:41:51.2091,1125.237,2,3,115.237 +2024-09-27 11:41:51.5213,1125.237,2,3,115.237 +2024-09-27 11:41:51.8336,1125.237,2,3,115.237 +2024-09-27 11:41:52.1469,1125.237,2,3,115.237 +2024-09-27 11:41:52.4607,1125.237,2,3,115.237 +2024-09-27 11:41:52.7707,1125.237,2,3,115.237 +2024-09-27 11:41:53.0820,1125.237,2,3,115.237 +2024-09-27 11:41:53.4003,1125.237,2,3,115.237 +2024-09-27 11:41:53.7085,1125.237,2,3,115.237 +2024-09-27 11:41:54.0203,1125.237,2,3,115.237 +2024-09-27 11:41:54.3350,1125.237,2,3,115.237 +2024-09-27 11:41:54.6467,1125.237,2,3,115.237 +2024-09-27 11:41:54.9589,1125.237,2,3,115.237 +2024-09-27 11:41:55.2734,1125.237,2,3,115.237 +2024-09-27 11:41:55.5867,1125.237,2,3,115.237 +2024-09-27 11:41:55.8966,1125.237,2,3,115.237 +2024-09-27 11:41:56.2084,1125.237,2,3,115.237 +2024-09-27 11:41:56.5193,1125.237,2,3,115.237 +2024-09-27 11:41:56.8320,1125.237,2,3,115.237 +2024-09-27 11:41:57.1481,1125.237,2,3,115.237 +2024-09-27 11:41:57.4575,1125.237,2,3,115.237 +2024-09-27 11:41:57.7729,1125.237,2,3,115.237 +2024-09-27 11:41:58.0834,1125.237,2,3,115.237 +2024-09-27 11:41:58.3950,1125.237,2,3,115.237 +2024-09-27 11:41:58.7104,1125.237,2,3,115.237 +2024-09-27 11:41:59.0201,1125.237,2,3,115.237 +2024-09-27 11:41:59.3357,1125.237,2,3,115.237 +2024-09-27 11:41:59.6464,1125.237,2,3,115.237 +2024-09-27 11:41:59.9618,1125.237,2,3,115.237 +2024-09-27 11:42:00.2725,1125.237,2,3,115.237 +2024-09-27 11:42:00.5842,1125.237,2,3,115.237 +2024-09-27 11:42:00.8974,1125.237,2,3,115.237 +2024-09-27 11:42:01.2106,1125.237,2,3,115.237 +2024-09-27 11:42:01.5211,1125.237,2,3,115.237 +2024-09-27 11:42:01.8341,1125.237,2,3,115.237 +2024-09-27 11:42:02.1491,1125.237,2,3,115.237 +2024-09-27 11:42:02.4572,1125.237,2,3,115.237 +2024-09-27 11:42:02.7708,1125.237,2,3,115.237 +2024-09-27 11:42:03.0832,1125.237,2,3,115.237 +2024-09-27 11:42:03.3942,1125.237,2,3,115.237 +2024-09-27 11:42:03.7097,1125.237,2,3,115.237 +2024-09-27 11:42:04.0205,1125.237,2,3,115.237 +2024-09-27 11:42:04.3366,1125.237,2,3,115.237 +2024-09-27 11:42:04.6447,1125.237,2,3,115.237 +2024-09-27 11:42:04.9591,1125.237,2,3,115.237 +2024-09-27 11:42:05.2731,1125.237,2,3,115.237 +2024-09-27 11:42:05.5857,1125.237,2,3,115.237 +2024-09-27 11:42:05.8949,1125.237,2,3,115.237 +2024-09-27 11:42:06.2079,1125.237,2,3,115.237 +2024-09-27 11:42:06.5225,1125.237,2,3,115.237 +2024-09-27 11:42:06.8349,1125.237,2,3,115.237 +2024-09-27 11:42:07.1469,1125.237,2,3,115.237 +2024-09-27 11:42:07.4571,1125.237,2,3,115.237 +2024-09-27 11:42:07.7706,1125.237,2,3,115.237 +2024-09-27 11:42:08.0836,1125.237,2,3,115.237 +2024-09-27 11:42:08.3991,1125.237,2,3,115.237 +2024-09-27 11:42:08.7078,1125.237,2,3,115.237 +2024-09-27 11:42:09.0200,1125.237,2,3,115.237 +2024-09-27 11:42:09.3332,1125.237,2,3,115.237 +2024-09-27 11:42:09.6477,1125.237,2,3,115.237 +2024-09-27 11:42:09.9585,1125.237,2,3,115.237 +2024-09-27 11:42:10.2717,1125.237,2,3,115.237 +2024-09-27 11:42:10.5818,1125.237,2,3,115.237 +2024-09-27 11:42:10.8979,1125.237,2,3,115.237 +2024-09-27 11:42:11.2081,1125.237,2,3,115.237 +2024-09-27 11:42:11.5202,1125.237,2,3,115.237 +2024-09-27 11:42:11.8327,1125.237,2,3,115.237 +2024-09-27 11:42:12.1447,1125.237,2,3,115.237 +2024-09-27 11:42:12.4595,1125.237,2,3,115.237 +2024-09-27 11:42:12.7693,1125.237,2,3,115.237 +2024-09-27 11:42:13.0849,1125.237,2,3,115.237 +2024-09-27 11:42:13.3960,1125.237,2,3,115.237 +2024-09-27 11:42:13.7080,1125.237,2,3,115.237 +2024-09-27 11:42:14.0192,1125.237,2,3,115.237 +2024-09-27 11:42:14.3350,1125.237,2,3,115.237 +2024-09-27 11:42:14.6448,1125.237,2,3,115.237 +2024-09-27 11:42:14.9599,1125.237,2,3,115.237 +2024-09-27 11:42:15.2728,1125.237,2,3,115.237 +2024-09-27 11:42:15.5828,1125.237,2,3,115.237 +2024-09-27 11:42:15.8975,1125.237,2,3,115.237 +2024-09-27 11:42:16.2073,1125.237,2,3,115.237 +2024-09-27 11:42:16.5220,1125.237,2,3,115.237 +2024-09-27 11:42:16.8353,1125.237,2,3,115.237 +2024-09-27 11:42:17.1444,1125.237,2,3,115.237 +2024-09-27 11:42:17.4591,1125.237,2,3,115.237 +2024-09-27 11:42:17.7730,1125.237,2,3,115.237 +2024-09-27 11:42:18.0824,1125.237,2,3,115.237 +2024-09-27 11:42:18.3962,1125.237,2,3,115.237 +2024-09-27 11:42:18.7085,1125.237,2,3,115.237 +2024-09-27 11:42:19.0192,1125.237,2,3,115.237 +2024-09-27 11:42:19.3327,1125.237,2,3,115.237 +2024-09-27 11:42:19.6492,1125.237,2,3,115.237 +2024-09-27 11:42:19.9584,1125.237,2,3,115.237 +2024-09-27 11:42:20.2704,1125.237,2,3,115.237 +2024-09-27 11:42:20.5862,1125.237,2,3,115.237 +2024-09-27 11:42:20.8968,1125.237,2,3,115.237 +2024-09-27 11:42:21.2066,1125.237,2,3,115.237 +2024-09-27 11:42:21.5220,1125.237,2,3,115.237 +2024-09-27 11:42:21.8355,1125.237,2,3,115.237 +2024-09-27 11:42:22.1457,1125.237,2,3,115.237 +2024-09-27 11:42:22.4596,1125.237,2,3,115.237 +2024-09-27 11:42:22.7710,1125.237,2,3,115.237 +2024-09-27 11:42:23.0833,1125.237,2,3,115.237 +2024-09-27 11:42:23.3978,1125.237,2,3,115.237 +2024-09-27 11:42:23.7093,1125.237,2,3,115.237 +2024-09-27 11:42:24.0210,1125.237,2,3,115.237 +2024-09-27 11:42:24.3317,1125.237,2,3,115.237 +2024-09-27 11:42:24.6481,1125.237,2,3,115.237 +2024-09-27 11:42:24.9580,1125.237,2,3,115.237 +2024-09-27 11:42:25.2720,1125.237,2,3,115.237 +2024-09-27 11:42:25.5821,1125.237,2,3,115.237 +2024-09-27 11:42:25.8961,1125.237,2,3,115.237 +2024-09-27 11:42:26.2080,1125.237,2,3,115.237 +2024-09-27 11:42:26.5214,1125.237,2,3,115.237 +2024-09-27 11:42:26.8331,1125.237,2,3,115.237 +2024-09-27 11:42:27.1444,1125.237,2,3,115.237 +2024-09-27 11:42:27.4565,1125.237,2,3,115.237 +2024-09-27 11:42:27.7713,1125.237,2,3,115.237 +2024-09-27 11:42:28.0826,1125.237,2,3,115.237 +2024-09-27 11:42:28.3962,1125.237,2,3,115.237 +2024-09-27 11:42:28.7074,1125.237,2,3,115.237 +2024-09-27 11:42:29.0205,1125.237,2,3,115.237 +2024-09-27 11:42:29.3322,1125.237,2,3,115.237 +2024-09-27 11:42:29.6476,1125.237,2,3,115.237 +2024-09-27 11:42:29.9602,1125.237,2,3,115.237 +2024-09-27 11:42:30.2720,1125.237,2,3,115.237 +2024-09-27 11:42:30.5853,1125.237,2,3,115.237 +2024-09-27 11:42:30.8972,1125.237,2,3,115.237 +2024-09-27 11:42:31.2081,1125.237,2,3,115.237 +2024-09-27 11:42:31.5195,1125.237,2,3,115.237 +2024-09-27 11:42:31.8324,1125.237,2,3,115.237 +2024-09-27 11:42:32.1477,1125.237,2,3,115.237 +2024-09-27 11:42:32.4580,1125.237,2,3,115.237 +2024-09-27 11:42:32.7706,1125.237,2,3,115.237 +2024-09-27 11:42:33.0831,1125.237,2,3,115.237 +2024-09-27 11:42:33.3962,1125.237,2,3,115.237 +2024-09-27 11:42:33.7079,1125.237,2,3,115.237 +2024-09-27 11:42:34.0222,1125.237,2,3,115.237 +2024-09-27 11:42:34.3335,1125.237,2,3,115.237 +2024-09-27 11:42:34.6444,1125.237,2,3,115.237 +2024-09-27 11:42:34.9619,1125.237,2,3,115.237 +2024-09-27 11:42:35.2718,1125.237,2,3,115.237 +2024-09-27 11:42:35.5828,1125.237,2,3,115.237 +2024-09-27 11:42:35.8952,1125.237,2,3,115.237 +2024-09-27 11:42:36.2082,1125.237,2,3,115.237 +2024-09-27 11:42:36.5230,1125.237,2,3,115.237 +2024-09-27 11:42:36.8348,1125.237,2,3,115.237 +2024-09-27 11:42:37.1468,1125.237,2,3,115.237 +2024-09-27 11:42:37.4565,1125.237,2,3,115.237 +2024-09-27 11:42:37.7705,1125.237,2,3,115.237 +2024-09-27 11:42:38.0835,1125.237,2,3,115.237 +2024-09-27 11:42:38.3973,1125.237,2,3,115.237 +2024-09-27 11:42:38.7064,1125.237,2,3,115.237 +2024-09-27 11:42:39.0196,1125.237,2,3,115.237 +2024-09-27 11:42:39.3370,1125.237,2,3,115.237 +2024-09-27 11:42:39.6454,1125.237,2,3,115.237 +2024-09-27 11:42:39.9572,1125.237,2,3,115.237 +2024-09-27 11:42:40.2721,1125.237,2,3,115.237 +2024-09-27 11:42:40.5835,1125.237,2,3,115.237 +2024-09-27 11:42:40.8966,1125.237,2,3,115.237 +2024-09-27 11:42:41.2098,1125.237,2,3,115.237 +2024-09-27 11:42:41.5237,1125.237,2,3,115.237 +2024-09-27 11:42:41.8324,1125.237,2,3,115.237 +2024-09-27 11:42:42.1462,1125.237,2,3,115.237 +2024-09-27 11:42:42.4589,1125.237,2,3,115.237 +2024-09-27 11:42:42.7700,1125.237,2,3,115.237 +2024-09-27 11:42:43.0821,1125.237,2,3,115.237 +2024-09-27 11:42:43.3944,1125.237,2,3,115.237 +2024-09-27 11:42:43.7083,1125.237,2,3,115.237 +2024-09-27 11:42:44.0215,1125.237,2,3,115.237 +2024-09-27 11:42:44.3315,1125.237,2,3,115.237 +2024-09-27 11:42:44.6458,1125.237,2,3,115.237 +2024-09-27 11:42:44.9612,1125.237,2,3,115.237 +2024-09-27 11:42:45.2721,1125.237,2,3,115.237 +2024-09-27 11:42:45.5825,1125.237,2,3,115.237 +2024-09-27 11:42:45.8958,1125.237,2,3,115.237 +2024-09-27 11:42:46.2080,1125.237,2,3,115.237 +2024-09-27 11:42:46.5193,1125.237,2,3,115.237 +2024-09-27 11:42:46.8351,1125.237,2,3,115.237 +2024-09-27 11:42:47.1473,1125.237,2,3,115.237 +2024-09-27 11:42:47.4570,1125.237,2,3,115.237 +2024-09-27 11:42:47.7695,1125.237,2,3,115.237 +2024-09-27 11:42:48.0825,1125.237,2,3,115.237 +2024-09-27 11:42:48.3958,1125.237,2,3,115.237 +2024-09-27 11:42:48.7076,1125.237,2,3,115.237 +2024-09-27 11:42:49.0211,1125.237,2,3,115.237 +2024-09-27 11:42:49.3314,1125.237,2,3,115.237 +2024-09-27 11:42:49.6454,1125.237,2,3,115.237 +2024-09-27 11:42:49.9590,1125.237,2,3,115.237 +2024-09-27 11:42:50.2721,1125.237,2,3,115.237 +2024-09-27 11:42:50.5826,1125.237,2,3,115.237 +2024-09-27 11:42:50.8953,1125.237,2,3,115.237 +2024-09-27 11:42:51.2083,1125.237,2,3,115.237 +2024-09-27 11:42:51.5194,1125.237,2,3,115.237 +2024-09-27 11:42:51.8341,1125.237,2,3,115.237 +2024-09-27 11:42:52.1465,1125.237,2,3,115.237 +2024-09-27 11:42:52.4596,1125.237,2,3,115.237 +2024-09-27 11:42:52.7702,1125.237,2,3,115.237 +2024-09-27 11:42:53.0840,1125.237,2,3,115.237 +2024-09-27 11:42:53.3974,1125.237,2,3,115.237 +2024-09-27 11:42:53.7069,1125.237,2,3,115.237 +2024-09-27 11:42:54.0189,1125.237,2,3,115.237 +2024-09-27 11:42:54.3331,1125.237,2,3,115.237 +2024-09-27 11:42:54.6484,1125.237,2,3,115.237 +2024-09-27 11:42:54.9573,1125.237,2,3,115.237 +2024-09-27 11:42:55.2717,1125.237,2,3,115.237 +2024-09-27 11:42:55.5827,1125.237,2,3,115.237 +2024-09-27 11:42:55.8954,1125.237,2,3,115.237 +2024-09-27 11:42:56.2070,1125.237,2,3,115.237 +2024-09-27 11:42:56.5218,1125.237,2,3,115.237 +2024-09-27 11:42:56.8336,1125.237,2,3,115.237 +2024-09-27 11:42:57.1482,1125.237,2,3,115.237 +2024-09-27 11:42:57.4586,1125.237,2,3,115.237 +2024-09-27 11:42:57.7689,1125.237,2,3,115.237 +2024-09-27 11:42:58.0812,1125.237,2,3,115.237 +2024-09-27 11:42:58.3953,1125.237,2,3,115.237 +2024-09-27 11:42:58.7067,1125.237,2,3,115.237 +2024-09-27 11:42:59.0232,1125.237,2,3,115.237 +2024-09-27 11:42:59.3347,1125.237,2,3,115.237 +2024-09-27 11:42:59.6450,1125.237,2,3,115.237 +2024-09-27 11:42:59.9572,1125.237,2,3,115.237 +2024-09-27 11:43:00.2696,1125.237,2,3,115.237 +2024-09-27 11:43:00.5822,1125.237,2,3,115.237 +2024-09-27 11:43:00.8973,1125.237,2,3,115.237 +2024-09-27 11:43:01.2111,1125.237,2,3,115.237 +2024-09-27 11:43:01.5199,1125.237,2,3,115.237 +2024-09-27 11:43:01.8345,1125.237,2,3,115.237 +2024-09-27 11:43:02.1472,1125.237,2,3,115.237 +2024-09-27 11:43:02.4579,1125.237,2,3,115.237 +2024-09-27 11:43:02.7696,1125.237,2,3,115.237 +2024-09-27 11:43:03.2643,1125.237,2,3,115.237 +2024-09-27 11:43:03.5693,1125.237,2,3,115.237 +2024-09-27 11:43:03.8782,1125.237,2,3,115.237 +2024-09-27 11:43:04.1920,1125.237,2,3,115.237 +2024-09-27 11:43:04.5077,1125.237,2,3,115.237 +2024-09-27 11:43:04.8184,1125.237,2,3,115.237 +2024-09-27 11:43:05.1303,1125.237,2,3,115.237 +2024-09-27 11:43:05.4422,1125.237,2,3,115.237 diff --git a/Analysis/bin/x64/Release/EntityFramework.SqlServer.dll b/Analysis/bin/x64/Release/EntityFramework.SqlServer.dll new file mode 100644 index 0000000..e11b437 Binary files /dev/null and b/Analysis/bin/x64/Release/EntityFramework.SqlServer.dll differ diff --git a/Analysis/bin/x64/Release/EntityFramework.dll b/Analysis/bin/x64/Release/EntityFramework.dll new file mode 100644 index 0000000..8400163 Binary files /dev/null and b/Analysis/bin/x64/Release/EntityFramework.dll differ diff --git a/Analysis/bin/x64/Release/File/AnalysisConfig.ini b/Analysis/bin/x64/Release/File/AnalysisConfig.ini new file mode 100644 index 0000000..a0e65f5 --- /dev/null +++ b/Analysis/bin/x64/Release/File/AnalysisConfig.ini @@ -0,0 +1,82 @@ +[Chery] +DeleteDebugFileIntervalTime=-5 +ConfigSkinName=FluentHexagon.tssp +SoftwareHelpDocument=HELP.pdf +Language =1 +;1 = ļ +;0 = Ӣ +RememberMe=1 +NextsenseCSVEH3Path=D:\cherytestEH3 +NextsenseCSVEHYPath=D:\cherytestEHY +FPY=0.8 +FPY2=0.6 +ReportCSVPath=D:\QMLTest + + +CLMSModeID=1 +;1:CLMSȨ +AuthorizationMode=1 +;CarModel ʼ +CarModel=EHY +EquipmentNo=NS002 +EquipmentName=Hexagon + +;1:ϴIOT0ϴIOT +StartIOTFlag=1 +IOTAddress=http://10.188.2.56:9337/web/httpServlet/api/saveGfResult +IOTCarTypeAddr=http://10.188.2.56:9337/web/httpServlet/api/queryGFModelAndMaterial +;ʾݣ1ʾ0ʾ +ShowDataFlag=1 +;Lʾ೵棻R-ʾҲ೵ +ShowData=L + +TolerancePercentage=1.5 +ExceptionPercentage=6 + +Password=1 + +;Ƿɱ1 +CreateReportFlag=1 +;1csv 0 +AnalysisCSVFlag=1 + +RecordEncoderFlag=0 + +;====մñ=============== +;ɨں +COMPort=COM1 + +StationName=ZP5_FG1 +tavascanUploadPath=VW316_8CM_ZP6_FG +blacklabelUploadPath=VW316_8CM_BLZP6_FG +Level2Times=1.5 +Level3Times=2 +ReportCSVPath2=D:\QMLTest + +[Timer] +;λs +TimerFixedStorage=1 +TimerRefreshMIDMode=2 +TimerRefreshCMMStatus=3 + +[MSDB] +SqlServerName=127.0.0.1 +SqlDbName=NextSenseStandardDB +SqlUserName=sa +SqlPassword=HexagonPai=3.1415 + + +[TCP] +ModbusTcp_IP=127.0.0.1 +ModbusTcp_Port=502 +ModbusTcp_Addr=1 +ModbusTcp_Reconnected=1 +PLC_StartAddr=100 +PLC_Length=100 +PlcType=3 +ModbusTcp_ReverseSequence=0 +PLC_S7StartAddr=100 +PLC_S7ByteLength=200 +PLC_S7DataBlock=DB4100 +PLC_S7ReadByteCount=200 + diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/BlackLable_HVWJA1ER0R1201164_20240624_134653.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/BlackLable_HVWJA1ER0R1201164_20240624_134653.csv new file mode 100644 index 0000000..a6befba --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/BlackLable_HVWJA1ER0R1201164_20240624_134653.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,BlackLable +prodnum,HVWJA1ER0R1201164 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.81,3,1.80,20240624,134140,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,2.73,3,4.00,20240624,134140,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,2.25,3,3.20,20240624,134201,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,3.81,3,2.00,20240624,134201,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-1.85,3,-1.50,20240624,134251,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.39,3,3.70,20240624,134251,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0044,F,inv.,3,-0.70,20240624,134305,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0044,G,inv.,3,5.00,20240624,134305,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0058,F,0.04,3,0.00,20240624,134318,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.69,3,0.80,20240624,134318,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-1.32,3,-0.70,20240624,134337,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.79,3,5.00,20240624,134337,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.15,3,0.00,20240624,134344,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.19,3,3.50,20240624,134344,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.02,3,-0.50,20240624,134352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.61,3,3.50,20240624,134352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.92,3,-0.50,20240624,134402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.33,3,3.50,20240624,134402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,inv.,3,-2.30,20240624,134411,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,inv.,3,5.80,20240624,134411,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,0.69,3,0.00,20240624,134436,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,3.92,3,5.30,20240624,134436,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-0.88,3,0.00,20240624,134441,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0098,F,-1.63,3,0.00,20240624,134451,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.89,3,4.40,20240624,134451,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-1.88,3,0.00,20240624,134455,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.98,3,4.40,20240624,134455,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-16.06,3,0.10,20240624,134515,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0131,F,-1.36,3,0.00,20240624,134520,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.16,3,3.20,20240624,134520,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-1.51,3,0.00,20240624,134540,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.57,3,3.20,20240624,134540,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.66,3,-1.50,20240624,134547,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.31,3,5.00,20240624,134547,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.08,3,4.80,20240624,134553,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.09,3,4.00,20240624,134553,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.71,3,1.00,20240624,134603,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,3.97,3,4.00,20240624,134603,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,0.26,3,1.80,20240624,133537,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,4.29,3,4.00,20240624,133537,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.00,3,3.20,20240624,133548,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,4.21,3,2.00,20240624,133548,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.79,3,-1.50,20240624,133559,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.84,3,3.70,20240624,133559,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,0.04,3,0.00,20240624,133615,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.11,3,0.80,20240624,133615,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.44,3,-0.70,20240624,133626,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.58,3,5.00,20240624,133626,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.36,3,0.00,20240624,133637,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,5.06,3,3.50,20240624,133637,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.23,3,-0.50,20240624,133651,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.26,3,3.50,20240624,133651,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-0.86,3,-0.50,20240624,133657,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.59,3,3.50,20240624,133657,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240624,133712,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240624,133712,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,-3.05,3,0.00,20240624,133737,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.52,3,5.30,20240624,133737,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.46,3,0.00,20240624,133750,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0098,F,-3.14,3,0.00,20240624,133801,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.11,3,4.40,20240624,133801,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-3.29,3,0.00,20240624,133806,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.28,3,4.40,20240624,133806,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,1.37,3,0.10,20240624,133815,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0131,F,-2.19,3,0.00,20240624,133822,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.51,3,3.20,20240624,133822,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-2.39,3,0.00,20240624,133837,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.45,3,3.20,20240624,133837,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.79,3,-1.50,20240624,133856,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,3.83,3,5.00,20240624,133856,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,-0.11,3,4.80,20240624,133908,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,2.37,3,4.00,20240624,133908,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,-0.48,3,1.00,20240624,134107,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.60,3,4.00,20240624,134107,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0265,F,-0.58,3,-0.70,20240624,134101,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0265,G,inv.,3,5.00,20240624,134101,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/BlackLable_HVWJA1ER9R1201258_20240626_152146.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/BlackLable_HVWJA1ER9R1201258_20240626_152146.csv new file mode 100644 index 0000000..a9ac727 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/BlackLable_HVWJA1ER9R1201258_20240626_152146.csv @@ -0,0 +1,15 @@ +MeasPlan.Name,BlackLable +prodnum,HVWJA1ER9R1201258 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.67,3,1.80,20240626,152124,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.47,3,4.00,20240626,152124,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,-2.58,3,3.20,20240626,152129,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,3.49,3,2.00,20240626,152129,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,2.47,3,-1.50,20240626,152134,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.70,3,3.70,20240626,152134,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0020,F,0.92,3,1.80,20240626,152044,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,3.46,3,4.00,20240626,152044,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,-2.62,3,3.20,20240626,152047,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,4.45,3,2.00,20240626,152047,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.57,3,-1.50,20240626,152052,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.97,3,3.70,20240626,152052,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEH3_20240824_111909.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEH3_20240824_111909.csv new file mode 100644 index 0000000..4479797 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEH3_20240824_111909.csv @@ -0,0 +1,64 @@ +MeasPlan.Name,CherryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000online +Part_name,123 +prodnum,NNACDEB4RDA17976 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.235,mm,best,-0.500,20240824,111837,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.379,mm,best,3.250,20240824,111837,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-02,F,-1.234,mm,best,-0.700,20240824,111839,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.069,mm,best,3.250,20240824,111839,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-03,F,0.132,mm,NG,-1.500,20240824,111842,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,2.924,mm,best,3.250,20240824,111842,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-07,G,3.170,mm,NG,0.000,20240824,111845,best,1.150,2.850,good,1.000,3.000,NG,-999.000,999.000 +L-04,F,-0.245,mm,best,0.250,20240824,111848,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-04,G,2.647,mm,best,2.950,20240824,111848,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +L-05,F,0.492,mm,best,0.000,20240824,111850,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-05,G,3.204,mm,best,3.300,20240824,111850,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-06,F,-0.051,mm,best,0.000,20240824,111853,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-06,G,3.889,mm,best,3.600,20240824,111853,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-10,F,-0.959,mm,best,-0.750,20240824,111856,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-10,G,3.663,mm,best,3.400,20240824,111856,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-09,F,0.275,mm,best,0.000,20240824,111859,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-09,G,3.868,mm,best,3.800,20240824,111859,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-08,F,0.594,mm,best,0.700,20240824,111901,best,-0.675,0.675,good,-0.900,0.900,NG,-999.000,999.000 +L-08,G,4.054,mm,good,3.550,20240824,111901,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +L-12,F,0.532,mm,best,0.750,20240824,111904,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-12,G,4.074,mm,best,3.700,20240824,111904,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-13,F,-0.194,mm,best,-0.200,20240824,111907,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-13,G,4.073,mm,best,3.750,20240824,111907,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-01,F,-1.105,mm,best,-0.500,20240824,111837,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,2.854,mm,best,3.250,20240824,111837,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-02,F,-0.708,mm,best,-0.700,20240824,111840,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,2.962,mm,best,3.250,20240824,111840,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-03,F,0.971,mm,NG,-1.500,20240824,111842,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,2.540,mm,best,3.250,20240824,111842,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-07,G,2.220,mm,best,0.000,20240824,111845,best,1.150,2.850,good,1.000,3.000,NG,-999.000,999.000 +R-04,F,0.361,mm,best,0.250,20240824,111848,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-04,G,3.226,mm,best,2.950,20240824,111848,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +R-05,F,-0.242,mm,best,0.000,20240824,111851,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-05,G,3.690,mm,best,3.300,20240824,111851,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-06,F,0.444,mm,best,0.000,20240824,111853,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-06,G,3.710,mm,best,3.600,20240824,111853,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-10,F,-1.430,mm,good,-0.750,20240824,111856,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-10,G,3.616,mm,best,3.400,20240824,111856,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-09,F,-0.175,mm,best,0.000,20240824,111859,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-09,G,3.381,mm,best,3.800,20240824,111859,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-08,F,0.823,mm,best,0.700,20240824,111901,best,-0.675,0.675,good,-0.900,0.900,NG,-999.000,999.000 +R-08,G,3.954,mm,best,3.550,20240824,111901,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +R-12,F,1.241,mm,best,0.750,20240824,111904,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-12,G,3.607,mm,best,3.700,20240824,111904,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-13,F,-0.386,mm,best,-0.200,20240824,111908,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-13,G,3.683,mm,best,3.750,20240824,111908,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEH3_20240824_122508.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEH3_20240824_122508.csv new file mode 100644 index 0000000..e8db176 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEH3_20240824_122508.csv @@ -0,0 +1,64 @@ +MeasPlan.Name,CherryEH3 +vehiclecode,1 +robot.MessplanID,1 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EH3_5000000online +Part_name,123 +prodnum,NNACDEB5RDA17985 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.705,mm,best,-0.500,20240824,122436,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.324,mm,best,3.250,20240824,122436,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-02,F,-1.174,mm,best,-0.700,20240824,122439,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.124,mm,best,3.250,20240824,122439,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-03,F,-0.711,mm,good,-1.500,20240824,122441,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.116,mm,best,3.250,20240824,122441,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +L-07,G,2.312,mm,best,0.000,20240824,122444,best,1.150,2.850,good,1.000,3.000,NG,-999.000,999.000 +L-04,F,0.109,mm,best,0.250,20240824,122447,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-04,G,2.868,mm,best,2.950,20240824,122447,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +L-05,F,0.364,mm,best,0.000,20240824,122449,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-05,G,3.134,mm,best,3.300,20240824,122449,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-06,F,0.039,mm,best,0.000,20240824,122452,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-06,G,3.965,mm,best,3.600,20240824,122452,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-10,F,-1.213,mm,best,-0.750,20240824,122455,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-10,G,3.635,mm,best,3.400,20240824,122455,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-09,F,-0.126,mm,best,0.000,20240824,122457,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-09,G,3.795,mm,best,3.800,20240824,122457,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-08,F,0.692,mm,best,0.700,20240824,122500,best,-0.675,0.675,good,-0.900,0.900,NG,-999.000,999.000 +L-08,G,4.011,mm,best,3.550,20240824,122500,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +L-12,F,0.286,mm,best,0.750,20240824,122503,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +L-12,G,4.167,mm,best,3.700,20240824,122503,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-13,F,-0.061,mm,best,-0.200,20240824,122506,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +L-13,G,4.219,mm,best,3.750,20240824,122506,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-01,F,-0.882,mm,best,-0.500,20240824,122436,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,2.692,mm,best,3.250,20240824,122436,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-02,F,-0.696,mm,best,-0.700,20240824,122439,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,2.928,mm,best,3.250,20240824,122439,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-03,F,1.142,mm,NG,-1.500,20240824,122441,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,2.647,mm,best,3.250,20240824,122441,best,-0.713,0.713,good,-0.950,0.950,NG,-999.000,999.000 +R-07,G,2.581,mm,best,0.000,20240824,122444,best,1.150,2.850,good,1.000,3.000,NG,-999.000,999.000 +R-04,F,0.532,mm,best,0.250,20240824,122447,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-04,G,3.294,mm,best,2.950,20240824,122447,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +R-05,F,-0.332,mm,best,0.000,20240824,122450,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-05,G,3.673,mm,best,3.300,20240824,122450,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-06,F,0.314,mm,best,0.000,20240824,122452,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-06,G,3.641,mm,best,3.600,20240824,122452,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-10,F,-1.399,mm,good,-0.750,20240824,122455,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-10,G,3.841,mm,best,3.400,20240824,122455,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-09,F,-0.301,mm,best,0.000,20240824,122458,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-09,G,3.278,mm,best,3.800,20240824,122458,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-08,F,0.634,mm,best,0.700,20240824,122500,best,-0.675,0.675,good,-0.900,0.900,NG,-999.000,999.000 +R-08,G,3.291,mm,best,3.550,20240824,122500,best,-0.487,0.487,good,-0.650,0.650,NG,-999.000,999.000 +R-12,F,0.895,mm,best,0.750,20240824,122504,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 +R-12,G,3.311,mm,best,3.700,20240824,122504,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-13,F,-0.516,mm,best,-0.200,20240824,122507,best,-0.600,0.600,good,-0.800,0.800,NG,-999.000,999.000 +R-13,G,3.816,mm,best,3.750,20240824,122507,best,-0.562,0.562,good,-0.750,0.750,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_212406.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_212406.csv new file mode 100644 index 0000000..6645165 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_212406.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBBDEC4RDA18027 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.691,mm,best,-0.700,20240827,212332,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.725,mm,best,3.300,20240827,212332,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-0.779,mm,best,-0.700,20240827,212334,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.685,mm,best,3.300,20240827,212334,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,-0.640,mm,best,0.000,20240827,212337,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.639,mm,best,3.500,20240827,212337,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,inv.,mm,UNCLASSIFIED,2.000,20240827,212339,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.007,mm,best,2.000,20240827,212342,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,-0.080,mm,best,0.200,20240827,212345,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.732,mm,best,3.300,20240827,212345,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,-0.013,mm,best,0.200,20240827,212348,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.342,mm,best,3.500,20240827,212348,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,-0.070,mm,best,0.200,20240827,212350,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.828,mm,best,3.900,20240827,212350,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,-0.242,mm,best,-0.500,20240827,212353,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,4.078,mm,best,3.800,20240827,212353,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.276,mm,best,0.200,20240827,212355,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,3.953,mm,best,3.800,20240827,212355,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,1.183,mm,good,0.600,20240827,212358,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,3.779,mm,best,4.200,20240827,212358,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,1.605,mm,NG,0.600,20240827,212400,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.575,mm,best,3.700,20240827,212400,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.527,mm,NG,0.200,20240827,212403,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,4.143,mm,best,3.700,20240827,212403,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,-0.540,mm,best,-0.700,20240827,212332,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.402,mm,best,3.300,20240827,212332,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.289,mm,best,-0.700,20240827,212334,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.319,mm,best,3.300,20240827,212334,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,0.019,mm,best,0.000,20240827,212337,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,3.252,mm,best,3.500,20240827,212337,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,2.453,mm,best,2.000,20240827,212339,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,3.213,mm,NG,2.000,20240827,212342,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,-0.283,mm,good,0.200,20240827,212345,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.337,mm,best,3.300,20240827,212345,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,0.248,mm,best,0.200,20240827,212347,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.892,mm,best,3.500,20240827,212347,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.300,mm,best,0.200,20240827,212349,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,3.905,mm,best,3.900,20240827,212349,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,0.322,mm,NG,-0.500,20240827,212352,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.046,mm,NG,3.800,20240827,212352,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.467,mm,best,0.200,20240827,212355,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.585,mm,best,3.800,20240827,212355,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,0.885,mm,best,0.600,20240827,212358,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,3.960,mm,best,4.200,20240827,212358,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.112,mm,good,0.600,20240827,212401,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.595,mm,best,3.700,20240827,212401,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.126,mm,best,0.200,20240827,212404,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.519,mm,best,3.700,20240827,212404,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_221953.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_221953.csv new file mode 100644 index 0000000..c89ccfb --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_221953.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBBDEC4RDA18030 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-1.392,mm,best,-0.700,20240827,221920,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.456,mm,best,3.300,20240827,221920,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-1.067,mm,best,-0.700,20240827,221923,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.504,mm,best,3.300,20240827,221923,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,0.017,mm,best,0.000,20240827,221925,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.325,mm,best,3.500,20240827,221925,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,2.571,mm,best,2.000,20240827,221928,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.985,mm,good,2.000,20240827,221930,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,-0.014,mm,best,0.200,20240827,221933,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.562,mm,best,3.300,20240827,221933,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,-0.106,mm,best,0.200,20240827,221935,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.258,mm,best,3.500,20240827,221935,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,-0.567,mm,NG,0.200,20240827,221938,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.763,mm,best,3.900,20240827,221938,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,0.036,mm,good,-0.500,20240827,221941,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,3.951,mm,best,3.800,20240827,221941,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.884,mm,NG,0.200,20240827,221943,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,3.913,mm,best,3.800,20240827,221943,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,0.777,mm,best,0.600,20240827,221946,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,3.903,mm,best,4.200,20240827,221946,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,1.472,mm,NG,0.600,20240827,221948,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.430,mm,best,3.700,20240827,221948,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.209,mm,best,0.200,20240827,221951,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,3.956,mm,best,3.700,20240827,221951,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,-0.979,mm,best,-0.700,20240827,221920,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.115,mm,best,3.300,20240827,221920,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.842,mm,best,-0.700,20240827,221922,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.208,mm,best,3.300,20240827,221922,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,-0.243,mm,best,0.000,20240827,221925,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,3.035,mm,best,3.500,20240827,221925,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,2.566,mm,best,2.000,20240827,221928,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,3.103,mm,NG,2.000,20240827,221930,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,0.207,mm,best,0.200,20240827,221932,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.169,mm,best,3.300,20240827,221932,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,-0.110,mm,best,0.200,20240827,221935,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.858,mm,best,3.500,20240827,221935,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.696,mm,good,0.200,20240827,221937,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,3.879,mm,best,3.900,20240827,221937,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,0.028,mm,good,-0.500,20240827,221940,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.094,mm,NG,3.800,20240827,221940,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.481,mm,best,0.200,20240827,221943,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.524,mm,best,3.800,20240827,221943,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,1.228,mm,NG,0.600,20240827,221946,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,3.708,mm,good,4.200,20240827,221946,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.359,mm,NG,0.600,20240827,221949,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.641,mm,best,3.700,20240827,221949,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.110,mm,best,0.200,20240827,221952,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.523,mm,best,3.700,20240827,221952,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_224321.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_224321.csv new file mode 100644 index 0000000..68bd928 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240827_224321.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBBDEC1RDA18034 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,0.218,mm,good,-0.700,20240827,224247,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.586,mm,best,3.300,20240827,224247,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-0.279,mm,best,-0.700,20240827,224249,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.710,mm,best,3.300,20240827,224249,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,-0.624,mm,best,0.000,20240827,224252,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.372,mm,best,3.500,20240827,224252,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,3.008,mm,NG,2.000,20240827,224254,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.771,mm,good,2.000,20240827,224257,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,-0.009,mm,best,0.200,20240827,224300,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.606,mm,best,3.300,20240827,224300,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,-0.210,mm,best,0.200,20240827,224302,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.487,mm,best,3.500,20240827,224302,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,-0.249,mm,best,0.200,20240827,224305,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.760,mm,best,3.900,20240827,224305,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,0.113,mm,NG,-0.500,20240827,224308,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,3.798,mm,best,3.800,20240827,224308,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.142,mm,best,0.200,20240827,224310,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,3.828,mm,best,3.800,20240827,224310,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,1.092,mm,good,0.600,20240827,224313,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,3.749,mm,good,4.200,20240827,224313,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,1.445,mm,NG,0.600,20240827,224315,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.505,mm,best,3.700,20240827,224315,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.374,mm,good,0.200,20240827,224318,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,4.189,mm,good,3.700,20240827,224318,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,-0.674,mm,best,-0.700,20240827,224247,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.303,mm,best,3.300,20240827,224247,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.505,mm,best,-0.700,20240827,224249,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.443,mm,best,3.300,20240827,224249,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,0.251,mm,best,0.000,20240827,224252,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,3.091,mm,best,3.500,20240827,224252,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,2.880,mm,good,2.000,20240827,224254,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,inv.,mm,UNCLASSIFIED,2.000,20240827,224257,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,-0.244,mm,best,0.200,20240827,224259,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.225,mm,best,3.300,20240827,224259,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,-0.091,mm,best,0.200,20240827,224302,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.898,mm,best,3.500,20240827,224302,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.929,mm,NG,0.200,20240827,224304,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,3.953,mm,best,3.900,20240827,224304,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,-0.045,mm,good,-0.500,20240827,224307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.539,mm,best,3.800,20240827,224307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.074,mm,best,0.200,20240827,224310,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.598,mm,best,3.800,20240827,224310,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,0.928,mm,best,0.600,20240827,224313,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,3.493,mm,NG,4.200,20240827,224313,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.282,mm,NG,0.600,20240827,224316,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.510,mm,best,3.700,20240827,224316,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.017,mm,best,0.200,20240827,224319,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.565,mm,best,3.700,20240827,224319,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240828_090327.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240828_090327.csv new file mode 100644 index 0000000..61ec1ff --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240828_090327.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBDDEF9RDA18013 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-0.044,mm,best,-0.700,20240828,090253,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.767,mm,best,3.300,20240828,090253,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-0.351,mm,best,-0.700,20240828,090256,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.569,mm,best,3.300,20240828,090256,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,-0.586,mm,best,0.000,20240828,090259,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.388,mm,best,3.500,20240828,090259,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,2.290,mm,best,2.000,20240828,090301,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.323,mm,best,2.000,20240828,090304,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,0.276,mm,best,0.200,20240828,090307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.572,mm,best,3.300,20240828,090307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,0.149,mm,best,0.200,20240828,090309,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.246,mm,best,3.500,20240828,090309,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,-0.059,mm,best,0.200,20240828,090312,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.900,mm,best,3.900,20240828,090312,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,-0.552,mm,best,-0.500,20240828,090314,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,3.899,mm,best,3.800,20240828,090314,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.021,mm,best,0.200,20240828,090317,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,4.128,mm,best,3.800,20240828,090317,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,1.387,mm,NG,0.600,20240828,090320,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,4.286,mm,best,4.200,20240828,090320,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,0.830,mm,best,0.600,20240828,090322,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.592,mm,best,3.700,20240828,090322,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.483,mm,NG,0.200,20240828,090325,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,4.149,mm,best,3.700,20240828,090325,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,0.002,mm,best,-0.700,20240828,090254,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.378,mm,best,3.300,20240828,090254,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.709,mm,best,-0.700,20240828,090256,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.325,mm,best,3.300,20240828,090256,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,0.527,mm,best,0.000,20240828,090259,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,2.829,mm,good,3.500,20240828,090259,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,2.653,mm,best,2.000,20240828,090302,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,2.932,mm,good,2.000,20240828,090304,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,0.138,mm,best,0.200,20240828,090307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.408,mm,best,3.300,20240828,090307,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,0.001,mm,best,0.200,20240828,090309,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.864,mm,best,3.500,20240828,090309,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.711,mm,good,0.200,20240828,090312,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,3.907,mm,best,3.900,20240828,090312,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,0.216,mm,NG,-0.500,20240828,090314,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.579,mm,best,3.800,20240828,090314,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.506,mm,best,0.200,20240828,090317,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.851,mm,best,3.800,20240828,090317,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,1.042,mm,best,0.600,20240828,090320,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,4.022,mm,best,4.200,20240828,090320,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.551,mm,NG,0.600,20240828,090323,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.677,mm,best,3.700,20240828,090323,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.284,mm,best,0.200,20240828,090326,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.802,mm,best,3.700,20240828,090326,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240828_091213.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240828_091213.csv new file mode 100644 index 0000000..c2881a5 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CherryEHY_20240828_091213.csv @@ -0,0 +1,66 @@ +MeasPlan.Name,CherryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000online +Part_name,123 +prodnum,NNBBDEC8RDA18015 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,Dimension.Classification,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-1.448,mm,best,-0.700,20240828,091140,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-01,G,3.569,mm,best,3.300,20240828,091140,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-02,F,-1.770,mm,NG,-0.700,20240828,091142,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-02,G,3.445,mm,best,3.300,20240828,091142,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-03,F,0.352,mm,best,0.000,20240828,091145,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-03,G,3.224,mm,best,3.500,20240828,091145,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +L-07,G,2.680,mm,best,2.000,20240828,091148,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-11,G,2.521,mm,best,2.000,20240828,091152,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +L-04,F,0.080,mm,best,0.200,20240828,091154,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-04,G,3.796,mm,good,3.300,20240828,091154,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,F,-0.057,mm,best,0.200,20240828,091157,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-05,G,3.504,mm,best,3.500,20240828,091157,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,F,0.016,mm,best,0.200,20240828,091159,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-06,G,3.913,mm,best,3.900,20240828,091159,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,F,-0.570,mm,best,-0.500,20240828,091202,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-10,G,3.787,mm,best,3.800,20240828,091202,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,F,0.389,mm,best,0.200,20240828,091204,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-09,G,3.871,mm,best,3.800,20240828,091204,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,F,0.764,mm,best,0.600,20240828,091207,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-08,G,3.819,mm,best,4.200,20240828,091207,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,F,1.321,mm,NG,0.600,20240828,091210,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-12,G,3.646,mm,best,3.700,20240828,091210,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,F,-0.794,mm,NG,0.200,20240828,091212,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +L-13,G,4.250,mm,good,3.700,20240828,091212,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-01,F,-0.648,mm,best,-0.700,20240828,091140,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-01,G,3.368,mm,best,3.300,20240828,091140,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-02,F,-0.400,mm,best,-0.700,20240828,091142,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-02,G,3.537,mm,best,3.300,20240828,091142,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-03,F,-0.386,mm,best,0.000,20240828,091145,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-03,G,2.269,mm,NG,3.500,20240828,091145,best,-0.525,0.525,good,-0.700,0.700,NG,-999.000,999.000 +R-07,G,3.084,mm,NG,2.000,20240828,091148,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-11,G,2.910,mm,good,2.000,20240828,091150,best,-0.750,0.750,good,-1.000,1.000,NG,-999.000,999.000 +R-04,F,-0.391,mm,good,0.200,20240828,091153,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-04,G,3.106,mm,best,3.300,20240828,091153,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,F,0.098,mm,best,0.200,20240828,091155,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-05,G,3.868,mm,best,3.500,20240828,091155,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,F,0.486,mm,best,0.200,20240828,091158,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-06,G,4.330,mm,best,3.900,20240828,091158,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,F,-0.089,mm,best,-0.500,20240828,091200,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-10,G,3.070,mm,NG,3.800,20240828,091200,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,F,0.381,mm,best,0.200,20240828,091202,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-09,G,3.491,mm,best,3.800,20240828,091202,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,F,1.094,mm,good,0.600,20240828,091205,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-08,G,3.594,mm,NG,4.200,20240828,091205,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,F,1.170,mm,good,0.600,20240828,091209,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-12,G,3.773,mm,best,3.700,20240828,091209,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,F,0.269,mm,best,0.200,20240828,091212,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 +R-13,G,3.743,mm,best,3.700,20240828,091212,best,-0.450,0.450,good,-0.600,0.600,NG,-999.000,999.000 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CheryEHY_20240907_205526.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CheryEHY_20240907_205526.csv new file mode 100644 index 0000000..a56392b --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/CheryEHY_20240907_205526.csv @@ -0,0 +1,70 @@ +MeasPlan.Name,CheryEHY +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EHY +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,LNNBBDEC5RDA18120 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-19,F,0.3,mm,0.0,20240907,153951,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-19,G,3.8,mm,0.0,20240907,153951,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-01,F,0.3,mm,0.0,20240907,154057,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.7,mm,0.0,20240907,154057,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-0.4,mm,0.0,20240907,154448,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,2.9,mm,0.0,20240907,154448,best,2.4,3.8,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-0.6,mm,0.0,20240907,155051,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,3.4,mm,0.0,20240907,155051,best,2.6,4.0,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,0.3,mm,0.0,20240907,160804,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,2.7,mm,0.0,20240907,160804,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,0.3,mm,0.0,20240907,161124,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.5,mm,0.0,20240907,161124,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,1.0,mm,0.0,20240907,161451,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,3.1,mm,0.0,20240907,161451,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.1,mm,0.0,20240907,161901,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.7,mm,0.0,20240907,161901,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,0.1,mm,0.0,20240907,202933,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,2.4,mm,0.0,20240907,202933,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,0.3,mm,0.0,20240907,203417,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,3.8,mm,0.0,20240907,203417,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-0.8,mm,0.0,20240907,203730,best,-0.9,0.1,good,-4.0,1.0,NG,-999.0,999.0 +L-21,G,2.4,mm,0.0,20240907,203730,best,1.8,2.8,good,1.0,9.0,NG,-999.0,999.0 +L-22,F,0.1,mm,0.0,20240907,204024,best,-0.9,0.1,good,-4.0,1.0,NG,-999.0,999.0 +L-22,G,2.0,mm,0.0,20240907,204024,best,1.8,2.8,good,1.0,9.0,NG,-999.0,999.0 +L-14,F,-2.1,mm,0.0,20240907,204453,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +L-14,G,3.5,mm,0.0,20240907,204453,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-1.3,mm,0.0,20240907,204809,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +L-15,G,3.4,mm,0.0,20240907,204809,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-1.5,mm,0.0,20240907,205219,best,-3.0,0.2,good,-4.0,1.0,NG,-999.0,999.0 +L-16,G,3.8,mm,0.0,20240907,205219,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,-1.6,mm,0.0,20240907,205501,best,0.5,2.5,good,0.0,4.0,NG,-999.0,999.0 +L-18,G,4.0,mm,0.0,20240907,205501,best,2.6,5.0,good,1.0,6.0,NG,-999.0,999.0 +R-04,F,-0.0,mm,0.0,20240907,163310,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-04,G,3.7,mm,0.0,20240907,163310,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-06,F,-0.2,mm,0.0,20240907,163904,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-06,G,3.6,mm,0.0,20240907,163904,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-10,F,0.1,mm,0.0,20240907,164243,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-10,G,3.4,mm,0.0,20240907,164243,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-08,F,-0.0,mm,0.0,20240907,164901,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-08,G,3.6,mm,0.0,20240907,164901,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-12,F,0.4,mm,0.0,20240907,192336,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-12,G,3.7,mm,0.0,20240907,192336,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-13,F,0.3,mm,0.0,20240907,192930,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-13,G,3.3,mm,0.0,20240907,192930,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-14,F,-1.3,mm,0.0,20240907,194327,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +R-14,G,3.5,mm,0.0,20240907,194327,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-15,F,-1.8,mm,0.0,20240907,194314,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +R-15,G,3.2,mm,0.0,20240907,194314,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-16,F,-1.6,mm,0.0,20240907,194227,best,-3.0,0.2,good,-4.0,1.0,NG,-999.0,999.0 +R-16,G,3.1,mm,0.0,20240907,194227,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-18,F,-2.7,mm,0.0,20240907,194936,best,0.5,2.5,good,0.0,4.0,NG,-999.0,999.0 +R-18,G,3.5,mm,0.0,20240907,194936,best,2.6,5.0,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/DEMO2VW.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/DEMO2VW.csv new file mode 100644 index 0000000..28c86bb --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/DEMO2VW.csv @@ -0,0 +1,99 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR5RA007777 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.87,3,1.80,20240620,162658,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,5.54,3,4.00,20240620,162658,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,0.90,3,3.20,20240620,162702,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.37,3,2.00,20240620,162702,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-0.86,3,-1.50,20240620,162705,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.25,3,3.70,20240620,162705,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0044,F,0.1,3,-0.70,20240620,162709,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0044,G,5.0,3,5.00,20240620,162709,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0058,F,0.04,3,0.00,20240620,162714,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.67,3,0.80,20240620,162714,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-1.51,3,-0.70,20240620,162721,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.85,3,5.00,20240620,162721,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,0.60,3,0.00,20240620,162728,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.00,3,3.50,20240620,162728,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.16,3,-0.50,20240620,162731,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.16,3,3.50,20240620,162731,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.36,3,-0.50,20240620,162736,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.38,3,3.50,20240620,162736,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,-1.96,3,-2.30,20240620,162745,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,5.41,3,5.80,20240620,162745,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,inv.,3,0.00,20240620,162757,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,inv.,3,5.30,20240620,162757,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,0.27,3,0.00,20240620,162801,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.75,3,3.50,20240620,162801,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-3.41,3,0.00,20240620,162808,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,4.15,3,4.40,20240620,162808,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-4.24,3,0.00,20240620,162814,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.98,3,4.40,20240620,162814,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-0.12,3,0.10,20240620,162842,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,4.04,3,3.50,20240620,162842,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-2.01,3,0.00,20240620,163049,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.57,3,3.20,20240620,163049,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-1.35,3,0.00,20240620,163053,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.43,3,3.20,20240620,163053,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.24,3,-1.50,20240620,163057,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.73,3,5.00,20240620,163057,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,3.68,3,4.80,20240620,163100,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.32,3,4.00,20240620,163100,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,-0.13,3,1.00,20240620,163104,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,5.02,3,4.00,20240620,163104,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0265,F,inv.,3,-0.70,20240620,163107,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0265,G,inv.,3,5.00,20240620,163107,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0268,F,inv.,3,-0.85,20240620,163111,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0268,G,inv.,3,1.50,20240620,163111,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0522,F,0.34,3,-0.70,20240620,163115,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0522,G,inv.,3,5.00,20240620,163115,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ELKAY0523,F,0.31,3,-2.10,20240620,163117,level1,-1.10,1.10,level2,-1.65,1.65,levele3,-2.20,2.20 +ELKAY0523,G,5.45,3,5.50,20240620,163117,level1,-1.00,1.00,level2,-1.50,1.50,levele3,-2.00,2.00 +ERKAY0020,F,0.22,3,1.80,20240620,163158,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.79,3,4.00,20240620,163158,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,0.67,3,3.20,20240620,163201,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,4.79,3,2.00,20240620,163201,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,1.38,3,-1.50,20240620,163205,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,4.83,3,3.70,20240620,163205,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0044,F,inv.,3,-0.70,20240620,163209,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0044,G,inv.,3,5.00,20240620,163209,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0058,F,0.10,3,0.00,20240620,163215,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.12,3,0.80,20240620,163215,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.56,3,-0.70,20240620,163222,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,6.21,3,5.00,20240620,163222,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,1.17,3,0.00,20240620,163231,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.08,3,3.50,20240620,163231,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.19,3,-0.50,20240620,163238,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,2.99,3,3.50,20240620,163238,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-0.67,3,-0.50,20240620,163242,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.54,3,3.50,20240620,163242,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240620,163256,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240620,163256,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,-1.56,3,0.00,20240620,163316,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.22,3,5.30,20240620,163316,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.02,3,0.00,20240620,163320,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,4.50,3,3.50,20240620,163320,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-1.97,3,0.00,20240620,163326,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.33,3,4.40,20240620,163326,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-1.75,3,0.00,20240620,163330,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.12,3,4.40,20240620,163330,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,-0.24,3,0.10,20240620,163334,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.06,3,3.50,20240620,163334,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.32,3,0.00,20240620,163337,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.56,3,3.20,20240620,163337,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-1.26,3,0.00,20240620,163339,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.21,3,3.20,20240620,163339,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.56,3,-1.50,20240620,163343,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.10,3,5.00,20240620,163343,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,4.80,3,4.80,20240620,163348,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,3.97,3,4.00,20240620,163348,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,0.76,3,1.00,20240620,163352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,3.95,3,4.00,20240620,163352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0265,F,inv.,3,-0.70,20240620,163356,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0265,G,inv.,3,5.00,20240620,163356,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0268,F,0.86,3,-0.85,20240620,163402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0268,G,inv.,3,1.50,20240620,163402,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0522,F,0.86,3,-0.70,20240620,163406,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0522,G,inv.,3,5.00,20240620,163406,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0523,F,0.76,3,-2.10,20240620,163410,level1,-1.10,1.10,level2,-1.65,1.65,levele3,-2.20,2.20 +ERKAY0523,G,inv.,3,5.50,20240620,163410,level1,-1.00,1.00,level2,-1.50,1.50,levele3,-2.00,2.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR2RA006241_20240625_153425.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR2RA006241_20240625_153425.csv new file mode 100644 index 0000000..d3ca1b0 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR2RA006241_20240625_153425.csv @@ -0,0 +1,17 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR2RA006241 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.48,3,1.80,20240625,153312,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.39,3,4.00,20240625,153312,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,1.09,3,3.20,20240625,153317,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,2.82,3,2.00,20240625,153317,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,1.64,3,-1.50,20240625,153320,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.15,3,3.70,20240625,153320,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,0.03,3,0.00,20240625,153340,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.72,3,0.80,20240625,153340,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.06,3,-0.70,20240625,153348,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,5.18,3,5.00,20240625,153348,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,-0.06,3,0.00,20240625,153352,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.31,3,3.50,20240625,153352,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,inv.,3,-0.50,20240625,153406,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,inv.,3,3.50,20240625,153406,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR3RA006006_20240624_135931.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR3RA006006_20240624_135931.csv new file mode 100644 index 0000000..3cb5d56 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR3RA006006_20240624_135931.csv @@ -0,0 +1,73 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR3RA006006 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.95,3,1.80,20240624,135505,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.07,3,4.00,20240624,135505,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.41,3,3.20,20240624,135510,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.21,3,2.00,20240624,135510,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-2.36,3,-1.50,20240624,135516,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.76,3,3.70,20240624,135516,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.14,3,0.00,20240624,135524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.66,3,0.80,20240624,135524,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-1.15,3,-0.70,20240624,135537,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.80,3,5.00,20240624,135537,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.26,3,0.00,20240624,135544,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.14,3,3.50,20240624,135544,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.25,3,-0.50,20240624,135550,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.02,3,3.50,20240624,135550,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.30,3,-0.50,20240624,135555,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.34,3,3.50,20240624,135555,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,1.10,3,0.00,20240624,135608,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,4.02,3,5.30,20240624,135608,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-0.45,3,0.00,20240624,135614,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.05,3,3.50,20240624,135614,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-1.91,3,0.00,20240624,135618,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,4.20,3,4.40,20240624,135618,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-1.97,3,0.00,20240624,135623,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.89,3,4.40,20240624,135623,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-0.01,3,0.10,20240624,135629,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,3.48,3,3.50,20240624,135629,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-0.88,3,0.00,20240624,135633,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.31,3,3.20,20240624,135633,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-0.77,3,0.00,20240624,135644,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.66,3,3.20,20240624,135644,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.23,3,-1.50,20240624,135651,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.17,3,5.00,20240624,135651,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.05,3,4.80,20240624,135656,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.12,3,4.00,20240624,135656,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.36,3,1.00,20240624,135702,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.47,3,4.00,20240624,135702,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,1.47,3,1.80,20240624,135732,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.59,3,4.00,20240624,135732,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.51,3,3.20,20240624,135736,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,1.11,3,2.00,20240624,135736,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.47,3,-1.50,20240624,135742,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.30,3,3.70,20240624,135742,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.04,3,0.00,20240624,135751,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.06,3,0.80,20240624,135751,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,0.92,3,-0.70,20240624,135801,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.90,3,5.00,20240624,135801,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.16,3,0.00,20240624,135805,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.95,3,3.50,20240624,135805,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,0.02,3,-0.50,20240624,135816,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.54,3,3.50,20240624,135816,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-1.13,3,-0.50,20240624,135820,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.80,3,3.50,20240624,135820,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.5_R,F,0.75,3,0.00,20240624,135827,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,4.71,3,3.50,20240624,135827,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-2.30,3,0.00,20240624,135835,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.15,3,4.40,20240624,135835,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-3.39,3,0.00,20240624,135840,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.13,3,4.40,20240624,135840,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,1.11,3,0.10,20240624,135848,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.21,3,3.50,20240624,135848,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.85,3,0.00,20240624,135852,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.82,3,3.20,20240624,135852,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-1.74,3,0.00,20240624,135857,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.26,3,3.20,20240624,135857,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.79,3,-1.50,20240624,135901,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.19,3,5.00,20240624,135901,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,-7.03,3,4.80,20240624,135904,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,3.74,3,4.00,20240624,135904,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,-0.18,3,1.00,20240624,135908,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.14,3,4.00,20240624,135908,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006015_20240624_142024.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006015_20240624_142024.csv new file mode 100644 index 0000000..87e885c --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006015_20240624_142024.csv @@ -0,0 +1,73 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR4RA006015 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.86,3,1.80,20240624,141734,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,2.63,3,4.00,20240624,141734,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.15,3,3.20,20240624,141739,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,5.13,3,2.00,20240624,141739,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-2.74,3,-1.50,20240624,141744,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.80,3,3.70,20240624,141744,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,0.08,3,0.00,20240624,141751,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.74,3,0.80,20240624,141751,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-1.36,3,-0.70,20240624,141800,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.99,3,5.00,20240624,141800,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.11,3,0.00,20240624,141805,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.85,3,3.50,20240624,141805,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,0.06,3,-0.50,20240624,141811,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,2.95,3,3.50,20240624,141811,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.74,3,-0.50,20240624,141817,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,2.88,3,3.50,20240624,141817,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.5_L,F,-0.63,3,0.00,20240624,141823,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.97,3,3.50,20240624,141823,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-1.80,3,0.00,20240624,141829,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.83,3,4.40,20240624,141829,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-1.79,3,0.00,20240624,141833,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.80,3,4.40,20240624,141833,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-0.32,3,0.10,20240624,141839,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,3.74,3,3.50,20240624,141839,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-1.08,3,0.00,20240624,141844,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.64,3,3.20,20240624,141844,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-2.68,3,0.00,20240624,141939,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.69,3,3.20,20240624,141939,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.52,3,-1.50,20240624,141950,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.53,3,5.00,20240624,141950,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,3.94,3,4.80,20240624,141956,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.34,3,4.00,20240624,141956,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,1.15,3,1.00,20240624,142001,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.39,3,4.00,20240624,142001,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,0.85,3,1.80,20240624,141411,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.07,3,4.00,20240624,141411,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.31,3,3.20,20240624,141417,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,4.02,3,2.00,20240624,141417,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.38,3,-1.50,20240624,141422,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,4.05,3,3.70,20240624,141422,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.04,3,0.00,20240624,141430,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.12,3,0.80,20240624,141430,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.03,3,-0.70,20240624,141439,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.84,3,5.00,20240624,141439,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.81,3,0.00,20240624,141444,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.56,3,3.50,20240624,141444,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.12,3,-0.50,20240624,141449,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.07,3,3.50,20240624,141449,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-1.37,3,-0.50,20240624,141454,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.81,3,3.50,20240624,141454,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0180,F,inv.,3,0.00,20240624,141510,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,inv.,3,5.30,20240624,141510,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.19,3,0.00,20240624,141520,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,3.67,3,3.50,20240624,141520,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-2.16,3,0.00,20240624,141527,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.20,3,4.40,20240624,141527,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-2.81,3,0.00,20240624,141535,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.23,3,4.40,20240624,141535,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,0.92,3,0.10,20240624,141547,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.73,3,3.50,20240624,141547,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.91,3,0.00,20240624,141554,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.67,3,3.20,20240624,141554,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-2.01,3,0.00,20240624,141601,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.20,3,3.20,20240624,141601,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.94,3,-1.50,20240624,141617,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.66,3,5.00,20240624,141617,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,4.53,3,4.80,20240624,141646,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,4.09,3,4.00,20240624,141646,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,1.01,3,1.00,20240624,141658,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.16,3,4.00,20240624,141658,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006239_20240625_153234.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006239_20240625_153234.csv new file mode 100644 index 0000000..526fbd6 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006239_20240625_153234.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR4RA006239 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.99,3,1.80,20240625,152907,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.31,3,4.00,20240625,152907,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,2.36,3,3.20,20240625,152911,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,3.80,3,2.00,20240625,152911,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,2.54,3,-1.50,20240625,152915,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.68,3,3.70,20240625,152915,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.11,3,0.00,20240625,152921,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.72,3,0.80,20240625,152921,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.53,3,-0.70,20240625,152930,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,5.47,3,5.00,20240625,152930,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,0.50,3,0.00,20240625,152933,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.90,3,3.50,20240625,152933,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.11,3,-0.50,20240625,152951,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.23,3,3.50,20240625,152951,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-1.92,3,-0.50,20240625,152958,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.67,3,3.50,20240625,152958,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,2.55,3,-2.30,20240625,153013,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,0.00,3,5.80,20240625,153013,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,inv.,3,0.00,20240625,153052,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,inv.,3,5.30,20240625,153052,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,0.07,3,0.00,20240625,153058,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.21,3,3.50,20240625,153058,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-1.36,3,0.00,20240625,153109,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,2.25,3,4.40,20240625,153109,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-1.62,3,0.00,20240625,153115,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.87,3,4.40,20240625,153115,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-0.72,3,0.10,20240625,153119,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,4.17,3,3.50,20240625,153119,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-1.17,3,0.00,20240625,153129,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.58,3,3.20,20240625,153129,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-1.33,3,0.00,20240625,153136,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,2.93,3,3.20,20240625,153136,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-1.46,3,-1.50,20240625,153144,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.64,3,5.00,20240625,153144,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.51,3,4.80,20240625,153149,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,3.77,3,4.00,20240625,153149,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,1.52,3,1.00,20240625,153216,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.54,3,4.00,20240625,153216,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,2.35,3,1.80,20240625,152532,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.92,3,4.00,20240625,152532,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,3.39,3,3.20,20240625,152539,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.83,3,2.00,20240625,152539,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.94,3,-1.50,20240625,152546,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.88,3,3.70,20240625,152546,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,0.09,3,0.00,20240625,152557,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,0.93,3,0.80,20240625,152557,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.33,3,-0.70,20240625,152605,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,4.05,3,5.00,20240625,152605,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,-0.39,3,0.00,20240625,152609,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,3.84,3,3.50,20240625,152609,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.19,3,-0.50,20240625,152619,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.02,3,3.50,20240625,152619,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-1.06,3,-0.50,20240625,152625,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.80,3,3.50,20240625,152625,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,-3.46,3,-0.70,20240625,152643,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240625,152643,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,-0.29,3,0.00,20240625,152711,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.31,3,5.30,20240625,152711,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,1.59,3,0.00,20240625,152717,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,4.71,3,3.50,20240625,152717,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-0.96,3,0.00,20240625,152720,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.83,3,4.40,20240625,152720,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-1.84,3,0.00,20240625,152725,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.08,3,4.40,20240625,152725,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,-0.82,3,0.10,20240625,152733,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.27,3,3.50,20240625,152733,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.64,3,0.00,20240625,152737,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.22,3,3.20,20240625,152737,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-1.70,3,0.00,20240625,152749,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.01,3,3.20,20240625,152749,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-2.38,3,-1.50,20240625,152833,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.92,3,5.00,20240625,152833,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,3.99,3,4.80,20240625,152811,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,3.68,3,4.00,20240625,152811,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,0.57,3,1.00,20240625,152826,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.36,3,4.00,20240625,152826,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006242_20240625_154245.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006242_20240625_154245.csv new file mode 100644 index 0000000..9507777 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR4RA006242_20240625_154245.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR4RA006242 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.50,3,1.80,20240625,153457,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.47,3,4.00,20240625,153457,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.09,3,3.20,20240625,153502,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,2.96,3,2.00,20240625,153502,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,2.73,3,-1.50,20240625,153517,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.24,3,3.70,20240625,153517,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,0.19,3,0.00,20240625,153524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.70,3,0.80,20240625,153524,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.42,3,-0.70,20240625,153552,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,3.99,3,5.00,20240625,153552,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.05,3,0.00,20240625,153556,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.93,3,3.50,20240625,153556,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,0.28,3,-0.50,20240625,153603,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,2.99,3,3.50,20240625,153603,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,0.31,3,-0.50,20240625,153609,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.36,3,3.50,20240625,153609,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,-2.74,3,-2.30,20240625,153624,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,3.35,3,5.80,20240625,153624,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,inv.,3,0.00,20240625,153709,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,inv.,3,5.30,20240625,153709,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-1.54,3,0.00,20240625,153718,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.69,3,3.50,20240625,153718,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,1.64,3,0.00,20240625,153726,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.99,3,4.40,20240625,153726,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,2.06,3,0.00,20240625,153732,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.80,3,4.40,20240625,153732,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,0.48,3,0.10,20240625,153739,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,2.78,3,3.50,20240625,153739,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,2.10,3,0.00,20240625,153748,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.29,3,3.20,20240625,153748,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,2.09,3,0.00,20240625,153756,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.77,3,3.20,20240625,153756,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,0.50,3,-1.50,20240625,153802,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.25,3,5.00,20240625,153802,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,5.19,3,4.80,20240625,153809,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.16,3,4.00,20240625,153809,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.38,3,1.00,20240625,153817,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.26,3,4.00,20240625,153817,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,0.66,3,1.80,20240625,153844,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.25,3,4.00,20240625,153844,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.82,3,3.20,20240625,153849,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.51,3,2.00,20240625,153849,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.43,3,-1.50,20240625,153853,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.20,3,3.70,20240625,153853,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.03,3,0.00,20240625,153900,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.05,3,0.80,20240625,153900,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.36,3,-0.70,20240625,153908,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,4.69,3,5.00,20240625,153908,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.93,3,0.00,20240625,153912,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.88,3,3.50,20240625,153912,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,0.23,3,-0.50,20240625,153918,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,2.96,3,3.50,20240625,153918,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,1.52,3,-0.50,20240625,153923,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.89,3,3.50,20240625,153923,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240625,153952,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240625,153952,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,1.69,3,0.00,20240625,154014,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.23,3,5.30,20240625,154014,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,-0.79,3,0.00,20240625,154031,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,5.18,3,3.50,20240625,154031,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,1.91,3,0.00,20240625,154038,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.08,3,4.40,20240625,154038,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,1.76,3,0.00,20240625,154044,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.18,3,4.40,20240625,154044,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,0.81,3,0.10,20240625,154050,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,4.26,3,3.50,20240625,154050,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,0.52,3,0.00,20240625,154057,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.33,3,3.20,20240625,154057,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,1.02,3,0.00,20240625,154135,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.28,3,3.20,20240625,154135,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,0.43,3,-1.50,20240625,154111,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.70,3,5.00,20240625,154111,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,4.59,3,4.80,20240625,154149,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,4.00,3,4.00,20240625,154149,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,1.73,3,1.00,20240625,154155,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.60,3,4.00,20240625,154155,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR6RA006002_20240624_135456.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR6RA006002_20240624_135456.csv new file mode 100644 index 0000000..5142dc7 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR6RA006002_20240624_135456.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR6RA006002 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.83,3,1.80,20240624,135152,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.70,3,4.00,20240624,135152,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,2.62,3,3.20,20240624,135158,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.16,3,2.00,20240624,135158,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,-1.77,3,-1.50,20240624,135212,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.13,3,3.70,20240624,135212,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.09,3,0.00,20240624,135227,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.75,3,0.80,20240624,135227,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-0.81,3,-0.70,20240624,135233,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,5.02,3,5.00,20240624,135233,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.09,3,0.00,20240624,135302,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.73,3,3.50,20240624,135302,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.37,3,-0.50,20240624,135307,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.07,3,3.50,20240624,135307,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-0.15,3,-0.50,20240624,135312,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.47,3,3.50,20240624,135312,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,inv.,3,-2.30,20240624,135319,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,inv.,3,5.80,20240624,135319,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,1.87,3,0.00,20240624,135328,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,3.65,3,5.30,20240624,135328,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-0.35,3,0.00,20240624,135334,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.04,3,3.50,20240624,135334,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-2.30,3,0.00,20240624,135340,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.62,3,4.40,20240624,135340,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-2.77,3,0.00,20240624,135345,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,4.27,3,4.40,20240624,135345,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,-1.21,3,0.10,20240624,135358,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,3.23,3,3.50,20240624,135358,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-2.79,3,0.00,20240624,135402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.62,3,3.20,20240624,135402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-2.71,3,0.00,20240624,135412,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.19,3,3.20,20240624,135412,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-0.25,3,-1.50,20240624,135417,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.70,3,5.00,20240624,135417,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,5.13,3,4.80,20240624,135423,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.23,3,4.00,20240624,135423,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.44,3,1.00,20240624,135430,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.58,3,4.00,20240624,135430,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,1.29,3,1.80,20240624,134827,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.96,3,4.00,20240624,134827,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,3.00,3,3.20,20240624,134834,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,0.11,3,2.00,20240624,134834,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.53,3,-1.50,20240624,134850,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.94,3,3.70,20240624,134850,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.21,3,0.00,20240624,134900,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.08,3,0.80,20240624,134900,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.10,3,-0.70,20240624,134911,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,4.36,3,5.00,20240624,134911,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.88,3,0.00,20240624,134916,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,5.29,3,3.50,20240624,134916,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.24,3,-0.50,20240624,134925,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.51,3,3.50,20240624,134925,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,-1.27,3,-0.50,20240624,134931,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.96,3,3.50,20240624,134931,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240624,134949,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240624,134949,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,-1.57,3,0.00,20240624,135004,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,5.21,3,5.30,20240624,135004,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.12,3,0.00,20240624,135015,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,3.51,3,3.50,20240624,135015,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,-2.31,3,0.00,20240624,135023,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.10,3,4.40,20240624,135023,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,-3.01,3,0.00,20240624,135029,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,3.96,3,4.40,20240624,135029,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,1.46,3,0.10,20240624,135038,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.59,3,3.50,20240624,135038,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,-1.67,3,0.00,20240624,135041,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.68,3,3.20,20240624,135041,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,-1.45,3,0.00,20240624,135058,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.30,3,3.20,20240624,135058,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.58,3,-1.50,20240624,135103,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.51,3,5.00,20240624,135103,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,-6.71,3,4.80,20240624,135113,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,2.25,3,4.00,20240624,135113,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,-0.68,3,1.00,20240624,135119,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.22,3,4.00,20240624,135119,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR7RA006235_20240625_151550.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR7RA006235_20240625_151550.csv new file mode 100644 index 0000000..9feade3 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR7RA006235_20240625_151550.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR7RA006235 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,1.61,3,1.80,20240625,150857,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.06,3,4.00,20240625,150857,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.32,3,3.20,20240625,150900,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,5.39,3,2.00,20240625,150900,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,3.13,3,-1.50,20240625,150913,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.90,3,3.70,20240625,150913,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.04,3,0.00,20240625,150921,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.65,3,0.80,20240625,150921,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,2.11,3,-0.70,20240625,150927,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,11.49,3,5.00,20240625,150927,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.07,3,0.00,20240625,150932,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.13,3,3.50,20240625,150932,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,0.13,3,-0.50,20240625,150938,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,2.90,3,3.50,20240625,150938,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,0.49,3,-0.50,20240625,150943,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.58,3,3.50,20240625,150943,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,inv.,3,-2.30,20240625,150950,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,inv.,3,5.80,20240625,150950,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,0.19,3,0.00,20240625,151007,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,3.84,3,5.30,20240625,151007,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-0.74,3,0.00,20240625,151017,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.96,3,3.50,20240625,151017,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,1.18,3,0.00,20240625,151022,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.84,3,4.40,20240625,151022,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,0.82,3,0.00,20240625,151028,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,7.42,3,4.40,20240625,151028,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,0.73,3,0.10,20240625,151033,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,2.96,3,3.50,20240625,151033,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,1.53,3,0.00,20240625,151038,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.23,3,3.20,20240625,151038,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,1.12,3,0.00,20240625,151046,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,4.05,3,3.20,20240625,151046,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,0.66,3,-1.50,20240625,151054,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,4.26,3,5.00,20240625,151054,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,5.21,3,4.80,20240625,151102,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,3.82,3,4.00,20240625,151102,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,1.13,3,1.00,20240625,151109,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.04,3,4.00,20240625,151109,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,1.18,3,1.80,20240625,151132,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.35,3,4.00,20240625,151132,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.79,3,3.20,20240625,151138,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.04,3,2.00,20240625,151138,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.96,3,-1.50,20240625,151143,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.52,3,3.70,20240625,151143,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,0.09,3,0.00,20240625,151154,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.10,3,0.80,20240625,151154,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.32,3,-0.70,20240625,151201,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.38,3,5.00,20240625,151201,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.44,3,0.00,20240625,151207,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.09,3,3.50,20240625,151207,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,-0.09,3,-0.50,20240625,151214,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.30,3,3.50,20240625,151214,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,1.67,3,-0.50,20240625,151219,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,3.93,3,3.50,20240625,151219,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240625,151228,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240625,151228,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,inv.,3,0.00,20240625,151238,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,inv.,3,5.30,20240625,151238,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,0.48,3,0.00,20240625,151244,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,4.14,3,3.50,20240625,151244,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,2.43,3,0.00,20240625,151251,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.12,3,4.40,20240625,151251,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,2.45,3,0.00,20240625,151256,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.33,3,4.40,20240625,151256,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,0.63,3,0.10,20240625,151300,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,3.76,3,3.50,20240625,151300,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,1.37,3,0.00,20240625,151307,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.69,3,3.20,20240625,151307,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,1.59,3,0.00,20240625,151321,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.66,3,3.20,20240625,151321,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.01,3,-1.50,20240625,151325,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.38,3,5.00,20240625,151325,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,4.73,3,4.80,20240625,151328,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,4.06,3,4.00,20240625,151328,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,1.32,3,1.00,20240625,151334,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.43,3,4.00,20240625,151334,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006230_20240625_145624.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006230_20240625_145624.csv new file mode 100644 index 0000000..f32cd04 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006230_20240625_145624.csv @@ -0,0 +1,41 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR8RA006230 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.11,3,1.80,20240625,145240,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,1.65,3,4.00,20240625,145240,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.73,3,3.20,20240625,145245,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.92,3,2.00,20240625,145245,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,2.89,3,-1.50,20240625,145251,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.52,3,3.70,20240625,145251,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.01,3,0.00,20240625,145259,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.72,3,0.80,20240625,145259,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.30,3,-0.70,20240625,145305,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,6.06,3,5.00,20240625,145305,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,0.25,3,0.00,20240625,145308,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.31,3,3.50,20240625,145308,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.17,3,-0.50,20240625,145317,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.15,3,3.50,20240625,145317,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,-2.10,3,-0.50,20240625,145322,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.99,3,3.50,20240625,145322,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,inv.,3,-2.30,20240625,145342,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,inv.,3,5.80,20240625,145342,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,inv.,3,0.00,20240625,145447,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,inv.,3,5.30,20240625,145447,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,0.47,3,0.00,20240625,145455,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.65,3,3.50,20240625,145455,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,-1.43,3,0.00,20240625,145505,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.48,3,4.40,20240625,145505,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,-2.08,3,0.00,20240625,145510,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.84,3,4.40,20240625,145510,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,0.09,3,0.10,20240625,145516,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,4.34,3,3.50,20240625,145516,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,-1.12,3,0.00,20240625,145524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.60,3,3.20,20240625,145524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,-1.48,3,0.00,20240625,145542,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,3.02,3,3.20,20240625,145542,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,-1.69,3,-1.50,20240625,145546,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,5.28,3,5.00,20240625,145546,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.34,3,4.80,20240625,145551,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,3.45,3,4.00,20240625,145551,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,0.73,3,1.00,20240625,145557,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.90,3,4.00,20240625,145557,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006437_20240626_152032.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006437_20240626_152032.csv new file mode 100644 index 0000000..5c48cea --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKR8RA006437_20240626_152032.csv @@ -0,0 +1,25 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKR8RA006437 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,0.55,3,1.80,20240626,151655,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,2.00,3,4.00,20240626,151655,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,-3.59,3,3.20,20240626,151702,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.55,3,2.00,20240626,151702,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,3.55,3,-1.50,20240626,151708,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.40,3,3.70,20240626,151708,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0020,F,-0.35,3,1.80,20240626,151732,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,1.96,3,4.00,20240626,151732,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,-3.29,3,3.20,20240626,151737,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.98,3,2.00,20240626,151737,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,3.09,3,-1.50,20240626,151741,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.52,3,3.70,20240626,151741,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.12,3,0.00,20240626,151833,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.09,3,0.80,20240626,151833,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.20,3,-0.70,20240626,151839,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.75,3,5.00,20240626,151839,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,-0.58,3,0.00,20240626,151848,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.78,3,3.50,20240626,151848,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,0.02,3,-0.50,20240626,151854,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.35,3,3.50,20240626,151854,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,1.37,3,-0.50,20240626,151858,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,4.03,3,3.50,20240626,151858,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006228_20240625_145028.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006228_20240625_145028.csv new file mode 100644 index 0000000..6b356c1 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006228_20240625_145028.csv @@ -0,0 +1,79 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKRXRA006228 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,2.32,3,1.80,20240625,144256,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.30,3,4.00,20240625,144256,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,4.07,3,3.20,20240625,144301,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,5.10,3,2.00,20240625,144301,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,3.72,3,-1.50,20240625,144309,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,4.26,3,3.70,20240625,144309,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,-0.06,3,0.00,20240625,144317,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.67,3,0.80,20240625,144317,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,-0.00,3,-0.70,20240625,144327,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,0.61,3,5.00,20240625,144327,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,1.36,3,0.00,20240625,144332,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,3.29,3,3.50,20240625,144332,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,0.12,3,-0.50,20240625,144346,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,2.80,3,3.50,20240625,144346,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,0.51,3,-0.50,20240625,144352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.56,3,3.50,20240625,144352,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0357,F,-3.41,3,-2.30,20240625,144402,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0357,G,5.12,3,5.80,20240625,144402,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0180,F,1.33,3,0.00,20240625,144421,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0180,G,4.82,3,5.30,20240625,144421,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_L,F,-1.33,3,0.00,20240625,144431,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,4.84,3,3.50,20240625,144431,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,1.88,3,0.00,20240625,144438,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,4.68,3,4.40,20240625,144438,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,F,1.84,3,0.00,20240625,144459,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0102,G,3.88,3,4.40,20240625,144459,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_L,F,0.73,3,0.10,20240625,144506,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_L,G,3.71,3,3.50,20240625,144506,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0131,F,2.02,3,0.00,20240625,144524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0131,G,3.44,3,3.20,20240625,144524,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,F,2.23,3,0.00,20240625,144532,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0136,G,4.20,3,3.20,20240625,144532,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0318,F,0.71,3,-1.50,20240625,144543,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0318,G,5.23,3,5.00,20240625,144543,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0323,F,4.25,3,4.80,20240625,144549,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ELKAY0323,G,4.01,3,4.00,20240625,144549,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ELKAY0331,F,1.02,3,1.00,20240625,144554,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0331,G,4.42,3,4.00,20240625,144554,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0020,F,-0.03,3,1.80,20240625,144628,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ERKAY0020,G,2.23,3,4.00,20240625,144628,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ERKAY0009,F,2.16,3,3.20,20240625,144633,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ERKAY0009,G,3.93,3,2.00,20240625,144633,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,F,2.45,3,-1.50,20240625,144637,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0007,G,3.47,3,3.70,20240625,144637,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ERKAY0058,F,-0.02,3,0.00,20240625,144646,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0058,G,1.12,3,0.80,20240625,144646,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ERKAY0001,F,1.16,3,-0.70,20240625,144655,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0001,G,5.31,3,5.00,20240625,144655,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,F,0.76,3,0.00,20240625,144700,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_R,G,4.81,3,3.50,20240625,144700,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0082,F,0.20,3,-0.50,20240625,144708,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0082,G,3.26,3,3.50,20240625,144708,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,F,1.65,3,-0.50,20240625,144713,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0085,G,4.08,3,3.50,20240625,144713,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0357,F,inv.,3,-0.70,20240625,144743,level1,-0.50,0.50,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0357,G,inv.,3,5.00,20240625,144743,level1,-0.80,0.80,level2,-10.00,10.00,levele3,-10.00,999.00 +ERKAY0180,F,1.59,3,0.00,20240625,144754,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0180,G,4.24,3,5.30,20240625,144754,level1,-1.20,1.20,level2,-1.80,1.80,levele3,-2.40,2.40 +Plane.5_R,F,-0.75,3,0.00,20240625,144759,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_R,G,3.46,3,3.50,20240625,144759,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0098,F,2.16,3,0.00,20240625,144807,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0098,G,4.28,3,4.40,20240625,144807,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,F,2.26,3,0.00,20240625,144814,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0102,G,4.26,3,4.40,20240625,144814,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.6_R,F,0.55,3,0.10,20240625,144820,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.6_R,G,4.04,3,3.50,20240625,144820,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0131,F,1.37,3,0.00,20240625,144826,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0131,G,3.55,3,3.20,20240625,144826,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,F,1.42,3,0.00,20240625,144905,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0136,G,3.17,3,3.20,20240625,144905,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0318,F,-0.06,3,-1.50,20240625,144918,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0318,G,4.82,3,5.00,20240625,144918,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ERKAY0323,F,3.86,3,4.80,20240625,144925,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +ERKAY0323,G,3.84,3,4.00,20240625,144925,level1,-0.50,0.60,level2,-0.75,0.90,levele3,-1.00,1.20 +ERKAY0331,F,1.37,3,1.00,20240625,144940,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ERKAY0331,G,4.44,3,4.00,20240625,144940,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006231_20240625_150851.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006231_20240625_150851.csv new file mode 100644 index 0000000..032a5d5 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/Tavascan_CP6_VSSZZZKRXRA006231_20240625_150851.csv @@ -0,0 +1,23 @@ +MeasPlan.Name,Tavascan_CP6 +prodnum,VSSZZZKRXRA006231 +MeasPoint.Name,Dimension.Name,Dimension.Value,MeasPlan.Rating,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +ELKAY0020,F,2.20,3,1.80,20240625,145700,level1,-1.10,0.60,level2,-1.65,0.90,levele3,-2.20,1.20 +ELKAY0020,G,3.47,3,4.00,20240625,145700,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.80 +ELKAY0009,F,3.55,3,3.20,20240625,145717,level1,-0.70,1.20,level2,-1.05,1.80,levele3,-1.40,2.40 +ELKAY0009,G,4.25,3,2.00,20240625,145717,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,F,3.35,3,-1.50,20240625,145726,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0007,G,3.36,3,3.70,20240625,145726,level1,-0.70,0.50,level2,-1.05,0.75,levele3,-1.40,1.00 +ELKAY0058,F,0.10,3,0.00,20240625,145734,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0058,G,0.64,3,0.80,20240625,145734,level1,-0.30,0.30,level2,-0.45,0.45,levele3,-0.60,0.60 +ELKAY0001,F,1.92,3,-0.70,20240625,145754,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0001,G,4.41,3,5.00,20240625,145754,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,F,0.92,3,0.00,20240625,145806,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.4_L,G,4.16,3,3.50,20240625,145806,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0082,F,-0.01,3,-0.50,20240625,145822,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0082,G,3.34,3,3.50,20240625,145822,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,F,0.18,3,-0.50,20240625,145828,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0085,G,3.65,3,3.50,20240625,145828,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +Plane.5_L,F,-1.05,3,0.00,20240625,145840,level1,-0.80,0.80,level2,-1.20,1.20,levele3,-1.60,1.60 +Plane.5_L,G,3.94,3,3.50,20240625,145840,level1,-0.70,0.70,level2,-1.05,1.05,levele3,-1.40,1.40 +ELKAY0098,F,1.77,3,0.00,20240625,145854,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 +ELKAY0098,G,3.95,3,4.40,20240625,145854,level1,-0.50,0.50,level2,-0.75,0.75,levele3,-1.00,1.00 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/奇瑞总装C0heryEHY_20241011_131932.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/奇瑞总装C0heryEHY_20241011_131932.csv new file mode 100644 index 0000000..31febe9 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/奇瑞总装C0heryEHY_20241011_131932.csv @@ -0,0 +1,74 @@ +MeasPlan.Name,CheryEH3 +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,NNBBDEC8RDA22998 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-01,F,-1.3,mm,0.0,20241011,131826,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-01,G,2.6,mm,0.0,20241011,131826,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-02,F,-1.0,mm,0.0,20241011,131830,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-02,G,2.5,mm,0.0,20241011,131830,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-0.7,mm,0.0,20241011,131833,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-03,G,3.8,mm,0.0,20241011,131833,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,-0.1,mm,0.0,20241011,131838,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-04,G,3.1,mm,0.0,20241011,131838,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,0.5,mm,0.0,20241011,131842,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.3,mm,0.0,20241011,131842,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,0.9,mm,0.0,20241011,131846,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,2.9,mm,0.0,20241011,131846,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.2,mm,0.0,20241011,131850,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.3,mm,0.0,20241011,131850,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,-0.1,mm,0.0,20241011,131904,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,3.4,mm,0.0,20241011,131904,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,0.5,mm,0.0,20241011,131907,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,3.9,mm,0.0,20241011,131907,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-1.0,mm,0.0,20241011,131911,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-21,G,2.1,mm,0.0,20241011,131911,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-22,F,0.5,mm,0.0,20241011,131915,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-22,G,2.1,mm,0.0,20241011,131915,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-14,F,-2.1,mm,0.0,20241011,131920,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-14,G,4.7,mm,0.0,20241011,131920,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-1.5,mm,0.0,20241011,131923,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-15,G,3.2,mm,0.0,20241011,131923,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-1.8,mm,0.0,20241011,131927,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-16,G,2.9,mm,0.0,20241011,131927,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,1.5,mm,0.0,20241011,131930,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-18,G,3.1,mm,0.0,20241011,131930,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-01,F,-1.4,mm,0.0,20241011,131827,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-01,G,3.5,mm,0.0,20241011,131827,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-02,F,-1.5,mm,0.0,20241011,131831,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-02,G,3.0,mm,0.0,20241011,131831,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-03,F,-1.9,mm,0.0,20241011,131834,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-03,G,2.9,mm,0.0,20241011,131834,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-04,F,-0.9,mm,0.0,20241011,131839,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-04,G,3.1,mm,0.0,20241011,131839,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-06,F,0.5,mm,0.0,20241011,131843,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-06,G,2.9,mm,0.0,20241011,131843,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-10,F,0.0,mm,0.0,20241011,131848,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-10,G,3.8,mm,0.0,20241011,131848,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-08,F,-0.2,mm,0.0,20241011,131852,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-08,G,3.7,mm,0.0,20241011,131852,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-12,F,0.0,mm,0.0,20241011,131904,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-12,G,3.2,mm,0.0,20241011,131904,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-13,F,0.5,mm,0.0,20241011,131907,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-13,G,3.3,mm,0.0,20241011,131907,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-14,F,-0.6,mm,0.0,20241011,131913,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-14,G,3.9,mm,0.0,20241011,131913,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-15,F,-1.3,mm,0.0,20241011,131917,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-15,G,4.4,mm,0.0,20241011,131917,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-16,F,-0.7,mm,0.0,20241011,131921,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-16,G,4.4,mm,0.0,20241011,131921,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-18,F,0.0,mm,0.0,20241011,131925,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +R-18,G,3.0,mm,0.0,20241011,131925,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/NextSenseCSVBackup/奇瑞总装eh3.csv b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/奇瑞总装eh3.csv new file mode 100644 index 0000000..7c548e4 --- /dev/null +++ b/Analysis/bin/x64/Release/File/NextSenseCSVBackup/奇瑞总装eh3.csv @@ -0,0 +1,70 @@ +MeasPlan.Name,CheryEH3 +vehiclecode,2 +robot.MessplanID,2 +Plant_sector,WH +Product_type,Carbody +Auto_name,EH3 +Part_type,Assembly +Part_number,EHY_5000000FAonline +Part_name,123 +prodnum,LNNBBDEC5RDA18303 +Production_line,11_line +Workshop,ER_QI +Operator, +Shift, +Machine, +Temperature, +Humidity, +MeasPoint.Name,Dimension.Name,Dimension.Value,Dimension.Unit,MeasPoint.Nominal,Meas.Date,Meas.Time,Tolerance.Name.0,Tolerance.Lower.0,Tolerance.Upper.0,Tolerance.Name.1,Tolerance.Lower.1,Tolerance.Upper.1,Tolerance.Name.2,Tolerance.Lower.2,Tolerance.Upper.2 +L-19,F,0.3,mm,0.0,20240907,153951,best,-1.5,0.5,good,-2.0,2.0,NG,-999.0,999.0 +L-19,G,3.8,mm,0.0,20240907,153951,best,2.2,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-01,F,0.3,mm,0.0,20240907,154057,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-01,G,3.7,mm,0.0,20240907,154057,best,2.4,3.8,good,1.0,5.0,NG,-999.0,999.0 +L-02,F,-0.4,mm,0.0,20240907,154448,best,-1.7,0.3,good,-3.0,2.0,NG,-999.0,999.0 +L-02,G,2.9,mm,0.0,20240907,154448,best,2.4,3.8,good,1.0,6.0,NG,-999.0,999.0 +L-03,F,-0.6,mm,0.0,20240907,155051,best,-1.0,1.0,good,-3.0,2.0,NG,-999.0,999.0 +L-03,G,3.4,mm,0.0,20240907,155051,best,2.6,4.0,good,1.0,6.0,NG,-999.0,999.0 +L-04,F,0.3,mm,0.0,20240907,160804,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +L-04,G,2.7,mm,0.0,20240907,160804,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-06,F,0.3,mm,0.0,20240907,161124,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-06,G,3.5,mm,0.0,20240907,161124,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-10,F,1.0,mm,0.0,20240907,161451,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-10,G,3.1,mm,0.0,20240907,161451,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-08,F,0.1,mm,0.0,20240907,161901,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-08,G,3.7,mm,0.0,20240907,161901,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +L-12,F,0.1,mm,0.0,20240907,202933,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-12,G,2.4,mm,0.0,20240907,202933,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-13,F,0.3,mm,0.0,20240907,203417,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +L-13,G,3.8,mm,0.0,20240907,203417,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +L-21,F,-0.8,mm,0.0,20240907,203730,best,-0.9,0.1,good,-4.0,1.0,NG,-999.0,999.0 +L-21,G,2.4,mm,0.0,20240907,203730,best,1.8,2.8,good,1.0,9.0,NG,-999.0,999.0 +L-22,F,0.1,mm,0.0,20240907,204024,best,-0.9,0.1,good,-4.0,1.0,NG,-999.0,999.0 +L-22,G,2.0,mm,0.0,20240907,204024,best,1.8,2.8,good,1.0,9.0,NG,-999.0,999.0 +L-14,F,-2.1,mm,0.0,20240907,204453,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +L-14,G,3.5,mm,0.0,20240907,204453,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-15,F,-1.3,mm,0.0,20240907,204809,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +L-15,G,3.4,mm,0.0,20240907,204809,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-16,F,-1.5,mm,0.0,20240907,205219,best,-3.0,0.2,good,-4.0,1.0,NG,-999.0,999.0 +L-16,G,3.8,mm,0.0,20240907,205219,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +L-18,F,-1.6,mm,0.0,20240907,205501,best,0.5,2.5,good,0.0,4.0,NG,-999.0,999.0 +L-18,G,4.0,mm,0.0,20240907,205501,best,2.6,5.0,good,1.0,6.0,NG,-999.0,999.0 +R-04,F,-0.0,mm,0.0,20240907,163310,best,-0.4,0.8,good,-1.0,2.0,NG,-999.0,999.0 +R-04,G,3.7,mm,0.0,20240907,163310,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-06,F,-0.2,mm,0.0,20240907,163904,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-06,G,3.6,mm,0.0,20240907,163904,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-10,F,0.1,mm,0.0,20240907,164243,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-10,G,3.4,mm,0.0,20240907,164243,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-08,F,-0.0,mm,0.0,20240907,164901,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-08,G,3.6,mm,0.0,20240907,164901,best,3.0,4.2,good,1.0,6.0,NG,-999.0,999.0 +R-12,F,0.4,mm,0.0,20240907,192336,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-12,G,3.7,mm,0.0,20240907,192336,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-13,F,0.3,mm,0.0,20240907,192930,best,-0.4,0.8,good,-2.0,2.0,NG,-999.0,999.0 +R-13,G,3.3,mm,0.0,20240907,192930,best,2.7,3.9,good,1.0,6.0,NG,-999.0,999.0 +R-14,F,-1.3,mm,0.0,20240907,194327,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +R-14,G,3.5,mm,0.0,20240907,194327,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-15,F,-1.8,mm,0.0,20240907,194314,best,-2.0,0.0,good,-4.0,1.0,NG,-999.0,999.0 +R-15,G,3.2,mm,0.0,20240907,194314,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-16,F,-1.6,mm,0.0,20240907,194227,best,-3.0,0.2,good,-4.0,1.0,NG,-999.0,999.0 +R-16,G,3.1,mm,0.0,20240907,194227,best,2.7,4.7,good,1.0,6.0,NG,-999.0,999.0 +R-18,F,-2.7,mm,0.0,20240907,194936,best,0.5,2.5,good,0.0,4.0,NG,-999.0,999.0 +R-18,G,3.5,mm,0.0,20240907,194936,best,2.6,5.0,good,1.0,6.0,NG,-999.0,999.0 \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/PlcAddrDfn.xml b/Analysis/bin/x64/Release/File/PlcAddrDfn.xml new file mode 100644 index 0000000..539e3af --- /dev/null +++ b/Analysis/bin/x64/Release/File/PlcAddrDfn.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Release/File/PlcAddrDfn_S7.xml b/Analysis/bin/x64/Release/File/PlcAddrDfn_S7.xml new file mode 100644 index 0000000..99d264c --- /dev/null +++ b/Analysis/bin/x64/Release/File/PlcAddrDfn_S7.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Release/HslCommunication.dll b/Analysis/bin/x64/Release/HslCommunication.dll new file mode 100644 index 0000000..2220e75 Binary files /dev/null and b/Analysis/bin/x64/Release/HslCommunication.dll differ diff --git a/Analysis/bin/x64/Release/Key/reg.key b/Analysis/bin/x64/Release/Key/reg.key new file mode 100644 index 0000000..0b1662f --- /dev/null +++ b/Analysis/bin/x64/Release/Key/reg.key @@ -0,0 +1 @@ +E0257D210D71798C7D342413B6AE6E827FF7CDF4D9B987590FAE35D6DCCAFB886AA76997CF2A0EB6CE1262B84EAA89847CE6CDC5A6F8D2EED117805EA3C58FC41BAE98458ABC8F6E2F7D3BC1F235ECAA82954257F761B6EDE6B01E9FFEE276B41AAB0B16C34FF9D2865DF53073BE883F9187EB6EB61E90DDAAA99D8CEBD45D79C7B258FDE9888FDC6ACCD540C3DB33F837A1CD9E7A11BB9D832E332CAE39B9F387EB6710AB221145D9A6E1F2A1FA298D40262129F295BA060BED16C420C03178782B354A00BAD77335C105D312852C3ACEA15E3CA3F54D6B16970431D3E78069F9EAD8D82F39E953F2D6B51CAEE05D904F400BAFC3F41FF2152E610D26B4CDCF27B257D642BF1F30BD8A177925C11CCA10126D0A2870F62CEE7FBD251DCC6A5C68D62B656F9ADA143E07B02516F84636148A81409E1D928DFB346CD8050354C82CA074EDB89ADCBE6E31AD2D142B58B04F2577A03F4CE43586150CE1C69370F28D58DAEABCB2C5920A9759C3D210DF7422DFAA2D1CB0D95564D2A07A82B2F4B4A497C47C57CE23CB1294C515FACF9EEF0C4A6CB8300317D90ECBC6B30D2ABA0EBE5698648EB59A1B33F770C4EB0F928970D13FD27DA4B9521F223210E3B43345B22C2583B76CFAF265F453C3835D7ADAF002206BD6F4C338D19D0DCCFC21F76526CAFDDEC710742816AFD59794DA9653452A9EF92504C1D44B9ED41133C75E185B80E331B531F0535705493788E09E4B04CF0AF947157D7C9E1D6F7F55ADFF4CA2786E83F4315A170E4C7F461B43515DA399766454E68E89428308D085AF0CC75182F5F21077D3A1A42E53784A13DA35D174311F41CB0C111672D7AF1E3EA0E62530BFD5AED3055D783C8020517B9BDB734E885A536BE72FC79A53B301F6994EE89E1EC3D195C4A95C8E880A1F058A9C745242797396C1505ADE70F66B51C0028466F38DDBFBDB66351B696404DC767D0886B7E903EA892C6D667723939B66376CBABF1035635CB9 diff --git a/Analysis/bin/x64/Release/MORCODE.dll b/Analysis/bin/x64/Release/MORCODE.dll new file mode 100644 index 0000000..5507d40 Binary files /dev/null and b/Analysis/bin/x64/Release/MORCODE.dll differ diff --git a/Analysis/bin/x64/Release/NLog.config b/Analysis/bin/x64/Release/NLog.config new file mode 100644 index 0000000..3cfa512 --- /dev/null +++ b/Analysis/bin/x64/Release/NLog.config @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO TLogInfo(LogTime,LogLevel,LogMessage,LogStackTrack) VALUES (@LogTime, @LogLevel, @LogMessage, @LogStackTrack); + + + + + + + + + + + + + + insert into TLogInfo(LogTime,LogLevel,LogMessage,LogAction,LogAmount,LogStackTrack) values (@LogTime, @LogLevel, @LogMessage,@LogAction,@LogAmount, @LogStackTrack); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Analysis/bin/x64/Release/NLog.dll b/Analysis/bin/x64/Release/NLog.dll new file mode 100644 index 0000000..f7eb53e Binary files /dev/null and b/Analysis/bin/x64/Release/NLog.dll differ diff --git a/Analysis/bin/x64/Release/NLog.xml b/Analysis/bin/x64/Release/NLog.xml new file mode 100644 index 0000000..a7eb3a3 --- /dev/null +++ b/Analysis/bin/x64/Release/NLog.xml @@ -0,0 +1,29148 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Obsolete and replaced by with NLog v5.3. + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Obsolete on the ILogger-interface, instead use with NLog v5.3. + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Obsolete on the ILogger-interface, instead use with NLog v5.3. + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by - Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Obsolete and replaced by with NLog v5.3. + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + Handle Internal LogEvent written to the InternalLogger + + + Never use/call NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Internal LogEvent details from + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Obsolete and replaced by with NLog v5.3. + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Obsolete and replaced by with NLog 5.3. + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Internal LogEvent written to the InternalLogger + + + EventHandler will only be triggered for events, where severity matches the configured . + + Never use/call NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Gets the method parameters + + + + + + + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + + + + Provides logging interface and utility functions. + + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Event notification about trying to load assembly with NLog extensions. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Represents NLog ConfigSection for loading from app.config / web.config + + + <configSections> + <section name="NLog" type="NLog.Config.ConfigSectionHandler, NLog" /> + </configSections> + + + + + Overriding base implementation to just store + of the relevant app.config section. + + The XmlReader that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + + + + Override base implementation to return a object + for + instead of the instance. + + + A instance, that has been deserialized from app.config. + + + + + Obsolete since dynamic tyope loading is not compatible with publish as trimmed application. + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) + + Supports creating item-instance from their type-alias, when parsing NLog configuration + + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Called before the assembly with NLog extensions is being loaded. + + + + + Initializes a new instance of the class. + + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Gets the ambient property factory. + + + + + Gets the factory. + + + + + Gets the factory. + + + + + Obsolete and replaced by with NLog v5.2. + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Obsolete and replaced by with NLog v5.2. + Gets the factory. + + The target factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the factory. + + The layout factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the factory. + + The layout renderer factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the ambient property factory. + + The ambient property factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the factory. + + The filter factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the time source factory. + + The time source factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets the condition method factory. + + The condition method factory. + + + + Obsolete and replaced by with NLog v5.2. + Gets or sets the JSON serializer to use with + + + + + Obsolete and replaced by with NLog v5.2. + Gets or sets the string serializer to use with + + + + + Obsolete and replaced by with NLog v5.2. + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Registers named items from the assembly. + + The assembly. + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Obsolete since dynamic assembly loading is not compatible with publish as trimmed application. + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Obsolete since dynamic type loading is not compatible with publish as trimmed application. + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + + + + + + + + + + Factory specialized for s. + + + + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + + + + Factory of named items (such as , , , etc.). + + + + + Factory of named items (such as , , , etc.). + + + + + Registers type-creation with type-alias + + + + + Tries to create an item instance with type-alias + + True if instance was created successfully, false otherwise. + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Obsolete since dynamic type loading is not compatible with publish as trimmed application. Replaced by . + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + Must assign the returned object to LogManager.Configuration to activate it + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Change this method with NLog v6 to disconnect LogFactory from Targets/Layouts + - Remove LoggingRule-List-parameter + - Return ITargetWithFilterChain[] + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + + New value can be null when unloading configuration during shutdown. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Obsolete and replaced by and with NLog v5.2. + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Obsolete since too exotic feature with NLog v5.3. + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Obsolete and replaced by with NLog v5. + + Default action when filters not matching + + + NLog v4.6 introduced the setting with default value . + NLog v5 marked it as obsolete and change default value to + + + + + Default action if none of the filters match + + + NLog v5 changed default value to + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Obsolete and replaced by with NLog v5.3. + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service/interface to register + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Obsolete and replaced by with NLog v5.2. + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Obsolete and replaced by and with NLog v5.2. + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Obsolete and replaced by and with NLog v5.2. + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Obsolete and replaced by with NLog v5.2. + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Obsolete and replaced by with NLog v5.2. + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Obsolete and replaced by and with NLog v5.2. + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Obsolete and replaced by and with NLog v5.2. + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Layout or layout-renderer depends on or , + and requires that LogEvent-state is recognized as immutable. + + + Must be used in combination with , else it will have no effect + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Obsolete and replaced by with NLog v4.7. + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Obsolete and replaced by with NLog v4.7. + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Obsolete and replaced by with NLog v4.7. + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Obsolete and replaced by with NLog v4.7. + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The newly loaded instance. + Must assign the returned object to LogManager.Configuration to activate it + + + + Obsolete and replaced by and with NLog v5.2. + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + Item value. + + + + Sets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + Item value. + + + + Gets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the value with the specified key in the Global Diagnostics Context (GDC) dictionary + + Item name. + The item value, if defined; otherwise null. + + + + Gets all key-names from Global Diagnostics Context (GDC) dictionary + + A collection of the names of all items in the Global Diagnostics Context. + + + + Determines whether the Global Diagnostics Context (GDC) dictionary contains the specified key. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the value with the specified key from the Global Diagnostics Context (GDC) dictionary + + Item name. + + + + Clears the content of the Global Diagnostics Context (GDC) dictionary. + + + + + Obsolete and replaced by with NLog v5. + + Mapped Diagnostics Context (MDC) is a dictionary of keys and values. + Stores the dictionary in the thread-local static variable, and provides methods to output dictionary values in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Obsolete and replaced by with NLog v5. + + Mapped Diagnostics Logical Context (MDLC) is a dictionary of keys and values. + Stores the dictionary in the logical thread callcontext, and provides methods to output dictionary values in layouts. + Allows for maintaining state across asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Obsolete and replaced by with NLog v5. + + Nested Diagnostics Context (NDC) is a stack of nested values. + Stores the stack in the thread-local static variable, and provides methods to output the values in layouts. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Obsolete and replaced by with NLog v5. + + Nested Diagnostics Logical Context (NDLC) is a stack of nested values. + Stores the stack in the logical thread callcontexte, and provides methods to output the values in layouts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Special bookmark that can restore original parent, after scopes has been collapsed + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + See NLog Wiki + + Documentation on NLog Wiki + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Obsolete and replaced by with NLog v5. + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Obsolete and replaced by with NLog v5. + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Obsolete and replaced by or ${callsite} with NLog v5.3. + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Skip StackFrame when from hidden Assembly / ClassType + + + + + Skip StackFrame when type of the logger + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Provides a multi process-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Configuration Reflection Helper + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Binder for retrieving value of + + + + + + + + Reflection helpers for accessing properties. + + + + + Get property info + + Configuration Reflection Helper + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state for ScopeContext Mapped Context (MDLC) + + + + + Immutable state for ScopeContext Nested State (NDLC) + + + + + Immutable state for ScopeContext Single Property (MDLC) + + + + + Immutable state for ScopeContext Multiple Properties (MDLC) + + + + + Immutable state for ScopeContext handling legacy MDLC + NDLC operations + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Render value for Application setting retrieved from App.config or Web.config file. + + + + ${appsetting:item=mysetting:default=mydefault} - produces "mydefault" if no appsetting + + See NLog Wiki + + Documentation on NLog Wiki + + + + The AppSetting item-name + + + + + + Obsolete and replaced by with NLog v4.6. + + The AppSetting item-name + + + + + The default value to render if the AppSetting value is null. + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + See NLog Wiki + + Documentation on NLog Wiki + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + Thread identity information (username). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether username should be included. + + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets the default value to be used when the User is not set. + + + + + + Gets or sets the default value to be used when the Domain is not set. + + + + + + + + + The information about the garbage collector. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Lookup parameter value from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the parameter. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Mapped Diagnostics Logical (MDC) from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Mapped Diagnostics Logical Context (MDLC) from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Nested Diagnostic Context (NDC) from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Nested Diagnostic Context (NDLC) from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Obsolete and replaced by with NLog v5. + Render Nested Diagnostic Context (NDLC) timings from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + A counter value (increases on each layout rendering). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + Current date and time. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + The current application domain's base directory. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • CommonApplicationData - application data for all users.
  • +
  • ApplicationData - roaming application data for current user.
  • +
  • LocalApplicationData - non roaming application data for current user
  • +
  • UserProfile - Profile folder for current user
  • +
  • DesktopDirectory - Desktop-directory for current user
  • +
  • MyDocuments - My Documents-directory for current user
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + A temporary directory. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Renders contents of the specified file. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Thread identity information (name and authentication information). + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the log4j:event logger-xml-attribute. Default: ${logger} + + + + + + Gets or sets the log4j:event message-xml-element. Default: ${message} + + + + + + Gets or sets the log4j:event log4japp-xml-element. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + See NLog Wiki + + Documentation on NLog Wiki/// + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Gets or sets a value indicating whether to render prefix of logger name (the part before the trailing dot character). + + + + + + + + The environment variable. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The IP address from the network interface card (NIC) on the local machine + + + Skips loopback-adapters and tunnel-interfaces. Skips devices without any MAC-address + + See NLog Wiki + + Documentation on NLog Wiki + + + + Get or set whether to prioritize IPv6 or IPv4 (default) + + + + + + + + + + + + + + + The machine name that the process is running on. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + + + + The formatted log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + The name of the current thread. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + See NLog Wiki + + Documentation on NLog Wiki + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Lookup property-value from source object based on + + Could resolve property-value? + + + + Only outputs the inner layout when exception has been defined for log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + See NLog Wiki + + Documentation on NLog Wiki + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the . + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when is set to ). + + + + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote Always (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Auto indent and create new lines + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the option to include all properties from the log events + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute. Default: ${logger} + + + + + + Gets or sets the log4j:event message-xml-element. Default: ${message} + + + + + + Gets or sets the log4j:event log4japp-xml-element. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Name of the element + + + Default value "item" + + + + + + Value inside the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Obsolete and replaced by with NLog v5. + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the root XML element + + + Default value "logevent" + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Pre-formatted log message for ${message}. + Log message-template including parameter placeholders for ${message:raw=true}. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Obsolete and replaced by or ${callsite} with NLog v5.3. + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. Both when assigned to new config or config unloaded. + + + Note can be null when unloading configuration at shutdown. + + + + + Obsolete and replaced by with NLog v5.2. + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Obsolete instead use default-constructor, and assign with NLog 5.0. + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Obsolete and replaced by with NLog v5.2. + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Obsolete and replaced by with NLog v5.2. + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Obsolete and replaced by with NLog 5.2. + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Change this method with NLog v6 to completely disconnect LogFactory from Targets/Layouts + - Remove LoggingRule-List-parameter + - Return ITargetWithFilterChain[] + + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Obsolete and replaced by and with NLog v5.2. + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Obsolete and replaced by and with NLog v5.2. + + Clear the candidate file paths and return to the defaults. + + + + + Obsolete and replaced by and with NLog v5.2. + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Obsolete and replaced by that prevents unexpected side-effects in Logger-state. + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. Both when assigned to new config or config unloaded. + + + Note can be null when unloading configuration at shutdown. + + + + + Obsolete and replaced by with NLog v5.2. + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Obsolete and replaced by and with NLog v5.2. + Loads logging configuration from file (Only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Obsolete and replaced by with NLog v5.2. + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Obsolete and replaced by with NLog v5.2. + Gets the specified named custom using the parameter for creating instance. + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Obsolete and replaced by by with NLog v5. + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Obsolete and replaced by disposing the scope returned from with NLog v5. + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Obsolete and replaced by using normal string-interpolation with in NLog v5. + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Obsolete and replaced by using normal string-interpolation with in NLog v5. + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Obsolete and replaced by using normal string-interpolation with in NLog v5. + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + Default Logger-Name is of the + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message payload to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message payload to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Configuration Type. + + Type of the NLog configuration item + Fluent interface parameter. + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The factory method for creating instance of NLog Target + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The factory method for creating instance of NLog Layout + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The factory method for creating instance of NLog LayoutRenderer + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function + + Fluent interface parameter. + LayoutRenderer instance with type-alias and callback-method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Restrict minimum LogLevel for names that matches this rule + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to and color log-messages based on + + Fluent interface parameter. + Override the default Layout for output + Highlight only the Level-part + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enables output using ANSI Color Codes (Windows console does not support this by default) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Mark Type as hidden, so Type methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables the NLog Message Template Parsing: + - True = Always use NLog mesage-template-parser and formatting. + - False = Never use NLog-parser and only use string.Format (Disable support for message-template-syntax). + - Null = Auto detection of message-template-syntax, with fallback to string.Format (Default Behavior). + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Writes log message to the Event Log. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Max size in characters (limitation of the EventLog API). + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entry type. When not set, or when not convertible to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. + If null, the value will not be specified while creating the Event log. + + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + + + + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + (re-)create an event source, if it isn't there. Works only with fixed source names. + + The source name. If source is not fixed (see , then pass null or . + always throw an Exception when there is an error + + + + A wrapper for Windows event log. + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + Indicates whether an event log instance is associated. + + + + + A wrapper for the method . + + + + + Creates a new association with an instance of the event log. + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + The implementation of , that uses Windows . + + + + + Creates a new association with an instance of Windows . + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Obsolete and replaced by = false with NLog v5.3. + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets whether to write the Header on initial creation of file appender, even if the file is not empty. + Default value is , which means only write header when initial file is empty (Ex. ensures valid CSV files) + + + Alternative use to ensure each application session gets individual log-file. + + + + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Obsolete and replaced by with NLog v5. + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Obsolete and replaced by with NLog v5. + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Obsolete and replaced by with NLog v5. + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Sends log messages by email using SMTP protocol. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinite waiting + + + + + Gets the array of email headers that are transmitted with this email message + + + + + + + + + + + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mail message + + event for rendering layouts + string to group on + + + + Create the mail message with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + Be careful when enumerating, as NLog target is blocked from writing during enumeration (blocks application logging) + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Obsolete and replaced by with NLog v4.6. + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Arguments for events. + + + + + + + + + + + + + + + + + Creates new instance of NetworkTargetLogEventDroppedEventArgs + + + + + The reason why log was dropped + + + + + The reason why log event was dropped by + + + + + Discarded LogEvent because message is bigger than + + + + + Discarded LogEvent because message queue was bigger than + + + + + Discarded LogEvent because attempted to open more than connections + + + + + Discarded LogEvent because of network communication error + + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Occurs when LogEvent has been dropped. + + + - When internal queue is full and set to
+ - When connection-list is full and set to
+ - When message is too big and set to
+
+
+ + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Obsolete and replaced by with NLog v5. + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Obsolete and replaced by with NLog v5. + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the log4j:event logger-xml-attribute. Default: ${logger} + + + + + + Gets or sets the log4j:event message-xml-element. Default: ${message} + + + + + + Gets or sets the log4j:event log4japp-xml-element. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets the option to include all properties from the log events + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Obsolete and replaced by with NLog v5.2. + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets whether to include the contents of the -dictionary. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets whether to include the contents of the -stack. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets whether to include the contents of the -properties. + + + + + + Obsolete and replaced by with NLog v5. + Gets or sets whether to include the contents of the -stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Obsolete and replaced by with NLog v5. + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Obsolete and replaced by with NLog v5. + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Obsolete and replaced by with NLog v5. + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Obsolete and replaced by with NLog v5. + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Obsolete and replaced by with NLog v5. + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Obsolete and replaced by with NLog v5. + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Obsolete and replaced by with NLog v5. + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Obsolete and replaced by with NLog v5. + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Obsolete and replaced by with NLog v5. + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Obsolete and replaced by with NLog v5. + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Obsolete and replaced by with NLog v5. + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Obsolete and replaced by with NLog v5. + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Occurs when LogEvent has been dropped, because internal queue is full and set to + + + + + Occurs when internal queue size is growing, because internal queue is full and set to + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Occurs when LogEvent has been dropped, because internal queue is full and set to + + + + + Occurs when internal queue size is growing, because internal queue is full and set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + +
+
diff --git a/Analysis/bin/x64/Release/NSAnalysis.exe b/Analysis/bin/x64/Release/NSAnalysis.exe new file mode 100644 index 0000000..4293661 Binary files /dev/null and b/Analysis/bin/x64/Release/NSAnalysis.exe differ diff --git a/Analysis/bin/x64/Release/NSAnalysis.exe.config b/Analysis/bin/x64/Release/NSAnalysis.exe.config new file mode 100644 index 0000000..91c33d5 --- /dev/null +++ b/Analysis/bin/x64/Release/NSAnalysis.exe.config @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Analysis/bin/x64/Release/NSAnalysis.pdb b/Analysis/bin/x64/Release/NSAnalysis.pdb new file mode 100644 index 0000000..60a009f Binary files /dev/null and b/Analysis/bin/x64/Release/NSAnalysis.pdb differ diff --git a/Analysis/bin/x64/Release/Newtonsoft.Json.dll b/Analysis/bin/x64/Release/Newtonsoft.Json.dll new file mode 100644 index 0000000..341d08f Binary files /dev/null and b/Analysis/bin/x64/Release/Newtonsoft.Json.dll differ diff --git a/Analysis/bin/x64/Release/Newtonsoft.Json.xml b/Analysis/bin/x64/Release/Newtonsoft.Json.xml new file mode 100644 index 0000000..2c981ab --- /dev/null +++ b/Analysis/bin/x64/Release/Newtonsoft.Json.xml @@ -0,0 +1,11363 @@ + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. + + + + + Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The containing the BSON data to read. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The to write to. + + + + Initializes a new instance of the class. + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a parameterized constructor. + + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Creates a custom object. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + The default value is false. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets the naming strategy used to resolve how enum text is written. + + The naming strategy used to resolve how enum text is written. + + + + Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. + The default value is true. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Initializes a new instance of the class. + + The naming strategy used to resolve how enum text is written. + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + + Initializes a new instance of the class. + + The of the used to write enum text. + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + true if integers are allowed when serializing and deserializing; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from Unix epoch time + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. + + The name of the deserialized root element. + + + + Gets or sets a value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attribute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Gets or sets a value indicating whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + true if special characters are encoded; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + true if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + The default JSON name table implementation. + + + + + Initializes a new instance of the class. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Adds the specified string into name table. + + The string to add. + This method is not thread-safe. + The resolved string. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that it is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and set members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent an array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, when returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, when returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items. + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between .NET types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output should be formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output should be formatted. + A collection of converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output should be formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be inferred from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the to a JSON string. + + The node to serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output should be formatted. + A JSON string of the . + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output should be formatted. + Omits writing the root object. + A JSON string of the . + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by + and writes a Json.NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized . + + + + Deserializes the from a JSON string nested in a root element specified by , + writes a Json.NET array attribute for collections, and encodes special characters. + + The JSON string. + The name of the root element to append when deserializing. + + A value to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + + A value to indicate whether to encode special characters when converting JSON to XML. + If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify + XML namespaces, attributes or processing directives. Instead special characters are encoded and written + as part of the XML element name. + + The deserialized . + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Converts an object to and from JSON. + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. If there is no existing value then null will be used. + The existing value has a value. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the . + + + + Initializes a new instance of the class. + + Type of the . + Parameter list to use when constructing the . Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Base class for a table of atomized string objects. + + + + + Gets a string containing the same characters as the specified range of characters in the given array. + + The character array containing the name to find. + The zero-based index into the array specifying the first character of the name. + The number of characters in the name. + A string containing the same characters as the specified range of characters in the given array. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the type used when serializing the property's collection items. + + The collection's items type. + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the of the . + + The of the . + + + + The parameter list to use when constructing the described by . + If null, the default constructor is used. + When non-null, there must be a constructor defined in the that exactly matches the number, + order, and type of these parameters. + + + + [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] + + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously skips the children of the current token. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Specifies the state of the reader. + + + + + A read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader is in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the source should be closed when this reader is closed. + + + true to close the source when this reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. + The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets or sets how time zones are handled when reading JSON. + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Gets or sets how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets the .NET type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Reads the next JSON token from the source. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the source as a of . + + A of . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the current token and value. + + The new token. + The value. + A flag indicating whether the position index inside an array should be updated. + + + + Sets the state based on current token type. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the reader's state to . + If is set to true, the source is also closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Instructs the to always serialize the member, and to require that the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The line number indicating where the error occurred. + The line position indicating where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + The default value is . + + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + The default value is false. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to read values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifying the type is optional. + + + + + Serializes the specified and writes the JSON structure + using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) are handled. + The default value is . + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + The default value is . + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + The default value is . + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + The default value is . + + Null value handling. + + + + Gets or sets how default values are handled during serialization and deserialization. + The default value is . + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + The default value is . + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + The default value is . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + The default value is . + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + The default value is . + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + The default value is . + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Gets or sets how and values are formatted when writing JSON text, + and the expected date format when reading JSON text. + The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 64. + + + + + Indicates how JSON text output is formatted. + The default value is . + + + + + Gets or sets how dates are written to JSON text. + The default value is . + + + + + Gets or sets how time zones are handled during serialization and deserialization. + The default value is . + + + + + Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + The default value is . + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written as JSON. + The default value is . + + + + + Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + The default value is . + + + + + Gets or sets how strings are escaped when writing JSON text. + The default value is . + + + + + Gets or sets the culture used when reading JSON. + The default value is . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + The default value is false. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Asynchronously reads the next JSON token from the source. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns true if the next token was read successfully; false if there are no more tokens to read. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a []. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the []. This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a of . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the of . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously reads the next JSON token from the source as a . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous read. The + property returns the . This result will be null at the end of an array. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Initializes a new instance of the class with the specified . + + The containing the JSON data to read. + + + + Gets or sets the reader's property name table. + + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a []. + + A [] or null if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if and can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + Derived classes must override this method to get asynchronous behaviour. Otherwise it will + execute synchronously, returning an already-completed task. + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many s to write for each level in the hierarchy when is set to . + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to . + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Initializes a new instance of the class using the specified . + + The to write to. + + + + Flushes whatever is in the buffer to the underlying and also flushes the underlying . + + + + + Closes this writer. + If is set to true, the underlying is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a read method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + + Represents a reader that provides validation. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current JSON token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current JSON token. + + + + + + Gets the .NET type for the current JSON token. + + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Changes the reader's state to . + If is set to true, the underlying is also closed. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a []. + + + A [] or null if the next JSON token is null. + + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . This method will return null at the end of an array. + + + + Reads the next JSON token from the underlying as a of . + + A of . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Asynchronously closes this writer. + If is set to true, the destination is also closed. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the specified end token. + + The end token to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes indent characters. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the JSON value delimiter. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an indent space. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON without changing the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of the current JSON object or array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of an array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a constructor. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the end of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a null value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON array. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the start of a constructor with the given name. + + The name of the constructor. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the beginning of a JSON object. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a [] value. + + The [] value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a value. + + The value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes a of value. + + The of value to write. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes an undefined value. + + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously writes the given white space. + + The string of white space characters. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Asynchronously ets the state of the . + + The being written. + The value being written. + The token to monitor for cancellation requests. The default value is . + A that represents the asynchronous operation. + The default behaviour is to execute synchronously, returning an already-completed task. Derived + classes can override this behaviour for true asynchronicity. + + + + Gets or sets a value indicating whether the destination should be closed when this writer is closed. + + + true to close the destination when this writer is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. + + + true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Gets or sets a value indicating how JSON text output should be formatted. + + + + + Gets or sets how dates are written to JSON text. + + + + + Gets or sets how time zones are handled when writing JSON text. + + + + + Gets or sets how strings are escaped when writing JSON text. + + + + + Gets or sets how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Gets or sets how and values are formatted when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the destination and also flushes the destination. + + + + + Closes this writer. + If is set to true, the destination is also closed. + If is set to true, the JSON is auto-completed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair of a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + null can be passed to the method for tokens that don't have a value, e.g. . + + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a of value. + + The of value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the . + + The being written. + The value being written. + + + + The exception thrown when an error occurs while writing JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Initializes a new instance of the class + with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The path to the JSON where the error occurred. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how duplicate property names are handled when loading JSON. + + + + + Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. + + + + + Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. + + + + + Throw a when a duplicate property is encountered. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token. + + + + Gets the of with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous load. The property contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + + + Returns an enumerator that iterates through the collection. + + + A of that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + + + + Removes all items from the . + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an array, starting at a particular array index. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + + + Represents a JSON constructor. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An of containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An of containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates a that can be used to add tokens to the . + + A that is ready to have content written to it. + + + + Replaces the child nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens. + + + + Represents a collection of objects. + + The type of token. + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets the of with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous load. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of of this object's properties. + + An of of this object's properties. + + + + Gets a with the specified name. + + The property name. + A with the specified name or null. + + + + Gets the with the specified name. + The exact name will be searched for first and if no matching property is found then + the will be used to match a property. + + The property name. + One of the enumeration values that specifies how the strings will be compared. + A matched with the specified name or null. + + + + Gets a of of this object's property values. + + A of of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + is not valid JSON. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + is not valid JSON. + + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object. + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Determines whether the JSON object has the specified property name. + + Name of the property. + true if the JSON object has the specified property name; otherwise, false. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries to get the with the specified property name. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that can be used to iterate through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Asynchronously loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns a that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads a from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads a from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Asynchronously creates an instance of with the content of the reader's current token. + + The reader. + The token to monitor for cancellation requests. The default value is . + A representing the asynchronous creation. The + property returns an instance of with the content of the reader's current token. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + Specifies the settings used when loading JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how JSON comments are handled when loading JSON. + The default value is . + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + The default value is . + + The JSON line info handling. + + + + Gets or sets how duplicate property names in JSON objects are handled when loading JSON. + The default value is . + + The JSON duplicate property name handling. + + + + Specifies the settings used when merging JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how null value properties are merged. + + How null value properties are merged. + + + + Gets or sets the comparison used to match property names while merging. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + The comparison used to match property names while merging. + + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + + + Represents an abstract JSON token. + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains + the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Asynchronously creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + The token to monitor for cancellation requests. The default value is . + + A that represents the asynchronous creation. The + property returns a that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output should be formatted. + A collection of s which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to of . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from of to . + + The value to create a from. + The initialized with the specified value. + + + + Creates a for this token. + + A that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object. + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates an instance of the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + A positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + A positioned at the token to read into this . + + A that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A , or null. + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An of that contains the selected elements. + + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Initializes a new instance of the class. + + The token to read from. + The initial path of the token. It is prepended to the returned . + + + + Reads the next JSON token from the underlying . + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being written. + + The token being written. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying . + + + + + Closes this writer. + If is set to true, the JSON is auto-completed. + + + Setting to true has no additional effect, since the underlying is a type that cannot be closed. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will be raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A collection of which will be used when writing the token. + A that represents the asynchronous write operation. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of s which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + ToString() returns a non-JSON string value for tokens with a type of . + If you want the JSON for all token types then you should use . + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not of the same type as this instance. + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + + Contains the JSON schema extension methods. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + + Determines whether the is valid. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + + + + + Validates the specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + The source to test. + The schema to test with. + The validation event handler. + + + + + An in-memory representation of a JSON Schema. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read-only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisible by. + + A number that the value should be divisible by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). + + A flag indicating whether the value can not equal the number defined by the minimum attribute (). + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). + + A flag indicating whether the value can not equal the number defined by the maximum attribute (). + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . + + + true if items are validated using their array position; otherwise, false. + + + + + Gets or sets the of additional items. + + The of additional items. + + + + Gets or sets a value indicating whether additional items are allowed. + + + true if additional items are allowed; otherwise, false. + + + + + Gets or sets whether the array items must be unique. + + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets disallowed types. + + The disallowed types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the collection of that this schema extends. + + The collection of that this schema extends. + + + + Gets or sets the format. + + The format. + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains JSON Schema. + + A that contains JSON Schema. + A populated from the string that contains JSON Schema. + + + + Load a from a string that contains JSON Schema using the specified . + + A that contains JSON Schema. + The resolver. + A populated from the string that contains JSON Schema. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + + Returns detailed information about the schema exception. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or null if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + Generates a from a specified . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + + Resolves from an id. + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Initializes a new instance of the class. + + + + + Gets a for the specified reference. + + The id. + A for the specified reference. + + + + + The value types allowed by the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + + Specifies undefined schema Id handling options for the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + + Returns detailed information related to the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + Gets the associated with the validation error. + + The JsonSchemaException associated with the validation error. + + + + Gets the path of the JSON location where the validation error occurred. + + The path of the JSON location where the validation error occurred. + + + + Gets the text description corresponding to the validation error. + + The text description. + + + + + Represents the callback method that will handle JSON schema validation events and the . + + + JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. + + + + + + A camel case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used by to resolve a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. + + + true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. + + + true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. + + The naming strategy used to resolve how property names and dictionary keys are serialized. + + + + Initializes a new instance of the class. + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the name of the extension data. By default no changes are made to extension data names. + + Name of the extension data. + Resolved name of the extension data. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default naming strategy. Property names and dictionary keys are unchanged. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + Initializes a new instance of the class. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolve a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that was resolved from the reference. + + + + Gets the reference for the specified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Allows users to control class loading and mandate what class to load. + + + + + When implemented, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When implemented, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets the internally resolved for the contract's type. + This converter is used as a fallback converter when no other converter is resolved. + Setting will always override this converter. + + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non-public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets the missing member handling used when deserializing this object. + + The missing member handling. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets or sets how the object's properties with null values are handled during serialization and deserialization. + + How the object's properties with null values are handled during serialization and deserialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Gets or sets the extension data name resolver. + + The extension data name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes precedence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether has a value specified. + + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the type described by the argument. + + The type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + A kebab case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of will exclude messages and include , + and messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + A base class for resolving how property names and dictionary keys are serialized. + + + + + A flag indicating whether dictionary keys should be processed. + Defaults to false. + + + + + A flag indicating whether extension data names should be processed. + Defaults to false. + + + + + A flag indicating whether explicitly specified property names, + e.g. a property name customized with a , should be processed. + Defaults to false. + + + + + Gets the serialized name for a given property name. + + The initial property name. + A flag indicating whether the property has had a name explicitly specified. + The serialized property name. + + + + Gets the serialized name for a given extension data name. + + The initial extension data name. + The serialized extension data name. + + + + Gets the serialized key for a given dictionary key. + + The initial dictionary key. + The serialized dictionary key. + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Hash code calculation + + + + + + Object equality implementation + + + + + + + Compare to another NamingStrategy + + + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + A snake case naming strategy. + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + + + Initializes a new instance of the class. + + + A flag indicating whether dictionary keys should be processed. + + + A flag indicating whether explicitly specified property names should be processed, + e.g. a property name customized with a . + + + A flag indicating whether extension data names should be processed. + + + + + Initializes a new instance of the class. + + + + + Resolves the specified property name. + + The property name to resolve. + The resolved property name. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON + you must specify a root type object with + or . + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic . + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Helper class for serializing immutable collections. + Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed + https://github.com/JamesNK/Newtonsoft.Json/issues/652 + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike this class lets you reuse its internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls result in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + An array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + Specifies that an output will not be null even if the corresponding type allows it. + + + Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. + + + Specifies that an output may be null even if the corresponding type disallows it. + + + Specifies that null is allowed as an input even if the corresponding type disallows it. + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes a new instance of the class. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + Gets the condition parameter value. + + + diff --git a/Analysis/bin/x64/Release/PLCModule.dll b/Analysis/bin/x64/Release/PLCModule.dll new file mode 100644 index 0000000..94eab3c Binary files /dev/null and b/Analysis/bin/x64/Release/PLCModule.dll differ diff --git a/Analysis/bin/x64/Release/PLCModule.dll.config b/Analysis/bin/x64/Release/PLCModule.dll.config new file mode 100644 index 0000000..2c3f83c --- /dev/null +++ b/Analysis/bin/x64/Release/PLCModule.dll.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Analysis/bin/x64/Release/PLCModule.pdb b/Analysis/bin/x64/Release/PLCModule.pdb new file mode 100644 index 0000000..8eed8a1 Binary files /dev/null and b/Analysis/bin/x64/Release/PLCModule.pdb differ diff --git a/Analysis/bin/x64/Release/SQLite.Interop.dll b/Analysis/bin/x64/Release/SQLite.Interop.dll new file mode 100644 index 0000000..12de96a Binary files /dev/null and b/Analysis/bin/x64/Release/SQLite.Interop.dll differ diff --git a/Analysis/bin/x64/Release/System.Data.SQLite.EF6.dll b/Analysis/bin/x64/Release/System.Data.SQLite.EF6.dll new file mode 100644 index 0000000..154f51f Binary files /dev/null and b/Analysis/bin/x64/Release/System.Data.SQLite.EF6.dll differ diff --git a/Analysis/bin/x64/Release/System.Data.SQLite.Linq.dll b/Analysis/bin/x64/Release/System.Data.SQLite.Linq.dll new file mode 100644 index 0000000..027171d Binary files /dev/null and b/Analysis/bin/x64/Release/System.Data.SQLite.Linq.dll differ diff --git a/Analysis/bin/x64/Release/System.Data.SQLite.dll b/Analysis/bin/x64/Release/System.Data.SQLite.dll new file mode 100644 index 0000000..770276d Binary files /dev/null and b/Analysis/bin/x64/Release/System.Data.SQLite.dll differ diff --git a/Analysis/bin/x64/Release/System.Data.SQLite.xml b/Analysis/bin/x64/Release/System.Data.SQLite.xml new file mode 100644 index 0000000..45b9980 --- /dev/null +++ b/Analysis/bin/x64/Release/System.Data.SQLite.xml @@ -0,0 +1,23604 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogRetry" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + Determines if all calls to retry a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its trace callback function pointers that refer to this instance. + This is necessary to prevent calls from native code into delegates + that may have been garbage collected. Normally, these types of issues + can only arise for connections that are added to the pool; howver, it + is good practice to unconditionally invalidate function pointers that + may refer to objects being disposed. + + + Appropriate error messages, if any, will be appended here. + + + Non-zero if this method succeeds; otherwise, zero. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate trace callback function pointers. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Non-zero to log all calls to retry a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The source command. + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + Enable logging of internal retries during statment preparation + and stepping. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + This option is only useful in SQLITE_ENABLE_STMT_SCANSTATUS builds. + In this case, it sets or clears a flag that enables collection of + the sqlite3_stmt_scanstatus_v2() statistics. For statistics to be + collected, the flag must be set on the database handle both when + the SQL statement is prepared and when it is stepped. The flag is + set (collection of statistics is enabled) by default. + + + + + The SQLITE_DBCONFIG_REVERSE_SCANORDER option change the default + order in which tables and indexes are scanned so that the scans + start at the end and work toward the beginning rather than + starting at the beginning and working toward the end. Setting + SQLITE_DBCONFIG_REVERSE_SCANORDER is the same as setting [PRAGMA + reverse_unordered_selects]. This configuration option is useful + for application testing. + + + + + These constants are returned by the sqlite3_txn_state() API. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + This value represents a mask where no trace events should be + generated. + + + + + The trace event invoked when a prepared statement first begins + running and possibly at other times during the execution of + the prepared statement, such as at the start of each trigger + subprogram. + + + + + The trace event invoked when a prepared statement finishes. + It provides a 64-bit integer which is the estimated of the + number of nanosecond that the prepared statement took to run. + + + + + The trace event invoked when a prepared statement generates + a single row of result. + + + + + The trace event invoked when a database connection closes. + + + + + This value represents a mask where all supported trace events + should be generated. This value is subject to change, e.g. + when additional trace events are added by the SQLite core + library. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + These are the extra command behavior flags that should be used for all calls + into the , , + and methods. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the current command. + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + Modifies the specified to include + the global command behavior flags, if any. + + + The as it was originally passed into + the , , + or methods. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the + current command. + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + This integer value is used with + values. When set, extra + calls are not performed within the + methods for write transactions. This value should be used with + extreme care because it can cause unusual behavior. It is + intended for use only by legacy applications that rely on the + old, incorrect behavior. + + + + + This integer value is used with + values. When set, extra + calls are performed within the + methods for all transactions. This value should be used with + extreme care because it can cause unusual behavior. + + + + + Checks to see if the extra + calls within the methods should + be skipped. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be skipped; otherwise, zero. + + + + + Checks to see if the extra + calls within the methods should + be forced. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be forced; otherwise, zero. + + + + + Attempts to combine an original + value with a list of new values. + + + The original value, if any. If + this value is null, a suitable default value will be used. + + + The list of new values delimited + by spaces or commas. Each value may have an optional prefix, a + '+' or '-' sign. If the prefix is a '+', the value is added to + the original value. If the + prefix is a '-', the value is removed from the original + value. In addition to the values + formally defined for , the extra + values "SkipExtraReads" and "ForceExtraReads" are recognized. + Other extra values may be added in the future. + + + Upon success, this will be set to null. Upon failure, this will + be set to an appropriate error message. + + + The resulting value -OR- null + if it cannot be determined due to an error -OR- null if the + original value and list of new + value are both null. The way to + differentiate between these two null return scenarios is to + check the error message against null. If the error message is + not null, an error was encountered; otherwise, the null was the + natural return value. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks transaction state of the associated database connection. + + + The desired transaction state. + + + Non-zero if current transaction state of the associated database + connection matches the desired transaction state. + + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + This method attempts to build and return a string containing diagnostic + information for use by the test suite. This method should not be used + by application code. It is designed for use by the test suite only and + may be modified or removed at any time. + + + A string containing information for use by the test suite -OR- null if + that information is not available. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Overridden to hide its property from the designer + + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + The optional event result, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + NoDefaultFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI based codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI based + codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + TextHexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI based codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + DefaultMaximumSleepTime + {time in milliseconds}
The default maximum sleep time for new commands
+ N + 150 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + Static variable to store the connection event handlers to call. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a NUL-terminated text string. + + + + + This will be non-zero if the "HexPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a hexadecimal encoded string of byte values. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The mask of zero or more values that + determine which events may be raised from the + event. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default database type for this connection. This value will only + be used if the + flag is set. + + + + + The default database type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + Default command maximum sleep time. + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + This method attempts to query the flags associated with the database + connection. If the database connection is disposed, the default flags + will be returned. + + + The database connection to query the flags from. + + + The connection flags value. + + + + + This event is raised whenever the database is opened or closed. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + What type of directory are we searching for? + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + When zero, byte values of zero are not allowed and will be changed + to instead. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default maximum sleep time for newly-created commands. + This can also be set in the ConnectionString with "DefaultMaximumSleepTime" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + This method checks if the database operation for this connection has been + interrupted. + + + Non-zero if the database operation for this connection has been interrupted; + otherwise, zero. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Returns the state of the connection. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Attempts to decrypt a database file that was encrypted using the legacy CryptoAPI-based + RC4 codec that was previously included with System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised when events matching the configured mask are + raised for this connection. + + + + + This property is used to configure the set of events that may be raised + from the event. The value of this property cannot + be changed while an event handler is registered. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + The flags associated with this trace event. + + + + + Database connection associated with this event. + + + + + Prepared statement associated with this event. + + + + + SQL statement text as the statement first begins executing + + + + + Elapsed time in nanoseconds associated with the prepared statement. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the default maximum sleep time for newly-created commands. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the maximum number of retries when stepping SQL to be executed. + This normally only applies to stepping errors resulting from the database + being locked. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/sets the database encryption textual password in hexadecimal + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + For a given intrinsic type, return a DbType + + The native type to convert + The corresponding (closest match) DbType + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + The connection is being disposed. + + + + + The connection was disposed. + + + + + The connection is being finalized. + + + + + The connection was finalized. + + + + + The closing of the object had no effect, e.g. because the + underlying resource was not actually allocated or opened. + + + + + The connection string may be changed. + + + + + The SQL string may be changed. + + + + + The method was invoked. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Row updating event handler + + + + + Row updated event handler + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Checks if the specified statement appears to have impacted + one or more rows. If so, updates the appropriate count(s). + + + The statement in progress to be checked. + + + + + Single steps the specified statment and checks the number + of rows affected, if applicable. + + + The statement to be stepped. + + + Non-zero if the specified statement appears to have more + rows within it; otherwise, zero. + + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Attempts to read the next row from the current result set. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Attempts to read the next row from the current result set. + + + When this parameter is non-zero, the SingleRow command + behavior flag will be ignored. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + This field contains the SQLite (or Win32?) error code associated + with this exception. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Maps an HRESULT to a Win32 error code. + + + The specified HRESULT. + + + The integer value of the Win32 error code. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + May be returned for spurious errors that can occur when applying + an RBU update. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + These constants are used with the sqlite3_create_function() API, et al. + + + + + Initial flags value, no flags set. + + + + + The function uses UTF-8. + + + + + The function uses little-endian UTF-16. + + + + + The function uses big-endian UTF-16. + + + + + The function uses UTF-16 in native byte order. + + + + + Deprecated, do not use. + + + + + For sqlite3_create_collation() only, do not use. + + + + + Used to mask off the flags related to encodings. + + + + + The new function always gives the same output when the input parameters + are the same. The abs() function is deterministic, for example, but + randomblob() is not. Functions must be deterministic in order to be used + in certain contexts such as with the WHERE clause of partial indexes or + in generated columns. SQLite might also optimize deterministic functions + by factoring them out of inner loops. + + + + + The function may only be invoked from top-level SQL, and cannot be used + in VIEWs or TRIGGERs nor in schema structures such as CHECK constraints, + DEFAULT clauses, expression indexes, partial indexes, or generated columns. + The SQLITE_DIRECTONLY flags is a security feature which is recommended for + all application-defined SQL functions, and especially for functions that + have side-effects or that could potentially leak sensitive information. + + + + + The function may call sqlite3_value_subtype() to inspect the sub-types of + its arguments. Specifying this flag makes no difference for scalar or + aggregate user functions. However, if it is not specified for a user-defined + window function, then any sub-types belonging to arguments passed to the + window function may be discarded before the window function is called + (i.e. sqlite3_value_subtype() will always return 0). + + + + + The function is unlikely to cause problems even if misused. An innocuous + function should have no side effects and should not depend on any values + other than its input parameters. The abs() function is an example of an + innocuous function. The load_extension() SQL function is not innocuous + because of its side effects. + + SQLITE_INNOCUOUS is similar to SQLITE_DETERMINISTIC, but is not exactly + the same. The random() function is an example of a function that is + innocuous but not deterministic. + + Some heightened security settings (SQLITE_DBCONFIG_TRUSTED_SCHEMA and + PRAGMA trusted_schema=OFF) disable the use of SQL functions inside views + and triggers and in schema structures such as CHECK constraints, DEFAULT + clauses, expression indexes, partial indexes, and generated columns unless + the function is tagged with SQLITE_INNOCUOUS. Most built-in functions are + innocuous. Developers are advised to avoid using the SQLITE_INNOCUOUS flag + for application-defined functions unless the function has been carefully + audited and found to be free of potentially security-adverse side-effects + and information-leaks. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callback function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for getting a window function value + + + + + Holds a reference to the callback function for inverse in a window function + + + + + Holds a reference to the callback function for collating sequences + + + + + Raw parameter pointers for the current callback. Only valid during a callback. + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required window aggregate functions, not legacy aggregate function implementations. It is invoked to + return the current value of the aggregate. Unlike xFinal, the implementation should not delete any context. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required for window aggregate functions, not legacy aggregate function implementations. It is invoked + to remove the oldest presently aggregated result of xStep from the current window. The function arguments, if any, are + those passed to xStep for the row being removed. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Gets and returns the sub-type associated with the specified function parameter. + + + The parameter index to check. + + + The sub-type associated with the specified function parameter. + + + + + Attempts to convert the specified function parameter to numeric and + then gets and returns the new type affinity associated with this + value. + + + The parameter index to check. + + + The new type affinity associated with this value. + + + + + Gets and returns the "no change" flag associated with the specified + function parameter. This method can only be used while within a call + to the method of a virtual + table implementation. + + + The parameter index to check. + + + Non-zero if the column associated with the function parameter is + unchanged in an UPDATE against a virtual table. + + + + + Gets and returns the "from bind" flag associated with the specified + function parameter. + + + The parameter index to check. + + + Non-zero if the function parameter at the specified index was + originally specified via a bound parameter. + + + + + Arranges for the specified sub-type value to be associated + with the function result. + + + The desired sub-type of the function result. + + + + + Performs some sanity checks on the index and how it relates + to the current function parameters. + + + The parameter index to be checked for bounds, etc. + + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + Pointer values for the arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + An internal aggregate Value function callback, which wraps the context pointer and calls the virtual Value() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + The internal aggregate Inverse function callback, which wraps the raw context pointer and calls the virtual Inverse() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Inverse() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The extra flags for the function being registered. + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Value". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Inverse". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Inverse". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + Window functions are designed to apply aggregate and ranking functions over a particular set of rows. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + An internal destroy callback delegate declaration. + + Raw pointer to the data to free. + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + The extra flags for the function being declared. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The flags for this function. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + How many additional columns of keyinfo we're holding + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + Member variable to store the application log handler to call. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + This method checks to see if the SQLite core library allows its + native logging callback to be changed when it has already been + initialized, either explicitly or implicitly. + + + Non-zero if the SQLite core library initialization state can be + safely ignored when setting up logging; otherwise, zero. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The total number of schema retries during preparation. + + + + + The total number of locking retries during preparation. + + + + + The total number of schema retries during stepping. + + + + + The total number of retries during stepping. + + + + + The flags associated with the parent connection object. + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it is + set by the method on its first call. Later, it + is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if retrying a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + method. + On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This represents the status of an internal operation. These values + should not be seen outside of this module. + + + + + The operation was attempted and completed successfully. + + + + + The operation was attempted and failed in some way. + + + + + The operation has either not been started -OR- its status is + currently unknown. + + + + + The operation was either skipped -OR- will not be performed. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Attempts to determine if a specific column being fetched via the + method as part of an + UPDATE operation will not change. Use of this method is invalid + in any other context. + + + Non-zero if the column being fetched via a pending call to the + method as part of an + UPDATE operation during which the column value will not change. + The virtual table implementation can use this hint as permission + to substitute a return value that is less expensive to compute + and that the corresponding xUpdate method understands as a + "no-change" value. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result sub-type to the desired value. + + + The sub-type value to use. + + + + + Sets the context result to the specified . + + + The to use. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that sub-type is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "no change" flag is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "from bind" flag is returned; otherwise, an exception is thrown. + + + + + Gets and returns the sub-type associated with this value. + + + The sub-type associated with this value. + + + + + Gets and returns the "no change" flag associated with this value. + + + The "no change" flag associated with this value. + + + + + Gets and returns the "from bind" flag associated with this value. + + + The "from bind" flag associated with this value. + + + + + Attempts to convert this value to numeric and then gets and + returns the new type affinity associated with this value. + + + The new type affinity associated with this value. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + The name of the table the change was made to. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + +
+
diff --git a/Analysis/bin/x64/Release/Telerik.WinControls.UI.dll b/Analysis/bin/x64/Release/Telerik.WinControls.UI.dll new file mode 100644 index 0000000..fdbe24d Binary files /dev/null and b/Analysis/bin/x64/Release/Telerik.WinControls.UI.dll differ diff --git a/Analysis/bin/x64/Release/Telerik.WinControls.UI.xml b/Analysis/bin/x64/Release/Telerik.WinControls.UI.xml new file mode 100644 index 0000000..7f9858b --- /dev/null +++ b/Analysis/bin/x64/Release/Telerik.WinControls.UI.xml @@ -0,0 +1,61373 @@ + + + + Telerik.WinControls.UI + + + + + Gets the location and size of the accessible object + + + + + Gets the location and size of the accessible object + + + + + Gets a value for the Value property while in bound mode. + + Gets an object reference pointing to the value of the Value property in bound mode. + + + + Gets a value for the Value property in unbound mode. + + Returns an object reference pointing to the value of the Value property in unbound mode. + + + + This method is called when setting the Value property of a RadListDataItem when it is in unbound mode. + + The value to set the Value property to. + + + + This method is used to assign the DataBoundItem property of this RadListDataItem. + If a user attempts to set DataBoundItem while in bound mode, an exception should be thrown. + In unbound mode this property can be set to any value and will not affect the behavior of this RadListDataItem. + + A flag that indicates if the data bound item is being set from the data binding engine or by the user. + true means it is being set by the data binding engine. + The value that will be assigned to the DataBoundItem property. + + + + Gets a value indicating whether this data item is data bound. + + + + + Gets a value that represents the ListDataLayer associated with this data item and its parent RadListControl. + The ListDataLayer encapsulates the data operations provided by RadListControl which are sorting, filtering and currency synchronization. + + + + + Gets a value representing the owner RadListElement of this data item. + + + + + Gets a value representing the owner control of this data item. + + + + + Gets or sets the visual height of this item. + This property can be set only when AutoSizeItems of the parent RadListControl is true. + + + + + Gets the index of this data item in the Items collection of RadListControl. + + + + + Gets a value that will be used in the visual representation of this item. + + + + + Gets or sets a value for the property indicated by ValueMember if in bound mode, and private value in unbound mode. + Trying to explicitly set this property in bound mode will result in an InvalidOperationException. + + + + + Gets or sets a value that indicates if this item is selected. Setting this property will cause the selection events of the owner list control to fire if there is one. + + + + + Gets or sets whether this item responds to GUI events. + + + + + Gets or sets the text for this RadListDataItem instance. + + + + + Gets or sets a text value that is used for sorting. Creating a RadProperty during data binding is too slow, this is why + this property is used instead and its value can be used for sorting. + + + + + Gets or sets an image for this RadListDataItem instance. + + + + + Gets or sets the text-image relation for this RadListDataItem instance. + + + + + Gets or sets the image alignment for this RadListDataItem instance. + + + + + Gets or sets the text alignment for this RadListDataItem instance. + + + + + Gets or sets the text orientation for this RadListDataItem instance. + + + + + Gets or sets the font for this RadListDataItem instance. + + + + + Gets or sets the text color for this RadListDataItem instance. + + + + + Gets a value that indicates if this item is currently visible. + + + + + Gets a value that visually represents this data item. If the item is not visible, this property returns null. + The visual item returned should be used only to get information about a particular item. Since visual items + are shared between different data items, properties must not be set directly on the visual item in order + to avoid uncustomizable or unwanted behavior. For example if properties are set directly to the visual item + the themes may not work correctly. + + + + + Gets or sets the preferred size for the element which will present this item. + + + + + Gets the index of item in GridViewRowCollection. + + The index. + + + + Gets or sets a value that represents the raw data item that this RadListDataItem is associated with. + This property will be non null when the item is created via RadListControl's data binding and will contain the underlaying data item. Setting this property explicitly will have no effect in unbound mode and will throw an InvalidOperationException in bound mode. + + + + + Gets or sets a value that indicates if this item is selected. Setting this property will cause the selection events of the owner list control to fire if there is one. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Represents a auto-complete tokenized text box element + + + + + Represents an independent text box element + + + + + Represent a scrollable view element with scrollbars + + + + + + A light visual element supporting text, border, image, BackColor and ForeColor with different layout adjustments. + "http://www.telerik.com/help/winforms/tpf-primitives-lightvisualelement.html" + + + + + Base class for some RadItems, used in RadTreeView, RadPanelBar, RadCalendar, etc. Incorporates basic functionality for paiting gradient + background and borders the same way FillPrimitive and BorderPrimitive do. + + + + + Gets the border thickness of a + + The element to check. + Determines whether to consider when the border is disabled. + The border thickness. + + + + Toggles the text primitive when text related properties are change. + + The changed property. + + + + Called when animated image frame changes. + + + + + Gets the properties, which should mapped if set to a LightVisualElement instance. Used for testing purposes. + + + + + Gets or sets the text rendering hint. + + + + + Gets or sets the text rendering hint used when this element is disabled. + + + + + Gets or Sets value indicating whether the element should paint its text + + + + + Gets or Sets value indicating whether the element should paint its background + + + + + Gets or Sets value indicating whether the element should paint its border + + + + + Gets or Sets value indicating whether the element should paint its background image. + + + + + Gets or Sets value indicating whether the element should paint its image. + + + + + + Gets or sets the + Border style. The two possible values are SingleBorder and FourBorder. In the + single border case, all four sides share the same appearance although the entire + border may have gradient. In four border case, each of the four sides may differ in + appearance. For example, the left border may have different color, shadow-color, and + width from the rest. When SingleBorder is chosen, you should use the general + properties such as width and color, and respectively, when the FourBorder style is + chosen you should use properties prefixed with the corresponding side, for example, + LeftColor, LeftWidth for the left side. + + + + + Defines the order in which border lines are drawn. This property is considered when the is FourBorders. + + + + + Gets or sets a float value width of the left border. This property + has effect only if FourBorders style is used in BoxStyle property and + affects only the width of the left border. + + + + + Gets or sets a float value width of the left border. This property + has effect only if FourBorders style is used in BoxStyle property and + affects only the width of the left border. + + + + + Gets or sets a float value width of the top border . This property + has effect only if FourBorders style is used in BoxStyle property, + and affects only the top border. + + + + + Gets or sets a float value width of the right border. This + property has effect only if FourBorders style is used in BoxStyle + property, and affects only the right border. + + + + + Gets or sets a float value width. This property has effect only if + FourBorders style is used in BoxStyle property, and affects only the + bottom border. + + + + + Gets or sets gradient angle for linear gradient measured in degrees. + + + + + Gets or sets gradient style. Possible styles are solid, linear, radial, glass, + office glass, gel, and vista. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets a value indicating the TextImageRelation: ImageAboveText, + ImageBeforeText, Overlay, TextAboveImage, and TextBeforeImage. + + + + + Gets and sets the left border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the left border. + + + + + Gets and sets the top border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the top border. + + + + + Gets and sets the right border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the right border. + + + + + Gets and sets the bottom border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the bottom border. + + + + + Gets and sets the left shadow color. This option applies only if + fourBorders is chosen, and affects only the left border. + + + + + Gets and sets the top shadow color. This option applies only if + fourBorders is chosen, and affects only the top border. + + + + + Gets and sets the right shadow color. This option applies only if + fourBorders is chosen, and affects only the right border. + + + + + Gets and sets the bottom shadow color. This option applies only if + fourBorders is chosen, and affects only the bottom border. + + + + + Determines whether text will be clipped within the calculated text paint rectangle. + + + + + Gets or sets the transparent color for the image. + + + + + Specifies the style of dashed lines drawn with a border. + + + + + Specifies the style of dashed lines drawn with a border. + + + + + Gets or sets a value indicating whether image transparency is supported. + + + + + Determines whether character trimming will be automatically applied to the element if text cannot be fitted within the available space. + + + + + Determines whether ampersand character will be treated as mnemonic or not. + + + + + Gets or sets a value indicating whether text will be wrapped when exceeding the width of the element. + + + + + Determines whether keyboard focus cues are enabled for this element. + + + + + Determines whether trailing spaces will be included when text size is measured. + + + + + Gets the text structure used to render text + + + + + Creates the scroll bar element. + + + + + + Creates the view element. + + + + + + This method provides a chance to initialize the ViewElement object. + + The view element. + + + + Measures the view element. + + Size of the available. + + + + + Arranges the view element. + + The view element rect. + + + + Arranges the horizontal scroll bar. + + The view element rect. + The client rect. + + + + + Arranges the vertical scroll bar. + + The view element rect. + The hscroll bar rect. + The client rect. + + + + Gets the horizontal scroll bar. + + + The horizontal scroll bar. + + + + + Gets the vertical scroll bar. + + + The vertical scroll bar. + + + + + Gets or sets the view element. + + + The view element. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + + + + Creates an instance of + + + + + + Called when the context menu is opening. + + The menu. + + + + + Raises the event. + + The instance containing the event data. + + + + Clamps the offset to valid text position bounds + + The offset. + + + + + Determines whether the text can be inserted + + The text. + + true if this text can be inserted; otherwise, false. + + + + + Determines whether the current position is valid for the auto-complete operation + + + true if [is valid auto complete position]; otherwise, false. + + + + + Performs the auto-complete for concrete operation. + + The context. + + + + Performs the auto complete override. + + The context. + + + + Gets the text that is as filter condition in auto-completion + + The start position. + The end position. + + + + + Gets the auto-complete drop down location. + + + + + + Gets the lines of the text box element. + + + + + + Sets the lines of the text box element. + + The lines. + + + + Creates the caret of the text box element. + + + + + + Creates the auto-complete list element. + + + + + + Creates the auto-complete drop down. + + + + + + Gets the size of the auto-complete drop down. + + + + + + Shows the drop down. + + The location. + + + + Closes the auto-complete drop down. + + + + + Closes the drop down. + + The reason. + + + + Moves the current selection in the text box to the Clipboard. + + + + + + Copies the current selection in the text box to the Clipboard. + + + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + + Inserts the text at current position + + The text. + + + + + Deletes the selected text or character at the current position + + + + + + /// Deletes the selected text or character at the current position + + if set to true deletes next character. + + + + + Appends text to the current text of a text box. + + The text. + + + + Appends text to the current text of a text box and selects it + + The text. + if set to true selects the text. + + + + Selects a range of text in the text box. + + The start. + The length. + + + + Selects all text in the text box element. + + + + + Specifies that the value of the SelectionLength property is zero so that no characters are selected in the element. + + + + + + Scrolls the contents of the control to the current caret position. + + + + + Clears all text from the text box element. + + + + + Gets or sets the current text in the text box element. + + + + + Gets or sets the prompt text that is displayed when the text box contains no text. + + + The null text. + + + + + Gets or sets the color of the null text. + + + The color of the null text. + + + + + Gets or sets a value indicating whether the null text will be shown when the control is focused and the text is empty + + + + + Gets or sets the lines of text in a text box element. + + + The lines. + + + + + Gets or sets a value indicating the currently selected text in the element. + + + The selected text. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box element. + + + The length of the max. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text box element types a TAB character in the element instead of moving the focus to the next element in the tab order. + + + true if [accepts tab]; otherwise, false. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline TextBox element creates a new line of text in the element or activates the default button for the form. + + + true if [accepts return]; otherwise, false. + + + + + Gets or sets a value indicating whether this is a multiline text box. + + + true if multiline; otherwise, false. + + + + + Gets or sets a value indicating whether the text in view + should appear as the default password character. + + + + + Gets or sets the character used to mask characters of a password in a single-line + + + + + Indicates whether a multiline text box control automatically wraps words to the beginning of the next line when necessary. + + + true if [word wrap]; otherwise, false. + + + + + Gets or sets how the text is horizontally aligned in the element. + + The horizontal text alignment. + + + + Gets the length of text in the element. + + + The length of the text. + + + + + Gets or sets the caret position. + + + The index of the caret. + + + + + Gets or sets the starting point of text selected in the text box. + + + The selection start. + + + + + Gets or sets the number of characters selected in the text box. + + + The length of the selection. + + + + + Gets or sets the color of the selection. + + + The color of the selection. + + + + + Gets or sets the selection opacity. + + + The selection opacity. + + + + + Gets or sets whether the TextBox element modifies the case of characters as they are typed. + + + The character casing. + + + + + Gets the associated caret. + + + + + Represents the associated keyboard and mouse input handler. + + + The input handler. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + + + true if this is in read only mode; otherwise, false. + + + + + Gets or sets a value indicating whether the caret is visible in read only mode. + + + true if the caret is visible; otherwise, false. + + + + + Gets or sets a value indicating whether the selected text in the text box control remains highlighted when the element loses focus. + + + true if [hide selection]; otherwise, false. + + + + + Gets or sets the associated context menu. + + + The context menu. + + + + + Gets or sets the navigator of the text position. + + + The navigator. + + + + + Gets the auto-complete list element. + + + + + Gets the view element of the null text. + + + + + Gets or sets an option that controls how automatic completion works for the TextBox. + + + The auto complete mode. + + + + + Gets or sets the auto complete display member. + + + The auto complete display member. + + + + + Gets or sets a value specifying the source of complete items used for automatic completion. + + + The auto complete data source. + + + + + Gets a value specifiying the complete items used for automatic completion. + + + + + Gets or sets the size of the drop down max. + + + The size of the drop down max. + + + + + Gets or sets the size of the drop down min. + + + The size of the drop down min. + + + + + Gets or sets the max count of visible items in auto-complete drop down + + + The max drop down item count. + + + + + Gets a value indicating whether this auto-complete drop down is open. + + + true if the drop down is open; otherwise, false. + + + + + Gets or sets when the vertical scroll bar should appear in a multiline TextBox element. + + + The state of the vertical scroll bar. + + + + + Gets or sets when the horizontal scroll bar should appear in a multiline TextBox element. + + + The state of the horizontal scroll bar. + + + + + Gets a value indicating whether this text box can perform auto complete operation. + + + true if this instance can perform auto complete; otherwise, false. + + + + + Gets the auto complete drop down. + + + + + Gets the clear button. + + + + + Gets or sets a value indicating whether the clear button is shown. + + + + + Occurs when text block is formatting. + + + + + Occurs when an instance of is created + + + + + Occurs when the context menu is opening. + + + + + Occurs when text selection is changing. + + + + + Occurs when text selection is changed. + + + + + Fired when the Input Method Editor starts the composition. + + + + + Fired when the Input Method Editor completes the composition. + + + + + Fired when the Input Method Editor has a result ready. For languages like Korean + this might happen before the composition has ended. + + + + + Initializes a new instance of the class. + + + + + Creates the tokenized item collection. + + + + + + Gets or sets a value indicating whether the remove button of should appear. + Notice that the text box should not be in read only mode + + + true if [show remove button]; otherwise, false. + + + + + Gets or sets a property name which will be used to extract a value from the data items + + + + + Gets or sets the delimiter used to tokenize the text + + + The delimiter. + + + + + Gets the tokenized items. + + + + + Gets the auto complete view element. + + + + + Gets or sets the auto complete drop down location. + + + The auto complete popup location. + + + + + Occurs when text is validating as token + + + + + Represent a virtualize panel element provider + + The type of view element. + The type of virtualized item. + + + + + + + + + + Represents interface for virtualized element provider + + + + + + Gets the element. + + The data. + The context. + + + + + Caches the element. + + The element. + + + + + Shoulds the update. + + The element. + The data. + The context. + + + + + Determines whether the specified element is compatible with its data. + + The element. + The data. + The context. + + true if the specified element is compatible; otherwise, false. + + + + + Gets the size of the element. + + The data. + + + + + Gets the size of the element. + + The element. + + + + + Clears the cached elements. + + + + + Gets or sets the default size of the element. + + + The default size of the element. + + + + + Creates the element. + + The data. + The context. + + + + + Gets the element from cache. + + The data. + The context. + + + + + Gets the element from cache or creates it. + + The data. + The context. + + + + + Pre-initialize cached element. + + The element. + The context. + + + + Caches the element. + + The element. + + + + + Determine whether the element should be updated. + + The element. + The data. + The context. + + + + + Determines whether the specified element is compatible with concrete data. + + The element. + The data. + The context. + + true if the specified element is compatible; otherwise, false. + + + + + Gets the size of the element. + + The item. + + + + + Gets the size of the element. + + The element. + + + + + Clears the cache. + + + + + Gets or sets the default size of the element. + + + The default size of the element. + + + + + Gets the cached elements count. + + + The cached elements count. + + + + + Creates the element. + + The data. + The context. + + + + + Shoulds the update. + + The element. + The data. + The context. + + + + + Represents a traverser that enumerates collection. + + + + + + Represents traverser class that enumerates items. + + + + + + Moves the previous. + + + + + + Moves to end. + + + + + + Gets or sets the position. + + + The position. + + + + + Initializes a new instance of the class. + + The collection. + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + Moves the previous. + + + + + + Moves to end. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Called when items are navigated. + + The current. + + + + + Moves the next core. + + + + + + Moves the previous core. + + + + + + Gets or sets the collection. + + + The collection. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets or sets the position. + + + The position. + + + + + Occurs when items are navigated. + + + + + Moves the next core. + + + + + + Gets or sets the font for this RadListDataItem instance. + + + + + Represents a virtaulizable element interface + + + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance. + + + + + Determines whether element is compatible with the specified data. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets the associated data. + + + The data. + + + + + Applies or resets alternating row color of the current visual item. + + + + + Gets or sets a value indicating whether this item has odd position. + + + + + Clears all Checked Items + + + + + Represents a auto-complete list element in . + + + + + Represents a auto-complete list element in . + + + + + This class is used to represent data in a list similar to the ListBox control provided by Microsoft. + + + + + Performs events subscription to internal objects. + The base implementation must always be called. + + + + + Performs events unsubscription from internal objects. + The base implementation must always be called. + + + + + This method creates an object that implements IVirtualizedElementProvider. Child elements are not yet created + in this method. + + A new instance of an implementation of IVirtualizedElementProvider. + + + + Creates an instance of ITraverser which traverses the child elements. + + + + + + Creates an instance of ItemScroller. Child elements are not yet created in this method. + + + + + + This method provides a chance to setup the ItemScroller. + + The item scroller on which properties will be set. + + + + This method provides a chance to setup the the VirtualizedStackContainer. + + The view element on which properties will be set. + + + + Measures the item. + + The item. + Size of the available. + + + + + Gets the desired size of the item. + + The item. + + + + + Called when auto size is changed. + + + + + Gets the Element with the specified item. + + + + + + Updates on measure. + + Size of the available. + + + + + Updates the items fit to size mode. + + + + + Gets or sets the items. + + + The items. + + + + + Gets the associated scroller. + + + The scroller. + + + + + Gets or sets a value indicating whether items fit to size. + + + true if [fit items to size]; otherwise, false. + + + + + Gets or sets the items orientation. + + + The orientation. + + + + + Gets or sets a value indicating whether items auto sizing. + + + true if [auto size items]; otherwise, false. + + + + + Gets or sets the item spacing. + + + The item spacing. + + + + + Creates a new instance of the RadListElement class. + + + + + Creates an instance of the data layer object responsibe for items management in bound or unbound mode. + + + + + + Creates an instance of the element provider object which is responsible for mapping logical and visual items and determining + when a visual item must be updated to reflect the state of its corresponding logical item. + + + + + + Creates an instance of the visual element responsible for displaying the visual items in a particular layout. + + + + + + Finds the first item in the RadList control that matches the specified string. + + The string to search for. + Determines whether the search is case sensitive or not. + The zero-based index of the first item found; returns null if no match is found. + + + + Raises the event. + + + An instance that contains the event data. + + + + + + Suspends notifications of changing groups. + This method is cumulative, that is, if SuspendGroupRefresh is called N times, ResumeGroupRefresh must also be called N times. + + + + + Resumes refreshing of groups. + + Indicates whether refreshing of groups should be performed. + + + + Refreshes the groups. + + + + + Scrolls to the active item if it is not null and if it is not fully visible. + + + + + Forces re-evaluation of the current data source (if any). + + + + + Suspends internal notifications and processing in order to improve performance. + This method is cumulative, that is, if BeginUpdate is called N times, EndUpdate must also be called N times. + + + + + Resumes the internal notifications and processing previously suspended by BeginUpdate. + + + + + Defers the refresh. + + + + + + Selects all items if the SelectionMode allows it. + + Selecting all items is not a valid operation in the current selection mode. SelectionMode = + this.selectionMode.ToString() + . + + + + Clears the currently selected items and selects all items in the closed range [startIndex, endIndex]. + + The first index at which to start selecting items. + The index of one item past the last one to be selected. + + + + Scrolls to the provided item so that the item will appear at the top of the view if it is before the currently visible items + and at the bottom of the view if it is after the currently visible items. + + The item to scroll to. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default this relation is the System.String.StartsWith(). + This method starts searching from the beginning of the items. + + The string with which every item will be compared. + The index of the found item or -1 if no item is found. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Creates a new item traverser and updates the current. + If group refresh is suspended this method has no effect. + + + + + This method returns true if the ActiveItem is fully visible. + + + + + Gets the index of the last visible item. + + + + + Gets the index of the first visible item. + + + + + Gets the index of the middle visible item. + + + + + Determines if the provided visual item intersects the view but is not contained in it. + + + + + If the object assigned to the DataSource property is of type Component, this callback will be invoked if + the data source is disposed which cause all data items to become disposed. + + + + + Handles changes in the data layer. + Nothing will done if we the RadListElement is in a BeginUpdate state. + + + + + Syncronizes the properties of all visual elements with their data items. + + + + + When the data layer changes the current position, this callback triggers the selection logic with the new position. + + + + + Fires the SelectedIndexChanged event. + + + + + Fires the SelectedIndexChanging event. + + + + + Fires the SelectedValueChanged event if SelectedValue has actually changed since many items can have the same value. + + + + + Fires the ItemDataBinding event. + + + + + Fires the ItemDataBound event. + + + + + Fires the CreatingVisualItem event. + + + + + Fires the SortStyleChanged event. + + + + + Fires the VisualItemFormattingeEvent with the provided visual item. + + + + + Performs scrolling logic depending on the delta from the mouse wheel. + + + + + Raises the ItemsChanged event with the provided arguments. + + The arguments that contain the data relevant to the items change. + + + + Raises the ItemsChanging event with the provided arguments. + + The arguments that contain the data relevant to the pending items change. + + + + Raises the DataItemPropertyChanged + + + + + + + Handles the mouse input by finding the RadElement involved with the mouse and sending the element and event information to the appropriate + subsystem of RadListElement. + + + + + Performs logical branching depending on the type of the routed event. + + + + + Performs logical branching of the selection logic depending on the notification reason. + + + + + Handles the keyboard input by delegating the information of the event to the appropriate RadListElement subsystem. + + + + + Finds an item with the text provided by an internal search buffer after the character argument is appended to the buffer. + The search buffer is reset after a user defined time since the last character was typed. By default this is 300 ms. + Users can set the KeyboardSearchResetInterval property to a custom interval. + + A character that will be appended to the search buffer. + + + + Handles the space key press depending on the SelectionMode and the state of the control key. + + + + + This method is the entry point for the selection logic if initiated by the keyboard. + + + + + Determines whether the selection logic should select the next or the previous item depending on the which arrow key is pressed. + + + + + This method is the entry point in RadListElements selection logic. + + + + + Performs logical branching of the MultiExtended selection logic depending on the parameters. + + + + + This method performs only logical branching of the selection logic depending on the input type parameter. + + + + + This method is for clarity. CodeMultiSimple is the same as MouseMultiSimple but does not change the current position of the data layer. + + + + + Toggles the Selected state of the item at the specified index and fires selection events depending on the second argument. + + The index of the item which will selected or deselected. + Indicates whether to change the current positio of the data layer and therefore fire selecton events. + + + + Handles the MultiSimple selection logic for adding items. + + + + + Handles the MultiSimple selection logic for removing items. + + + + + Selects the item at the specified index and clears all other selected items and updates the active item. + This method triggers selection events. + + The index of the item which will be selected. + + + + Selects all items in the range [startIndex, endIndex] and clears all other selected items. + This method triggers selection events. + + The beginning of the selection range. + The end of the selected range. + + + + This method sets the provided item as active and the previous one to inactive. There can be only active item at a time. + + The item to set to an active state. + The value to which the Active property of item will be set. + + + + Sets the SelectedItem and thus SelectedIndex to the logical item with the specified value. If there are many items with the same value the first item found will be selected. + This method triggers selection events. + + The value for which to find an item. + + + + Sets the the selected data item to the specified item. If the item is different than the current one the selection events will be fired. + This method triggers selection events. + + + + + + Sets the selected index to the specified value if it is different than the current value and fires the selection events. + This method triggers selection events. + + + + + + Determines if RadListElement is ready for data binding. This is true only when Items is empty or DataSource is different from null. + If RadListElement is not ready for binding an InvalidOperationException is thrown. + + + + + Determines if this list element is ready for unbound mode. + If it is not an invalid operation exception is thrown. + RadListElement is ready for unbound mode if it has not data source set. + + + + + Returns the value of the Value property of the RadListDataItem at the specified index. + + The index of the item from which to get the Value property. + + + + + Returns the index of the provided list data item. This index determines the items position in the data view. + + The index for which to return an index. + Returns the index of the provided item. + + + + Gets the text of the data item provided in the argument depending on the ItemTextComparisonMode property. + + The data item for which to get the Text value. + The text value of the provided data item. + + + + Determines whether the provided index is in the range [0, Items.Count) + + The index to validate. + Returns true if the index is inside [0, Items.Count) and false otherwise. + + + + Swaps two integers. + + + + + Disposes every item in the Items collection. + + + + + Converts the provided ListSortDirection to SortStyle. + + The ListSortDirection to be converted to SortStyle. + The converted SortStyle value. + + + + Sets the sort comparer. + + The comparer. + The direction. + + + + Sets the sort style to the specified value and fires the SortStyle changed event if the new value is different than the previous value. + + + + + + Sets the selection mode of this RadListElement to the provided value. + + The new selection mode. + + + + Gets property name by which items will be sorted when SortStyle is set. + If DisplayMember is an empty string, items will be sorted by their text, otherwise + they will be sorted according to the DisplayMember. + + Returns the property by which items will be sorted. + + + + Clamps the provided value parameter to be be in the closed range [min, max]. + + The left bound of the range. + The right bound of the range. + The value to be clamped to the range specified by the previous two parameters. + + + + This is a helper method which keeps track of the number of subscriptions to the CurrentPositionChanged event of the data layer. + + + + + This is a helper method which keeps track of the number of unsubscriptions from the CurrentPositionChanged event of the data layer. + + + + + This method is for testing purposes. It invokes the MultiExtended selection logic with the supplied parameters. + + The index to which the selection will span starting from SelectedIndex. + An enumeration indicating whether the input comes from the keyboard, the mouse or from code. + If this flag is true the selection logic will invoke MultiExtended as if the shift key was pressed. + If this flag is true the selection logic will invoke MultiExtended as if the control key was pressed. + + + + Returns the logical item associated with the top visible item if the layout is vertical and the left most item if the layout is horizontal. + + + + + + Gets a value indicating whether the oldSelectedIndex is reset to initial state. + The old selected index is in initial state only when the list control is newly + constructed and has not yet had any selected items, or when the data layer sends + a reset notification. This happens when the data source is changed. + + + + + Gets a value indicating whether the SelectedValue property is different after the selection last changed. + + + + + Gets or sets value indicating if the user can reorder items via drag and drop. + Always false when kinetic scrolling is enabled. + + + + + Gets or sets a value indicating whether alternating item color is enabled. + + + + + Gets or sets a value indidcating the alternating item color for odd items. + + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets a value indicating whether kinetic scrolling is enabled. + + + + + Gets or sets the offset of the items when they are displayed in a collapsible group. + + + + + Gets or sets the offset of the items when they are displayed in a non-collapsible group. + + + + + Gets or sets a value that indicates if this RadListElement will stop firing the ItemsChanging and ItemsChanged events. + + + + + Gets or sets a value that indicates whether text case will be taken into account when sorting. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + The default value of this property is 300 ms. + + + + + Gets or sets a value that determines whether the user can search for an item by typing characters when RadListElement is focused. + + + + + Gets or sets a value that determines whether the FindString() method searches via the text property + set by the user or by the text provided by the data binding logic, that is, by DisplayMember. + + + + + Gets or sets a Predicate that will be called for every data item in order to determine + if the item will be visible. + + + + + Gets or sets a filter expression that determines which items will be visible. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the FindString() method when searching for an item. + + + + + Gets or sets an object that implements IComparer and sorts the items according to its logic. + + + + + Gets or sets the active item. This property is meaningful only when SelectionMode is MultiSimple or MultiExtended with the Control key pressed. + + + + + Provides a readonly interface to the currently selected items. + + + + + Gets or sets a value that determines whether to stop the selection events from firing. These are SelectedIndexChanged, + SelectedIndexChanging and SelectedValueChanged. + + + + + Gets or sets the SelectionMode which determines selection behavior of RadListElement. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + Setting this property throws an InvalidOperationException if Items is not empty and the data source is null. + + + + + Gets or sets the position of the selection. + Setting this property will cause the SelectedIndexChanging and SelectedIndexChanged events to fire. + + + + + Gets or sets the selected logical list item. + Setting this property will cause the selection events to fire. + + + + + Gets or sets the currently selected value. Setting the SelectedValue to a value that is shared between many items causes the first item to be selected. + This property triggers the selection events. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This property can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets a string which will be used to get a description text string for each visual item. This property can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets a string which will be used to get a description text string for each visual item. This property can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets the item height for the items. This property is disregarded when AutoSizeItems is set to true. + + + + + Gets or sets the sort style. It can be Ascending, Descending or None. Sorting is performed according to the property specified by DisplayMember. + + + + + Gets or sets a value that determines whether text formatting is enabled for the visual items. + + + + + Gets or sets a format string that will be used for visual item formatting if FormattingEnabled is set to true. + + + + + Gets or sets an object that implements the IFormatProvider interface. This object is used when formatting items. The default object is + CultureInfo.CurrentCulture. + + + + + Gets or sets the scrolling mode. + + + + + Gets a boolean value that indicates whether the is a filter currently set either with the Filter or FilterExpression properties. + + + + + Gets or sets a value indicating whether the drop down list is read only. + + + true if the drop down list is read only; otherwise, false. + + + + + Fires after data binding operation has finished. + + 1 + + + + + + This event fires when the SelectedValue changes. This is will not always fire when the SelectedItem or SelectedIndex changes because the new item may have the same value. + + + + + This event fires when selected index changes. This always happens when the SelectedItem changes. + + + + + This event fires before SelectedIndexChanged and provides a means for cancelling the whole selection operation. + Someties this event will not fire since cancelling the change is not possible, for example when the DataSource is set to null. + + + + + This item fires for data item that is being created during data binding and fires before the ItemDataBound event. The event provides a means for changing the instance of the data item + to a custom data item. + + + + + This event fires after a data item has been created and bound. + + + + + This event fires while creating visual items. This happens on during initial layout and during resizing if the new size is larger and thus allowing more items to be visualized. + The event provides a means to create a custom visual item. + + + + + This event fires after the sorting style changes. + + + + + The visual item formatting fires whenever the state of a visible logical item changes and when scrolling. + + + + + This event fires whenever an item is added, removed, set or if the whole items collection was modified. + + + + + This event fires right before adding, removing or setting an item. This event will not fire if an item is added to a data source directly + because there is no way for RadListElement to be notified before the change. + + + + + This event fires whenever a RadProperty of a data item changes. This event is most often used to listen changes in Selected and Active properties of the data items. + + + + + This class is used to compare data items when sorting in ascending order. + + + + + This class is used to compare data items when sorting in descending order. + + + + + Raises the event. + + The action. + + + + Raises the event. + + The instance containing the event data. + + + + Determines whether the two text variables are equal + + The suggestion. + The pattern. + + true if the specified suggestion is matching; otherwise, false. + + + + + Determines whether the suggested text matches the pattern text + + The suggestion. + The pattern. + + true if [is exact suggestion] [the specified suggestion]; otherwise, false. + + + + + Suspends the event. + + + + + Resumes the event. + + + + + Performs text suggestion for concrete text pattern + + The pattern. + The start position. + The end position. + + + + Performs text suggestion for concrete text pattern + + The pattern. + The start position. + The end position. + if set to true [notify]. + + + + Performs text suggestion for concrete text pattern + + The pattern. + + + + Custom filtering predicated + + The item. + + + + + Custom filtering predicated. + + The item. + + + + + Sets the suggested text. + + The text. + The action. + + + + Gets the suggested text from + + The item. + if set to true [perform append]. + + + + + Gets the first fully visible item. + + + + + + Gets the last fully visible item. + + + + + + Gets the fully visible item. + + if set to true [first item]. + + + + + Gets the visual item at point. + + The location. + + + + + Finds by text + + The text. + + + + + Gets or sets the auto complete mode. + + + The auto complete mode. + + + + + Gets the suggested text. + + + + + Gets the text search criteria. + + + + + Gets a value indicating whether this text and suggested text are matched. + + + true if they are matched; otherwise, false. + + + + + Gets a value indicating whether the auto-complete mode is suggest mode. + + + true if the mode is suggest mode; otherwise, false. + + + + + Gets a value indicating whether the auto-complete mode is append mode. + + + true if the mode is append mode; otherwise, false. + + + + + Gets or sets the start position where the suggestion is performed + + + + + Gets or sets the end position where the suggestion is performed + + + + + Occurs when suggested text is changed + + + + + Represents a CheckedDropDown List. The RadCheckedDropDownList class is essentially a simple + wrapper for the RadDropDownListElement. The latter + may be included in other telerik controls. All UI and logic functionality is + implemented by the RadDropDownListElement class. + RadDropDownList act to transfer event to and from its + RadDropDownListElement instance. + + + + + Represents a combo box class. The RadDropDownList class is essentially a simple + wrapper for the RadDropDownListElement. The latter + may be included in other telerik controls. All UI and logic functionality is + implemented by the RadDropDownListElement class. + RadDropDownList act to transfer event to and from its + RadDropDownListElement instance. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the DropDownList box. + + + + + Selects all items if the SelectionMode allows it. + + Selecting all items is not a valid operation in the current selection mode. SelectionMode = + this.selectionMode.ToString() + . + + + + Raises the event. + + + An instance that contains the event data. + + + + + + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from zero based index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index of the found item or -1 if no item is found. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Forces re-evaluation of the current data source (if any). + + + + + Displays the popup on the screen. + + + + + HIde the popup from the screen. + + + + + Call BeginUpdate at the begining of a block that makes many modifications in the GUI + + + + + + Call EndUpdate at the end of a block that makes many modifications in the GUI + + + + + + Defers the refresh. + + + + + + Gets or sets a value indicating whether alternating item color is enabled. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a value indicating whether the user can give the focus to this control + using the TAB key. + /// + true if the user can give the focus to the control using the TAB key;otherwise, false. The default is true. + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets that RadListDataItem Image will be displayd in Editor Element when DropDownStyle is set to DropDownStyleList + \ + + + + Gets a reference to the drop down form associated with this RadDropDownList. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the RadDropDownList. + + + + + Gets or sets a value that indicates whether items will be sized according to + their content. If this property is true the user can set the Height property of each + individual RadListDataItem in the Items collection in order to override the automatic + sizing. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + + + + Gets or sets a value of the enumeration. + This value determines how the pop-up form can be resized: vertically, horizontally or both. + + + + + Gets or sets a value indicating whether string comparisons are case-sensitive. + + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + + Rotate items on double click in the edit box part + + + + + + Gets or sets an object that implements the IFormatProvider interface. This object is used when formatting items. The default object is + CultureInfo.CurrentCulture. + + + + + + Gets or sets a format string that will be used for visual item formatting if FormattingEnabled is set to true. + + + + + + Gets or sets the sort style. It can be Ascending, Descending or None. Sorting is performed according to the property specified by DisplayMember. + + + + + Gets or sets a value that determines whether text formatting is enabled for the visual items. + + + + + + /// + Gets or sets the easing type of the animation. + + + + + Gets or sets a value indicating whether the RadDropDownList will be animated when displaying. + + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + + + Gets or sets the height in pixels of the drop-down portion of the RadDropDownList. + + + + + Gets or sets a value specifying the style of the DropDownList + + + + + DefaultItems count in drop-down portion of the RadDropDownList. + + + + + Gets or sets the drop down maximum size. + + + + Represent the DropDownListElement element + + + + + Represent the List element + + + + + Provides a readonly interface to the currently selected items. + + + + + Gets or sets the currently selected value. Setting the SelectedValue to a value that is shared between many items causes the first item to be selected. + This property triggers the selection events. + + + + + Gets or sets the selected logical list item. + Setting this property will cause the selection events to fire. + + + + + Gets or sets the position of the selection. + Setting this property will cause the SelectedIndexChanging and SelectedIndexChanged events to fire. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets a property name which will be used to extract a text for description text from the data items. The value of the property with + this name will be available via the Value property of every RadListDataItem in the Items collection. + + + + + Enable or disable Mouse Wheel Scrolling. + + + + + Indicating whether the Popup part of the control + are displayed. + + + + + Gets or sets a predicate which filters which items can be visible. + + + + + Gets or sets a filter expression which determines which items will be visible. + + + + + Gets a value indicating whether there is a Filter or FilterExpression set. + + + + + Gets or sets a value indicating whether the drop down list is read only. + + + true if the drop down list is read only; otherwise, false. + + + + + Occurs when the Text property value changes. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + Gets or sets the text that is selected in the editable portion of the DropDownList. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets a value indicating whether the control causes validation to be + performed on any controls that require validation when it receives focus. + + + true if the control causes validation to be performed on any controls requiring + validation when it receives focus; otherwise, false. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the FindString() method when searching for an item. + + + + + Gets or sets an object that implements IComparer which is used when sorting items. + + + + + Fires after data binding operation has finished. + + 1 + + + + + + Occurs when a key is pressed while the control has focus. + + 1 + + + + Occurs when a key is released while the control has focus. + + 1 + + + + Occurs when a key is pressed while the control has focus. + + + + + Fires when the popup-form is opened. + + + + + Fires when the popup-form is about to be opened. + + + + + Fires when the popup is about to be closed. + + + + + Fires when the popup is closed. + + + + + This event fires when the selected index property changes. + + + + + This event fires before SelectedIndex changes. This event allows the operation to be cancelled. + + + + + This event fires only if the SelectedValue has really changed. For example it will not fire if the previously selected item + has the same value as the newly selected item. + + + + + This event fires before a RadListDataItem is data bound. This happens + when the DataSource property is assigned and the event fires for every item provided by the data source. + This event allows a custom RadListDataItem to be provided by the user. + + + + + This event fires after a RadListDataItem is data bound. This happens + when the DataSource property is assigned and the event is fired for every item provided by the data source. + + + + + This event allows the user to create custom visual items. + It is fired initially for all the visible items and when the control is resized afterwards. + + + + + This event fires when the SortStyle property changes. + + + + + The VisualItemFormatting event fires whenever a property of a visible data item changes + and whenever a visual item is associated with a new data item. During scrolling for example. + + + + + This property is not applicable for RadCheckedDropDownList + + + + + This property is not applicable for RadCheckedDropDownList + + + + + Show or Hide the CheckAll item + + + + + Gets or sets a value indicating whether the hosted textbox is multiline. + + + true if multiline; otherwise, false. + + + + + This property is not applicable for RadCheckedDropDownList. + + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + Gets or sets a value specifying the style of the DropDownList + This property is not applicable for RadCheckedDropDownList + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + Gets or sets a value indicating whether the drop down list is read only. + + + true if the drop down list is read only; otherwise, false. + + + + + Gets or sets a value indicating whether the user can give the focus to this control + using the TAB key. + + true if the user can give the focus to the control using the TAB key;otherwise, false. The default is true. + + + + Gets or sets a value indicating whether items checked state is synchronized with the text in the editable area. + + + + + Gets the associated auto complete text box element. + + + + + Occurs when text is validating as token + + + + + /// Occurs when text block is formatting. + + + + + Occurs when an instance of is created + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a CheckAllItem is about to be checked. Cancelable. + + + + + Occurs when a CheckAllItem is checked. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the combo box. + + + + + TextBox Property + + + + + Gets or sets the text that is selected in the editable portion of the ComboBox. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the combo box. + + + + + Gets or sets the text that is selected in the editable portion of the ComboBox. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Represents the base for all editor elements. Provides the default visual states such as IsFocused and Disabled. + + + + + This interface supports the editor infrastructure of the RadGridView. + + + + + Occurs when the editor is validating the value. + + + + + Occurs when the editor is finished validating the value. + + + + + Occurs when the editor value is being changed. Cancelable event. + + + + + Occurs when the value of the editor changes. + + + + + Occurs when internally the editor detects an error or when the Validating event fails. + + + + + Gets the VisualElement that must receive the focus, when the editor is invoked. + + + + + + Initializes the provider. + + + + + Initializes the provider. + + value to be pre-loaded inside the initialized editor. + + + + Initializes the provider. + + the owner + value to be pre-loaded inside the initialized editor. + + + + Occurs when internally the editor detects an error or when the Validating event fails. + + + + + Gets whether the editor is instantiated on demand or is always availabele. + Example: GridBooleanCellElement and GridViewBooleanColumn. + + + + + Closes the popup if it is open, or shows the popup if it is closed. + + + + + Closes the popup with a RadPopupCloseReason.CloseCalled reason. + + + + + Closes the popup with the provided reason for closing. + + the reason for the close operation as specified through RadPopupCloseReason enumeration. + + + + Displays the popup on the screen. + + + + + Used to initialize the size of the popup + when it is initially opened and the + element tree is loaded. + + + + + Performs the core popup display logic. + + The popup form that is about to be displayed. + + + + Gets the screen coordinated where the popup should be displayed. + + + + + + + Gets the display size for the popup. + + The popup which size should beretrieved. + True to perform explicit measure, false otherwise. + + + + + Applies any Min/Max size restrictions to the popup form. + + + + + + Syncronizes the theme of the editor itself with the popup that is about to be displayed. + + + + + + Determines whether the popup form may be displayed. + + + + + + Creates the popup instance. You have to override this method in order to provide a popup + that is specialized by its content. Example: In a combo box you have to override and provide a specialized class + that contains and handles the listbox element. + + The popup instance. + + + + Gets a valid instance of the popup, that is properly + initialized to work with the PopupEditorBaseElement. + + The popup instance. + + + + Gets the popup form + + + + + + + + + + + + + + + + + + + + + + + + + Main entry point for updating DropDownList + + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the ComboBox. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + AutoCompleteValueMember Property + + + + + AutoCompleteDataMember Property + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + + + + + Popup Property + + + + + DefaultItemsCountInDropDown Property + + + + + The input element hosted in the popup form. In the case of + DropDownList the control is a ListElement. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the combo box. + + + + + Selects all items if the SelectionMode allows it. + + Selecting all items is not a valid operation in the current selection mode. SelectionMode = + this.selectionMode.ToString() + . + + + + Defers the refresh. + + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index of the found item or -1 if no item is found. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default FindStringComparer uses the System.String.StartsWith() method. + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + main update entry point + + contains notification context + + + + This method is used internally! + + + + + Creates the auto complete append handler. + + + + + + Creates the auto complete suggest helper. + + + + + + Gets or sets a value indicating whether the SelectedIndex is synchronized with the text in the editable area. + + + + + Get or set the text in Editable area + + + + + Gets a value that indicates if the popup associated with this RadDropDownListElement is open. + + + + + Represent list of all AutoComplete Helpers + + + + + Gets or sets that RadListDataItem Image will be displayd in Editor Element when DropDownStyle is set to DropDownStyleList + + + + + Gets or sets a Predicate that will be called for every data item in order to determine + if the item will be visible. + + + + + Gets or sets a filter expression that determines which items will be visible. + + + + + Gets a value indicating whether there is a Filter or FilterExpression set. + + + + + EditableElement Property + + + + + Gets or sets a value that indicates whether items will be sized according to + their content. If this property is true the user can set the Height property of each + individual RadListDataItem in the Items collection in order to override the automatic + sizing. + + + + + Enable or disable Mouse Wheel Scrolling. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + Gets or sets the text that is selected in the editable portion of the DropDownList. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + Gets or sets a value specifying the style of the combo box. + + + + + + + + + + + + + + Gets or sets a value that determines whether to stop the selection events from firing. These are SelectedIndexChanged, + SelectedIndexChanging and SelectedValueChanged. + + + + + For information on this property please refer to the MSDN. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets the item height for the items. + + + + + TextBox Property + + + + + ArrowButton Property + + + + + Gets or sets a value indicating whether string comparisons are case-sensitive. + + + + + Rotate items on double click in the edit box part + + + + + Gets or sets the type of the DropDown animation. + + + + + Gets or sets a value indicating whether the RadDropDownList will be animated when displaying. + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + AutoCompleteSuggest Property + + + + + AutoCompleteAppend Property + + + + + Get or sets the minimum width of the arrow button element. + + + + + Gets or sets the color of prompt text that is displayed when the TextBox contains no text + + + + + Gets or sets the drop down minimum width. + + + + + + + + This property is not applicable for RadCheckedDropDownList + + + + + This property is not applicable for RadCheckedDropDownList + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + Gets or sets a property name which will be used to extract a text for description text from the data items. The value of the property with + this name will be available via the Value property of every RadListDataItem in the Items collection. + + + + + Gets or sets a value indicating whether items checked state is synchronized with the text in the editable area. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + + + + + Gets or sets a value indicating whether the drop down list is read only. + + + true if the drop down list is read only; otherwise, false. + + + + + Indexes the of. + + The item. + + + + + Indexes the of. + + The text. + + + + + Determines whether [contains] [the specified text]. + + The text. + + true if [contains] [the specified text]; otherwise, false. + + + + + Displays a flat collection of labeled items with checkbox, each represented by a ListViewDataItem. + + + + + Displays a flat collection of labeled items, each represented by a ListViewDataItem. + + + + + Creates an instance of . + + + + + Executed on EndInit() method. + + The sender. + The event args. + + + + Suspend any item change notifications until is called. + + + + + Resumes the item change notifications. + + + + + Finds an item with the specified key. + + The key of the searched item. + + + + + Finds an item with the specified key. + + The key of the searched item. + Indicates if the search should check only visible items. + + + + + Selects a set of items. + + The items to select. + + + + Begins an edit operation over the currently selected item. + + [true] if success, [false] otherwise + + + + Ends the current edit operations if such. Saves the changes. + + [true] if success, [false] otherwise + + + + Ends the current edit operations if such. Discards the changes. + + [true] if success, [false] otherwise + + + + Expands all the groups in the control. + + + + + Collapses all the groups in the control. + + + + + Checks the selected items. + + + + + Unchecks the selected items. + + + + + Checks all of the items. + + + + + Unchecks all of the items. + + + + + Fires when a group has been expanded. + + + + + Fires when a group is about to expand. Cancelable. + + + + + Occurs when the BindingContext has changed. + + + + + Occurs when the process of binding to a data source has finished + + + + + Occurs when a ListViewDataItem is about to be selected. Cancelable. + + + + + Occurs when the content of the SelectedItems collection has changed. + + + + + Occurs when the selected item has changed. + + + + + Occurs when the selected item has changed. + + + + + Occurs when the ViewType of RadListView is changed. + + + + + Occurs when the ViewType of RadListView is about to change. Cancelable. + + + + + Occurs when the user presses a mouse button over a ListViewDataItem. + + + + + Occurs when the user presses a mouse button over a ListViewDataItem. + + + + + Occurs when the user moves the mouse over a ListViewDataItem. + + + + + Occurs when the user hovers a ListViewDataItem. + + + + + Occurs when the mouse pointer enters a ListViewDataItem. + + + + + Occurs when the mouse pointer leaves a ListViewDataItem. + + + + + Occurs when the user clicks a ListViewDataItem. + + + + + Occurs when the user double-clicks a ListViewDataItem. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Occurs when a ListViewDataItem changes its state and needs to be formatted. + + + + + Occurs when a ListViewDataItem needs to be created. + + + + + Occurs when a BaseListViewVisualItem needs to be created; + + + + + Occurs when a DetailsView cell needs to be formatted. + + + + + Occurs when a data-bound item is being attached to a ListViewDataItem. + + + + + Occurs when the CurrentItem property is changed. + + + + + Occurs when the CurrentItem property is about to change. Cancelable. + + + + + Occurs when an editor is required. + + + + + Occurs when an edit operation is about to begin. Cancelable. + + + + + Occurs when an editor is initialized. + + + + + Occurs when a ListViewDataItem is edited. + + + + + Fires when a validation error occurs. + + + + + Occurs when an edit operation needs to be validated. + + + + + Occurs when the value of a ListViewDataItem is changed. + + + + + Occurs when the value of a ListViewDataItem is about to change. Cancelable. + + + + + Occurs when a needs to be created. + + + + + Occurs when a needs to be created. + + + + + Occurs when an item is about to be removed using the Delete key. Cancelable. + + + + + Occurs when an item is removed using the Delete key. + + + + + Gets or sets a value indicating whether column names which differ only in the casing are allowed. + + + + + Gets or sets the position of the checkboxes when ShowCheckBoxes is true. + + + + + Gets or sets the alignment of the checkboxes within the item when ShowCheckBoxes is true. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a value indicating whether the last added item in the RadListView DataSource will be selected by the control. + + + + + Gets or sets the display state of the horizontal scrollbar. + + + + + Gets or sets the display state of the vertical scrollbar. + + + + + Gets or sets a value indicating whether the checkboxes should be in ThreeState mode. + + + + + Gets or sets value indicating if the user can reorder items via drag and drop. + + + + + Gets or sets a value indicating whether grid lines should be shown in DetailsView. + + + + + Gets or sets a value indicating whether items can be selected with mouse dragging. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. Always false when lasso selection is enabled. + + + + + Gets or sets a value indicating whether items should react on mouse hover. + + + + + Gets or sets a value indicating whether the items should be sorted when clicking on header cells. + + + + + Gets or sets the default item size. + + + + + Gets or sets the default item size. + + + + + Gets or sets the indent of the items when they are displayed in a group. + + + + + Gets or sets the space between the items. + + + + + Gets a collection of filter descriptors by which you can apply filter rules to the items. + + + + + Gets or sets the filter predicate used for filtering operation. + + The filter. + + + + Gets a value indicating whether the control is in bound mode. + + + + + Gets a collection containing the groups of the RadListView. + + + + + Gets or sets the value member. + + + + + Gets or sets the display member. + + + + + Gets or sets the checked member. + + + + + Gets or sets a value indicating whether sorting is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets or sets a value indicating whether grouping is enabled. + + + + + Gets or sets a value indicating whether custom grouping is enabled. + + + + + Gets a collection of SortDescriptor which are used to define sorting rules over the + ListViewDataItemCollection. + + + + + Gets a collection of GroupDescriptor which are used to define grouping rules over the + ListViewDataItemCollection. + + + + + Gets or sets the data source of a RadListView. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets the selected item. + + + + + Gets or sets the index of the selected item. + + + + + Gets or sets the current item. + + + + + Gets or sets the current column in Details View. + + + + + Indicates whether there is an active editor. + + + + + Gets or sets a collection of ListViewDetailColumn object which represent the columns in DetailsView. + + + + + Gets or sets a collection of ListViewDataItem object which represent the items in RadListView. + + + + + Gets or sets a value indicating whether the column headers should be drawn. + + + + + Gets or sets a value indicating whether the items should be shown in groups. + + + + + Gets a collection containing the selected items. + + + + + Gets a collection containing the checked items. + + + + + Gets or sets value indicating whether checkboxes should be shown. + + + + + Gets or sets value indicating if the user can resize the columns. + + + + + Gets or sets value indicating if the user can reorder columns via drag and drop. + + + + + Gets or sets a value indicating whether the full row should be selected. + + + + + Gets or sets a value indicating whether the items can have different width. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Gets or sets value indicating whether multi selection is enabled. + + + + + Gets or sets value indicating whether editing is enabled. + + + + + Gets or sets value indicating whether the user can remove items with the Delete key. + + + + + Gets the currently active editor. + + + + + Gets or sets the type of the view. + + + + + Gets the of the control. + + + + + Gets or sets the height of the header in Details View. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + + + + + Gets or sets a value that determines whether the user can search for an item by typing characters when RadListView is focused. + + + + + Gets or sets the string comparer used by the keyboard navigation functionality. + + + + + Gets or sets a value indicating whether the item's check state changes whenever the item is clicked. + + + + + RadListView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadListView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Gets or sets value indicating whether checkboxes should be shown. + + + + + Gets or sets value indicating whether editing is enabled. + + + + + Gets or sets a value indicating whether the item's check state changes whenever the item is clicked. + + + + + Returns a flag indicating whether the sizing element is at the bottom of the window. + If true, the size of the popup should increase. If false, the size should decrease. + + + + + + Gets or sets a boolean value that + determines whether the SizeGripItem + can resize the hosting control. + + + + + Base interface for providers. + + The type used to specialize the provider implementation. + + + + Gets IEnumerable<T> for items that match the conditions defined by the specified predicate. + + The Predicate<T> delegate that defines the conditions of the item to search for. + IEnumerable<T> for items that match the conditions defined by the specified predicate, if found; + + + + Inserts an item of type T. + + The item of type T to insert. + + + + Updates he first occurrence of a specific item in the data store. + + The item of type T to update. + Name of the property which value changed. + Null or an empty string if all properties should be updated. + + + + Removes the first occurrence of a specific item from the data store. + + The item of type T to delete. + + + + The ItemsChanged event is raised by the provider to inform all listeners that the items in the data store have changed. + + + + + The PositionChanged event is raised by the provider to inform all listeners that the current position in data items list has changed. + + + + + Gets or sets the current position in the list of data items. + + + + + Gets or sets a data store mapping to the provider. + + + + + Associates a source properties collection with the corresponding properties collection exposed by the scheduler events. + It is used in common by all RadScheduler data providers. + Contains a collection of SchedulerMapping objects, and is implemented by the + + + + + Searches for a SchedulerMapping instance that binds a property of an item from the data store to + a property of an item from RadScheduler. The RadScheduler items are events, resources, etc. + + Property name of an item in RadScheduler. + The first element that matches the property name, if found. + + + + Searches for a SchedulerMapping instance that binds a property of an item from the data store to + a property of an item from RadScheduler. The RadScheduler items are events, resources, etc. + + Property name of an item in the data store. + The first element that matches the property name, if found. + + + + Represents the method that will handle the type conversion between the values of corresponding properties. + + The value to be converted. + The converter applied. + The converted value. + + + + Contains information about a list change event. + + + + + + Initializes a new instance of the class. + + Type of the list change. + + + + Initializes a new instance of the class. + + Type of the list change. + The new item. + The new index. + + + + Initializes a new instance of the class. + + Type of the list change. + The changed item. + Name of the property. + + + + Initializes a new instance of the class. + + Type of the list change. + The new item. + The old item. + + + + Initializes a new instance of the class. + + Type of the list change. + The new items. + + + + Initializes a new instance of the class. + + Type of the list change. + The changed items. + Name of the property. + + + + Initializes a new instance of the class. + + Type of the list change. + The new items. + The old items. + + + + Gets the type of the list change. + + The type of the list change. + + + + Gets the new items. + + The new items. + + + + Gets the old items. + + The old items. + + + + Gets the name of the property. + + The name of the property. + + + + Represents the simple binding between the property of an item from the data store and + the property of an item from RadScheduler. The RadScheduler items are events, resources, etc. + + + + + Initializes a new instance of the SchedulerMapping class that simple-binds the + indicated property of an item from RadScheduler to the specified item from the data store. + + Property name of an item in RadScheduler. + Property name of an item in the data store. + + + + The callback that converts the given value object from the data store to the specified type of the RadScheduler corresponding item. + + + + + The callback that converts the given value object from a RadScheduler item to the specified type of the data store corresponding item. + + + + + Gets or sets the RadScheduler item property name that is mapped. + + + + + Gets or sets the data store item property name that is mapped. + + + + + Base class for all generic RadDock objects - such as Services, Settings, etc. + + + + + Forces object clean-up and resource release. + + + + + Performs the actual dispose logic. + + True to notify that managed resources should also be disposed. + + + + Disposes any managed resources associated with this object. + + + + + Disposes any unmanaged resources associated with this instance. + + + + + Raises the PropertyChanging notification. + + + True to indicate that the change is accepted, false otherwise. + + + + Raises the PropertyChanged event. + + + + + + Determines whether the property with the specified name needs serialization. + + + + + + + Notifies that the object is disposed. + + + + + + + + + + Represents the action button element + + + + + Represents a button element. The button element could be placed in each control's + Items collection. It encapsulates all the necessary logic related to the user + interaction and UI. The RadButton class is a simple + wrapper for the RadButtonElement class. The RadButton + acts to transfer events to and from its corresponding RadButtonElement instance. + The RadButtonElement which is essentially the RadButton control may be nested in + other telerik controls. + + + + + Represents a button item. + + + + Initializes a new instance of the RadButtonItem class. + + + + + Initializes a new instance of the RadButtonItem class and sets it's Text property to + the provided string. + + + + + + Initializes a new instance of the RadButtonItem class, sets it's Text and Image + properties to the provided string and Image. + + + + + + + Gets or sets the image that is displayed on a button element. + + + + + Gets or sets the image list index value of the image displayed on the button control. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the position of text and image relative to each other. + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + Specifies the options for display of image and text primitives in the element. + + + + + Gets a value indicating whether the button item is in the pressed state. + + + + + Determines if this button is the default button for the form it is on. + + + + + Determines whether the Image value of the current item is shared (reused by ither items). + This flag is true by default. If it is set to false, then the item itselft will dispose the Image upon its disposal. + + + + + Initializes a new instance of the RadButtonElement class. + + + + + + + + + + + + + + + + + Gets the FillPrimitive element that is responsible for painting of the background of the control + + + + + Gets the BorderPrimitive element that is responsible for painting of the border of the control + + + + + Gets the TextPrimitive element that is responsible for painting of the text of the control + + + + + Gets a reference to the ImagePrimitive of the RadButtonElement. + + + + + Gets a reference to the FocusPrimitive of the RadButtonElement. + + + + + Gets a reference to the ImageAndTextLayoutPanel of the RadButtonElement. + + + + + Gets the large image that is displayed on a button element. + + + + + Gets the large image list index value of the image displayed on the button control. + + + + + Gets the large key accessor for the image in the ImageList. + + + + + Gets or sets the large image that is displayed on a button element. + + + + + Gets or sets the small image list index value of the image displayed on the button control. + + + + + Gets or sets the small key accessor for the image in the ImageList. + + + + + Specifies whether the button should use the original image list or the small image list. + + + + + Angle of rotation for the button image. + Unlike AngleTransform the property ImagePrimitiveAngleTransform rotates the image only. + AngleTransform rotates the whole button + + + + + Includes the trailing space at the end of each line. By default the boundary rectangle returned by the Overload:System.Drawing.Graphics.MeasureString method excludes the space at the end of each line. Set this flag to include that space in measurement. + + + + + Gets or sets a value indicating whether the border is shown. + + + + + This property is used internally! + + + + + Values used by RadDropDownButton, to determine the mouse position relative to the action or arrow button part. + + + + + This class represents the popup of the + control. + + + + + Represents a drop down menu used in radComboBox and radMenu. + + + + + Represents a base class for all popup-forms used throughout the suite. + + + + + An interface for all Popup-forms used in RadControls for WinForms. + + + + + Shows the IPopupControl at the specific location. + + An instance of the Rectangle struct + which represents a portion of the screen which the IPopupControl + is aligned to. + + + + Closes the IPopupControl. + + + + + Tries to close the . + + An instance of the class + containing information about the close request. + + + + This method determines whether the IPopupControl can be closed. + Used in the PopupManager class to prevent the IPopupControl from closing + in specific occasions. + + The reason why the IPopupControl is closed. + True if the IPopupControl can be closed, otherwise false. + + + + Executes when a key is pressed. + + An instance of the + struct which contains the key information. + A boolean value that determines whether the + IPopupControl processes the message. + + + + Callback for handling the WM_MOUSEWHEEL message. + + + + True if the message is processed, false otherwise. + + + + Gets a instance that represents + a collection of logical children of this IPopupControl. + The OwnerPopup property of these children would point + to this IPopupControl instance. + + + + + Gets the owner IPopupControl of this IPopupControl. + + + + + Gets the Bounds rectangle of the IPopupControl. + + + + + Gets the owner element of the IPopupControl. + + + + + Creates an instance of the RadPopupFormBase class. + + + + + Shows the popup based on the value + set to its Location property. + + + + + Shows the popup at the location passed + as a parameter. The location is in screen coordinates + + An instance of the struct that represents the location. + + + + Shows the control based on the screen rectangle + of a given control. + + The control which defines the location of the popup. + + + + Closes the popup. + + + + + Fires when the popup is opened. + + + + + Fires when the popup is about to open. + + A CancelEventArgs object that contains information about the event + + + + Fires when the popup is closed. + + A RadPopupClosedEventArgs instance + that contains information about what caused the popup to close. + + + + Fires when the popup is about to close. + + A RadPopupClosingEventArgs instance that + contains information about the event + + + + Updates the Aero effects support upon property change. + + + + + Updates the location of the popup based on the + alignment rectangle and the current alignment settings. + You can adjust the alignment settings by using the + VerticalPopupAlignment and HorizontalPopupAlignment properties. + + The alignment rectangle based on which the popup is positioned. + + + + Updates the location of the popup based on the last used + alignment rectangle and the current alignment settings. + You can adjust the alignment settings by using the + VerticalPopupAlignment and HorizontalPopupAlignment properties. + + + + + This method returns a point which defines the position of the popup. + By default, aligns the popup based on the + and the current alignment settings. You can adjust the alignment settings + by settin the HorizontalPopupAlignment and VerticalPopupAlignment properties. + + The alignment rectangle based on which + the popup is aligned. + An instance of the struct + that represents the calculated position of the popup. + + + + This method returns a point which defines the position of the popup. + By default, aligns the popup based on the + and the current alignment settings. You can adjust the alignment settings + by settin the HorizontalPopupAlignment and VerticalPopupAlignment properties. + + An instance of the class + that represents the screen where the popup is about to be positioned. + The alignment rectangle based on which + the popup is aligned. + An instance of the struct + that represents the calculated position of the popup. + + + + Gets the screen on which the popup will be displayed. + + The alignment rectangle for the popup. + An instance of the class that represents + the screen where the popup will be displayed. + + + + Gets an instance of the class + that represents the screen where the popup is displayed. + + + + + Gets a which represents the available bounds for the popup to show. + By default this method returns the bounds of the screen. + + An instance of the class that represents + the active screen where the popup is about to be shown. + An instance of the struct that represents the + available bounds for the popup based on the active screen. + + + + Calculates the horizontal position of the popup + according to the current + and . + + The screen in which the popup will be aligned. + The alignment rectangle of the popup. + The calculated location that will be corrected if needed. + An instance of the struct that represents the corrected location of the popup + + + + Calculates the vertical position of the popup + according to the current + and . + + The screen in which the popup will be aligned. + The alignment rectangle of the popup. + The calculated location that will be corrected if needed. + An integer that represents the corrected vertical location of the popup + + + + Calculates the horizontal popup location based on the . + This method uses the HorizontalPopupAlignment property setting. + + An instance of the struct + that represents the alignment rectangle. + Returns an integer that represents the X coordinate of the popup. + + + + Calculates the vertical popup location based on the . + This method uses the VerticalPopupAlignment property setting. + + An instance of the struct + that represents the alignment rectangle. + Returns an integer that represents the Y coordinate of the popup. + + + + Fires when a drop-down animation is about to begin. + + + + + This method is executed when the popup needs to receive manual horizontal alignment. + This can happen when there is no reasonable possibility for the + alignment routines to define a proper horizontal position for the popup. + In this way the developer is enabled to define a horizontal position + according to their preferences. + + The proposed alignment rectangle with screen coordinates.. + The proposed coordinates. + The proposed available space for the popup.. + An instance of the struct that represents the location of the popup. + + + + Checks whether the current alignment rectangle intersects with the popup's bounds + according to a given popup location. + + An instance of the struct that represents + the current alignment rectangle. + An instance of the struct that represents the proposed popup location. + An instance of the struct that represents the available bounds on the screen. + An instance of the struct that represents the result of the operation. + + + + This method is executed when the popup needs to receive manual vertical alignment. + This can happen when there is no reasonable possibility for the + alignment routines to define a proper vertical position for the popup. + In this way the developer is enabled to define a vertical position + according to their preferences. + + The proposed alignment rectangle with screen coordinates.. + The proposed coordinates. + The proposed available space for the popup.. + An instance of the struct that represents the location of the popup. + + + + Shows the popup. + + The alignment rectangle. + + + + Closes the popup. + + The info. + + + + Called when the popup is closing. + + The info. + + + + + Called when popup is closed. + + The info. + + + + Closes the IPopupControl. + + + + + + This method determines whether the IPopupControl can be closed. + Used in the PopupManager class to prevent the IPopupControl from closing + in specific occasions. + + The reason why the IPopupControl is closed. + + True if the IPopupControl can be closed, otherwise false. + + + + + Executes when a key is pressed. + + An instance of the + struct which contains the key information. + + A boolean value that determines whether the + IPopupControl processes the message. + + + + + Determines whether the MouseWheel event is handled by the popup. + + + + + + + + Raises the MouseWheel event. + + + + + + Gets or sets the direction of the drop-down + animation. + + + + + Gets or sets the easing type for the drop down animations. + + + + + Gets or sets the count of the frames of the drop down animation. + + + + + Gets or sets a bool value determining + whether popup animation is enabled. + + + + + Gets or sets a value determining what animation type to use when showing the popup. + + + + + Gets or sets the frame count + for the fade animation. + + + + + Gets or sets the time interval for each fade animation frame. + + + + + Gets or sets a float value that determines the opacity of the popup. + This property accepts values from 0.0 to 1.0. For example, + to make the popup semi-transparent, set the property to 0.5. + + + + + Gets or sets a boolean value which determines + whether the popup drops a shadow. + + + + + Enables the support for Windows Vista DWM effects. + + + + + Gets or sets a value indicating the type + of the fade animation. + + + + + Gets or sets a value from the enum + which defines how the size of the popup is fit to the currently active screen. + + + + + Gets or sets a value from the enum + which determines what part of the screen is considered when positioning the popup. + + + + + Gets or sets a value from the which defines how the popup will be positioned according to the + alignment rectangle when its location cannot be adjusted so that it meets all popup alignment and alignment correction mode requirements. + + + + + Defines how the popup will be horizontally aligned in case of lack of + screen space. + + + + + Defines how the popup will be vertically aligned in case of lack of + screen space. + + + + + Gets or sets a value that defines the vertical alignment + of the popup based on the alignment rectangle passed + in the ShowPopup method. + + + + + Gets or sets a value that defines the horizontal alignment + of the popup based on the alignment rectangle passed + in the ShowPopup method. + + + + + Gets the RadElement that owns this popup. + + + + + + + + + + Gets a instance that represents + a collection of logical children of this IPopupControl. + The OwnerPopup property of these children would point + to this IPopupControl instance. + + + + + Occurs when the mouse pointer is moved over the element. + + + + + Fires when a fade animation has finished. The + event args contain information about the type of the animation. + + + + + Fires when the popup-form is about to be opened. + + + + + Fires when the popup-form is opened. + + + + + Fires when the popup is about to be closed. + + + + + Fires when the popup is closed. + + + + + Creates an instance of the PopupAnimationProperties class. + This class encapsulates a WindowAnimationEngine instance + and exposes its properties. + + The WindowAnimationEngine instance. + + + + Gets or sets the direction of the drop-down animation. + + + + + Gets or sets the count of the frames of the animation. + + + + + Gets or sets the easing type of the animation. + + + + + Gets an integer value representing the animation + step. + + + + + Gets the + instance associated with the AnimationProperties instance. + + + + + Gets a boolean value indicating whether the popup is visible. + + + + + Gets menu items collection + + + + + Get/Set minimum value allowed for size + + + + + Get/Set maximum value allowed for size + + + + + Initializes a new instance of the RadDropDownMenu class + + + + + Creates an instance of the RadDropDownMenu class. + + An instance of the RadElement class + that represents the owner of this drop down menu + + + + Displays the RadDropDownMenu in its default position. + + + + + Displays the RadDropDownMenu relative to the specified screen location. + + The horizontal screen coordinate, in pixels. + The vertical screen coordinate, in pixels. + + + + Displays the RadDropDownMenu relative to the specified screen location. + + The horizontal and vertical location of the screen's upper-left corner, in pixels. + + + + Positions the ToolStripDropDown relative to the specified screen location and with the specified direction. + + The horizontal and vertical location of the screen's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the RadDropDownMenu relative to the specified control location. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal coordinate relative to the control, in pixels. + The vertical coordinate relative to the control, in pixels. + + + + Positions the RadDropDownMenu relative to the specified control location. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the reference control's upper-left corner, in pixels. + + + + Positions the RadDropDownMenu relative to the specified control location and with the specified direction. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the reference control's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the RadDropDownMenu relative to the specified RadItem location. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal coordinate relative to the control, in pixels. + The vertical coordinate relative to the control, in pixels. + + + + Positions the RadDropDownMenu relative to the specified RadItem location. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the RadItem's upper-left corner, in pixels. + + + + Positions the RadDropDownMenu relative to the specified RadItem location and with the specified direction. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the RadItem's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the RadDropDownMenu relative to the specified RadItem location and + with specified direction and offset according to the owner. + + The RadItem that is the reference point for the RadDropDownMenu position. + Specifies the offset from the owner in pixels. + One of the RadDirection values. + + + + Gets the item that has been clicked. This property is valid when the drop-down is closed by an item click. + + + + + Gets or sets the popup element. + + + + + Indicates whether the DropDown contains one or two cloumns of items. + + + + + Gets or sets menu header column text + + + + + Gets or sets menu header column image + + + + + Represents a combo box element. + + + + + Initializes a new instance of the RadComboBoxElement class. + + + + + Gets the text of the specified item. + + + + + Raises the CaseSensitiveChanged event. + + + + + Raises the DropDownStyleChanged event. + + + + + Raises the SelectedIndexChanged event. + + + + + Raises the SelectedValueChanged event. + + + + + Raises the SortedChanged event. + + + + + Processes the Enter key + + An instance of + + + + Processes the Escape key + + An instance of + true if the event is processed, false otherwise + + + + Finds the first item in the combo box that starts with the specified string. + + The String to search for. + The first RadCOmboBoxItem found; returns null if no match is found. + + + + Finds the first item in the combo box that matches the specified string. + + The String to search for. + The first item found; returns null if no match is found. + + + + Finds the index of the item with the specified text. The passed argument + is compared with the DisplayMember value for each item in the items collection. + + The text of the item which index is to be acquired. + The index of the item if found, otherwise -1. + + + + Call BeginUpdate at the begining of a block that makes many modifications in the GUI + + + + + + Call BeginUpdate at the end of a block that makes many modifications in the GUI + + + + + + Call the GetItemHeight member function to retrieve the height of list items in a combo box. + + Specifies the item of the combo box whose height is to be retrieved. + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the combo box. + + + + + Gets a layout panel that contains editor and arrow panel + + + + + LimitToList Property + + + + + Gets a value indicating whether a keyboard command has been issued. + + + + + Gets or set the value in Milliseconds indicating delay between last key press and filtering operation + + + + + Gets a value indicating whether the drop down is shown. + + + + + Gets the arrow button element. + + + + + Gets the fill element. + + + + + Gets the border element. + + + + + Specifies the mode for the automatic completion feature used in the ComboBox + and the TextBox controls. + + + + + Gets or sets a value indicating whether string comparisons are case-sensitive. + + + + + Rotate items on double click in the edit box part + + + + + Gets or sets a boolean value determining whether the user can scroll through the items + when the popup is closed by using the mouse wheel. + + + + + Gets or sets the height in pixels of the drop-down portion of the ComboBox. + + + + + Gets or sets a value specifying the style of the combo box. + + + + + Gets whether the text input control of the combo box is in editable mode. + + + + + Gets or sets the width of the of the drop-down portion of a combo box. + + + + + Gets or sets a value indicating whether the control should show or not partial items. + + + + + Gets a collection representing the items contained in this ComboBox. + + + + + Gets a value indicating whether the combo box is displaying its drop-down portion. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the ComboBox. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets the currently selected item. + + + + + Gets or sets the index specifying the currently selected item. + + + + + Gets or sets the text that is selected in the editable portion of the ComboBox. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Gets or sets a value indicating the sort style the of items in the combo box. + + + + Gets or sets the displayed text. + + + + Gets or sets a value indicating whether the ComboBox DropDown will be enabled when it shows. + + + + + Gets or sets the type of the DropDown animation. + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + Gets the TextBoxElement which is used in the ComboBox. + + + + + Gets or sets a value indicating whether RadScrollViewer uses UI virtualization. + + + + + Gets or sets the property to display. + + + + + Gets or sets the data source. + + + + + Gets or sets the IFormatProvider that provides custom formatting behavior. + + + + + Gets or sets the format-specifier characters that indicate how a value is to be displayed. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMember property. + + + + + Gets or sets value specifying the currently selected item. + + + + + Gets or sets t he property to use as the actual value for the items. + + + + + Occurs when the CaseSensitive property has changed. + + + + + Occurs when the SelectedIndex property has changed. + + + + Fires when the selected value is changed. + + + + Occurs when the Sorted property has changed. + + + + + Represents a date time editor. + + + + + Abstract class that represents basic logic for editor + + + + + Sets the IsInBeginEditMode property. This method is used internally. + + The new value of the IsInBeginEditMode property + + + + Initializes the editor. Used internally in RadGridView. + + The owner of this editor. + The value of the editor. + + + + Starts the editing process. Used internally in RadGridView. + + + + + Finishes the editing process. Used internally in RadGridView. + + + + + + Validates the value currently entered in the editor. + + + + + + Begins the editor initialization process. + + + + + Finishes the editor initialization process. + + + + + Fires the event. + + A that contains the event data. + + + + Fires the event. + + + + + Fires the event. + + A that contains the event data. + + + + Fires the event. + + + + + Fires the event. + + + + + + Creates a new editor element. + + a if successful + + + + Gets a value indicating whether this is the active editor in grid. + + + + + Gets a value indicating whether the editor is initializing. + + + + + Gets a value indicating whether the editor is in BeginMode mode. + + + + + Gets the element that owns this editor. + + + + + Gets a value indicating whether the editor is in RightToLeft mode. + + + + + Gets the type of the editor value + + + + + Gets or sets the editor value. + + + + + Gets a value indicating whether the editor value is modified. + + + + + Gets the associated with this editor. + + + + + Fires when changing the value of the editor. + + + + + Fires when the editor value has been changed. + + + + + Fires when the editor is validating. + + + + + Fires when the editor has finished validating. + + + + + Fires when a validation error is occurred. + + + + + Initializes a new instance of the RadDateTimeEditor class. + + + + + The DateTime value assigned to the date picker when the Value is null + + + + + Gets or sets the minimum date and time that can be selected in the editor. + + + + + Gets or sets the maximum date and time that can be selected in the editor. + + + + + Gets or sets the custom date/time format string. + + + + + Represents a date time editor element used in RadDateTimeEditor + + + + + Represents the RadDateTimePickerElement class + + + + + Represents the IsDropDownShown dependancy property + + + + + Represents RadDateTimePickerElement's constructor + + + + + Represents RadDateTimePickerElement's constructor + + + + + + Creates a new instance of + + + + + Gets the maximum date value allowed for the DateTimePicker control. + + + + + Gets the minimum date value allowed for the DateTimePicker control. + + + + + Gets the date as a string + + string value + + + + Resets the current value + + + + + Gets the current behavior of the control. By default it is showing a calendar in the drop down + + + + + + Sets the current value to behave as a null value + + + + + Raises the FormatChanged event + + + + + + Raises the ValueChanged event + + + + + + Raises the ValueChanged event + + + + + + Raises the NullableValueChanged event + + + + + + Raises the PropertyChanged event + + + + + + Sets the behavior of the date picker + + + + + + Closes the popup if it is open, or shows the popup if it is closed. + + + + + Gets an instance of RadTextBoxElement + + + + Gets or sets a value indicating whether RadDateTimePicker is read-only. + + true if the RadDateTimePicker is read-only; otherwise, false. The default is + false. + 1 + + + + Indicates whether a spin box rather than a drop down calendar is displayed for editing the control's value + + + + + Gets or sets the CultureInfo supported by this RadCalendar object. + Describes the names of the culture, the writing system, and + the calendar used, as well as access to culture-specific objects that provide + methods for common operations, such as formatting dates and sorting strings. + + + The culture names follow the RFC 1766 standard in the format + "<languagecode2>-<country/regioncode2>", where <languagecode2> is + a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> + is an uppercase two-letter code derived from ISO 3166. For example, U.S. English is + "en-US". In cases where a two-letter language code is not available, the + three-letter code derived from ISO 639-2 is used; for example, the three-letter + code "div" is used for cultures that use the Dhivehi language. Some culture names + have suffixes that specify the script; for example, "-Cyrl" specifies the Cyrillic + script, "-Latn" specifies the Latin script. + The following predefined CultureInfo names and identifiers are + accepted and used by this class and other classes in the System.Globalization + namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Culture NameCulture IdentifierLanguage-Country/Region
"" (empty string)0x007Finvariant culture
af0x0036Afrikaans
af-ZA0x0436Afrikaans - South Africa
sq0x001CAlbanian
sq-AL0x041CAlbanian - Albania
ar0x0001Arabic
ar-DZ0x1401Arabic - Algeria
ar-BH0x3C01Arabic - Bahrain
ar-EG0x0C01Arabic - Egypt
ar-IQ0x0801Arabic - Iraq
ar-JO0x2C01Arabic - Jordan
ar-KW0x3401Arabic - Kuwait
ar-LB0x3001Arabic - Lebanon
ar-LY0x1001Arabic - Libya
ar-MA0x1801Arabic - Morocco
ar-OM0x2001Arabic - Oman
ar-QA0x4001Arabic - Qatar
ar-SA0x0401Arabic - Saudi Arabia
ar-SY0x2801Arabic - Syria
ar-TN0x1C01Arabic - Tunisia
ar-AE0x3801Arabic - United Arab Emirates
ar-YE0x2401Arabic - Yemen
hy0x002BArmenian
hy-AM0x042BArmenian - Armenia
az0x002CAzeri
az-AZ-Cyrl0x082CAzeri (Cyrillic) - Azerbaijan
az-AZ-Latn0x042CAzeri (Latin) - Azerbaijan
eu0x002DBasque
eu-ES0x042DBasque - Basque
be0x0023Belarusian
be-BY0x0423Belarusian - Belarus
bg0x0002Bulgarian
bg-BG0x0402Bulgarian - Bulgaria
ca0x0003Catalan
ca-ES0x0403Catalan - Catalan
zh-HK0x0C04Chinese - Hong Kong SAR
zh-MO0x1404Chinese - Macau SAR
zh-CN0x0804Chinese - China
zh-CHS0x0004Chinese (Simplified)
zh-SG0x1004Chinese - Singapore
zh-TW0x0404Chinese - Taiwan
zh-CHT0x7C04Chinese (Traditional)
hr0x001ACroatian
hr-HR0x041ACroatian - Croatia
cs0x0005Czech
cs-CZ0x0405Czech - Czech Republic
da0x0006Danish
da-DK0x0406Danish - Denmark
div0x0065Dhivehi
div-MV0x0465Dhivehi - Maldives
nl0x0013Dutch
nl-BE0x0813Dutch - Belgium
nl-NL0x0413Dutch - The Netherlands
en0x0009English
en-AU0x0C09English - Australia
en-BZ0x2809English - Belize
en-CA0x1009English - Canada
en-CB0x2409English - Caribbean
en-IE0x1809English - Ireland
en-JM0x2009English - Jamaica
en-NZ0x1409English - New Zealand
en-PH0x3409English - Philippines
en-ZA0x1C09English - South Africa
en-TT0x2C09English - Trinidad and Tobago
en-GB0x0809English - United Kingdom
en-US0x0409English - United States
en-ZW0x3009English - Zimbabwe
et0x0025Estonian
et-EE0x0425Estonian - Estonia
fo0x0038Faroese
fo-FO0x0438Faroese - Faroe Islands
fa0x0029Farsi
fa-IR0x0429Farsi - Iran
fi0x000BFinnish
fi-FI0x040BFinnish - Finland
fr0x000CFrench
fr-BE0x080CFrench - Belgium
fr-CA0x0C0CFrench - Canada
fr-FR0x040CFrench - France
fr-LU0x140CFrench - Luxembourg
fr-MC0x180CFrench - Monaco
fr-CH0x100CFrench - Switzerland
gl0x0056Galician
gl-ES0x0456Galician - Galician
ka0x0037Georgian
ka-GE0x0437Georgian - Georgia
de0x0007German
de-AT0x0C07German - Austria
de-DE0x0407German - Germany
de-LI0x1407German - Liechtenstein
de-LU0x1007German - Luxembourg
de-CH0x0807German - Switzerland
el0x0008Greek
el-GR0x0408Greek - Greece
gu0x0047Gujarati
gu-IN0x0447Gujarati - India
he0x000DHebrew
he-IL0x040DHebrew - Israel
hi0x0039Hindi
hi-IN0x0439Hindi - India
hu0x000EHungarian
hu-HU0x040EHungarian - Hungary
is0x000FIcelandic
is-IS0x040FIcelandic - Iceland
id0x0021Indonesian
id-ID0x0421Indonesian - Indonesia
it0x0010Italian
it-IT0x0410Italian - Italy
it-CH0x0810Italian - Switzerland
ja0x0011Japanese
ja-JP0x0411Japanese - Japan
kn0x004BKannada
kn-IN0x044BKannada - India
kk0x003FKazakh
kk-KZ0x043FKazakh - Kazakhstan
kok0x0057Konkani
kok-IN0x0457Konkani - India
ko0x0012Korean
ko-KR0x0412Korean - Korea
ky0x0040Kyrgyz
ky-KZ0x0440Kyrgyz - Kazakhstan
lv0x0026Latvian
lv-LV0x0426Latvian - Latvia
lt0x0027Lithuanian
lt-LT0x0427Lithuanian - Lithuania
mk0x002FMacedonian
mk-MK0x042FMacedonian - FYROM
ms0x003EMalay
ms-BN0x083EMalay - Brunei
ms-MY0x043EMalay - Malaysia
mr0x004EMarathi
mr-IN0x044EMarathi - India
mn0x0050Mongolian
mn-MN0x0450Mongolian - Mongolia
no0x0014Norwegian
nb-NO0x0414Norwegian (Bokmål) - Norway
nn-NO0x0814Norwegian (Nynorsk) - Norway
pl0x0015Polish
pl-PL0x0415Polish - Poland
pt0x0016Portuguese
pt-BR0x0416Portuguese - Brazil
pt-PT0x0816Portuguese - Portugal
pa0x0046Punjabi
pa-IN0x0446Punjabi - India
ro0x0018Romanian
ro-RO0x0418Romanian - Romania
ru0x0019Russian
ru-RU0x0419Russian - Russia
sa0x004FSanskrit
sa-IN0x044FSanskrit - India
sr-SP-Cyrl0x0C1ASerbian (Cyrillic) - Serbia
sr-SP-Latn0x081ASerbian (Latin) - Serbia
sk0x001BSlovak
sk-SK0x041BSlovak - Slovakia
sl0x0024Slovenian
sl-SI0x0424Slovenian - Slovenia
es0x000ASpanish
es-AR0x2C0ASpanish - Argentina
es-BO0x400ASpanish - Bolivia
es-CL0x340ASpanish - Chile
es-CO0x240ASpanish - Colombia
es-CR0x140ASpanish - Costa Rica
es-DO0x1C0ASpanish - Dominican Republic
es-EC0x300ASpanish - Ecuador
es-SV0x440ASpanish - El Salvador
es-GT0x100ASpanish - Guatemala
es-HN0x480ASpanish - Honduras
es-MX0x080ASpanish - Mexico
es-NI0x4C0ASpanish - Nicaragua
es-PA0x180ASpanish - Panama
es-PY0x3C0ASpanish - Paraguay
es-PE0x280ASpanish - Peru
es-PR0x500ASpanish - Puerto Rico
es-ES0x0C0ASpanish - Spain
es-UY0x380ASpanish - Uruguay
es-VE0x200ASpanish - Venezuela
sw0x0041Swahili
sw-KE0x0441Swahili - Kenya
sv0x001DSwedish
sv-FI0x081DSwedish - Finland
sv-SE0x041DSwedish - Sweden
syr0x005ASyriac
syr-SY0x045ASyriac - Syria
ta0x0049Tamil
ta-IN0x0449Tamil - India
tt0x0044Tatar
tt-RU0x0444Tatar - Russia
te0x004ATelugu
te-IN0x044ATelugu - India
th0x001EThai
th-TH0x041EThai - Thailand
tr0x001FTurkish
tr-TR0x041FTurkish - Turkey
uk0x0022Ukrainian
uk-UA0x0422Ukrainian - Ukraine
ur0x0020Urdu
ur-PK0x0420Urdu - Pakistan
uz0x0043Uzbek
uz-UZ-Cyrl0x0843Uzbek (Cyrillic) - Uzbekistan
uz-UZ-Latn0x0443Uzbek (Latin) - Uzbekistan
vi0x002AVietnamese
vi-VN0x042AVietnamese - Vietnam
+
+
+ + + Gets the default null date + + + + + The DateTime value assigned to the date picker when the Value is null + + + + + When ShowCheckBox is true, determines that the user has selected a value + + + + + Gets or sets the custom date/time format string. + + + + + Gets or sets the format of the date and time displayed in the control. + + + + + Gets or sets the location of the drop down showing the calendar + + + + + Gets or sets the size of the calendar in the drop down + + + + + Indicates whether a check box is displayed in the control. When the check box is unchecked no value is selected + + + + + Gets or sets whether the current time is shown. + + + + + Set ot get which part of the datetime structure will be included when checking for NullValue. + + + + + Gets or sets the date/time value assigned to the control. + + + + + Gets or sets the text that is displayed when the DateTimePicker contains a null + reference. + + + + + Gets the maximum date value allowed for the DateTimePicker control. + + + + + Gets the minimum date value allowed for the DateTimePicker control. + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Occurs when MaskProvider has been created + This event will be fired multiple times because + the provider is created when some properties changed + Properties are: Mask, Culture, MaskType and more. + + + + + Occurs when the value of the control has changed + + + + + Occurs when the value of the control has changed + + + + + Occurs when the format of the control has changed + + + + + Occurs when the value of the control is changing + + + + + Occurs when the drop down is opened + + + + + Occurs when the drop down is opening + + + + + Occurs when the drop down is closing + + + + + Occurs when the drop down is closed + + + + + Occurs before the CheckBox's state changes. + + + + + Occurs when the CheckBox's state changes. + + + + + Occurs when the value of the checkbox in the editor is changed + + + + + Get nested RadCalendar in the popup part of the RadDateTimePicker + + + + + + Show or Hide the nested TimePicker element in the popup part of the RadDateTimePicker + + + + + + Represents a DropDownList editor. + + + + + Initializes a new instance of the RadDropDownListEditor class. + + + + + Gets or sets a value specifying the style of the DropDownList. + + + + + Gets or sets the drop down sizing mode. The mode can be: horizontal, veritcal or a combination of them. + + + + + Represents a DropDownList editor element. + + + + + Represents a numeric up/down editor. + + + + + Gets or sets the minimum value that could be set in the editor. + + + + + Gets or sets the maximum value that could be set in the editor. + + + + + Gets or sets the value which is added to/subtracted from the current value of the editor. + + + + + Gets or sets the number of decimal places to display in the editor. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the editor. + + + + + Gets or sets the type of the value to use in the editor. + + + + + Represents a numeric up/down editor element. + + + + + Represents a numeric up/down element. The RadSpinEditor + class is a simple wrapper for the numeric up/down element class. The + RadSpinEdit acts to transfer events to and from its + corresponding numeric up/down element instance. The numeric up/down element which is + essentially the numeric up/down element control may be nested in + other telerik controls. + + + + + create child elements + + + + + Creates the button element for the increment button. + + A to be placed in the . + + + + Creates the button element for the decrement button. + + A to be placed in the . + + + + increase or decrease value in the numeric up/down with step value + + + + + + This method is used internally! + + the new flag state. + + + + This method is used internally! + + the new flag state. + + + + Gets or Sets represent the Value in the numeric up/down - this value can be NULL + + + + + Gets or set how to interpret the empty text in the editor portion of the control + if true the empty value will set NULL in NullableValue property + + + + + Gets reference to the SpinControl's Down Button + + + + + Gets reference to the SpinControl's Up Button + + + + + Gets or sets the number of decimal places to display in the RadSpinEdit + + + + + represent the default value in the numeric up/down + + + + + Gets or sets a value indicating whether the RadSpinEdit should display the value it contains in hexadecimal format. + + + + + Gets or sets a value indicating whether the user can use the UP ARROW and DOWN ARROW keys to select values. + + + + + Gets or sets a value indicating whether the text can be changed by the use of the up or down buttons only. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the RadSpinEdit + + + + + Gets contained in the spin editor. + + + + + Gets or sets the minimum value that could be set in the spin editor + + + + + allow element to be stretched vertically + + + + + represent the decimal in the numeric up/down + + + + + Gets or sets the value which is added to/subtracted from the current value of the spin editor. + + + + + Gets or sets the minimum value that could be set in the spin editor + + + + + Gets or sets whether RadSpinEditor will be used as a numeric textbox. + + + + + Gets or sets whether by right-mouse clicking the up/down button you set the max/min value respectively. + + + + + set or get the Max numeric value in the numeric up/down + + + + + Gets or sets a value indicating whether the border is shown. + + + + + Gets or sets a value indicating that value will revert to minimum value after reaching maximum and to maximum after reaching minimum. + + + + + Gets or sets a value indicating whether the user can change the value with mouse wheel. + + + true if [enable mouse wheel]; otherwise, false. + + + + + Occurs before the value of the SpinEdit is changed. + + + + + Occurs when the value is being changed. Cancelable event. + + + + + Occurs when the user presses a key. + + + + + Initializes a new instance of the GridSpinEditorElement class. + + + + + Represents a text editor. + + + + + Gets or sets the null text for the editor. + + + + + Indicates if all charactes should be left alone or converted + to upper or lower case + + + + + The text could span more than a line when the value is true + + + + + Specifies the maximum length of characters which could be entered + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Represents a text editor. + + + + + Initializes a new instance of the RadTextBoxEditor class. + + + + + Gets or sets the null value for the editor. + + + + + Indicates if all charactes should be left alone or converted + to upper or lower case + + + + + The text could span more than a line when the value is true + + + + + Specifies the maximum length of characters which could be entered + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Gets or sets wheather the editor accepts tha tab key in multiline mode + + + + + Represents a text box editor element. + + + + + Represents a text box element. The RadTextBox + class is a simple wrapper for the RadTextBoxElement class. All UI and logic + functionality is implemented in the RadTextBoxElement class. + RadTextBox class acts to transfer events to and from + its corresponding RadTextBoxElement instance. The RadTextBoxElement may be nested + in other telerik controls. + + + + Initializes a new instance of the RadTextBoxElement class. + + + + Initializes a new instance of RadTextBoxElemenet + + + + + + Raises the MultilineChanged event. + + + + + Raises the ReadOnlyChanged event. + + + + + Raises the TextChanging event. + + + + + Raises the TextChanged event. + + + + + Raises the TextAlignChanged event. + + + + + Raises the ModifiedChanged event. + + + + + Raises the HideSelectionChanged event. + + + + + Raises the AcceptsTabChanged event. + + + + + Gets an instance of the corresponding RadTextBoxItem + + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + Gets or sets a value indicating whether the border is shown. + + + + Gets or sets a value indicating whether the clear button is shown. + + + + + Gets or sets + the character used to mask characters of a password in a single-line TextBox + control. + + + + + Gets or sets the color of prompt text that is displayed when the TextBox contains no text. + + + + + Occurs when the value of the AcceptsTab property has changed. + + + + + Occurs when the value of the HideSelection property changes. + + + + + Occurs when the value of the Modified property has changed. + + + + + Occurs when the value of the Multiline property has changed. + + + + + Occurs when the ReadOnly property changes. + + + + + Occurs when the value of the TextAlign property has changed. + + + + + Occurs + when text is being changed. + + + + + Occurs + when text has changed. + + + + + Represents a TimePicker editor. + + + + + This class manages all opened popups per UI thread. + + + + + Adds a popup form to the popups of the PopupManager and + registers a message hook if the form provided is the first one. + + The popup to add. + + + + Removes the provided popup from the popups of the PopupManager and unregisters the message hook + if there are no more popups. + + The popup to remove. + + + + Attempts to close an implementation. + + The popup to close. + + + + Closes all popups managed by the PopupManager. + + Clarification why all popups need to be closed. + + + + Closes all popups from a leaf to the root. + + The reason why popups are closed. + The leaf popup from which to start closing the hierarchy. + + + + Checks if the PopupManager monitors the provided popup. + + The popup to check for. + + + + + This method begins to close all IPopupControl instances + starting from the end of the collection. If a IPopupControl + cannot be closed, the iteration stops and all popups previously added + to the collection will not be closed. + + + + + Gets the count of the IPopupControl instances + currently registered in the PopupManager. + + + + + The popup which was last activated. + + + + + Gets the only instance of the PopupManager class. Other instances can not be created. + + + + + Represents a calculator editor element used in calculator editors. + + + + + Encapsulates the UI representation and functionality of RadCalculatorDropDown. + + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + + + + Gets or sets the calculator value. + + + + + Gets or sets the editor content element. + + + + + Gets or sets the arrow button. + + + + + Gets or sets the popup. + + + + + Gets the content element. + + + + + Gets the memory element. + + + + + Gets or sets the default popup width. + + + + + Gets or sets the default popup height. + + + + + Gets or sets the minimum popup width. + + + + + Gets or sets the minimum popup height. + + + + + Gets RadCalculatorElement FillPrimitive + + + + + Gets the RadCalculatorElement BorderPrimitive + + + + + Gets or sets a value indicating whether RadCalculatorDropDownElement is read only. + + + true if RadCalculatorDropDownElement is read only; otherwise, false. + + + + + Fires when the value of the calculator is changing. + + + + + Fires when the value of the calculator is changing. + + + + + Fires after the color dialog is closed. + + The event arguments. + + + + Fires right after the editor value is changed. + + The event arguments. + + + + Fires right before the editor value is changed. + + The event arguments. + + + + Fires when the is clicked. + + The event arguments. + + + + Gets the value of the editor. + + + + + Gets the that shows the color in the editor. + + + + + Gets or set the that is displayed when the button is clicked. + + + + + Gets the that opens the . + + + + + Gets or sets a value indicating if the user is allowed to type in the text field. + + + + + Occurs when the value is being changed. Cancelable event. + + + + + Occurs after the editor has changed the value during the editing process. + + + + + Occurs when the dialog window is closed. + + + + + Represents a date time editor element used in date time editors. + + + + + Represents a class that handles append auto-complete mode in + + + + + Owner Property + + + + + LimitToList Property + + + + + Initializes a new instance of the class. + + The element. + + + + Sets the editable element text. + + Index of the item. + + + + Represents a DropDownList element used in drop down list editors. + + + + + Constructor + + There is no mask applied by default + + + + handles the key press + + + + + + Fires the ValueChanged event + + + + + + Fires the ValueChanging event + + + + + + Determines whether to add minus sign to the value. + + + + + + + Format the specified text using the specified mask + + The mask to use + The text to format + The formatted text string + There are four overloads for this method. + + + + Format the specified text using the specified mask and prompt + character. + + The mask to use. + The text to format. + The prompt character to use for missing + characters. If a null character ('\x0') is specified, prompt + characters are omitted. + The formatted text string. + + + + Format the specified text using the specified mask, prompt + character, and culture information. + + The mask to use. + The text to format. + The prompt character to use for missing + characters. If a null character ('\x0') is specified, prompt + characters are omitted. + The culture information to use. If null, + the current culture is used. + The formatted text string. + + + + Format the specified text using the specified mask, prompt + character, and culture information and return the result + values. + + The mask to use. + The text to format. + The prompt character to use for missing + characters. If a null character ('\x0') is specified, prompt + characters are omitted. + The culture information to use. If null, + the current culture is used. + The result of formatting the text. + The position related to the result + hint. + The formatted text string. + + + + Gets the text which is in the clipboard + + + + + + This is used to set or get the label text. + + When set, the text is formatted according to the current + masked text provider settings. If the mask is empty, the text is + set as-is. When retrieved, the text is returned in its formatted + state. Use to get the text without + the mask applied. + + + + Represent the RadMaskedEditBox ContextMenu + + + + Gets or sets a value that determines whether literals and prompt characters + are included in the formatted string. + One of the values. The + default is . + Property + set with a value that is not + valid. + + + + This returns a clone of the masked text provider currently being + used by the masked label control. + + + + + This returns the result hint for the last assignment to the + property. + + If the assigned text could not be properly formatted, + this will contain a hint as to why not. Positive values + indicate success. Negative values indicate failure. + + + + This returns the result hint position for the last assignment to + the property. + + If the assigned text could not be properly formatted, + this will contain the position of the first failure. + + + + This read-only property returns the unmasked copy of the text + + + + + This is used to set or get the culture information associated with + the masked label. + + This is thrown if the + culture value is null + + + + This is used to set or get the mask for the label text + + + + + This is used to set or get the prompt character for display + in the label text. + + The default is an underscore (_). + + + + This is used to set or get whether or not prompt characters are + also displayed in the label text. + + By default, prompt characters are not shown. + + + + Gets or sets the mask type. + + + + + Gets or sets the edited value + + + + + Gets or set a value indicating whether end users can set the value to NULL. + This can be achieved by pressing Ctrl + Del or Ctrl + 0 key combinations. + + + + + Occurs when MaskProvider has been created + This event will be fired multiple times because + the provider is created when some properties changed + Properties are: Mask, Culture, MaskType and more. + + + + + Occurs when the editing value has been changed + + + + + Occurs when the editing value is changing. + + + + + Gets or sets the mask type. + + + + + Represents a numeric up/down element used by spin editors.. + + + + + Initializes a new instance of the RadSpinEditorElement class. + + + + + Represents a textbox editor element used in RadTextBoxEditor + + + + + Represent a continuous band in Linear Gauge + + + + Gets or sets a value indicating element visibility. + + Setting this property affects also the children of the element. Collapsed means the element and its children would not be painted and would not be + calculated in the layout. + This property has no effect in design-time on objects. + + + + + Indicates whether the RangeStart property is bound to the gauge's Value. + + + + + Indicates whether the RangeEnd property is bound to the gauge's Value. + + + + + Specifies the start range offset of the arc according to the gauge's value. + + + + + Specifies the end range offset of the arc according to the gauge's value. + + + + + The RadLinearGauge control is designed to display a a single quantitative measure. + + + + + The RadLinearGauge control is designed to display a simple value within a definite range. + + + + XmlWriter to use by the built-in serializer + + + + Stores to a stream RadRadialGauge properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores to a file RadRadialGauge properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML reader, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + The ValueChanged event fires when the value is modified. + + + + + The OrientationChanged event fires when the orientation of the gauges is changed. + + + + + Specifies the gauge's end. + + + + + Specifies the gauge's start. + + + + + Specifies the gauge's value + + + + + Set or Get Gauge Orientation + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + Gets the serialization info for RadRadialGauge used by Save/Load loyout methods to persist grid settings to/from XML. + By default, or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + This portion of the bullet graph displays the primary data. + + + + + Presents a value which should be less visually dominant than the featured measure, but easy to see in relation to the featured measure. + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + The OrientationChanged event fires when the orientation of the gauges is changed. + + + + + The OrientationChanged event fires when the orientation of the gauges is changed. + + + + + Represents the scale labels. + + + + + Specifies the font size. Default value is 8. + + + + + Specifies the start value from which the labels are displayed. + + + + + Specifies the end value to which the labels are displayed. + + + + + Controls how far according to the gauge's arc the labels are rendered + + + + + Specifies the format of the label's value. + + + + + Controls how many labels will be displayed next ticks for the specified range. + + + + + Represent a continuous band in Linear Gauge + + + + + Indicates whether the RangeStart property is bound to the gauge's Value. + + + + + Indicates whether the RangeEnd property is bound to the gauge's Value. + + + + + Specifies the start range offset of the arc according to the gauge's value. + + + + + Specifies the end range offset of the arc according to the gauge's value. + + + + + Present additional information for the RadLinearGauge. + + + + + Specifies the label format. By default, it is set to #,##0.#. + + + + + Controls whether the specific ticks are circle or not. + + + + + Specifies the value offset of the needle according to the gauge's value. + + + + + Indicates whether the needle's value is bound to the gauge's Value. + + + + + Specifies the inner radius of the needle's start point. + + + + + Specifies the value with which the needle juts out from the center point. + + + + + Specifies the outer radius of the needle's start point. + + + + + Controls the needle width. + + + + + Specifies the needle's value. + + + + + Controls how long the needle will be rendered. + + + + + Present additional information for the RadLinearGauge, e.g. current value + + + + + Indicates whether the single label's text is bound to the gauge's Value. + + + + + Controls the label's location (x, y) according to the center point. LocationPercentage accepts values withing the range [(-1,-1), (1,1)]. + + + + + Specifies the label size. + + + + + Specifies the label format. By default, it is set to #,##0.#. + + + + + Represents the scale ticks. + + + + + Specifies at which index the visible ticks range will start. + + + + + Specifies at which index the visible ticks range will end. + + + + + Controls how far according to the gauge's arc the ticks will be rendered. + + + + + Specifies the width of ticks. + + + + + Specifies the color for the ticks + + + + + Specifies the ticks back length towards the center point. + + + + + Controls the ticks length. + + + + + Specifies how many ticks will be displayed. + + + + + Represent main needle element. This element is container for all other elements in the Gauge + + + + + The ValueChanged event fires when the value is modified. + + + + + The OrientationChanged event fires when the orientation of the gauges is changed. + + + + + Specifies the gauge's value + + + + + Set or Get Gauge Orientation + + + + + Represent a continuous band spanning the entire sweep angle. + + + + + Controls the radius of the arc. + + + + + The width of the arc. + + + + + The start of the arc. + + + + + The end value of the arc. + + + + + Indicates whether the RangeStart property is bound to the gauge's Value. + + + + + Indicates whether the RangeEnd property is bound to the gauge's Value. + + + + + Specifies the start range offset of the arc according to the gauge's value. + + + + + Specifies the end range offset of the arc according to the gauge's value. + + + + + Creates Star like shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Represents the scale labels displayed next to the ticks. + + + + + Specifies the font size. Default value is 8. + + + + + Specifies the start value from which the labels are displayed. + + + + + Specifies the end value to which the labels are displayed. + + + + + Controls how far according to the gauge's arc the labels are rendered + + + + + Specifies the format of the label's value. + + + + + Controls how many labels will be displayed next ticks for the specified range. + + + + + Represent a scale indicator that points to a value. + + + + + Specifies the value offset of the needle according to the gauge's value. + + + + + Indicates whether the needle's value is bound to the gauge's Value. + + + + + Specifies the inner radius of the needle's start point. + + + + + Specifies the value with which the needle juts out from the center point. + + + + + Specifies the outer radius of the needle's start point. + + + + + Controls the needle width. + + + + + Specifies the needle's value. + + + + + Controls how long the needle will be rendered. + + + + + Present additional information for the RadRadialGauge, e.g. current value + + + + + Indicates whether the single label's text is bound to the gauge's Value. + + + + + Controls the label's location (x, y) according to the center point. LocationPercentage accepts values withing the range [(-1,-1), (1,1)]. + + + + + Specifies the label size. + + + + + Specifies the label format. By default, it is set to #,##0.#. + + + + + Represents the scale ticks. + + + + + Specifies at which index the visible ticks range will start. + + + + + Specifies at which index the visible ticks range will end. + + + + + Controls how far according to the gauge's arc the ticks will be rendered. + + + + + Controls whether the specific ticks are circle or not. + + + + + Specifies the width of ticks. + + + + + Specifies the color for the ticks + + + + + Specifies the ticks back length towards the center point. + + + + + Controls the ticks length. + + + + + Specifies how many ticks will be displayed. + + + + + The RadRadialGauge control is designed to display a value within a definite range + + + + XmlWriter to use by the built-in serializer + + + + Stores to a stream RadRadialGauge properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores to a file RadRadialGauge properties, sub-objects and their properties in XML format, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML reader, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + Loads RadRadialGauge properties, sub-objects and their properties from XML file, using the serialization information provided by the property + + + + + The ValueChanged event fires when the value is modified. + + + + + Controls the RadRadialGauge's offset in vertical direction. + + + + + Controls the RadRadialGauge's offset in horizontal direction. + + + + + Specifies the gauge's value + + + + + Specifies the gauge's end. + + + + + Specifies the gauge's start. + + + + + Determines the angle value starting from the StartAngle to draw an arc in clockwise direction. + + + + + Determines the angle value starting from the StartAngle to draw an arc in clockwise direction. + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + Gets the serialization info for RadRadialGauge used by Save/Load loyout methods to persist grid settings to/from XML. + By default, or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + Represent main needle element. This element is container for all other elements in the Gauge + + + + + The ValueChanged event fires when the value is modified. + + + + + Specifies the gauge's value + + + + + Specifies the gauge's end. + + + + + Specifies the gauge's start. + + + + + Determines the angle value starting from the StartAngle to draw an arc in clockwise direction. + + + + + Determines the angle value starting from the StartAngle to draw an arc in clockwise direction. + + + + + Controls the RadRadialGauge's offset in vertical direction. + + + + + Controls the RadRadialGauge's offset in horizontal direction. + + + + + This class represents the custom editor + shown when the FadeAnimationType of the popup + is adjusted in the Visual Studio Designer. + + + + + Creates an instance of the FadeAnimationTypeEditorUI class. + This class represents the control used to set the + FadeAnimationType property while in the Visual Studio + Designer. + + The inital value of the property. + + + + Gets the result of the editor execution. + + + + + This class stores information about a close request sent to an . + The class stores the reason for the close request, information about the operation result, + and an instance to a context. + + + + + Creates an instance of the class. + The default value of the Closed property is true. + + A value from the enum + that determines the reason for the close request. + A request context. + + + + Defines whether the request is executed or not. + + + + + The reason for the close request. + + + + + The context associated with this the close request. + + + + + This class represents a base class for popup controls + used by editors like ComboBox, MultiColumnComboBox etc. + + + + + This class represents a pop-up form that exposes sizing-grip and + thus can be resized by the user. + + + + + Creates an instance of the RadSizablePopupControl class. + + The owner of the popup-form + + + + Gets or sets a value of the enumeration. + This value determines how the pop-up form can be resized: vertically, horizontally or both. + + + + + Gets the element that represents the sizing grip + of the popup. + + + + + Gets the DockLayoutPanel that holds the sizing grips. + + + + + Creates an instance of the RadEditorPopupControlBase class. + This class is used in all popup-powered controls. + + An instance of the RadItem class that + represents the owner of the popup. + + + + Gets or sets the header text of the drop-down menu. + + + + + Gets or sets the header image of the drop-down menu. + + + + + Gets an instance of the + class that represents layout panel that provides scrolling functionality. + + + + + Gets or sets the left column minimal width. + + + + + Gets or sets the right column minimal width. + + + + + This class represents the Telerik's Form control. + You can create RadForm controls by inheriting from this class. + + + + + Represents a RadFormControl. RadFormControlBase is an abstract class and is base class for + all telerik windows forms. + + + + + Determines whether the control and all its child elements should use the new layout system. + + + + + + Loads the element tree. While not loaded, no layout operations are allowed upon the tree. + By default, the tree will be loaded when the control is displayed for the first time. + + + + + Loads the element tree using the specified desired size. + + + + + + Notifies that the control is about to be visualized. + + + + + + In this override we reset the RootElement's BackColor property + since the DocumentDesigner class sets the BackColor of the + Form to Control when initializing and thus overrides the theme. + + + + + + Calls the base OnPaint implementation. This method + can be used by the form behavior to call the base + implementation in case it is needed. + + + + + Calls the base OnPaintBackground implementation. This method + can be used by the form behavior to call the base + implementation in case it is needed. + + + + + Processes a dialog box key. + + true if the keystroke was processed and consumed by the control; otherwise, false to allow further processing. + + + One of the values that represents the key to process. + + + + Updates which button is the default button. + + + + Determines whether the BackColor property should be serialized. + + + + + + Determines whether the ForeColor property should be serialized. + + + + + + Determines whether the ForeColor property should be serialized. + + + + + + Determines whether the specified RadProperty should be serialized. + + + + + + + Called to initialize the behavior of the form. + + + + + + Resets the behavior associated with the Form. This method is used internally. + + Determines whether the InitializeFormBehavior method + will be called after the p + + + + Processes a focus request from the specified element. + + The element that requested the focus. + True if focus is approved, false otherwise. + + + + Processes a capture request from the specified element. + + The element which requested the capture. + + True if the capture request is approved, otherwise false. + + + + Gets a value indicating if control themes by default define PropertySettings for the specified element. + If true is returned the ThemeResolutionService would not not set any theme to the element to avoid duplicatingthe style + settings of the element. + + + + + + + Gets or sets a value indicating whether the Analytics functionality is enabled or disbaled for this control. + + + + + Gets a boolean value which determines + whether the control is loaded. + + + + + Gets or sets the FormBorderStyle of the Form. + + + + + Gets the behavior associated with this form if any. + + + + + Gets or sets a boolean value indicating whether the Form + customizes its NC area when under Vista with Composition enabled. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets or sets a value indicating whether ToolTips are shown for the RadItem objects contained in + the RadControl. + + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this speciffic control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets or sets the BackColor of the control. + This is actually the BackColor property of the root element. + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + Gets or sets the Font of the control. This is actually the Font property of the root element. + + + + + Occurs when a RadItem instance iside the RadControl requires ToolTip text. + + + + + Occurs prior the ScreenTip of a RadItem instance inside the RadControl is displayed. + + + + + Gets or sets the ImageList that contains the images displayed by this control. + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Prevent the Form from getting the mouse capture when the capture is requested + by one of the system buttons. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The text associated with this control. + + + + + Gets the RadFormElement instance that represents + the element hierarchy which builds the RadForm appearance. + + + + + Gets or sets the scaling mode of the form's icon. + + + + + Gets or sets a boolean value indicating whether the Form + customizes its NC area when under Vista with Composition enabled. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Enable or Disable the selection of the next or prev. part of the date with arrow keys + + + + + Gets or sets the date and time format used by + RadDateInput. + + + A string specifying the date format used by RadDateInput. The + default value is "d" (short date format). + + + + private void Page_Load(object sender, System.EventArgs e) + { + RadDateInput1.DateFormat = "M/d/yyyy"; //Short date pattern. The same as "d". + } + + + Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load + RadDateInput1.DateFormat = "M/d/yyyy" 'Short date pattern. The same as "d". + End Sub + + + + + + Gets or sets a value that indicates the end of the century that is used to interpret + the year value when a short year (single-digit or two-digit year) is entered in the input. + + + The year when the century ends. Default is 2029. + + + Having a value of 2029 indicates that a short year will be interpreted as a year between 1930 and 2029. + For example 55 will be interpreted as 1955 but 12 -- as 2012 + + + + + Gets a value that indicates the start of the century that is used to interpret + the year value when a short year (single-digit or two-digit year) is entered in the input. + + + The year when the century starts. Default is 1930. + + + Having a value of 1930 indicates that a short year will be interpreted as a year between 1930 and 2029. + For example 55 will be interpreted as 1955 but 12 -- as 2012 + + + + + Removes the assigned characters between the specified positions from the formatted + string. + + true if the character was successfully removed; otherwise, false. + + + The zero-based index of the first assigned character to remove. + + + The zero-based index of the last assigned character to remove. + + + + + Gets a value indicating whether all required inputs have been entered into the formatted string. + + true if all required input has been entered into the mask; otherwise, false. + + + + + Initializes a new instance of the NumericTextBoxProvider> + class using the specified mask and culture. + + + A that represents the input mask. + + + A that is used to set region-sensitive + separator characters. + + + + + + . + Replaces all ocurances of given parameters with string.Empty. + + + + + Gets the culture that determines the value of the localizable separators and + placeholders in the input mask. + + + A containing the culture information + associated with the input mask. + + + + + Gets the input mask. + + + A containing the full mask. + + + + + Raises the event. + + + An that contains event data. + + + + + Gets a value indicating whether all required inputs have been entered into the formatted string. + + true if all required input has been entered into the mask; otherwise, false. + + + + + Gets or sets the text insertion mode of the masked text box control. + + + An value that indicates the current insertion mode. The default is . + + + An invalid value was supplied when setting this property. + + + + + Occurs after the insert mode has changed. + + + + + Gets a value that specifies whether new user input overwrites existing input. + + true if will overwrite existing characters as the user enters new ones; false if will shift existing characters forward. The default is false. + + 1 + + + + Uses a mask to distinguish between proper and improper user input + + + + + Clears all text from the text box control and Value. + + + + + Clears information about the most recent operation from the undo buffer of the + text box. + + + + + selects the whole text + + + + + Fires the ValueChanging event + + + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a mask expression. + + + + + Gets or sets the mask type. + + + + + Gets or sets the value associated to the mask edit box + + + + Gets or sets a value that determines whether literals and prompt characters + are included in the formatted string. + One of the values. The + default is . + Property + set with a value that is not + valid. + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + + Gets or sets the horizontal alignment of the text. + + + + + Gets or sets + a value indicating whether the defined shortcuts are enabled. + + + + + Gets or sets + the starting point of text selected in the text box. + + + + + Gets or sets a value indicating whether the RadTextBox control has been modified + by the user since the control was created or since its contents were last set. + + + + + Gets or sets + a value indicating whether this is a multiline TextBox control. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets + the character used to mask characters of a password in a single-line TextBox + control. + + + + + Gets or sets + a value indicating whether the contents of the TextBox control can be + changed. + + + + + Gets or sets + which scroll bars should appear in a multiline TextBox control. + + + + + Gets or sets a value indicating the currently selected text in the + control. + + + + + Gets or sets + the number of characters selected in the text box. + + + + + Gets or sets a value indicating whether the selected text remains highlighted + even when the RadTextBox has lost the focus. + + + + + Gets or sets + the lines of text in multiline configurations. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline RadTextBox + control creates a new line of text in the control or activates the default button for + the form. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text + box control types a TAB character in the control instead of moving the focus to the + next control in the tab order. + + + + + Gets or sets a value indicating whether the RadTextBox control modifies the + case of characters as they are typed. + + + + + Gets or sets the current culture associated to the RadMaskBox + + + + + Gets or set a value indicating whether end users can set the value to NULL. + This can be achieved by pressing Ctrl + Del or Ctrl + 0 key combinations. + + + + + Occurs when the editing value has been changed + + + + + Occurs when the editing value is changing. + + + + + Occurs when the RadItem has focus and the user pressees a key down + + + + + Occurs when the RadItem has focus and the user pressees a key + + + + + Occurs when the RadItem has focus and the user releases the pressed key up + + + + + Occurs when + the value of the Multiline property has changed. + + + + + Occurs when + the value of the TextAlign property has changed. + + + + + Represents an application drop down menu in Office 2007 style. + + + + + + Represents a drop down button. Essentially the RadDropDownButton class is a + simple wrapper for + RadDropDownButtonElement. + + You can set items that appear when the drop down button is pressed. Also you + can configure the visual appearance in numerous ways through themes. + + The RadDropDownButtonElement class + implements all UI and logic functionality. The RadDropDownButton acts to + transfer the events to and from its + RadDropDownButtonElementinstance. + + + + + Initializes a new instance of the RadDropDownButton class. + + + + Override this method to create custom main element. By default the main element is an instance of + RadDropDownButtonElement. + + Instance of the one-and-only child of the root element of RadDropDownButton. + + + + + + + + + + + + + + + + + + Gets or sets the text value that is displayed on the button. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets the instance of RadDropDownButtonElement wrapped by this control. RadDropDownButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadDropDownButton. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets a collection representing the right column items of RadApplicationMenu. + + + + + Gets a collection representing the button items of RadApplicationMenu. + + + + + Gets or sets the right column width + + + + + Gets or sets the whether RadApplicationMenu will have TwoColumnDropDownMenu. + + + + + Represents a rad dropdown button element. The + RadDropDownButton control is a simple wrapper + for the RadDropDownButtonElement. All UI and logic functionality is implemented in + RadDropDownButtonElement class. The + RadDropDownButton acts to transfer events to + and from its RadDropDownButtonElement instance. RadDropDownButtonElement can be + nested in other telerik controls. + + + + Initializes a new instance of the DropDownButtonElement class. + + + Determines whether the event is passed up in the control hierarchy. + + + + Shows the drop down menu at given location + + The upper left corner of the drop down in screen coordinates + + + Shows the drop down menu. + + + Hides the drop down menu. + + + + Raises the DropDownOpening event. + + + + + Raises the DropDownOpened event. + + + + + Raises the DropDownClosed event. + + + + + Fires when the drop-down of the button is about to close. + + An instance of the + class that contains information about the event. + + + + Gets the drop down menu + + + + + Gets the arrow button + + + + + Gets the action button + + + + + Gets or sets the minimum size of the arrow button + + + + + Gets or sets a value indicating the position where the arrow button appears in drop-down button. + + + + + Gets or sets a value indicating the direction in which the dropdown item emerges from its parent container. + + + + + Gets or sets the expand arrow button + + + + + Gets a value indicating whether the drop down is shown + + + + + Gets the Items collection where you can add and remove items from the + DropDownButton. + + + + + Indicates whether the DropDown of the button should have two columns or one column. + + + + + Gets or sets a value indicating whether an arrow button is displayed on the drop-down buuton. + + + + + Gets or sets the image that is displayed on a button element. + + + + + Gets or sets the image list index value of the image displayed on the button control. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the position of text and image relative to each other. + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + Specifies the logical combination of image and text primitives in the element. + + + + + Gets a value indicating whether the button item is in the pressed state. + + + + + Gets the border element + + + + + Occurs when the drop-down is opening. + + + + + Occurs when the drop-down has opened. + + + + + Occurs when the drop-down window has closed. + + + + + Occurs when the drop-down window is about to close. + + + + + Gets or sets value indicating whether DropDownMenu will have the same class name as the owner control or its own. + True means that the same class name will be used as the control that opened the dropdown. + + + + + Gets or sets the whether RadApplicationMenu will have TwoColumnDropDownMenu. + + + + + Represents an application drop down menu in Office 2007 style. + + + + + Gets or sets the right column width + + + + + Gets a collection representing the right column items of RadApplicationMenu. + + + + + Gets a collection representing the button items of RadApplicationMenu. + + + + + Represents a context menu + + + + + Displays the context menu in its default position. + + + + + Displays the context menu relative to the specified screen location. + + The horizontal screen coordinate, in pixels. + The vertical screen coordinate, in pixels. + + + + Displays the context menu relative to the specified screen location. + + The horizontal and vertical location of the screen's upper-left corner, in pixels. + + + + Positions the context menu relative to the specified screen location and with the specified direction. + + The horizontal and vertical location of the screen's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the context menu relative to the specified control location. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal coordinate relative to the control, in pixels. + The vertical coordinate relative to the control, in pixels. + + + + Positions the context menu relative to the specified control location. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the reference control's upper-left corner, in pixels. + + + + Positions the context menu relative to the specified control location and with the specified direction. + + The control that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the reference control's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the context menu relative to the specified RadItem location. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal coordinate relative to the control, in pixels. + The vertical coordinate relative to the control, in pixels. + + + + Positions the context menu relative to the specified RadItem location. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the RadItem's upper-left corner, in pixels. + + + + Positions the context menu relative to the specified RadItem location and with the specified direction. + + The RadItem that is the reference point for the RadDropDownMenu position. + The horizontal and vertical location of the RadItem's upper-left corner, in pixels. + One of the RadDirection values. + + + + Positions the context menu relative to the specified RadItem location and + with specified direction and offset according to the owner. + + The RadItem that is the reference point for the RadDropDownMenu position. + Specifies the offset from the owner in pixels. + One of the RadDirection values. + + + + Raises the DropDownOpening event. + + The event arguments + + + + Raises the DropDownClosing event. + + The event arguments + + + + Raises the DropDownOpened event. + + + + + Raises the DropDownClosed event. + + + + + Occurs when the drop down is opening. + + + + + Occurs when the drop down is closing. + + + + + Occurs when the drop down is opened. + + + + + Occurs when the drop down is closed. + + + + + Gets menu items collection + + + + + Gets or sets control's preferred theme name. Themes are stored and retrieved using + APIs of . + + + If ThemeResolutionService.ApplicatonThemeName refers to a + non-empty string, the theme of a RadControl can differ from the one set using + RadControls.ThemeName property. If the themes differ, the + RadControls.ThemeName property will be overridden by + ThemeResolutionService.ApplicatonThemeName. If no theme is registered + with a name as ThemeResolutionService.ApplicatonThemeName, then + control will revert to the theme specified by its ThemeName property. + If ThemeName is assigned to a non-existing theme name, the control may + have no visual properties assigned, which will cause it look and behave in unexpected + manner. If ThemeName equals empty string, control's theme is set to a + theme that is registered within ThemeResolutionService with the name + "ControlDefault". + + + + + Gets or sets the ImageList that contains the images displayed by this control. + + + + + Gets menu drop down panel + + + + + Gets or sets a value indicating whether the Analytics functionality is enabled or disabled for this control. + + + + + This class represents the drop-down menu + used in the + component. + + + + + Represents a base class for the RadMenuItem class. + + + + + Initializes a new instance of the RadMenuItemBase class. + + + + + Calls the ShowPopup method and displays the child items in a popup window. + + + + + Closes the RadMenuItemBase popup. + + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An instance of the class + that contains information about the event. + + + + Raises the event. + + An that contains the event data. + + + + Occurs after the menu item dropdown opens. + + + + + Occurs before the menu item dropdown opens. + + + + + Occurs after the menu item dropdown closes. + + + + + Occurs before the popup is creating. + + + + + Occurs before the popup is closed. + + + + + Gets a value indiciating that the popup containing this menu item's children is shown. + + + + + Gets or sets the direction of the popup which is opened by this menu item. + + + + + Gets a collection of the child items. + + + + + Gets or sets menu header column text + + + + + Gets or sets menu header column image + + + + + Returns the control that owns this item. This can be a RadMenu or RadDropDownMenu. + + + + + Gets a values indicating whether this item has child items to show. + + + + + Gets the drop down menu associated with this menu item + + + + + Gets a value indicating whether this item has child items. + + + + + Gets a value indicating whether this item is in the root items collection. + + + + + Gets or sets the parent menu item. + + + + + Gets the next child item in the parent item's Items collection. + + + + + Gets the previous child item in the parent item's Items collection. + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + Provides a reference to the ButtonElement element in the menu item. + + + + + Gets or sets the index value of the image that is displayed on the item. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the index value of the image that is displayed on the item. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets the ImagePrimitive of this RadMenuHeaderItem. + + + + + Gets the FillPrimitive of this RadMenuHeaderItem. + + + + + Gets the BorderPrimitive of this RadMenuHeaderItem. + + + + + Gets the TextPrimitive of this RadMenuHeaderItem. + + + + + Represents a menu item which has a combobox placed inside. + + + + + Provides a reference to the hosted control in the menu item. + + + + + Creates an instance of the RadMenuItemPopup class. + This class represents the popup which is used to display menu + items in the RadMenu control. + + An instance of the RadItem class which represents the + owner of the popup. + + + + Defines the animation type used in popups + + + + + No animation is applied. + + + + + The control fades in upon showing. + + + + + The control uses easing animation. + + + + + Both easing and fade animation will be applied. + + + + + Defines the type of fade animation. + + + + + No fade animation is applied. + + + + + The control fades in upon showing. + + + + + The control fades out upon closing. + + + + + Defines the horizontal alignment of the popup + based on the alignment rectangle passed + in the ShowPopup method. + + + + + The left edge of the popup is aligned to the left edge of the alignment rectangle. + + + + + The left edge of the popup is aligned to the right edge of the alignment rectangle. + + + + + The right edge of the popup is aligned to the left edge of the alignment rectangle. + + + + + The right edge of the popup is aligned to the right edge of the alignment rectangle. + + + + + Defines the vertical alignment of the popup + based on the alignment rectangle passed + in the ShowPopup method. + + + + + The top edge of the popup is aligned to the top edge of the alignment rectangle. + + + + + The top edge of the popup is aligned to the bottom edge of the alignment rectangle. + + + + + The bottom edge of the popup is aligned to the top edge of the alignment rectangle. + + + + + The bottom edge of the popup is aligned to the bottom edge of the alignment rectangle. + + + + + Defines the popup alignment correction mode. + The values of this enumerator define how the popup alignment + is adjusted when the default aligning routine is not able + to properly position the popup due to lack of screen space. + + + + + No adjustments to the coordinates are applied. + + + + + The coordinates are adjusted with the needed amount so that + the popup remains visible in the current screen. + + + + + The coordinates are adjusted with the needed amount so that + the popup remains visible in the current screen, whereby + the popup edge is aligned with an edge of the alignment rectangle. + + + + + The coordinates are adjusted with the needed amount so that + the popup remains visible in the current screen, whereby + the popup edge is aligned with an outer edge of the alignment rectangle. + The popup does not cross the alignment rectangle bounds. + + + + + This enum defines how the size of a is + fitted to the screen bounds. + + + + + The size of the popup is not fit to the bounds of the screen. + + + + + The width of the popup is fit to the available space on the screen. + + + + + The height of the popup is fit to the available space on the screen. + + + + + This eunm defines the possible screen space usage modes. + + + + + The whole screen is used when positioning the popup. + + + + + The working area of the screen is used when positioning the popup. + + + + + An enum that defines the possible overlap modes which are + used to position the popup when its location cannot be adjusted so + that it meets all alignment and alignment correction requirements. + + + + + The popup's bounds can overlap with the alignment rectangle. + + + + + The popup will be snapped to the first possible outer edge of the alignment rectangle so that it does not overlap it. + The order of the considered edges depends on the popup alignment settings. + + + + + The RadScrollablePanel control can be used as a container for different UI elements. + This control is powered by the Telerik Presentation Framework and supports + gradient backgrounds, shapes and theming. This control supports also theming + of the scrollbars. + + + + + This method inserts the scrollbars and the container + in the Controls collection of this control. + + + + + Calculates the non-client margin of the control + based on the radius of the round rect shape. + + An instance of the struct + which represents the left, top, right and bottom margin. + + + + This method initializes the scrollbars and the + container control. + + + + + Resizes the panel to fit its contents. + + + + + Gets or sets a value indicating whether the focused control inside the RadScrollablePanel + will be automatically scrolled into view when gaining focus. + + + + + Gets or sets the state of the vertical scroll bar which indicates + whether it will be always visible(), + always hidden() + or determined by the content() - default + + + + + Gets or sets the state of the horizontal scroll bar which indicates + whether it will be always visible(), + always hidden() + or determined by the content() - default + + + + + Gets the current client area margin + of the control. + + + + Gets the default size of the control. + The default System.Drawing.Size of the control. + The default Size of the control. + + + + Gets an instance of the + class which represents the main element of the control. + + + + + Gets the container panel that holds + all the components added to the panel. + + + + + Gets the vertical scrollbar of the control. + + + + + Gets the horizontal scrollbar of the control. + + + + + This property is not relevant for this class. + + + + + This property is not relevant for this class. + + + + + Gets or sets a value of the enumeration. + This value determines how the pop-up form can be resized: vertically, horizontally or both. + + + + + Gets or sets a value indicating whether the user can give the focus to this control + using the TAB key. + /// + true if the user can give the focus to the control using the TAB key;otherwise, false. The default is true. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a value specifying the style of the DropDownList + + + + + + + + + + + + + + + + + + + + + + + + + ArrowButton Property + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets a value specifying the style of the DropDownList + + + + + Represents an interface for printable objects. + + + + + Called when the printing begins. + + The that has initiated the printing. + The event args. + The number of pages. + + + + Called when the printing ends. + + The that has initiated the printing. + The event args. + [false] if cancel + + + + Prints the page with the specified number. + + The number of the current page. + The that has initiated the printing. + The event args. + [true] if there are more pages, [false] otherwise + + + + Gets a print settings dialog that is specific for the printable object. + + The that has initiated the printing. + The dialog. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the associated with the event. + + + + + Gets the graphics object which is used for painting. + + + + + Gets the bounds in which the element is being painted. + + + + + Represents an UI dialog for editing print settings. + + + + + Loads the settings when the dialog is shown. + + + + + Saves all settings from the dialog into the . + + + + + Creates the specific control for editing the settings of the printed control. + + The that will be displayed on the first page of this dialog + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the page view control of the dialog. + + The page view. + + + + Gets the shown in this dialog. + + + + + If [true] a Preview button is shown, otherwise an OK button is shown. + + + + + Defines a reusable object that sends output to a printer and manages the whole printing process, + when printing from an application. Can be associated with any object that implements the interface. + + + + + Prints the header part of the page. + + The printing arguments. + + + + Prints the footer part of the page. + + The printing arguments. + + + + Prints the watermark of the page. + + The printing arguments. + + + + Called when the associated printable object has changed. + + + + + Parses a given string for special words. + + The string. + The parsed string. + + + + Gets or sets the currently selected page. This page will be the first to be printed when the PrintRange + is set to Current or Selection. + + + + + Gets or sets the count of the selected pages. This indicates how many pages will be printed when the PrintRange + is set to Selection. + + + + + Gets or sets the font of the page header. + + + + + Gets or sets the font of the page footer. + + + + + [true] if the LeftHeader and RightHeader should be reversed on even pages, [false] otherwise. + + + + + [true] if the LeftFooter and RightFooter should be reversed on even pages, [false] otherwise. + + + + + Gets or sets the text that will be printed near the upper left corner of the page. + + + + + Gets or sets the text that will be printed near the upper right corner of the page. + + + + + Gets or sets the text that will be printed at the top center of the page. + + + + + Gets or sets the text that will be printed near the bottom left corner of the page. + + + + + Gets or sets the text that will be printed near the bottom right corner of the page. + + + + + Gets or sets the text that will be printed at the bottom center of the page. + + + + + Gets or sets the height of the header area. + + + + + Gets or sets the height of the header area. + + + + + Gets or sets the object, associated with this document. + + + + + Gets the number of the page being printed. + The value of this property changes during the printing process. + + + + + Gets the total page count. The value is populated when the printing process begins. + + + + + Indicates whether the printing process is running. + + + + + Draws the element using the object in the given rectangle. + + The graphics object used for the drawing. + The draw area. + + + + Draws the element using the object in the given rectangle. + + The graphics object used for the drawing. + The draw area. + + + + Gets or sets the padding arround the text. + + + + + Gets or sets a value indicating whether the text should be drawn. + + + + + Gets or sets the rotation angle of the element. + + + + + Gets or sets the scale factors of the element. + + + + + Gets or sets whether a fill should be drawn. + + + + + Gets or sets whether a border should be drawn. + + + + + Gets or sets whether the cell is right to left. + + + + + Gets or sets the fore color of the element. + + + + + Gets or sets the back color of the element. + + + + + Gets or sets the back color of the element. + + + + + Gets or sets the text alignment of the element. + + + + + Gets or sets the text to be drawn. + + + + + Gets or sets the font used for drawing the text. + + + + + Gets or sets the string trimming mode. + + + + + Gets or sets the string format flags. + + + + + Gets or sets the image of the element. + + + + + Gets or sets the image layout. + + + + + Gets or sets the image alignment + + + + + Represents a series of points that will define the shape of the element. + + + + + Gets or sets a value indicating whether html text will be interpreted or will be printed directly. + + + + + A control which is responsible for displaying print documents. + + + + + Gets or sets the border color for each page. + + + + + Gets or sets the inner border color for each page. + + + + + Gets or sets the current scroll position. + + + + + A dialog for previwing and setting before printing. + + + + + Scrolls the preview with a specified offset. + + The offset. + + + + Sets the zoom factor of the preview. + + The zoom factor. + + + + Localizes the strings in the dialog with strings from the current + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the that should be previewed. + + + + + Gets the RadMenu instance of the form. + + + + + Gets the RadCommandBar instance of the form. + + + + + Gets the that is shown by this dialog. + + + + + Gets the that is shown by this dialog. + + + + + Checks whether the watermark should be printed on the given page. + + The page to check. + True if the watermark should be printed, otherwise false. + + + + Gets a list of integer values for the string Pages. + + + + + Gets or sets a value indicating whether the watermark is printed on all pages. + + + + + Gets or sets a string which indicates on which pages the watermark should be printed. + + + + + Gets or sets the fore color of the text. + + + + + Gets or sets the text. + + + + + Gets or sets the font of the text. + + + + + Gets or sets a value indicating whether the watermark is drawn under or over the printed content. + + + + + Gets a value indicating whether there is a text to be printed. + + + + + Gets or sets the angle at which the text is rotated. + + + + + Gets or sets the text opacity. + + + + + Gets or sets the text horizontal offset. + + + + + Gets or sets the text vertical offset. + + + + + Gets a value indicating whether there is an image to be printed. + + + + + Gets or sets the path to the image. + + + + + Gets or sets the image opacity. + + + + + Gets or sets the image horizontal offset. + + + + + Gets or sets the image vertical offset. + + + + + Gets or sets a value indicating whether the image should tiled. + + + + + Represent a stack layout element + + + + + Arranges the items horizontally. + + The final size. + + + + Arranges the items horizontaly. + + The client rect. + The final size. + Width of the stretchable. + The spacing. + + + + Arranges the items vertically. + + The final size. + + + + Arranges the element. + + The element. + The client rect. + The final rect. + The final size. + + + + Aligns the rectangle according to orientation and element's alignment. + + The element. + The arrange rect. + + + + + Gets or sets the item orientation. + + + The orientation. + + + + + Gets or sets the element spacing between items. + + + The element spacing. + + + + + Gets or sets the right to left mode. + + + The right to left mode. + + + + + Gets or sets a value indicating whether to fit the available size. + + + true if fit the available size; otherwise, false. + + + + + Gets or sets a comparer to be used for defining the order of the child elements. + + + + + Right to left modes in + + + + + Represents a selectable option displayed on a or + in a drop down panel. + + + + + Initializes a new instance of the RadMenuItem class. + + + + + Initializes a new instance of the RadMenuItem class using the displayed + text. + + + + + + Initializes a new instance of the RadMenuItem class using the displayed text. + + + + + + + Raises the ToggleStateChanging event. + + + + + Raises the ToggleStateChanged event. + + + + + Determines whether the arrow is currently displayed for this item. + + + + + Occurs before the item's toggle state changes. + + + + + Occurs when the item's toggle state changes. + + + + + Gets or sets the text that appears as a HintText for a menu item. + + + + + Gets or sets the toggle + state. Toggle state enumeration defines the following values: Off, + Indeterminate, and On. + + + + + Gets or sets if the arrow is shown when the menu item contains sub menu. + + + + + Gets or sets the font of the descrition text of the RadMenuItem. + + + + + Gets the visibility of description text element + + + + + Gets or sets the description text associated with this item. + + + + + Gets or sets a value indicating whether a menu item should toggle its CheckState on mouse click. + + + + + Gets the FillPrimitive of RadMenuItem responsible for the background appearance. + + + + + Gets the BorderPrimitive of RadMenuItem responsible for appearance of the border. + + + + Gets or sets a value indicating whether the menu item is checked. + + + + Gets or sets the index value of the image that is displayed on the item. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the position of a merged item within the current menu. + + + + + Gets or sets the visibility of the separator element between the text and the description text + + + + + Gets or sets the name of the control for use by accessibility client applications. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents event data for some of the progress bar event: + ValueChanged, + MinimumChanged, + MaximumChanged, + StepChanged, + StepWidthChanged, + DashChanged, + IntegralDashChanged, + SeparatorWidthChanged, + TextOrientationChanged, + TextAlignmentChanged, + ProgressOrientationChanged, + ShowProgressIndicatorsChanged and + SeparatorColorChanged. + + + + + Initializes a new instance of the ProgressBarEventArgs class using the sender + of the event. + + Represents the event sender. + + + + Gets or sets the event sender. + + event sender. + + + + Exposes the reason for a progress bar or waiting bar event. + + + + + Indicates that value1 or value2 has been changed. + + + + + Indicates that the Minimum property has been changed. + + + + + Indicates that the Maximum property has been changed. + + + + + Indicates that the Step has been changed. + + + + + Indicates that the Step width has been changed. + + + + + Indicates that the Dash property has been changed. + + + + + Indicates that the Hatch property has been changed. + + + + + Indicates that the IntegralDash property has been changed. + + + + + Indicates that the Text property has been changed. + + + + + Indicates that the SeparatorWidth property has been changed. + + + + + Indicates that the TextOrientatio property has been changed. + + + + + Indicates that the TextAlignment property has been changed. + + + + + Indicates that the ProgressOrientation property has been changed. + + + + + Indicates that the ProgressOrientation property has been changed. + + + + + Indicates that one of the separator colors property has been changed. + + + + + Indicates that the separators gradeient angle property has been changed. + + + + + Indicates that the separator color stop has changed + + + + + Indicates that the separator number of colors changed. + + + + + Initializes the fields. + + + + + Rrepresents a progress indicator used in + + + + + Represents a state manager for the progress bar progress indicators. + + + + + Creates the state manager. + + + + + + Represents a state manager for + + + + + Creates the specific states. + + + + + + Creates the state manager. + + + + + + Virtual function that draws the primitive on the screen. + + The graphics object. + The angle. + The scale. + + + + Gets or sets the width of the separator. + + + The width of the separator. + + + + + Gets or sets the width of the step. + + + The width of the step. + + + + + Gets or sets the separator color1. + + + The separator color1. + + + + + Gets or sets the separator color2. + + + The separator color2. + + + + + Gets or sets the separator color3. + + + The separator color3. + + + + + Gets or sets the separator color4. + + + The separator color4. + + + + + Gets or sets the separator gradient angle. + + + The separator gradient angle. + + + + + Gets or sets the separator gradient percentage1. + + + The separator gradient percentage1. + + + + + Gets or sets the separator gradient percentage2. + + + The separator gradient percentage2. + + + + + Gets or sets the number of colors to be used. + + + The number of colors. + + + + + Gets or sets the flow direction of the progress indicator. + + + The progress orientation. + + + + + Gets or sets the sweep angle. + + + The sweep angle. + + + + + Gets or sets a value indicating whether this is dash. + + + true if dash; otherwise, false. + + + + + Gets or sets a value indicating whether this is hatch. + + + true if hatch; otherwise, false. + + + + + Initializes the fields. + + + + + Gets or sets whether this progress indicatior will automatically control its + opacity when close to or over the second progress indicator. + + + + + Gets or sets the minimum opacity level this progress indicator will go to + when over the second progress indicator when AutoOpacity property is set + to true. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + The RadCheckBoxThreeStateAttribute determines whether properties inside will have a three state check box editor or a two state one. + + + + + Creates a new instance of the attribute with the specified value. + + The value defining whether the editor should be three state. + + + + Gets the value of the attribute. + + + + + The RadRangeAttribute is an attribute which specifies the allowed range of values. + It can be applied to properties declarations only. + It is used by an editor when the propertyes is being edited. + + + + + Creates a new instance of the attribute withe the specific range. + + The minimum possible value in the range. + The maximum possible value in the range. + + + + Gets the minimum value of the specified range. + + + + + Gets the maximum value of the specified range. + + + + + The RadSortOrderAttribute is an attribute which specifies the sort order for properties inside . + It can be applied to properties declarations only. + + + + + Creates a new instance of the attribute with the specified value. + + The value defining the sort order. + + + + Gets the value of the attribute. + + + + + Defines an interface used to acces property information in RadPropertyGrid. + + + + + Gets the property name. + + + + + Gets the property display name + + + + + Gets or sets the property value. + + + + + Gets the property description. + + + + + Gets a value indicating whether the property is read only. + + + + + Gets the property category. + + + + + Gets a collection of the attributes applied to the property. + + + + + Gets the property type. + + + + + Gets the associated with this property. + + + + + Gets the associated with this property. + + + + + Gets the associated with this property. + + + + + Gets the property name. + + + + + Gets the property display name + + + + + Gets or sets the property value. + + + + + Gets or sets the description associated with this property. + + + + + Gets the categoty of the property from its or returns "Other" if no category is specified. + + + + + Gets a value indicating whether the property is editable. + + + + + Gets a collection of the attributes applied to the property. + + + + + Gets the property type. + + + + + Gets the property descriptor for this property. + + + + + Gets the UITypeEditor associated with this property + + + + + Gets the TypeConverter associated with this property + + + + + Gets the associated with this accessor. + + + + + Expands this instance. + + + + + Collapses this instance. + + + + + Gets the group item. + + The group item. + + + + Gets the expanded state of the group. + + + + + Expandes the item. + + + + + Collapses the item. + + + + + Ensures that this item is visible in the content of the RadPropertyGridElement. + + + + + Selects the grid tiem. + + + + + Allows PropertyChanged notifications to be temporary suspended. + + + + + Resumes property notifications after a previous SuspendPropertyNotifications call. + + + + + Gets the parent property grid that the item is assigned to. + + + + + Gets or sets a value indicating whether this instance is visible. + + + true if this instance is visible; otherwise, false. + + + + + Gets or sets a value indicating whether this item is selected. + + + true if this item is selected; otherwise, false. + + + + + Gets or sets a value indicating whether this item is expanded. + + + true if this item is expanded; otherwise, false. + + + + + Gets or sets a value indicating whether the item can respond to user interaction. + + The default value is true. + + + + Gets or sets the height of the item. + + The default value is 20. + + + + Gets or sets the image of the node. + + ImageIndex Property + ImageKey Property + + + + Gets or sets the left image list index value of the image displayed when the tree + node is not selected. + + Image Property + ImageKey Property + + + + Gets or sets the key + for the left image associated with this tree node when the node is not selected. + + Image Property + ImageIndex Property + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the description associated with this item. + + + + + Gets or sets the tool tip text associated with this item. + + + + Gets or sets the context menu associated to the item. + Returns an instance of RadDropDownMenu Class that + is associated with the item. The default value is null. + + This property could be used to associate a custom menu and replace the property grid's + default. If the context menu is invoked by right-clicking an item, the property grid's menu + will not be shown and the context menu assigned to this item will be shown instead. + + + + + Gets or sets the tag object that can be used to store user data, corresponding to the item. + + The tag. + + + + Gets a value indicating how deep in the hierarchy this propety is. + + + + + Gets the child items list associated with this item. + + + + + Gets a value indicating whether this item is expandable. + + + + + Gets the parent item for this item. + + + + + Gets the property name + + + + + Resets the property value to its default value. + + + + + Selects this item and puts the Property grid in edit mode. + + + + + Gets the child items for a given item. + + The parent item for which to get the child items. + The instance of the item. + The type of the property. + Collection of . + + + + Gets the default value of the current item. A return parameter determines if the operation succeeded. + + An object where the default value will be stored if there is such. + True if the item has a default value otherwise false. + + + + Determines if the item should update its child items based on the types of the old value and the new one. + + The old value of this item. + The new value of this item. + True if child items should be updated otherwise false. + + + + Converts a string into a password string. + + The input. + + + + + Gets the property name + + + + + Gets or sets the text that would be displayed for this property. + + + + + Gets or sets the description associated with this item. + + + + + Gets the category of the property from its or returns "Other" if no category is specified. + + + + + Gets a value indicating whether the property is read only. + + + + + Gets or sets the item value. + + The text. + + + + Gets the value of the property as a string using its . + + + + + Gets the original property value. + + + + + Gets a value indicating whether the property value is modified. + + + + + Gets a value indicating whether this is a complex property. + + + + + Gets or sets a value defining the sort order of the item when no other sorting is applied. + + + + + Gets or sets a value defining whether check box editor will be three state. + + + + + Gets a collection of the attributes applied to the property. + + + + + Gets the sub items of the current if it is composed of several subitems. + + + + + Gets or sets the parent of this item. + + + + + Gets or sets an error message to be displayed when property value validation fails. + + + + + Gets the UITypeEditor associated with this property + + + + + Gets the TypeConverter associated with this property + + + + + Gets the property type + + + + + Gets the property descriptor for this property. + + + + + Gets the item accessor for this property item. + + + + + Gets the items. + + + + + + Sets the current. + + The item. + + + + Resets this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Suspends the update. + + + + + Resumes the update. + + + + + Gets the property grid element. + + The tree view. + + + + Gets a value indicating whether this instance is suspended. + + + true if this instance is suspended; otherwise, false. + + + + + Gets the text displayed for this group. + + + + + Gets the items collection of the group. + + + + + Gets a value indicating whether this item is expandable. + + + + + Gets the group created by the Group Factory + + + + + Gets the name of this group. + + + + + Represents a text box control editor in . + + + + + Gets the PropertyGridTableElement. + + + + + Gets the item tha is being processed. + + + + + Gets or sets the GroupKey. The GroupKey is a unique identifier for a group. + + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + PropertyGridSpreadExport is a powerful exporting API, allowing to export RadPropertyGrid to XLSX, PDF, CSV, and TXT format, utilizing the Document Processing Libraries. + + + + + Initializes a new instance of the class. + + The RadPropertyGrid to export. + + + + Initializes a new instance of the class. + + The RadPropertyGrid to export. + The export format. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Starts an export operation. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadPropertyGrid will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadPropertyGrid will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadPropertyGrid will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadPropertyGrid will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Cancels an asynchronous export operation. + + + + + Check if date is supported from MS Excel + + + True if value is supported + + + + Gets or sets the name of the sheet. + + + The name of the sheet. + + + + + Specifies whether a file will be exported as a new file, or if a file with the same name already exists at the specified path, a new sheet will be added to it. + + + ExportAsNewSheetInExistingFile - will add a new sheet to the specified file, if it exists + ExportInNewFile - will create/override the specified file + + + + + Gets or sets a value indicating whether to export child items grouped. + + + + + Gets or sets a value indicating whether to export item descriptions. + + + + + Gets or sets the format of the exported file - XLSX, PDF, CSV or TXT. + + + The file extension. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets the maximum number of rows per sheet. + + + The sheet max rows. + + + + + Gets or sets the indent of child items. + + + + + Gets or sets a value indicating how children of collapsed items are exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when the export process completes. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents the method that will handle the CellFormatting event. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the CellFormatting event + + + + + Initializes a new instance of the class. + + Export cell for further formatting. + The exporting item of RadPropertyGrid. + The row index in the worksheet. + + + + Gets the row index in worksheet. + + + + + Gets export cell for further formatting. + + + + + Gets the exporting item. + + + + + Defines the mode that uses to best fit its columns. + + + + + Maximizes the visibility of the strings in the Labels column. + + + + + Maximizes the visibility of the strings in the Values column. + + + + + Uses a mechanism that makes a maximum number of strings from both columns visibile. + + + + + Generates and displays a barcode using a provided encoding method (symbology) and a value. + + + + + Exports the barcode with the current dimentions of the control. + + An image of the barcode. + + + + Layouts the barcode using the provided dimentions and exports it to an image. + + The width of the exported image. + The height of the exported image. + An image of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified stream. + + The stream to export the barcode to. + The size of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified file location. + + The location of the file where to export the barcode. + The size of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified stream in the specified image format. + + The stream to export the barcode to. + The size of the barcode. + The format of the exported image. + + + + Layouts the barcode using the provided size and exports it to the specified file location in the specified image format. + + The location of the file where to export the barcode. + The size of the barcode. + The format of the exported image. + + + + Gets the barcode element of this control. + + + + + Gets or sets the value that will be converted into a barcode. + + + + + Gets or sets the symbology that will be used to convert the value of this element into a visual barcode representation. + + + + + Occurs after the value of the barcode is changed. + + + + + Occurs before the value of the barcode is changed. + + + + + Occurs after the symbology of the barcode is changed. + + + + + Occurs before the symbology of the barcode is changed. + + + + + Updates the layout and invalidates the barcode. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Exports the barcode with the current dimentions of the control. + + An image of the barcode. + + + + Layouts the barcode using the provided dimentions and exports it to an image. + + The width of the exported image. + The height of the exported image. + An image of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified stream. + + The stream to export the barcode to. + The size of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified file location. + + The location of the file where to export the barcode. + The size of the barcode. + + + + Layouts the barcode using the provided size and exports it to the specified file location in the specified image format. + + The location of the file where to export the barcode. + The size of the barcode. + The format of the exported image. + + + + Layouts the barcode using the provided size and exports it to the specified stream in the specified image format. + + The stream to export the barcode to. + The size of the barcode. + The format of the exported image. + + + + Called when a property of the symbology changes. Suitable for performing necessary updates based on the changes. + + + + + + + Gets or sets the element factory that is used to create the elements of the displayed barcode. + + + + + Gets or sets the symbology that will be used to convert the value of this element into a visual barcode representation. + + + + + Gets or sets the value that will be converted into a barcode. + + + + + Occurs after the value of the barcode is changed. + + + + + Occurs before the value of the barcode is changed. + + + + + Occurs after the symbology of the barcode is changed. + + + + + Occurs before the symbology of the barcode is changed. + + + + + Gets or sets the horizontal alignment of the text dislayed in the barcode. + + + + + Gets or sets the vertical alignment of the text dislayed in the barcode. + + + + + Gets or sets whether the barcode should display the human readable value of the barcode. + + + + + Gets or sets whether the bars of the barcode should be stretched to fill the space available. + + + + + Gets or sets whether the barcode should calculate a checksum. + + + + + Gets or sets a module by which the barcode can be scaled up. + + + + + Gets the value currently being encoded by the symbology. + + + + + The EncodingMode enumeration determines the type of the acceptable data. + + + + + Auto mode. + + + + + Accepts byte data. + + + + + Allows text data. + + + + + Allows numeric data. + + + + + Creates a new PDF417 symbology with default values which can be used by to encode values into PDF417 barcodes. + + + + + Creates a new PDF417 symbology which can be used by to encode values into PDF417 barcodes. + + The number of columns fro the generated barcode. + The number of rows fro the generated barcode. + How much data will be available for error correction. + + + + Gets or sets how much data will be available for error correction. + + + + + Gets or sets the number of rows fro the generated barcode. + + + + + Gets or sets the number of columns fro the generated barcode. + + + + + Gets or sets a module by which the barcode can be scaled up. + + + + + Gets or sets the type of the acceptable data. + + + + + Gets the true/false values representing each module in the PDF417 code. + + + + + Switch to "Uppercase". + + + + + Switch to "Lowercase". + + + + + Switch to "Mixed". + + + + + Switch to "Punctuation" only for next character. + + + + + Initializes a new instance of the class. + + + + + Provides methods for encoding and validation of double-byte Kanji characters. + + + + + Initializes a new instance of the class. + + + + + This method encodes the data for the Kanji Mode. + + + + + Validates the data, to ensure no invalid characters are present. + + + + + Determines the type of code, such as Numeric, Alphanumeric, Byte or Kanji. + + + + + Byte Mode. + + + + + Allows Numbers [0-9]. + + + + + Allows characters or numbers. + + + + + Kanji Mode. + + + + + Determines how much data is available for error correction. + + + + + Low. + + + + + Medium. + + + + + Quartile. + + + + + High. + + + + + Determines the Extended Channel Interpretation (ECI) mode, which allows for encoding of characters from other sets. + + + + + None. + + + + + ECI 9. + + + + + ECI 8. + + + + + ECI 7. + + + + + ECI 6. + + + + + ECI 5. + + + + + ECI 4. + + + + + ECI 3. + + + + + ECI 2. + + + + + ECI 1. + + + + + ECI 10. + + + + + ECI 11. + + + + + ECI 13. + + + + + ECI 15. + + + + + ECI 17. + + + + + ECI 21. + + + + + ECI 22. + + + + + ECI 23. + + + + + ECI 24. + + + + + UTF-8. + + + + + ECI 27. + + + + + Signifies application of special formatting to the code data. + + + + + None. + + + + + FNC 1 in first position. + + + + + FNC 1 in second position. + + + + + Creates a new QRCode symbology with default values which can be used by to encode values into QR barcodes. + + + + + Creates a new QRCode symbology which can be used by to encode values into QR barcodes. + + The type of code that will be used for encoding. + Determines the size of the QR code and the amount of information that can be encoded. + Accepted values are in the range [1..40]. If you set the version to a number outside this range, version will be calculated automatically. + How much data will be available for error correction. + Extended Channel Interpretation (ECI) mode, which allows for encoding of characters from other sets. + Application of special formatting to the code data. + The application indentifier to be encoded in the QR code. + + + + Gets the true/false values representing each module in the QR code. + + + + + Gets or sets a module by which the barcode can be scaled up. + + + + + Gets the matrix, reflecting the filled modules/positions in the QR code matrix. + + + + + Gets the size of the QR code based on the current version. + + + + + Gets or sets the version of the QR code. The version determines the size of the QR code and the amount of information that can be encoded. + Accepted values are in the range [1..40]. If you set the version to a number outside this range, version will be calculated automatically. + + + + + Gets or sets the type of code that will be used for encoding, such as Numeric, Alphanumeric, Byte or Kanji. + + + + + Gets or sets how much data will be available for error correction. + + + + + Gets or sets the Extended Channel Interpretation (ECI) mode, which allows for encoding of characters from other sets. + + + + + Gets or sets application of special formatting to the code data. + + + + + Gets or sets the application indentifier to be encoded in the QR code. + + + + + Provides localization services for RadBrowseEditor. + + + + + Represents localization strings in RadBrowserEditor. + + + + + Specifies the navigation mode that will be used when user click on header element. + + + + + Exposes the top instance of CalendarView or its derived + types.v + Every CalendarView class handles the real calculation and + rendering of RadCalendar's calendric information. The + CalendarView has the + + CalendarViewCollection collection which contains all the sub views in case of multi view + setup. + + + + + Gets the parent calendar that the current view is assigned to. + + + + Gets or sets the selected cell. + + + + Gets the items collection of the element + + + + + Displays a collection of labeled items, each represented by a ListViewDataItem. + + + + + Shows the of CardTemplate and puts the selected item in customize mode. + + + + + Closes the and puts the selected item out of customize mode. + + + + + Gets the card view element. + + The card view element. + + + + Gets the RadLayoutControl used as a card template. + + + + + Gets or sets the default item size. + + + + + Gets or sets the space between the items. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Occurs when a new is created. + + + + + Occurs when a needs to be formatted. + + + + + Represents the main element of . + + + + + Represents the main element of . + + + + + Begins an edit operation over the currently selected item. + + [true] if success, [false] otherwise + + + + Ends the current edit operations if such. Saves the changes. + + [true] if success, [false] otherwise + + + + Ends the current edit operations if such. Discards the changes. + + [true] if success, [false] otherwise + + + + Creates a view element corresponding to the current ViewType. + + The view element. + + + + Suspend any item change notifications until is called. + + + + + Resumes the item change notifications. + + + + + Finds an item with the specified key. + + The key of the searched item. + + + + + Finds an item with the specified key. + + The key of the searched item. + Indicates if the search should check only visible items. + + + + + Causes synchronization of the visual items with the logical ones. + + + + + Ensures that a given item is visible on the client area. + + The item to ensure visibility of. + + + + Ensures that a given item is visible on the client area. + + The item to ensure visibility of. + Indicates whether the view should be scrolled horizontally. + + + + Ensures that a given column is visible on the client area. + + The column to ensure visibility of. + + + + Selects a range of items. + + The items. + + + + Expands all the groups in the element. + + + + + Collapses all the groups in the element. + + + + + Checks all of the selected items. + + + + + Unchecks all of the selected items. + + + + + Checks all of the items. + + + + + Unchecks all of the items. + + + + + Updates the contents of the collection. + + + + + Scrolls the view with a given amount. + + The amount to scroll the view with. + + + + Fires when a group has been expanded. + + + + + Fires when a group is about to expand. Cancelable. + + + + + Occurs when a ListViewDataItem is about to be selected. Cancelable. + + + + + Occurs when the content of the SelectedItems collection has changed. + + + + + Occurs when the selected item has changed. + + + + + Occurs when the index of the selected item has changed. + + + + + Occurs when the ViewType of RadListView is changed. + + + + + Occurs when the ViewType of RadListView is about to change. Cancelable. + + + + + Occurs when the user presses a mouse button over a ListViewDataItem. + + + + + Occurs when the user presses a mouse button over a ListViewDataItem. + + + + + Occurs when the user moves the mouse over a ListViewDataItem. + + + + + Occurs when the user hovers a ListViewDataItem. + + + + + Occurs when the mouse pointer enters a ListViewDataItem. + + + + + Occurs when the mouse pointer leaves a ListViewDataItem. + + + + + Occurs when the user clicks a ListViewDataItem. + + + + + Occurs when the user double-clicks a ListViewDataItem. + + + + + Occurs when a ListViewDataItem is about to be checked. Cancelable. + + + + + Occurs when a ListViewDataItem is checked. + + + + + Occurs when a ListViewDataItem changes its state and needs to be formatted. + + + + + Occurs when a ListViewDataItem needs to be created. + + + + + Occurs when a BaseListViewVisualItem needs to be created; + + + + + Occurs when a DetailsView cell needs to be formatted. + + + + + Occurs when a data-bound item is being attached to a ListViewDataItem. + + + + + Occurs when the CurrentItem property is changed. + + + + + Occurs when the CurrentItem property is about to change. Cancelable. + + + + + Occurs when an editor is required. + + + + + Occurs when an edit operation is about to begin. Cancelable. + + + + + Occurs when an editor is initialized. + + + + + Occurs when a ListViewDataItem is edited. + + + + + Fires when a validation error occurs. + + + + + Occurs when an edit operation needs to be validated. + + + + + Occurs when the value of a ListViewDataItem is changed. + + + + + Occurs when the value of a ListViewDataItem is about to change. Cancelable. + + + + + Occurs when a needs to be created. + + + + + Occurs when a needs to be created. + + + + + Occurs when an item is about to be removed using the Delete key. Cancelable. + + + + + Occurs when an item is removed using the Delete key. + + + + + Gets or sets a value indicating whether column names which differ only in the casing are allowed. + + + + + Gets or sets a value indicating whether the last added item in the RadListView DataSource will be selected by the control. + + + + + Gets or sets the display state of the horizontal scrollbar. + + + + + Gets or sets the display state of the vertical scrollbar. + + + + + Gets or sets a value indicating whether the checkboxes should be in ThreeState mode. + + + + + Gets or sets a value indicating whether grid lines shoud be shown in DetailsView. + + + + + Gets or sets a value indicating whether items can be selected with mouse dragging. + + + + + Gets or sets a value indicating whether items should react on mouse hover. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. Always false when lasso selection is enabled. + + + + + Gets or sets a value indicating whether the items should be sorted when clicking on header cells. + + + + + Gets or sets a value indicating whether the column headers should be drawn. + + + + + Gets or sets a value indicating whether the items should be shown in groups. + + + + + Gets or sets value indicating whether checkboxes should be shown. + + + + + Gets or sets value indicating if the user can reorder columns via drag and drop. + + + + + Gets or sets value indicating if the user can reorder items via drag and drop. + Always false when using data source, grouping, filtering, sorting, kinetic scrolling or lasso selection. + + + + + Gets or sets value indicating if the user can resize the columns. + + + + + Gets or sets the current column in Details View. + + + + + Indicates whether there is an active editor. + + + + + Gets or sets the current item. + + + + + Gets or sets the index of the selected item. + + + + + Gets or sets the selected item. + + + + + Gets a collection containing the selected items. + + + + + Gets a collection containing the checked items. + + + + + Gets or sets value indicating whether multi selection is enabled. + + + + + Gets or sets value indicating whether editing is enabled. + + + + + Gets or sets value indicating whether the user can remove items with the Delete key. + + + + + Gets the currently active editor. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Gets or sets a value indicating whether the items can have different width. + + + + + Gets or sets a value indicating whether the full row should be selected. + + + + + Gets or sets the default item size. + + + + + Gets or sets the default group item size. + + + + + Gets or sets the indent of the items when they are displayed in a group. + + + + + Gets or sets the fill color of the lasso selection rectangle. + + + + + Gets or sets the border color of the lasso selection rectangle. + + + + + Gets or sets the space between the items. + + + + + Gets or sets a collection of ListViewDetailColumn object which represent the columns in DetailsView. + + + + + Gets a value indicating whether the control is in bound mode. + + + + + Gets a collection containing the groups of the RadListViewElement. + + + + + Gets or sets the value member. + + + + + Gets or sets the display member. + + + + + Gets or sets the checked member. + + + + + Gets the DataView collection. + + + + + Gets or sets a value indicating whether sorting is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets or sets a value indicating whether custom grouping is enabled. + + + + + Gets a collection of filter descriptors by which you can apply filter rules to the items. + + + + + Gets a collection of SortDescriptor which are used to define sorting rules over the + ListViewDataItemCollection. + + + + + Gets a collection of GroupDescriptor which are used to define grouping rules over the + ListViewDataItemCollection. + + + + + Gets the source of the items. + + + + + Gets or sets a collection of ListViewDataItem object which represent the items in RadListViewElement. + + + + + Gets the element that represents the active view. + + + + + Gets or sets the type of the view. + + + + + Gets or sets the data source of a RadListViewElement. + + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets the height of the header in Details View. + + + + + Gets or sets the that is responsible for resizing the columns. + + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when BaseListViewElement is focused. + The default value is false. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + The default value is 300. + + + + + Gets or sets a value indicating whether the item's check state changes whenever the item is clicked. + + + + + Occurs when the BindingContext has changed. + + + + + Occurs when the process of binding to a data source has finished + + + + + Gets or sets the BindingContext. + + + + + Creates a view element for the current CardView. + + The view element. + + + + Shows the of CardTemplate and puts the selected item in customize mode. + + + + + Closes the and puts the selected item out of customize mode. + + + + + Begins an edit operation over the currently selected item. + + [true] if success, [false] otherwise + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Initializes the editor. + + The visual item. + The initializable. + The editor. + + + + Sets the selected item value. + + The instance containing the event data. + The new value. + + + + Gets the used as a card template. + + + + + Occurs when a new is created in + + + + + Occurs when a needs to be formatted. + + + + + Represents a base class for view elements. + + + + + Gets the at a specified location. + + The location. + The . + + + + Gets the at a specified location. + + The location. + The . + + + + Scrolls the view with a given amount. + + The amount to scroll with. + + + + Ensures that a given is visible on the client area. + + The to ensure visibility of. + + + + Ensures that a given is visible on the client area. + + The to ensure visibility of. + Indicates if the view should be scrolled horizontally. + + + + Clears the selection. + + + + + Toggles the CheckState of given item. + + The item whose CheckState will be toggled. + + + + Returns a value indicating whether the current view supports given orientation. + + The orientation. + [true] if the current view supports the orientation, [false] otherwise. + + + + Ensures that a given is visible by scrolling the view horizontally. + + The item to ensure visibility of. + + + + Ensures that a given is visible by scrolling the view vertically. + + The item to ensure visibility of. + + + + Ensures that a given is visible when it is below the last visible item in the view. + + The item to ensure visibility of. + + + + Called when the orientation of the view has changed. + + + + + Updates the horizontal scrollbar. + + + + + Updates the visibility of the horizontal scrollbar. + + + + + Processes the MouseUp event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Processes the MouseMove event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Processes the MouseDown event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Processes the KeyDown event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Handles a press of the PageUp key. + + The event args. + + + + Handles a press of the PageDown key. + + The event args. + + + + Handles a press of the Delete key. + + The event args. + + + + Handles a press of the End key. + + The event args. + + + + Handles a press of the Home key. + + The event args. + + + + Handles a press of the Escape key. + + The event args. + + + + Handles a press of the F2 key. + + The event args. + + + + Handles a press of the Left key. + + The event args. + + + + Handles a press of the Right key. + + The event args. + + + + Handles a press of the Down key. + + The event args. + + + + Handles a press of the Up key. + + The event args. + + + + Handles a press of the Space key. + + The event args. + + + + Handles navigation upon key press. + + The character of the pressed key. + + + + This method traverses through the items in the control and fills a queue with these items that start with the . + + + + + + Gets the previous visible item of a given . + + The current item. + The previous item. + + + + Gets the next visible item of a given . + + The current item. + The next item. + + + + Processes the MouseWheel event. + + The event args. + true if the processing of the event should be stopped, false otherwise. + + + + Processes the selection of a specified item. + + The which is being processed. + The modifier keys which are pressed during selection. + [true] if the selection is triggered by mouse input, [false] otherwise. + + + + Selects all items that are whitin the lasso rectangle. + + + + + Selects all items that are whitin the specified rectangle. + + + + + Begins the lasso selection. + + + + + Ends the lasso selection. + + + + + Gets the drag hint location according to the specified item. + + The drop target item. + The mouse location in client coordinates. + The location of the drag hint. + + + + Indicates whether an item should be dropped after the given target according to the specified location. + + The drop target item. + The drop location. + [true] if a dropped item should be inserted after the target, [false] otherwise. + + + + Gets the size of the drag hint according to the speficied target. + + The drop target. + The size of the drag hint. + + + + Gets or sets the display state of the horizontal scrollbar. + + + + + Gets or sets the display state of the vertical scrollbar. + + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where a column will be dropped after a drag operation. + + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets the orientation of the view element. + + + + + Gets the that owns the view. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Gets or sets a value indicating whether the items can have different width. + + + + + Gets or sets a value indicating whether the full row should be selected. + + + + + Gets or sets the default item size. + + + + + Gets or sets the default group item size. + + + + + Gets or sets the fill color of the lasso selection rectangle. + + + + + Gets or sets the border color of the lasso selection rectangle. + + + + + Gets or sets the indent of the items when they are displayed in a group. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the keyboard search functionality. + + + + + Updates the items layout. + + + + + Shows the customize dialog. + + + + + Closes the customize dialog. + + + + + Gets all child items. + + The items. + + + + + Gets the field names. + + + + + + Stores CardTemplate's layout state in XML format, using the serialization + information provided by the property. + + XmlWriter to use by the built-in serializer + + + + Stores CardTemplate's layout state in XML format, using the serialization + information provided by the property. + + The stream to write to. + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores CardTemplate's layout state in XML format, using the serialization + information provided by the property. + + The file to write to. + + + + Loads CardTemplate's layout state from XML file, using the serialization + information provided by the property. + + The XmlReader to read the XML from. + + + + Loads CardTemplate's layout state from XML file, using the serialization + information provided by the property. + + The stream to read from. + + + + Loads CardTemplate's layout state from XML file, using the serialization + information provided by the property. + + The file to read from. + + + + Gets the default serialization info for RadLayoutControl used by Save/Load layout methods to persist the layout to/from XML. + + The default serialization info. + + + + Initializes the items of the default context menu. + + + + + Gets the designer host. + + The list view element. + + + + + Gets a value indicating whether the owner is data bound or has any columns created. + + The list view element. + + + + + Synchronizes given CardViewContainerElement to the container of CardTemplate. + + The given container. + The visual item that owns the container. + + + + Updates item bounds and synchronizes properties. + + + + + + + + Handles the RadPropertyChanged event of the GroupItem control. + + The source of the event. + The instance containing the event data. + + + + Gets the item synchronization properties. + + The item synchronization properties. + + + + Gets the layout control used as a template for all displayed cards. + + + + + Gets or sets the context menu. + + + + + Gets the card view element. + + The card view element. + + + + Gets or sets the default item size. + + + + + Gets or sets a value indicating whether the items can have different height. + + + + + Gets or sets a value indicating whether the items can have different width. + + + + + Gets the serialization info for RadLayoutControl used by Save/Load layout methods to persist the layout to/from XML. + By default or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + Updates the scrollbar metrics. + + + + + Gets the card items container. + + + + + Gets the horizontal . + + + + + Gets the vertical . + + + + + Represents the method that will handle the creating events of CardViewContainerElement items. + + The event sender, typically this is + Instance of containing the data related with this event + + + + Provides data for the CardViewItemCreating event. + + + + + Initializes a new instance of the CardViewItemCreatingEventArgs. + + The CardTemplate item. + The newly created item. + The visual item. + + + + Gets the from CardTemplate. + + + + + Gets or sets the created . + + + + + Gets the . + + + + + Represents the method that will handle the formatting events of CardViewContainerElement items. + + The event sender, typically this is + Instance of containing the data related with this event + + + + Provides data for the CardViewItemFormatting event. + + + + + Initializes a new instance of the CardViewItemFormattingEventArgs class. + + The + The + + + + Gets the . + + + + + Gets the . + + + + + Fires the VisualItemCreating event of . + + The visual item. + The view type of + The data item for which a visual item is being created + The new visual item. + + + + An element which hosts and provides the layout of items that inherit from the . + This element can be found at the root level of , as well as + in or . + + + + + A common interface for elements which host items. + + + + + Gets the the drag hint preview rectangle if an item were to be dragged at a given point. + + The dragged item. + The point in control coordinates. + The preview rectangle. + + + + Gets the the drag hint preview rectangle if an item were to be dragged at a given point. + + The dragged item. + The point in control coordinates. + The type of the dragged item. + The preview rectangle. + + + + Handles dropping an element over another at the specified position. + + The drop target element. + The dragged element. + The specified position. + + + + Rebuilds the layout of the container. + + + + + Rebuilds the layout of the container. + + If [true], forces a layout update. + + + + Updates the layout of the inner controls. + + + + + Updates the layout of the inner controls. + + If [true], goes into nested s recursively. + + + + Gets or sets the fill color of the drag preview rectangle. + + + + + Gets or sets the border color of the drag preview rectangle. + + + + + Gets the associated with this container. + + + + + The collection of items which this container hosts. + + + + + Represents an item which hosts other items that inherit from . + Has a header element and a which holds the items. + Can be expanded and collapsed. + + + + + A base class for all items which can be placed in + + + + + Gets the which owns this item. Can be either + or . + + The owner item. + + + + Gets a value indicating whether this item is currently hidden. + + + + + Gets or sets a value indicating whether this item can be deleted by the + end-user from the Customize dialog. + + + + + Called when the group is expanded or collapsed to do the necessary updates. + + + + + Occurs when the group item is expanded. + + + + + Occurs when the group item is collapsed. + + + + + Occurs when the group item is about to be expanded. Cancelable. + + + + + Occurs when the group item is about to be collapsed. Cancelable. + + + + + Gets or sets a value indicating whether the line in the header element should be shown. + + + + + Gets the header element of the group. + + + + + Gets or sets a value indicating whether the group is currently expanded. + + + + + Gets or sets the height of the header. + + + + + Gets the container element which hosts the items within the group. + + + + + Gets the items within the group. + + + + + This method is used internally! + + + + + This method is used internally! + + + + + + Gets or sets the name of field associated with this item. + + + + + Gets the field. + + + + + This method is used internally! + + + + + + Gets the rectangle in which the text part will be arranged. + + The client area of the item. + The arrange rectangle of the text part. + + + + Gets the rectangle in which the editor will be arranged. + + The client area of the item. + The arrange rectangle of the editor. + + + + Gets or sets the position of the text of the item. + + + + + Gets or sets the proportional size of the text part which will be used + when TextSizeMode is set to proportional. + + + + + Gets or sets the fixed size of the text part which will be used + when TextSizeMode is set to fixed. + + + + + Gets or sets the minimum size of the text part. + + + + + Gets or sets the maximum size of the text part. + + + + + Gets or sets the way in which the text part will be sized - proportionally or fixed-size. + + + + + Gets the editor label item. + + + + + Gets or sets the name of field associated with this item. + + + + + Gets the card field. + + + + + The dialog which is opened when is in edit mode. Provides interface + to access the hidden items, bring new items to the control, or preview and edit the existing item structure. + + + + + Called to update the Hidden Items group in the Items tab + + + + + Called to update the tree view in the Structure tab + + + + + Gets the text which should be displayed in an item in the Hidden Items group or the Structure tree view. + + The item to get the text for. + The text for the item. + + + + Gets the image which should be displayed in an item in the Hidden Items group or the Structure tree view. + + The item to get the image for. + The image for that item. + + + + Called to rearrange the items when the RightToLeft property of the dialog has changed. + + + + + Called when the drag drop service of the list view has started. + + + + + Called to handle dropping a dragged item from the list view on the Items tab. + + + + + Handles dropping a list view item over a . + + The dragged list view item. + The drop target item. + + + + Handles dropping a list view item over an empty container. + + The container. + The dragged item. + + + + Called to create a new when dropping an item from the New Items group. + + The dragged item. + The newly created item + + + + Handles the DragOver event of the list view's drag drop service. + + + + + Gets the drag context of a dragged item. + + The dragged item. + The type of the associated item. + + + + Handles the NodeRemoving event of the tree view on the structure tab. + + + + + Handles the Click event of the Save Layout button. + + + + + Handles the Click event of the Load Layout button. + + + + + Handles the NodeEdited event of the tree view on the Structure tab. + + + + + Handles the SelectedNodeChanged event of the tree view on the Structure tab. + + + + + Handles the MouseMove event of the tree view on the Structure tab. + + + + + Handles the MouseDown event of the tree view on the Structure tab. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Shows the provided overlay in the control. + + The message that contains the overlay info. + + + + Hides any overlays that are currently displayed by the control. + + + + + Adds a new message to the chat. Typical messages are , , , and + + The message to be displayed in the chat. + + + + Gets the main chat element. + + + + + Gets or sets the current author. This instance is used when is set to true as well as to determine the messages alignment and styling. + + + + + Gets or sets a value indicating whether messages typed by the user will automatically be added as to the chat. + + + + + Gets or sets the size of the avatar images. + + + + + Gets or sets whether avatar images will be displayed in the chat window next to messages. + + + + + Gets or sets whether messages will be displayed aligned to only one side of the chat window or on both. + + + + + Gets or sets the time interval between messages that will trigger the automatic addition of a Time separator. + If set to no Time separators will be added. + + + + + Occurs when the user performs an action e.g hits the Enter key, clicks the Send message button, clicks on a Suggested Action or a Card Action, clicks OK on an overlay. + + + + + Occurs when the user clicks on a Suggested Action + + + + + Occurs when the user clicks on a Card Action + + + + + Occurs when the user clicks on a Toolbar Action + + + + + Occurs after a new message is added. Allows you to decide whether a time separator should be inserted before the currently added message. + + + + + Occurs when the data item of a visual element is changed and the element is prepared for visualization. + + + + + Shows the provided overlay in the control. + + The message that contains the overlay info. + + + + Hides any overlays that are currently displayed by the control. + + + + + Adds a new message to the chat. Typical messages are , , , and + + The message to be displayed in the chat. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The card which triggered the event. + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Gets or sets the current author. This instance is used when is set to true as well as to determine the messages alignment and styling. + + + + + Gets or sets a value indicating whether messages typed by the user will automatically be added as to the chat. + + + + + Gets or sets the size of the avatar images. + + + + + Gets or sets whether avatar images will be displayed in the chat window next to messages. + + + + + Gets or sets whether messages will be displayed aligned to only one side of the chat window or on both. + + + + + Gets or sets the time interval between messages that will trigger the automatic addition of a Time separator. + If set to no Time separators will be added. + + + + + Occurs when the user performs an action e.g hits the Enter key, clicks the Send message button, clicks on a Suggested Action or a Card Action, clicks OK on an overlay. + + + + + Occurs when the user clicks on a Suggested Action + + + + + Occurs when the user clicks on a Card Action + + + + + Occurs when the user clicks on a Toolbar Action + + + + + Occurs after a new message is added. Allows you to decide whether a time separator should be inserted before the currently added message. + + + + + Occurs when the data item of a visual element is changed and the element is prepared for visualization. + + + + + Gets or sets the size of the avatar images. + + + + + Gets or sets whether avatar images will be displayed in the chat window next to messages. + + + + + Gets or sets whether messages will be displayed aligned to only one side of the chat window or on both. + + + + + Gets or sets the time interval between messages that will trigger the automatic addition of a Time separator. + If set to no Time separators will be added. + + + + + Represent item scroller + + + + + + Called when tool tip text is needed. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Scrolls to item. + + The item. + + + + + Scrolls to item. + + The item. + if set to true scroll visibility is checked before processing scrolling. + + + + + Scrolls to begin. + + + + + + Scrolls to end. + + + + + + Scrolls to specified position. + + The position. + + + + + Scrolls down to specified position. + + The step. + + + + + Gets the height of the scroll. + + The item. + + + + + Scrolls up. + + The step. + + + + + Updates the on scroll. + + The instance containing the event data. + + + + + Updates the scroll range. + + + + + Updates the scroll value. + + + + + Updates the scroll range with concrete range. + + The width. + if set to true [update scroll value]. + + + + Updates the scroll step. + + + + + Sets the scroll bar visibility. + + + + + Shows scroller's tool tip + + + + + Determines the ToolTip text + + + Returns the ToolTip's text + + + + + Determines the traverser's current item index + + + The Index of the current item + + + + + Hides scroller's tooltip + + + + + When set to true, allows the scroller to scroll through the items + when the scrollbar is not visible. + + + + + Gets the max width of item. + + + The width of the max item. + + + + + Gets or sets the state of the scroll. + + + The state of the scroll. + + + + + Gets or sets the associated traverser. + + + The traverser. + + + + + Gets or sets the associated scrollbar. + + + The scrollbar. + + + + + Gets or sets the element provider. + + + The element provider. + + + + + Gets or sets the scroll mode. + + + The scroll mode. + + + + + Gets or sets the client size. + + + The size of the client. + + + + + Gets or sets the item height. + + + The height of the item. + + + + + Gets or sets the item spacing. + + + The item spacing. + + + + + Gets or sets the scroll offset. + + + The scroll offset. + + + + + Gets the position. + + + The position. + + + + + Gets or sets the tool tip. + + + The tool tip. + + + + + Gets or sets a value indicating whether scrolling is asynchronous. + + + true if [asynchronous scrolling]; otherwise, false. + + + + + Occurs when the scroller is updated. + + + + + Occurs when tool tip text is needed. + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Gets or sets the image of the element. + + + The image. + + + + + Gets the image primitive. + + + The image primitive. + + + + + This class represents the container which holds + all controls put in a + control. The scrolling support comes from this container. + + + + + Creates an instance of the + class. This constructor is used by the Visual Studio Designer. + + + + + Creates an instance of the + class. + + An instance of the + class which represents the owner of this container. + + + + Gets or sets a value indicating whether the focused control inside the RadScrollablePanel + will be automatically scrolled into view when gaining focus. + + + + + Initializes a new instance of the class. + + + + + Initializes the internal container which holds the controls. + + + + + Creates the child items. + + The parent. + + + + Creates the controls container which holds the controls. + + + + + + Creates the collapsible panel element. + + + + + + Creates a new instance of the control collection for the control. + + + A new instance of assigned to the control. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Expands the control. Will not have effect if the control is already expanded or is animating. + Can be canceled from the Expanding event. + + + + + Collapses the control. Will not have effect if the control is already collapsed or is animating. + Can be canceled from the Collapsing event. + + + + + If the Control is expanded it will be collapsed and vice-versa. + + + + + If the Control is expanded it will be collapsed and vice-versa. + + if set to true ignores the IsExpanded property. + if set to true expands the control without animation. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + An that contains the event data. + + + + Gets the default size of the control. + + The default of the control. + + + + Gets the controls container. + + + The controls container. + + + + + Gets the panel container which contains the controls of the RadCollapsiblePanel. + + + The panel container. + + + + + Gets the collapsible panel element. + + + The collapsible panel element. + + + + + Gets or sets the expand direction. + + + The expand direction. + + + + + Gets or sets a value indicating whether to use animation to expand or collapse the control. + + + true if the expand/collapse animations are enabled; otherwise, false. + + + + + Gets or sets the content sizing mode. + + + The content sizing mode. + + + + + Gets a or Sets value indicating whether the control is expanded. + + + true if the control is expanded; otherwise, false. + + + + + Gets a value indicating whether the control is currently animating. + + + true if the control is currently animating; otherwise, false. + + + + + Gets or sets a value indicating whether to show a line primitive in the header. + + + true if a line in the header is visible; otherwise, false. + + + + + Gets or sets the horizontal header alignment. + + + The horizontal header alignment. + + + + + Gets or sets the vertical header alignment. + + + The vertical header alignment. + + + + + Gets or sets the header text. + + + The header text. + + + + + This value is set when the control is about to be collapsed and is used to restore the control's size when expanding. It should only be set by the control itself. + + + + + Gets or sets the animation interval. + + + The animation frames. + + + + + Gets or sets the animation frames. + + + The animation frames. + + + + + Gets or sets the easing type to be applied to the animation when expanding or collapsing + + + The animation easing type. + + + + + Gets or sets the type of the expand or collapse animation. + + + The type of the animation. + + + + + Gets or sets the BackColor of the control. + This is actually the BackColor property of the root element. + + + + + This property is not relevant for this class. + + + + + Occurs after the control is expanded. + + + + + Occurs after the control is collapsed. + + + + + Occurs before the control is expanded. + + + + + Occurs before the control is collapsed. + + + + + Synchronizes its size, location and margin with the specified instance + + The element to synchronize with. + + + + Synchronizes its size with the specified instance + + The element to synchronize with. + + + + Synchronizes its location with the specified instance + + The element to synchronize with. + + + + Synchronizes its margin with the specified instance + + The element to synchronize with. + + + + Suspends the child controls layout. + + + + + Suspends the child controls layout where the controls are not docked. + + + + + Resumes the child controls layout. + + if set to true [perform layout]. + + + + Resumes the child controls layout. + + + + + Draws the control to a + + A new instance of + + + + Gets the container panel that holds + all the components added to the panel. + + + + + Gets or sets which control borders are docked to its parent control and determines how a control is resized with its parent. + + One of the values. The default is . + + + + Gets or sets the class name string that ThemeResolutionService will use to find the themes registered for the control. + + + By default the return value is RadControl's type FullName; Some controls like drop down menu has different ThemeClassName + depending on the runtime usaage of the control. + + + + + Initializes a new instance of the class. + + The owner control. + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the header element. + + + + + + Creates the layout element. + + + + + + Raises the event. + + The instance containing the event data. + + + + Called when the button in the CollapsiblePanel's header is clicked. + + The sender. + The instance containing the event data. + + + + Expands the control. Will not have effect if the control is already expanded or is animating. + Can be canceled from the Expanding event. + + + + + Expands the control. Will not have effect if the control is already expanded or is animating. + Can be canceled from the Expanding event. + + if set to true ignores the IsExpanded property. + if set to true expands the control without animation. + + + + Collapses the control. Will not have effect if the control is already collapsed or is animating. + Can be canceled from the Collapsing event. + + + + + Collapses the control. Will not have effect if the control is already collapsed or is animating. + Can be canceled from the Collapsing event. + + if set to true ignores the IsExpanded property. + if set to true expands the control without animation. + + + + If the Control is expanded it will be collapsed and vice-versa. + + + + + If the Control is expanded it will be collapsed and vice-versa. + + if set to true ignores the IsExpanded property. + if set to true expands the control without animation. + + + + Creates the instance which will be used to animate the control. + Create it according to its value. + + + + + + Creates the instance which will be used to animate the control. + + if set to true expand animation will be created, otherwise collapse animation will be created. + + + + + Sets the control bounds after it is collapsed. + + + + + Creates the expand animation. + + + + + + Setups the reveal expand animation. + + The animation to be set up. + + + + Setups the slide expand animation. + + The animation to be set up. + + + + Creates the collapse animation. + + The new instance + + + + Setups the reveal collapse animation. + + The animation to be set up. + + + + Setups the slide collapse animation. + + The animation to be set up. + + + + Executes the collapse preparations. This method is invoked before the panel starts collapsing. + + If the current enumeration is not supported + + + + Executes the collapse finalizations. This method is invoked after the panel has collapsed. + + If the current enumeration is not supported + + + + Executes the expand preparations. This method is invoked before the panel starts expanded. + + If the current enumeration is not supported + + + + Executes the expand finalizations. This method is invoked after the panel has expanded. + + If the current enumeration is not supported + + + + Gets the object to be animated. This object is used by the current animation object. + + + If the current enumeration is not supported + + + + Gets the header element. + + + The header element. + + + + + Gets or sets the expand direction. + + + The expand direction. + + + + + Gets or Sets a value indicating whether the control is expanded. + + + true if the control is expanded; otherwise, false. + + + + + Gets or sets a value indicating whether to use animation to expand or collapse the control. + + + true if the expand/collapse animations are enabled; otherwise, false. + + + + + Gets or sets the content sizing mode. + + + The content sizing mode. + + + + + Gets or sets a value indicating whether the control is currently animating. + + + true if the control is currently animating; otherwise, false. + + + + + Gets or sets the animation interval. + + + The animation interval. + + + + + Gets or sets the animation frames. + + + The animation frames. + + + + + Gets or sets a value indicating whether to show a line primitive in the header. + + + true if a line in the header is visible; otherwise, false. + + + + + Gets or sets the horizontal header alignment. + + + The horizontal header alignment. + + + + + Gets or sets the vertical header alignment. + + + The vertical header alignment. + + + + + Gets the layout element. + + + The layout element which is responsible for the position of the ControlsContainer + + + + + Gets or sets the header text. + + + The header text. + + + + + This value is set when the control is about to be collapsed and is used to restore the control's size when expanding. It should only be set by the control itself. + + + + + Gets or sets the easing type to be applied to the animations + + + The animation easing type. + + + + + Gets or sets the type of the expand or collapse animation. + + + The type of the animation. + + + + + Occurs when the control is expanded. + + + + + Occurs when the control is collapsed. + + + + + Occurs when the control is about to be expanded. Cancelable. + + + + + Occurs when the control is about to be collapsed. Cancelable. + + + + + Initializes member fields to their default values. + This method is called prior the CreateChildItems one and allows for initialization of members on which child elements depend. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the button element. + + + + + + Creates the text element. + + + + + + Creates the line element. + + + + + + Raises the event. + + The instance containing the event data. + + + + Gets the expand collapse button element. + + + The expand collapse button element. + + + + + Gets the header text element. + + + The header text element. + + + + + Gets the header line element. + + + The header line element. + + + + + Gets or sets a value indicating whether to show a line primitive in the header. + + + true if a line in the header is visible; otherwise, false. + + + + + Gets or sets the horizontal header alignment. + + + The horizontal header alignment. + + + + + Gets or sets the vertical header alignment. + + + The vertical header alignment. + + + + + The content will be horizontally positioned in the center of its parent. + + + + + The content will be horizontally positioned to the center of its parent. + + + + + The content will be horizontally positioned to the left of its parent. + + + + + The content will stretched so all children have equal width. + + + + + The content will be vertically positioned in the center of its parent. + + + + + The content will be vertically positioned to the bottom of its parent. + + + + + The content will be vertically positioned to the top of its parent. + + + + + The content will stretched so all children have equal height. + + + + + Represents a MaskedEditBox in . + + + + + A base class for all of the items contained in . + + + + + Represents a base class for most of the elements. + + + + + Gets or sets the orientation of the element - colud be horizontal or vertical. + + + + + Gets or sets the name that is displayed in command bar dialogs and context menus. + + + + + Raises the event. + + Event data. + + + + Raises the event. + + Event data. + true if the event should be canceled, false otherwise. + + + + Raises the event. + + Event data. + + + + Occurs when the orientation is changed + + + + + Occurs before the orientation is changed + + + + + Occurs when the property is changed. + + + + + Show or hide item from the strip overflow menu + + + + + Gets or sets the Orientation of the item. + + + + + Show or hide item from the strip + + + + + Gets or sets that the orientation will be inherit from parent + + + + + Occurs when the element is double-clicked. + + + + + Gets or sets a mask expression. + + + + + Gets or sets the mask type. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the hosted . + + + + + Gets or sets the name of the descriptor. + + The name of the descriptor. + + + + Gets or sets the type of the descriptor. + + The type of the descriptor. + + + + Gets or sets a value indicating if this descriptor item is auto generated. + + The is auto generated. + + + + Gets or sets the default filter operator. + + The default filter operator. + + + + Gets or sets the default value. + + The default value. + + + + Gets the filter operators. + + The filter operators. + + + + Gets the filter operation context. + + The filter operation context. + + + + Gets or sets the data source that populates the items for the . + + + + + Gets or sets a string that specifies the property or database column from which to get values that correspond to the items in the . + + + + + Gets or sets a string that specifies the property or database column from which to retrieve strings for display in the items. + + + + + Specifies the mode for the automatic completion feature used in the . + + + + + Gets or sets a value specifying the style of the . + + + + + Gets or sets the editor's value. + + + + + Gets or sets a value indicating whether the node is selected. + + + + + Gets or sets a value indicating that this is the current node. + + + + + Gets or sets a value indicating whether the node is expanded. + + + + + Gets or sets a value indicating whether the control contains the focus. + + + + + Gets a value indicating whether the node is currently at root level. + + + + + Gets or sets the arbitrary height for this particular node. + Valid when the owning RadTreeViewElement's AllowArbitraryHeight property is set to true. + + + + + Gets a value indicating that this is the hot tracking node. + + + + + Gets a value indicating whether this node contains child nodes. + + + + + Synchronizes this instance. + + + + + Sets the control cursor. + + The cursor. + + + + Gets or sets the currently editing element. + + The editing element. + + + + Gets the drag element. + + The drag element. + + + + Gets the close button. + + The close button. + + + + Gets the data filter element. + + The data filter element. + + + + Initializes new instance of the RadTreeNode class. + + The text to be used as label text. + A boolean value indicating whether the node is expanded. + + + + Finds the specified match. + + The match. + + + + + Finds the nodes. + + The match. + + + + + Finds the nodes. + + The match. + The argument. + + + + + Executes the specified command. + + The command. + The settings. + + + + + Executes the specified command include sub trees. + + if set to true [include sub trees]. + The command. + The settings. + + + + + Initiates the editing of the tree node. + + + + + + Ends the edit. + + + + + + Cancels the edit. + + + + + + Collapses the tree node. + + + + + Collapses the and optionally collapses its children. + + if set to true [ignore children]. + + + + Ensures that the tree node is visible, expanding tree nodes and scrolling the tree view control as necessary. + + + + + Expands the tree node. + + + + + Expands all the child tree nodes. + + + + + Returns the number of child tree nodes. + + if set to true [include sub trees]. + + + + + Removes the current tree node from the tree view control. + + + + + Toggles the tree node to either the expanded or collapsed state. + + + + + Returns a that represents the tree node. + + + A that represents the tree node. + + + + + This method is used internally! + + + + + Execute the action for every RadTreeNode in the branch + + + + + + Creates a new object that is a copy of the current instance. + + + A new object that is a copy of this instance. + + + + + Allows PropertyChanged notifications to be temporary suspended. + + + + + Resumes property notifications after a previous SuspendPropertyNotifications call. + + + + + Sets the IBindingList which holds the child nodes in Object Relational Binding mode + + + + + + Gets the last matches using Find method. + + Gets the last matches using Find method. + + + + Gets the style. + + The style. + + + + Gets a value indicating whether this instance has style. + + true if this instance has style; otherwise, false. + + + + Gets or sets a value indicating whether the node can respond to user interaction. + + The default value is true. + + + + Gets the root parent node for this RadTreeView. + + The default value is null. + + + + Gets the parent tree view that the tree node is assigned to. + + + + + Gets or sets a value indicating whether this is checked. + + true if checked; otherwise, false. + + + + Gets or sets the state of the check element. + + The state of the check. + + + + Gets or sets the type of the check element. + + The type of the check. + + + Gets or sets the context menu associated to the node. + + Returns an instance of RadDropDownMenu Class that + is associated with the node. The default value is null. + + + This property could be used to associate a custom menu and replace the treeview's + default. If the context menu is invoked by right-clicking a node, the treeview's menu + will not be shown and the context menu assigned to this node will be shown + instead. + + RadContextMenu Property (Telerik.WinControls.UI.RadTreeView) + + + + Gets or sets a value indicating whether this instance is visible. + + + true if this instance is visible; otherwise, false. + + + + + Gets the index. + + The index. + + + + Gets a value indicating whether this instance is editing. + + + true if this instance is editing; otherwise, false. + + + + + Gets or sets a value indicating whether this instance is selected. + + + true if this instance is selected; otherwise, false. + + + + + Gets or sets a value indicating whether this instance is current. + + + true if this instance is current; otherwise, false. + + + + + Gets or sets the tree view element. + + The tree view element. + + + + Gets or sets a value indicating whether this instance is expanded. + + + true if this instance is expanded; otherwise, false. + + + + + Gets or sets the parent. + + The parent. + + + + Gets or sets the text. + + The text. + + + + Gets or sets the node value. + + The text. + + + + Gets the nodes. + + The nodes. + + + + Gets the level. + + The level. + + + + + Gets or sets the name of the RadTreeNode. + + A String that represents the name of the tree node. + + The Name of a TreeNode is also the node's key, when the node is part of a + TreeNodeCollection. If the node does not + have a name, Name returns an empty string (""). + + + + + Gets the first node. + + The first node. + + + + Gets the last node. + + The last node. + + + + Gets the next node. + + The next node. + + + + Gets the next visible node. + + The next visible node. + + + + Gets the prev node. + + The prev node. + + + + Gets the prev visible node. + + The prev visible node. + + + + Gets or sets the tag object that can be used to store user data, corresponding to the tree node. + + The tag. + + + + Gets or sets the text that appears when the mouse pointer hovers over a tree node. + + The default value is "". + + + + Gets the full path. + + The full path. + + + + Gets or sets the image of the node. + + ImageIndex Property + ImageKey Property + + + + Gets or sets the left image list index value of the image displayed when the tree + node is not selected. + + Image Property + ImageKey Property + + + + Gets or sets the key for the left image associated with this tree node. + + Image Property + ImageIndex Property + + + + Gets or sets the height of the tree node in the tree view control. + + The default value is 20. + + + + Gets or sets the measured desired width for this node. + + + + + Gets or sets the measured desired width for this node. + + + + + Gets or sets a value indicating whether [allow drop]. + + true if [allow drop]; otherwise, false. + + + + Gets or a value indicating whether the control is in design mode. + + + + + Gets a value if the node is root node + + + + + Gets the data-bound object that populated the node. + + + + + Gets or sets the font of the node text. + + The default value is null. + + + + Gets or sets the foreground color of the tree node. This color is applied to the text label. + + + + + Gets or sets the backcolor of the tree node. Color type represents an ARGB color. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the tree node. This property is applicable to radial, glass, + office glass, gel, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the tree node. This property is applicable to radial, glass, + office glass, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the tree node. This property is applicable to radial, glass, + office glass, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the border color of the tree node. + + + + + Gets or sets gradient angle for linear gradient. + + GradientStyle Property + GradientPercentage Property + GradientPercentage2 Property + NumberOfColors Property + The default value is 90.0. + + + + Gets or sets GradientPercentage for linear, glass, office glass, gel, vista, and + radial gradients. + + GradientStyle Property + GradientPercentage2 Property + GradientAngle Property + NumberOfColors Property + The default value is 0.5. + + + + Gets or sets GradientPercentage for office glass, vista, and radial + gradients. + + GradientStyle Property + GradientPercentage Property + GradientAngle Property + NumberOfColors Property + The default value is 0.5. + + + + Gets and sets the gradient style. The possible values are defined in the gradient + style enumeration: solid, linear, radial, glass, office glass, gel, and vista. + + + The default value is + GradientStyles.Linear. + + GradientStyles Enumeration + GradientPercentage Property + GradientPercentage2 Property + GradientAngle Property + NumberOfColors Property + + + + Gets or sets the number of used colors in the gradient effect. + + BackColor Property + BackColor2 Property + BackColor3 Property + BackColor4 Property + GradientStyle Property + The default value is 4. + + + + Gets or sets the text alignment. + + + The default value is ContentAlignment.MiddleLeft. + + + + + Gets the associated group node. + + The associated group node. + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Gets the drop down button. + + The drop down button. + + + + Compares the specified x. + + The x. + The y. + + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Synchronizes this instance. + + + + + Gets the value of field, operator and value elements. + + + + + + Updates the descriptor value. + + The value. + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Gets the criteria node. + + The criteria node. + + + + Gets the field element. + + The field element. + + + + Gets the operator element. + + The operator element. + + + + Gets the value element. + + The value element. + + + + Removes the current tree node from the tree view control. + + + + + Gets the formatted value. + + + + + Gets or sets the associated filter descriptor. + + The descriptor. + + + + Gets or sets the descriptor item. + + The descriptor item. + + + + Gets or sets the property name of associated filter descriptor. + + The name of the property. + + + + Gets or sets the filter operator of associated filter descriptor. + + The filter operator. + + + + Gets or sets the value of associated filter descriptor. + + The descriptor value. + + + + Gets the type of the value. + + The type of the value. + + + + Gets or sets the node value. + + The text. + + + + Creates a new tree node in the target RadTreeView using the information from the source tree. + + The source tree node. + A new instance of if successfull. + + + + Gets or sets a value indicating whether show drop hint should be shown. + + true if [show drop hint]; otherwise, false. + + + + Gets or sets a value indicating whether drag hint should be shown. + + true if [show drag hint]; otherwise, false. + + + + Determines whether this instance can start the specified context. + + The context. + + + + + Determines whether this instance [can drag over] the specified drop position. + + The drop position. + The target node element. + + + + + Cancels the preview drag drop. + + The instance containing the event data. + + + + + Gets the editor element. + + The editor. + + + + + Gets the editor. + + The editor. + + + + Gets or sets the type of the editor. + + The type of the editor. + + + + Creates the element. + + The data. + The context. + + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Synchronizes this instance. + + + + + Updates the descriptor value. + + The value. + + + + Gets the logical operator form text. + + The text. + + + + + Gets the logical operator of group node. + + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + + + + Gets the size of the editor. + + Size of the available. + The editor element. + + + + + Gets the group node. + + The group node. + + + + Gets the logical operator element. + + The logical operator element. + + + + Gets the text element. + + The text element. + + + + Gets the logical operator. + + The logical operator. + + + + Adds child descriptor. + + The descriptor to add. + + + + Removes child descriptor. + + The descriptor to remove. + + + + Removes the current tree node from the tree view control. + + + + + Gets or sets the associated composite descriptor. + + The composite descriptor. + + + + Gets or sets the logical operator of associated CompositeDescriptor. + + The logical operator. + + + + Gets or sets the associated add node. + + The associated add node. + + + + Gets or sets the full desired size calculated by the virtualized container + + + + + Gets the first found item, with property name equal to item descriptor name specified, case-sensitive. + + RadItem if found, null (Nothing in VB.NET) otherwise + + + + + Gets the operator. + For example: If the operator is LIKE and the value is '%s%' - returns Contains. + + The filter operator. + The value. + + + + + Gets the display value. Returns a value depending on filter operator. + + The filter operator. + The value. + + + + + Gets the display name from localization provider. + + The filter operator. + The value. + + + + + Gets the filter operations that are suitable for the given data type. + + Type of the data. + + + + + Gets the name. + + The name. + + + + Gets the operator. + + The operator. + + + + Updates the properties from current SourceControl. + + + + + Gets the field names. + + + + + + Applies the filter to the SourceControl. + + The expression. + Thrown if the SourceControl is not initialized. + Thrown if the SourceControl is not implementer of System.ComponentModel.IBindingListView, System.Data.DataTable or System.Data.DataView + + + + Gets the type of the field. + + Name of the field. + + + + + Gets the property descriptor. + + Name of the property. + + + + + Gets or sets the source control. + + The source control. + + + + Gets or sets the property descriptors. + + The property descriptors. + + + + Creates the provider. + + The source control. + + + + + Applies the filter expression to the DataFilter. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the data filter. + + The data filter. + + + + Gets or sets the data source of DataFilter. + + The data source. + + + + RadDataFilter localization strings. + + + + + Provides localization services for RadDataFilter. + + + + + Gets the string corresponding to the given ID. + + String ID. + The string corresponding to the given ID. + + + + Displays a hierarchical collection of filter expressions. + + + + + Displays a hierarchical collection of labeled items, each represented by a RadTreeNode. + + + + + Sets the error. + + The text. + The RAD tree node. + + + + Creates a new node and adds a node by path. The label of the new node will be the text after the last separator. + + Where the node should be added. + The new node if the operation is successful. + + + + Creates a new node and adds a node by path. The label of the new node will be the text after the last separator. + + Where the node should be added. + The path separator. + The new node if the operation is successful. + + + + Gets a node by specifying a path to it. + + The path to the node. + The node if found. + + + + Gets a node by specifying a path to it. + + The path to the node. + The path separator. + The node if found. + + + + Gets a node with the specified name. + + The name of the node. + A node with the specified name. + + + + Gets a node with the specified name. + + The name of the node. + /// The node which the should be taken as a root. + A node with the specified name. + + + + Brings the into view. + + The node. + + + + Finds the specified match. + + The match. + + + + + Finds the specified match. + + The match. + The argument. + + + + + Finds the specified text. + + The text. + + + + + Execute the specified action for every RadTreeNode in the tree + + + + + + Finds the nodes. + + The match. + + + + + Finds the nodes. + + The match. + The argument. + + + + + Finds the nodes. + + The text. + + + + + Executes the specified command. + + The command. + The settings. + + + + + Executes the specified command include sub trees. + + if set to true [include sub trees]. + The command. + The settings. + + + + + Begins the edit. + + + + + Commits any changes and ends the edit operation on the current cell. + + + + + + Close the currently active editor and discard changes. + + + + + + Loads the XML. + + Name of the file. + The extra types that will be load + + + + Loads the XML. + + The stream. + The extra types that will be load + + + + Saves the XML. + + Name of the file. + The extra types that will be saved + + + + Saves the XML. + + The stream. + The extra types that will be saved + + + + Disables any update of the tree view. + + + + + Ends the update. + + + + + Defers the refresh. + + + + + + Collapses all the tree nodes. + + + + + Collapses all nodes in a given collection. + + The collection of nodes to be collapsed. + + + + Expands all the tree nodes. + + + + + Expands all nodes in a given collection. + + The collection of nodes to be expanded. + + + + Retrieves the tree node that is at the specified point. + + The System.Drawing.Point to evaluate and retrieve the node from. + The System.Windows.Forms.TreeNode at the specified point, in tree view (client) coordinates, or null if there is no node at that location. + + + + Retrieves the tree node at the point with the specified coordinates. + + The System.Drawing.Point.X position to evaluate and retrieve the node from. + The System.Drawing.Point.Y position to evaluate and retrieve the node from. + The System.Windows.Forms.TreeNode at the specified location, in tree view (client) coordinates, or null if there is no node at that location. + + + + Retrieves the number of tree nodes, optionally including those in all subtrees, assigned to the tree view control. + + The number of tree nodes, optionally including those in all subtrees, assigned to the tree view control. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Executes a command over an entire subtree starting with the specified nodes. + + The nodes form which the execuition starts. + The level of nodes over which to execute the command. If -1 the entire subtree is traversed. + The command to execute. + Parameters to pass the command prior to execution. + The results from the batch execution. + + + + Executes a command over an entire subtree starting with the specified node. + + The node form which the execuition starts. + The level of nodes over which to execute the command. If -1 the entire subtree is traversed. + The command to execute. + Parameters to pass the command prior to execution. + The first result from the batch execution. + + + + Executes a command over an entire subtree starting with the specified node. + + The node form which the execuition starts. + The level of nodes over which to execute the command. If -1 the entire subtree is traversed. + The command to execute. + Parameters to pass the command prior to execution. + The results from the batch execution. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets a value indicating whether the TreeView load child Nodes collection in NodesNeeded event only when Parent nodes expanded. + + true if [lazy mode]; otherwise, false. + + + + Gets or sets the color of the drop hint. + + + The drop feedback is a visual cue that assists the user with information where to + drop during the drag and drop operation. + + ShowDropHint Property + + The default value is + + black. + + + + + Gets or sets a value indicating whether [show drop feedback]. + + true if [show drop feedback]; otherwise, false. + + + + Gets or sets a value indicating whether [show drop feedback]. + + true if [show drop feedback]; otherwise, false. + + + + Contains data binding settings for related data. + + + + Gets or sets the type of the expand animation enumeration. + AllowPlusMinusAnimation enumeration + PlusMinusAnimationStep Property + ExpandAnimation Enumeration + + The default value is ExpandAnimation.Opacity. + + + + Gets or sets the opacity animation step for expand/collapse animation. + + Returns a double value from double.Epsilon to 1 representing the opacity changing step with + which the plus minus buttons are animated. The default value is 0.025. + + + + + Gets or sets a value indicating whether animation of collapse/expand images is enabled. + + ShowExpanCollapse Property + PlusMinusAnimationStep Property + The default value is false. + + + + The default image index for nodes. + + The index of the image. + + + + The default image key for nodes. + + The image key. + + + + Gets or sets a value indicating whether drag and drop operation with treeview + nodes is enabled. + + AllowDragDropBetweenTreeViews Property + AllowDrop Property (Telerik.WinControls.UI.RadTreeNode) + The default value is false. + + + + Gets or sets a value indicating whether the user is allowed to select more than one tree node at time + + true if [multi select]; otherwise, false. + + + + Gets or sets the shortcut menu associated with the control. + + + + A that represents the shortcut menu associated with the control. + + + + + Gets or sets the associated with this control. + + + + The for this control, or null if there is no . The default is null. + + + + + Gets or sets the filter. + + The filter. + + + + Gets or sets the sort order of Nodes. + + The sort order. + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets the sort descriptors. + + The sort descriptors. + + + + Gets or sets a value indicating whether checkboxes are displayed beside the nodes. + + The default value is false. + + + + Gets or sets a value indicating whether the child nodes should be auto checked when RadTreeView is in tri state mode + + The default value is false. + + + + Gets or sets a value indicating whether the highlight spans the width of the tree + view. + + The default value is false. + + + + Gets or sets a value indicating whether [hide selection]. + + true if [hide selection]; otherwise, false. + + + + Gets or sets a value indicating whether [hot tracking]. + + true if [hot tracking]; otherwise, false. + + + + Gets or sets the indent. + + The indent. + + + + Gets or sets the height of the item. + + The height of the item. + + + + Gets or sets a value indicating whether nodes can have different height. + + The default value is false. + + + Gets or sets the spacing in pixels between nodes. + The default value is 0. + + + + Gets or sets a value indicating whether editing is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether adding new nodes is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether removing nodes is allowed. + + true if [allow edit]; otherwise, false. + + + Gets a value indicating whether there is an open editor in the tree view. + + + Gets the active editor in the tree. + + The IValueEditor Interface if any. + + + + + Gets or sets the color of the line. + + The color of the line. + + + + Gets or sets the path separator. + + The path separator. + + + + Gets or sets the selected node. + + The selected node. + + + + Gets the checked nodes. + + The checked nodes. + + + + Gets or sets a value indicating whether [show lines]. + + true if [show lines]; otherwise, false. + + + + Gets or sets a value indicating whether expand/collapse (plus-minus) buttons are + shown next to nodes with children. + + The default value is true. + + + + Gets the top node. + + The top node. + + + + Gets the visible count. + + The visible count. + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets or sets the display member. + + The display member. + + + + Gets or sets the value member. + + The value member. + + + + Gets or sets the checked member. + + The checked member. + + + + Gets or sets the child member. + + The child member. + + + + Gets or sets the parent member. + + The parent member. + + + + Gets or sets a that will be used to convert the toggle state of the checkboxes + to the underlying data type it is bound to. + + + + + Gets the collection of tree nodes that are assigned to the tree view control. + + A System.Windows.Forms.TreeNodeCollection that represents the tree nodes assigned to the tree view control. + + + + Gets the tree view element. + + The tree view element. + + + + Gets the Horizontal scroll bar. + + The Horizontal scroll bar. + + + + Gets the Vertical scroll bar. + + The Vertical scroll bar. + + + + Gets or sets the line style. + + TreeLineStyle enumeration + + A TreeLineStyle that represents the style used for + the lines between the nodes. The default is + TreeLineStyle.Dot. + + + + + Gets or sets a value indicating whether tri state mode is enabled. + + The default value is false. + + + + Gets or sets a value indicating the default tree view toggle mode. + + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when RadTreeView is focused. + + The default value is false. + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + + The default value is 300ms. + + + + Gets or sets the string comparer used by the keyboard navigation functionality. + + + + + RadTreeView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadTreeView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs when the RadTreeView NodesNeeded event is handled and LazyMode property is true. + + + + + Occurs when the RadTreeView report the data error. + + + + + Occurs when the user begins dragging an item. + + + + + Occurs when TreeView required editor. + + + + + Occurs before the tree node label text is edited. + + + + + Occurs when initializing the active editor. + + + + + Occurs after the tree node label text is edited. + + + + + Occurs when the editor is changing the value during the editing process. + + + + + Occurs when the editor finished the value editing. + + + + + Occurs when the editor changed the value editing. + + + + + Occurs when editor validating fails. + + + + + Occurs when a drag is ending + + + + + Occurs when a drag has ended + + + + + Occurs when a drag is starting + + + + + Occurs when a drag has started + + + + + Occurs when drag feedback is needed for a node. + + + + + Occurs before a tree node is selected. + + + + + Occurs after the tree node is selected. + + For more information about handling events, see also SelectedNodeChanging. + + + + + + Occurs when selected nodes has been cleared. + + + + + Occurs when SelectedNodes collection has been changed. + + + + + Occurs when the user presses a mouse button over a RadTreeNode. + + + + + Occurs when the user releases a mouse button over a RadTreeNode. + + + + + Occurs when the user moves the mouse in the area of a RadTreeNode. + + + + + Occurs when the mouse enters the area of a RadTreeNode. + + + + + Occurs when the mouse leaves the area of a RadTreeNode. + + + + + Occurs when the mouse hovers over a RadTreeNode. + + + + + Occurs when a mouse button is clicked inside a + + + + + Occurs when a mouse button is double clicked inside a + + + + + Occurs when the value of the Checked property of a RadTreeNode is changing. + + + + + Occurs when the value of the Checked property of a RadTreeNode is changed. + + + + + Occurs before the value of the Expanded property of a tree node is changed. + + + + + Occurs after the value of the Expanded property of a tree node is changed. + + + + + Occurs when the Nodes collection requires to be populated in Load-On-Demand mode using LazyTreeNodeProvider. + + + + + Occurs when the node changes its state and needs to be formatted. + + + + + Occurs when a new node is going to be created. + + + + + Occurs when a new node element is going to be created. + + + + + Occurs when opening the context menu. + + + + + Occurs after a node is removed. + + + + + Occurs before a node is removed. + + + + + Occurs after a node is being added. + + + + + Occurs after a node is bound to a data item. + + + + + Occurs before a node is being added. + + + + + Gets or sets a value indicating whether single node expand is enabled. + + + + + Gets or sets a value indicating whether the default context menu is enabled. + + The default value is false. + + + + Applies the filter to the DataSource. + + + + + Signals the object that initialization is complete. + + + + + Loads the XML with reader. + + The reader. + The extra types. + + + + Saves the XML with writer. + + The writer. + The extra types. + + + + Gets or sets the auto generate descriptor items. + + The auto generate descriptor items. + + + + A collection of descriptor items used to identify the property names and their corresponding types. + + + + + Gets or sets the data source that the is displaying filters for. + + + + + Gets the data filter element. + + The data filter element. + + + + Gets or sets the expression. + + The expression. + + + + Gets or sets a value indicating whether the name of fields in fields drop down should be sorted. + + + + + Gets or sets a value indicating how the field names are sorted when SortFieldNames is true. + + + + + Gets the collection of tree nodes. + + + A System.Windows.Forms.TreeNodeCollection that represents the tree nodes assigned to the data filter control. + + + + + Gets or sets a value indicating whether drag and drop operation with RadDataFilter + nodes is enabled. + + AllowDragDropBetweenTreeViews Property + AllowDrop Property (Telerik.WinControls.UI.RadTreeNode) + The default value is false. + + + + Gets or sets a value indicating whether adding new nodes is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether removing nodes is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether editing is allowed. + + true if [allow edit]; otherwise, false. + + + + Gets or sets the height of the item. + + The height of the item. + + + + Gets or sets a value indicating whether [show lines]. + + true if [show lines]; otherwise, false. + + + + Gets or sets the color of the line. + + The color of the line. + + + + Gets or sets the line style. + + TreeLineStyle enumeration + + A TreeLineStyle that represents the style used for + the lines between the nodes. The default is + TreeLineStyle.Solid. + + + + + Gets or sets a value indicating the default tree view toggle mode. + + + + + Occurs when a property text is about to be displayed on the screen. Allows the developer to substitute property names with + user-friendly display strings. + + + + + Raises the event. + + The instance containing the event data. + + + + Sets the error. + + The text. + The RAD tree node. + The context where this error occured. + + + + Creates a new node and adds a node by path. The label of the new node will be the text after the last separator. + + Where the node should be added. + The new node if the operation is successful. + + + + Creates a new node and adds a node by path. The label of the new node will be the text after the last separator. + + Where the node should be added. + The path separator. + The new node if the operation is successful. + + + + Gets a node by specifying a path to it. + + The path to the node. + The node if found. + + + + Gets a node by specifying a path to it. + + The path to the node. + The path separator. + The node if found. + + + + Gets a node with the specified name. + + The name of the node. + A node with the specified name. + + + + Gets a node with the specified name. + + The name of the node. + /// The node which the should be taken as a root. + A node with the specified name. + + + + Puts the current node in edit mode. + + + + + + Commits any changes and ends the edit operation on the current cell. + + + + + + Close the currently active editor and discard changes. + + + + + + Updates the visual items in the three view + + Indicated the update action + + + + Updates the visual items in the three view + + Indicated the update action + Array representing the nodes which should be updated + + + + Begins the update. + + + + + Ends the update. + + + + + Ends the update. + + Tells the view whether an update is required or not. + Indicates the update action + + + + Defers the refresh. + + + + + + Collapses all. + + + + + Expands all. + + + + + Gets an enumerator which enumerates all nodes in the tree. + + The enumerator. + + + + Gets an enumerator which enumerates all descendant nodes of a node. + + The enumerator. + + + + Gets the node at. + + The x. + The y. + + + + + Gets the node at. + + The pt. + + + + + Gets the node element at. + + The x. + The y. + + + + + Gets the node element at. + + The pt. + + + + + Gets the node count. + + if set to true [include sub trees]. + + + + + Finds the specified match. + + The match. + + + + + Finds the specified text. + + The text. + + + + + Finds the nodes. + + The match. + + + + + Finds the nodes. + + The match. + The argument. + + + + + Finds the nodes. + + The text. + + + + + Execute the specified action for every RadTreeNode in the tree + + + + + + Executes the specified command. + + The command. + The settings. + + + + + Executes the specified command include sub trees. + + if set to true [include sub trees]. + The command. + The settings. + + + + + Scrolls to. + + The delta. + + + + Ensures that the specified tree node is visible within the tree view element, scrolling the contents of the element if necessary. + + The node to scroll into view + + + + Ensures that the specified tree node is visible within the tree view element, scrolling the contents of the element if necessary. + This method expands parent items when necessary. + + The node to bring into view + + + + This method traverses through the visible nodes of RadTreeView and returns a node that matches the . + + + + + + + Occurs when [data error]. + + + + + Occurs when [binding context changed]. + + + + + Occurs when is formatting + + + + + Occurs when is created. + + + + + Occurs when is created. + + + + + Occurs after a node is bound to a data item. + + + + + Occurs when is mouse down. + + + + + Occurs when is mouse up. + + + + + Occurs when mouse is move over a . + + + + + Occurs when LazyMode is true and NodesNeeded event is handled + + + + + Occurs when mouse enters a + + + + + Occurs when mouse leaves a + + + + + Occurs when a mouse button is clicked inside a + + + + + Occurs when a mouse button is double clicked inside a + + + + + Occurs when is hovered. + + + + + Occurs when node's checked state is changing. + + + + + Occurs when node's checked state is changed. + + + + + Occurs when node is expanding. + + + + + Occurs when node has been expanded. + + + + + Occurs when the selected node is changing + + + + + Occurs when selected node has been changed. + + + + + Occurs when selected node has been cleared. + + + + + Occurs when SelectedNodes collection has been changed. + + + + + Occurs when editor is required. + + + + + Occurs when editing is started. + + + + + Occurs when editor is initialized. + + + + + Occurs when editing has been finished. + + + + + Occurs when node's value is changing. + + + + + Occurs when node's value has been changed. + + + + + Occurs when node's value is validating. + + + + + Occurs when validation error occurs by canceling the ValueValidating event. + + + + + Occurs when the user begins dragging an item. + + + + + Occurs when a drag is starting + + + + + Occurs when a drag has started + + + + + Occurs when a drag is ending + + + + + Occurs when a drag has ended + + + + + Occurs when drag feedback is needed for a node. + + + + + Occurs when nodes are needed in load on demand hierarchy + + + + + Occurs after a node is removed. + + + + + Occurs after a node is being added. + + + + + Gets or sets the default sort Comparer for RadTreeView. The default comparer compares the nodes according to their text. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets a value indicating whether the TreeView load child Nodes collection in NodesNeeded event only when Parend nodes expanded. + + true if [lazy mode]; otherwise, false. + + + + Gets or sets a value indicating whether the child nodes should be auto checked when RadTreeView is in tri state mode + + The default value is false. + + + + Contains data binding settings for related data. + + + + Gets or sets the type of the expand animation enumeration. + AllowPlusMinusAnimation enumeration + PlusMinusAnimationStep Property + ExpandAnimation Enumeration + + + The default value is ExpandAnimation.Opacity. + + + + Gets or sets the opacity animation step for expand/collapse animation. + + Returns a double value from double.Epsilon to 1 representing the opacity changing step with + which the plus minus buttons are animated. The default value is 0.025. + + + + + Gets or sets a value indicating whether animation of collapse/expand images is enabled. + + ShowExpanCollapse Property + PlusMinusAnimationStep Property + The default value is false. + + + + The default image index for nodes. + + The index of the image. + + + + The default image key for nodes. + + The image key. + + + + + Gets or sets a value indicating whether [tri state mode]. + + true if [tri state mode]; otherwise, false. + + + + Gets or sets the toggle mode. + + The toggle mode. + + + + Gets or sets the drag drop service used when dragging nodes within RadTreeView or between different instances of RadTreeView. + + The drag drop service. + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where an item will be dropped after a drag operation. + + + + + Gets the last node. + + The last node. + + + + Gets or sets a value indicating whether [allow drag drop]. + + true if [allow drag drop]; otherwise, false. + + + + Gets or sets a value indicating whether [multi select]. + + true if [multi select]; otherwise, false. + + + + Gets or sets a value indicating whether [show expander]. + + true if [show expander]; otherwise, false. + + + + Gets the selected nodes. + + The selected nodes. + + + + Gets the checked nodes. + + The checked nodes. + + + + Gets or sets the context menu. + + The context menu. + + + + Gets or sets a value indicating whether [check boxes]. + + true if [check boxes]; otherwise, false. + + + + Gets or sets a value indicating whether [hide selection]. + + true if [hide selection]; otherwise, false. + + + + Gets or sets a value indicating whether [hot tracking]. + + true if [hot tracking]; otherwise, false. + + + + Gets or sets the height of the item. + + The height of the item. + + + + Gets or sets the active editor. + + The active editor. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets or sets the default RadTreeNode edit mode. + + The edit mode. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets a value indicating whether there is an open editor in the tree view. + + + + + Gets or sets the selected node. + + The selected node. + + + + Gets or sets a value indicating whether [show lines]. + + true if [show lines]; otherwise, false. + + + + Gets or sets a value indicating whether [show root lines]. + + true if [show root lines]; otherwise, false. + + + + Gets or sets a value indicating whether [show node tool tips]. + + true if [show node tool tips]; otherwise, false. + + + + Gets the first visible tree node in the tree view. + + + + + Gets or sets the color of the lines connecting the nodes in the tree view. + + + + + Gets or sets the line style. + + TreeLineStyle enumeration + + A TreeLineStyle that represents the style used for + the lines between the nodes. The default is + TreeLineStyle.Dot. + + + + + Gets the number of tree nodes that are visible in the tree view + + + + + Gets or sets the path separator. + + The path separator. + + + + Gets or sets the tree node provider. + + The tree node provider. + + + + Gets or sets the binding context. + + The binding context. + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets the nodes. + + The nodes. + + + + Gets or sets the indent of nodes, applied to each tree level. + + + + + Gets or sets the filter. + + The filter. + + + + Gets or sets the sort order of Nodes. + + The sort order. + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets the sort descriptors. + + The sort descriptors. + + + + Gets or sets the name of the list or table in the data source for which the is displaying data. + + + + + Gets or sets a property name which will be used to extract a value from the data items. The value of the property with + this name will be available via the Value property of every RadTreeNode. + + + + + Gets or sets a property name which will be used to extract the checked state of the data items. The value of the property with + this name will be available via the Checked property of every RadTreeNode. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to extract the text of the data items. The value of the property with + this name will be available via the Text property of every RadTreeNode. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a that will be used to convert the toggle state of the checkboxes + to the underlying data type it is bound to. + + + + + Gets or sets the expand image + + + + + Gets or sets the expand image + + + + + Gets or sets the hovered expand image + + + + + Gets or sets the hovered collapse image + + + + + Gets or sets a value indicating whether nodes can have different height. + + The default value is false. + + + + Gets or sets a value indicating whether to select the full row. + + The default value is false. + + + + Gets or sets the vertical spacing among nodes. + + + + + Gets or sets the alternating row color. + + + + + Gets or sets a value indicating whether to show rows with alternating row colors. + + + + + Gets the index of the first visible node. + + + + + Gets or sets a value indicating whether single node expand is enabled. + + + + + Gets or sets a property that controls the visibility of the horizontal scrollbar. + + + + + Gets or sets a property that controls the visibility of the vertical scrollbar. + + + + + Gets or a value indicating whether the control is in design mode. + + + + + Gets or sets a value indicating whether to scroll horizontally RadTreeView to ensure that the clicked node is visible. + + + + + Gets or sets a value indicating whether the default context menu is enabled. + + The default value is false. + + + + Provides a callback so that the default filtering expression parser can be substituted. + + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when RadTreeViewElement is focused. + The default value is false. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + The default value is 300. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the keyboard search functionality. + + + + + Gets or sets the expand timer interval - this is the interval of time in milliseconds which will pass before a hovered node is being expanded during drag and drop operation. + + + The expand timer interval. + + + + + Builds the tree based on the collection of filter descriptors. + + + + + Applies the filter to the DataSource. + + + + + Adds child nodes, based on the given filter descriptor and its child descriptors. + + The filter. + The node, that will be the parent of created nodes. + + + + Removes the child node. + + The node to remove. + + + + Removes the child node. + + The parent node. + The child node. + + + + Clears the child nodes of given group node. + + The node. + + + + Validates if adding new node is allowed. + + + + + Gets the default name of field property. + + + + + Updates the value and operator of the descriptor. + + The descriptor. + + + + Gets the field names. + + + + + Gets the type of the editor. + + Type of the value. + + + + + Puts the current node in edit mode. + + + + + Ends the init. + + + + + Normalizes the expression. + + + + + Normalizes the child descriptor. + + The composite descriptor. + + + + Called when [editor required]. + + The sender. + The instance containing the event data. + + + + Raises the event. + + The sender. + The instance containing the event data. + + + + Setups the drop down list. + + The criteria node. + The editor. + The display value. + + + + Gets the editor. + + Type of the editor. + + + + + Initializes the editor. + + Type of the value. + The editor. + + + + Gets the type of the field by given property name. + + Name of the property. + + + + Initializes the spin editor. + + The spin editor. + Type of the value. + + + + Saves the editor value. + + The node element. + The new value. + + + + Gets the designer host. + + + + + Updates the nodes collection by removing all the nodes that does not have corresponding property name in the Descriptors collection. + + + + + Fires the event. + + + + + Gets or sets the provider. + + The provider. + + + + Gets or sets the data source that the is displaying filters for. + + + + + Gets or sets the expression. + + The expression. + + + + A collection of descriptor items used to identify the property names and their corresponding types. + + + + + Gets or sets the auto generate descriptor items. + + The auto generate descriptor items. + + + + Gets or sets a value indicating whether the name of fields in fields drop down should be sorted. + + + + + Gets or sets a value indicating how the field names are sorted when SortFieldNames is true. + + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets or sets a value indicating whether [allow drag drop]. + + true if [allow drag drop]; otherwise, false. + + + + Gets or sets the default date editor format. + + The default date editor format. + + + + Gets or sets the default custom date editor format. + + The default custom date editor format. + + + + Occurs when a property text is about to be displayed on the screen. Allows the developer to substitute property names with + user-friendly display strings. + + + + + Represents a to be used in control. + + + + + Represents an item of which can have an associated control. + Responsible for arranging the associated control within the . + Can display a text in addition to the control. + + + + + Gets the rectangle in which the text part will be arranged. + + The client area of the item. + The arrange rectangle of the text part. + + + + Gets the rectangle in which the associated control will be arranged. + + The client area of the item. + The arrange rectangle of the control. + + + + Updates the bounds of the associated control. + + + + + Gets or sets the position of the text of the item. + + + + + Gets or sets the position of the text of the item. + + + + + Gets or sets the proportional size of the text part which will be used + when TextSizeMode is set to proportional. + + + + + Gets or sets the fixed size of the text part which will be used + when TextSizeMode is set to fixed. + + + + + Gets or sets the minimum size of the text part. + + + + + Gets or sets the maximum size of the text part. + + + + + Gets or sets the way in which the text part will be sized - proportionally or fixed-size. + + + + + Gets or sets the control associated with this item. + + + + + Gets the arrange rectangle of the validation text label. + + The client rectangle of the item. + The arrange rectangle of the validation label. + + + + Gets or sets the fixed size of the validation label. If set to 0, the text will be autosized. + + + + + Gets the validation label element. + + + + + An extension of the which adds data binding functionality. + When set with a DataSource, RadDataLayout automatically generates editors for each + of the fields in the datasource. Provides validation functionality and additional + interface for displaying validation messages. + + + + + Initializes a new instance of the class. + + + + + Initializes the and the ValidationPanel + + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Updates the validation panel visibility. + + + + + Gets the instance of which is the main element + in the hierarchy tree and encapsulates the actual functionality of RadDataLayout. + + + + + Gets or sets the DataSource. Setting the DataSource will auto-generate editors + for the fields in it. + + + + + Gets or sets the number of columns which will be used to arrange generated controls. + + Number Of Columns should be at least one + + + + Gets the validation panel. + + + + + Gets the inner . + + + + + Gets or sets a value indicating whether the validation panel should appear. + + + + + Gets or sets a value indicating the flow direction of generated editors when the ColumnCount property has value bigger than 1. + + + + + The ItemDefaultHeight property sets the height that generated items should have. + + + + + Gets the BindingManagerBase manager that is used to manage the current DataSource. + + + + + If [true], the labels will have a fixed size, best-fitted to the largest text in the column. + If [false], the labels will have their default proportional size. + + + + + Gets the current object. + + + + + This property is not relevant for this class. + + + + + Occurs when the value of editor is changed. + + + + + Occurs when the value of editor is about to change. + + + + + Occurs when editor is being initialized. This event is cancelable + + + + + Occurs when the editor is Initialized. + + + + + This event is firing when the item associated with a given field is about to be Initialized. This event is cancelable.. + + + + + Occurs the item is already Initialized. + + + + + Occurs when a binding object for an editor is about to be created. This event is cancelable. + + + + + Occurs when binding object is created. + + + + + Gets the margin around the client area of the control. + In the default case, this should be the border thickness. + + + + + The main element of control. Handles the logic of creating and arranging items + when the control is databound. + + + + + The error icon property + + + + + Initializes the fields. + + + + + Binds this instance. + + + + + Clears this instance. + + + + + Initializes the data entry. + + + + + Finds the required properties. + + + + + Arranges the controls. + + + + + Creates a control with the specified type for a given property. + + The property. + The suggested editor type. + A Control instance. + + + + Generates the controls run time. + + The current column. + The pair. + Size of the property item control. + The property item control location. + + + + Generates the controls design time. + + The current column. + The pair. + Size of the property item control. + The property item control location. + + + + Creates the binding. + + The control. + Name of the property. + The data member. + Binding. + + + + Arranges the labels. + + + + + Gets the suggested editor type for the specified property type. + + The property type. + The type of the suggested editor. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + Fires the event. + + The sender. + The instance containing the event data. + + + + The ItemDefaultHeight property sets the height that generated items should have. + + + + + Gets or sets the number of columns which will be used to arrange generated controls. + + Number Of Columns should be at least one + + + + Gets or sets a value indicating the flow direction of generated editors when the ColumnCount property has value bigger than 1. + + + + + If [true], the labels will have a fixed size, best-fitted to the largest text in the column. + If [false], the labels will have their default proportional size. + + + + + Gets or sets the data source. + + + + + Gets the current object. + + + + + Gets the manager. + + + + + Gets or sets the icon of the Error provider. + + The error icon. + + + + Represents a data entry. The RadDataEntry class is essentially a simple wrapper + for the RadScrollablePanelElement. All UI and + logic functionality is implemented in the + RadScrollablePanelElement class. The RadDataEntry acts + to transfer the events to and from its corresponding + RadScrollablePanelElement instance. The + RadScrollablePanelElement may be nested in other + telerik controls. + + + + + The validation panel + + + + + The show validation panel + + + + + Initializes a new instance of the class. + + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the panel element. + + RadScrollablePanelElement. + + + + Creates the controls instance. + + Control.ControlCollection. + + + + Wires the events. + + + + + Unwires the events. + + + + + This method initializes the scrollbars and the + container control. + + + + + This method inserts the scrollbars and the container + in the Controls collection of this control. + + + + + Handles the ControlRemoved event of the ValidationPanel control. + + The source of the event. + The instance containing the event data. + + + + Handles the ControlAdded event of the ValidationPanel control. + + The source of the event. + The instance containing the event data. + + + + Handles the ItemValidated event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the ItemValidating event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the BindingCreated event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the BindingCreating event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the EditorInitialized event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the EditorInitializing event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the ItemInitializing event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the ItemInitialized event of the DataEntryElement control. + + The source of the event. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Updates the validation panel visibility. + + + + + Gets or sets whether the edit control is auto-sized + + true if [automatic size]; otherwise, false. + + + + Gets the default size of the control. + + The default System.Drawing.Size of the control. + The default Size of the control. + + + + Gets the instance of RadDataEntryElement wrapped by this control. RadDataEntryElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadDataEntry. + + The data entry element. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets a value indicating whether the amount of columns that RadDataEntry will use to arrange generated controls. + + The number of columns. + + + + Gets or sets a value indicating whether the generated editors should fit their width to width of the RadDataEntry. + + true if [fit to parent width]; otherwise, false. + + + + Gets the validation panel. + + The validation panel. + + + + Gets or sets a value indicating whether [show validation panel]. + + true if [show validation panel]; otherwise, false. + + + + Gets or sets a value indicating whether generating flow of editors when the ColumnCount property has value bigger than 1. + + The flow direction. + + + + Gets or sets the between the generated items. + + The item space. + + + + The ItemDefaultSize property sets the size that generated items should have if FitToParentWidth property has value false. + When property the FitToParentWidth has value true the width of items are calculated according the width of the RadDataEntry + + The default size of the item. + + + + Gets the BindingManagerBase manager that is used for current DataSource. + + The manager. + + + + In RadDataEntry control there is logic that arranges the labels of the editors in one column according to the longest text. + This logic can be controlled by the AutoSizeLabels property. + + true if [resize labels]; otherwise, false. + + + + Gets the current object. + + The current object. + + + + This property is not relevant for this class. + + + + + Occurs when the value of editor is changed. + + + + + Occurs when the value of editor is about to change. + + + + + Occurs when editor is being initialized. This event is cancelable + + + + + Occurs when the editor is Initialized. + + + + + This event is firing when the panel that contains the label, editor and validation label is about to be Initialized. This event is cancelable.. + + + + + Occurs the item is already Initialized. + + + + + Occurs when a binding object for an editor is about to be created. This event is cancelable. + + + + + Occurs when binding object is created. + + + + + This class represents the main element of the + control. This element contains + a + and a . + + + + + Creates an instance of the RadPanelElement class. + + + + + Gets an instance of the + class which represents the text of the panel. + + + + + Gets an instance of the class + which represents the border of the panel. + + + + + Gets an instance of the + class which represents the fill of the panel. + + + + + Creates an instance of the + class. This constructor is used by the Visual Studio Designer. + + + + + Creates an instance of the class. + + An instance of the + class which represents the owner of this container. + + + + Class RadDataEntryElement. + + + + + The error icon property + + + + + Initializes the fields. + + + + + Binds this instance. + + + + + Clears this instance. + + + + + Initializes the data entry. + + + + + Finds the required properties. + + + + + Arranges the controls. + + + + + Creates the enum. + + The property. + Control. + + + + Creates the text box. + + The property. + Control. + + + + Creates the image. + + The property. + Control. + + + + Creates the color. + + The property. + Control. + + + + Creates the boolean. + + The property. + Control. + + + + Creates the date time. + + The property. + Control. + + + + Generates the controls run time. + + The current column. + The pair. + Size of the property item control. + The property item control location. + + + + Generates the controls design time. + + The current column. + The pair. + Size of the property item control. + The property item control location. + + + + Setups the inner controls. + + The pair. + Size of the property item control. + The property item control location. + The property item container. + The label control. + The validation control. + The editor control. + + + + Arranges the labels. + + + + + Creates the binding. + + The control. + Name of the property. + The data member. + Binding. + + + + Converts the image to icon. + + The image. + Icon. + + + + Clears the borders. + + + + + Handles the Validated event of the control control. + + The source of the event. + The instance containing the event data. + + + + Handles the Validating event of the control control. + + The source of the event. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Handles the event. + + The sender. + The instance containing the event data. + + + + Gets or sets a value indicating whether the amount of columns that RadDataEntry will use to arrange generated controls. + + The number of columns. + Number Of Columns should be at least one + + + + Gets or sets a value indicating whether generating flow of editors when the ColumnCount property has value bigger than 1. + + The filling order. + + + + Gets or sets the between the generated items. + + The item space. + + + + Gets or sets a value indicating whether the generated editors should fit their width to width of the RadDataEntry. + + true if [fit to parent width]; otherwise, false. + + + + The ItemDefaultSize property sets the size that generated items should have if FitToParentWidth property has value false. When property the FitToParentWidth has value true the width of items are calculated according the width of the RadDataEntry + + The default size of the item. + + + + In RadDataEntry control there is logic that arranges the labels of the editors in one column according to the longest text. This logic can be controlled by the AutoSizeLabels property. + + true if [resize labels]; otherwise, false. + + + + Gets or sets the data source. + + The data source. + + + + Gets the current object. + + The current object. + + + + Gets the manager. + + The manager. + + + + Gets the type of the theme effective. + + The type of the theme effective. + + + + Gets the data entry control. + + The data entry control. + + + + Gets or sets the icon of the Error provider. + + The error icon. + + + + Class RadBindingNavigator. + + + + + Creates the element. + + An instance of . + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + A that contains the + event data. + True if the change of orientation should be canceled, false otherwise. + + + + Raises the event. + + A that contains the + event data. + + + + Propagete ThemeName to child bar's menu + + + + + Apllies the orientation to the control and its child elements. + + The orientation to apply + Indicates whether events should be fired + + + + Gets the binding navigator element. + + The binding navigator element. + + + + Gets or sets the binding source. + + The binding source. + + + + Gets or sets the count item format. + + The count item format. + + + + Gets or sets a value indicating whether the control will handle internally the creation of new items. + + true if [automatic handle add new]; otherwise, false. + + + + Gets the rows of the binding navigator. + + + + + Gets or sets which RadBindingNavigator borders are docked to its parent control and determines + how a control is resized with its parent. + + + One of the values. The default + is . + + + The value assigned is not one of the + values. + + 1 + + + + Gets the menu opened upon rightclick on the control. + + + + + Gets the width and height of a rectangle centered on the point the mouse button was pressed, within which a drag operation will not begin. + + + + + Gets or sets the orientation of the RadBindingNavigator - could be horizontal or vertical. + This property is controlled by the Dock property of the RadBindingNavigator control. + + + + + This property is not relevant for this class. + + + + + Occurs before the orientation is changed. + + + + + Occurs after the orientation is changed. + + + + + Occurs before a floating form is created. + + + + + Occurs before a floating strip is docked. + + + + + Occurs when a floating strip is created. + + + + + Occurs after a floating strip is docked. + + + + + Occurs when opening the context menu. + + + + + Represents the RootElement of the RadBindingNavigator control. + + + + + Represents the main element of the RadCommandBar control. + Contains a collection of element. + + + + + Raises the event. + + The element that is responsible for firing the event - usually this is the strip that is going to be floating. + True if the creating of a floating form should be canceled, False otherwise. + + + + Raises the event. + + The element that is responsible for firing the event - usually this is the strip that is made floating. + + + + Raises the event. + + The element that is responsible for firing the event - usually this is the strip that is going to be docked. + True if the docking of a floating form should be canceled, False otherwise. + + + + Raises the event. + + The element that is responsible for firing the event - usually this is the strip that was docked. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + True if the change of orientation should be canceled, false otherwise. + + + + Moves a specific to the upper . + + The element to move. + The that contains the element to move. + + + + Moves a specific to the lower . + + The element to move. + The that contains the element to move. + + + + Saves the visual state of the to a specified file. + + The name of the destination file. + + + + Saves the visual state of the to a specified stream. + + The destination stream. + + + + Saves the visual state of the to a specified XmlWriter. + + The XmlWriter to save the visual state data. + + + + Loads the visual state of the from a specified file. + + The name of the file containing the visual state data. + + + + Loads the visual state of the from a specified stream. + + The source stream. + + + + Loads the visual state of the from a specified XmlReader. + + The XmlReader to read the visual state data. + + + + Creates a floating form of a specified . + + The strip element of which the floating form should be created. + The that contains the strip element. + The initial location of the floating form. + + + + Creates an XmlDocument containing the current visual state data of the . + + The created document. + + + + Restores the visual state of the from the specified XmlDocument. + + The document containing the visual state data. + + + + Occurs before dragging is started. + + + + + Occurs when item is being dragged. + + + + + Occurs when item is released and dragging is stopped. + + + + + Occurs when Orientation property is changed. + + + + + Occurs before Orientation property is changed. + + + + + Occurs before a floating form is created. + + + + + Occurs before a floating strip is docked. + + + + + Occurs when a floating strip is created. + + + + + Occurs when a floating strip is docked. + + + + + Gets the object that provides information about strips owned by the . + + + + + Gets or sets the size in pixels when current strip is being Drag and Drop in next or previous row + + + + + Gets or sets the orientation of the . + + + + + Gets the rows of the . + + + + + Allows inheritors to provide custom load logic. + + + + + Maps the controls. + + + + + Adds the standard items. + + + + + Disposes the managed resources of this instance. + + + + + Creates the first top strip element child elements. + + + + + Creates the second bottom strip element child elements. + + + + + Attaches the events. + + + + + Unwires the buttons and text box events. + + + + + Handles the Click event of the FirstButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the PreviousButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the NextButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the LastButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the KeyDown event of the currentNumberTextBox control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the DeleteButton control. + + The source of the event. + The instance containing the event data. + + + + Handles the Click event of the AddNewButton control. + + The source of the event. + The instance containing the event data. + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Binds this instance. + + + + + Updates the visibility. + + + + + Updates the text box. + + + + + Updates the label text. + + + + + Updates the add new button visibility. + + + + + Gets or sets the command bar row element. + + The command bar row element. + + + + Gets the first top strip element. + + The first top strip element. + + + + Gets or sets the first button. + + The first button. + + + + Gets or sets the previous button. + + The previous button. + + + + Gets or sets the current number text box. + + The current number text box. + + + + Gets or sets the page label. + + The page label. + + + + Gets or sets the next button. + + The next button. + + + + Gets or sets the last button. + + The last button. + + + + Gets or sets the second bottom strip element. + + The second bottom strip element. + + + + Gets or sets the add new button. + + The add new button. + + + + Gets or sets the delete button. + + The delete button. + + + + Gets or sets the binding source. + + The binding source. + + + + Gets the type of the theme effective. + + The type of the theme effective. + + + + Gets or sets the image of the button that navigates to the first item. + + The first item button image. + + + + Gets or sets the image of the button that navigates to the previous item. + + The previous item button image. + + + + Gets or sets the image of the button that navigates next item. + + The next item button image. + + + + Gets or sets the image of the button that navigates to the last item. + + The last item button image. + + + + Gets or sets the image of the button that adds new item. + + The add new button image. + + + + Gets or sets the image of the button that deletes the current item. + + The delete button image. + + + + Gets or sets the count item format. + + The count item format. + + + + Gets or sets a value indicating whether the control will handle internally the creation of new items. + + true if adding new items is handled by the binding navigator; otherwise, false. + + + + Enumerate the which part will be included when checking for NullValue. + + + + + Only Date + + + + + Only Time + + + + + Both + + + + + Represents an arrow button element. Each telerik control has a + corresponding tree of RadElements; the RadArrowButtonElement can be nested + in other telerik controls. + + + + Gets the default size of the + + + Gets or sets the + %arrow direction:Telerik.WinControls.Primitives.ArrowPrimitive.ArrowDirection%. + + + Gets the BorderPrimitive object. + + + Gets the FillPrimitive object. + + + Gets the ArrowPrimitive object. + + + + If set to true shows and OverflowPrimitive instead of an ArrowPrimitive. + + + + + This class represents the dialog form shown to the user when they drop + a RadRibbonBar control on a RadForm control in the Visual Studio designer. + + + + + Creates an instance of the RadFormDesignerRibbonDialog + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + This is a base class for a behavior that can be associated with a + RadFormControlBase instance. The behavior defines the behavior and appearance of the form. + + + + + Creates an instance of the RadFormBehaviorBase class. + This instance has no Form associated with it. + + + + + Creates an instance of the RadFormBehaviorBase class. + + + An implementation of the IComponentTreeHandler which + this behavior applies to + + + + Creates an instance of the RadFormBehavior class. + + + An implementation of the IComponentTreeHandler which + this behavior applies to + + + + + Occurs when a form is associated with the behavior. + + + + + Gets the RadElement instance that represents the root element + containing the hierarchy that builds the visual appearance of the form. + + + + + Determines whether the CreateChildItems call is + routed to the handler of the behavior. + Used by the RadFormControlBase class. + + + + + Gets the width of the form border + + + + + Gets the height of the caption that is drawn + by the behavior. + + + + + Gets the margin that describes the size and position + of the client area. + + + + + A class that represents a border for a Form which is built by images. + + + + + Gets a Padding object that represents + the left, top, right and bottom width of the border. + + + + + Gets or sets the left Image which represents the + transition between the image border and the + title bar element. + + + + + Gets or sets the right Image which represents the + transition between the image border and the + title bar element. + + + + + Gets or sets the texture for the left image border. + + + + + Gets or sets the texture for the bottom image border. + + + + + Gets or sets the texture for the right image border. + + + + + Gets or sets the image for the bottom left border corner. + + + + + Gets or sets the image for the bottom right border corner. + + + + + This class represents the root element of a RadFormControlBase Element Tree. + This class is needed because some extended region calculations are needed when the control + is a Form and shape is applied to it. + + + + + Creates an instance of the FormRootElement class. + + The RadFormControlBase which is owner of this root element + + + + A standard behavior for RadForm. + + + + + This class represents a base class for all behaviors that + modify the non-client area of the form and enable custom painting + in it. + + + + + Creates an instance of the ThemedFormBehavior class. + + + + + Creates an instance of the RadFormBehavior class. + + An IComponentTreeHandler instance. + + + + Creates an instance of the RadFormBehavior class. + + An IComponentTreeHandler instance. + A flag that determines whether the CreateChildItems + call is rerouted to the behavior. + + + + This method transforms screen coordinates + into local coordinates. + + The screen point to transform. + The transformed point. If the handle of the associated Form is + not created, the method returns the input. + + + + This method returns the maximum available height according + to the current position of the form in multi-monitor setup. + + + + + + Fires when the window state of the form is changed. Uses the SIZE_* values + to define the window states. + + The old window state of the form. + The new window state of the form + + + + Immediately refreshes the whole non-client area of the form + which this behavior is associated with. + + + + + Invalidates the specified bounds in the non-client area + of the form this behavior is associated with. + + + + + + This event is fired when the WM_GETMINMAXINFO message is sent to the form. + + Contains information about the position, maximum/minimum size of the form etc. + Can be modified to adjust the settings applied to the form. + + + + This event is fired when the WM_NCPAINT message is sent to the form. + + The NC Graphics. + + + + Paints an element on a specified graphics. + + The Graphics object to paint on. + The clipping rectangle. + The element to paint. + + + + Gets a bool value that determines whether the Form's window state is maximized. + + + + + Gets a bool value that determines whether the Form's window state is minimized. + + + + + Gets a boolean value that determines whether the Form's window state is normal. + + + + + Gets an integer value that determines the current Form state: + Possible values come from the SIZE_RESTORED, SIZE_MAXIMIZED, SIZE_MINIMIZED win32 constants. + + + + + Gets a boolean value showing whether a MDI child form is maximized. + + + + + Gets the MdiClient control of the Form. + Returns null if the Form is not MdiContainer. + + + + + Gets a boolean value determining whether there is a Menu in the Form. + + + + + Gets the maximized MDI child if any. + + + + + This rectangle represents the top sizing frame of a window. + + + + + This rectangle represents the topleft sizing corner of a window. + + + + + This rectangle represents the left sizing frame of a window. + + + + + This rectangle represents the bottomleft sizing corner of a window. + + + + + This rectangle represents the bottom sizing frame of a window. + + + + + This rectangle represents the bottomright sizing corner of a window. + + + + + This rectangle represents the right sizing frame of a window. + + + + + This rectangle represents the topright sizing corner of a window. + + + + + This rectangle represents the caption frame of a window. + + + + + This rectangle represents the left border frame of a window. + + + + + This rectangle represents the bottom border frame of a window. + + + + + This rectangle represents the right border frame of a window. + + + + + This rectangle represents the client rectangle of a window. + + + + + Gets the rectangle that contains the menu of the form. + + + + + Gets the rectangle that contains the system buttons of the form. + + + + + Gets the rectangle that contains the form's icon. + + + + + Gets the rectangle that contains the form's caption text. + + + + + Gets or sets a bool value indiciating + whether the behavior applies NC theming + to the form. + + + + + Gets the current form CreateParams settings. + + + + + Gets or sets the form associated with this behavior. + Used only in design-time. + IMPORTANT: This property can be assigned only one time. + An InvalidOperationException is thrown when the property + is assigned more than once. + + + + + Creates an instance of the RadFormBehavior class. + This instance has no Form associated with it. + + + + + Creates an instance of the RadFormBehavior class. + + An IComponentTreeHandler instance. + + + + Creates an instance of the RadFormBehavior class. + + An IComponentTreeHandler instance. + A flag that determines whether the CreateChildItems + call is rerouted to the behavior. + + + + Calculates the bounding rectangle of the vertical scrollbar. + + An instance of the Rectangle struct that represents + the position and the size of the vertical scrollbar + + + + Calculates the bounding rectangle of the horizontal scrollbar. + + An instance of the Rectangle struct that represents + the position and the size of the horizontal scrollbar. + + + + This method synchronizes the values of the standard vertical scrollbar + with the RadScrollBarElement in the Form's element hierarchy. + + + + + This method synchronizes the values of the standard horizontal scrollbar + with the RadScrollBarElement in the Form's element hierarchy. + + + + + Gets the Caption Height according to the Styles applied and + the current state of the form. + + A value representing the height of the caption. + + + + Gets a Padding object which represents the window NC margin according + to the currently set styles. + + The form NC margin. + + + + Calculates the client margin based on the current form and form element settings + + + + + + This method translates a point which is in client coordinates + to a point in NC coordinates. Used when the Form has captured the mouse + and NC mouse events have to be processed. + + A point in client coordinates. + The point in NC coordinates. + + + + Fires when a Form has been associated with the behavior. + + + + + This method adjusts the Element tree according + to the current AllowTheming property value. + If AllowTheming is true, the Element tree is painted, + otherwise not. + + + + + Changes the visibility of the separate items within the RadFormElement's element tree + according to the current Form state. + + The state of the Form as it comes from the WM_SIZE message + + + + This method adjusts the FormElement according to the styles currently applied to the Form. + For example, the MinimizeButton, MaximizeButton and CloseButton in the Title Bar are enabled/disabled + according to whether the corresponding window style is applied. + + + + + Gets the bounding rectangle of the sizing grip that appears + when both scrollbars are visible. + + + + + Gets the bounding rectangle of the horizontal scrollbar. + Returns an empty rectangle if the scrollbar is not visible. + + + + + Gets the bounding rectangle of the vertical scrollbar. + Returns an empty rectangle if the scrollbar is not visible. + + + + + Gets or sets a boolean value indicating + whether the behavior paints in the NC area of the + Form when OS is Vista or later and Composition is enabled. + + + + + Gets the Caption Height of the Form. + + + + + Gets the Border width of the Form. + + + + + Gets the margin that determines the position and size of the client + area of the Form. + + + + + A Delegate which is used for invoking the base implementation of WndProc of this form. + + + + + + This is the class that represents the element hierarchy which + is painted in the non-client area of a RadForm. + + + + + Gets or sets a boolean value to determine whether the form + should appear as active or inactive. + Using this property, you can override the default theme styles + which define different appearance of the form when in active/inactive state. + + + + + Gets the square element that appears at the end of the horizontal + scrollbar. + + + + + Gets the composed width of the border + built on the width of the line and image borders. + + + + + Gets the MdiControlStrip item that should appear + below the title bar when a MDI child is maximized. + + + + + Gets the BorderPrimitive of the RadFormElement. + + + + + Gets the FormImageBorderPrimitive of the RadFormElement. + + + + + Gets the RadFormTitleBarElement of the RadFormElement. + + + + + Gets the horizontal scrollbar element of the form element. + + + + + Gets the vertical scrollbar element of the form element. + + + + + Gets an instance of the + class that represents the fill of the MDI strip. + + + + + Gets the Minimize button + + + + + Gets the Maximize button + + + + + Gets the Close button + + + + + Gets the ImagePrimitive representing the Icon + of the currently maximized MDI child. + + + + + This class represents a Form that hosts a RadRibbonBar control and extends the behavior + of a standard form by providing Office 2007 form-like appearance. + + + + + Gets the RadRibbonBar control associated with this form. + + + + + Gets or sets a boolean value that determines + whether Vista Aero effects are enabled. + + + + + Creates an instance of the class. + + + + + Creates an instance of the class. + The implementation + which this behavior is associated with. + + + + + Creates an instance of the class. + + The associated implementation. + Determines whether the behavior + handles the CreateChildItems call. + + + + This method adjusts the form's element tree according to the composition state + of MS Windows. If Composition is enabled, the element tree is hidden and the glass + effects of the form are visible. + + + + + This method translates a point which is in client coordinates + to a point in NC coordinates. Used when the Form has captured the mouse + and NC mouse events have to be processed. + + A point in client coordinates. + The point in NC coordinates. + + + + Returns a zero for the caption height. + + + + + Gets an integer representing the top client margin of + the form when composition is enabled. + + + + + Gets a boolean value indicating whether composition effects + are enabled for the form. + + + + + Gets a value indicating whether composition effects are enabled for the Operating System. + + + + + Gets or sets value indicating whether the RadRibbonBar + is drawn over the Aero glass under Vista or later + versions of Windows. + + + + + This class serves as a dummy MenuStrip used by the RadRibbonFormBehavior + to prevent the default MDI caption from being painted when a MDI child is maximized + since the RadRibbonBar controls takes care to handle MDI children. + + + + + A class that represents the Border Primitive used in the new RadRibbonForm. + + + + + Gets or sets the color of the form's first broder. + + + + + Gets or sets the color of the form's second broder. + + + + + Gets or sets the color of the form's client area shadow. + + + + + This is the class that represents the element hierarchy which + is painted in the non-client area of a RadForm. + + + + + Gets the BorderPrimitive of the RadFormElement. + + + + + Represents a title bar element. All logic and UI functionality + is implemented in the RadFormTitleBarElement class. + You can use RadFormTitleBarElement events to substitute the title bar in a + borderless application. + + + + + Represents a title bar element. The RadTitleBar class is a simple + wrapper for the RadTitleBarElement class. The former acts to transfer events to and + from its corresponding RadTitleBarElement instance. All logic and UI functionality + is implemented in the RadTitleBarElement class. + You can use RadTitleBarElement events to substitute the title bar in a + borderless application. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Determines whether the parent form can be resized by dragging the title bar's edges. + + + + + Determines whether the parent form can be moved by dragging the title bar. + + + + + Fires when a close action is performed by the user (the close button is pressed + or the system menu is pressed twice). The system menu is not visible by default. + Use the Visual Style Builder to set which elements are visible and to change their + appearance. + + + + + Fires when a minimize action is performed by the user + + + + + Fires when a maximize/restore action is performed by the user (maximizes button + is pressed or the title bar is double clicked). + + + + + An Icon that represents the icon for the form. + + + + + Represents the default context menu for a . + + + + + Initializes a new instance of the class. + + The RadGanttView element. + + + + Raises the DropDownOpening event. + + The event arguments + + + + Called when the Add menu item is clicked. + + The menu item. + + + + Called when the Delete menu item is clicked. + + The menu item. + + + + Called when one of the Progress menu items is clicked. + + The menu item. + + + + Releases unmanaged and - optionally - managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Gets the gantt view element. + + + The gantt view element. + + + + + Gets the add menu item. + + + The add menu item. + + + + + Gets the add child menu item. + + + The add child menu item. + + + + + Gets the add sibling menu item. + + + The add sibling menu item. + + + + + Gets the delete menu item. + + + The delete menu item. + + + + + Gets the progress menu item. + + + The progress menu item. + + + + + Gets or sets a value indicating whether progress menu items should be shown. + + + true if progress menu items should be shown; otherwise, false. + + + + + Gets or sets the step by which the progress values will increment. + + + The progress step. + + + + + Represents a menu item for the . + + + + + Initializes a new instance of the class. + + The command. + The text. + + + + Gets the command of this menu item. + + + The command. + + + + + Represents an abstract class containing the methods needed to be implemented so one can populate a + + + + + Initializes a new instance of the class. + + The gantt. + + + + Gets the items. + + + + + + Sets the current. + + The GanttView data item. + + + + Resets this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Suspends the update. + + + + + Resumes the update. + + + + + Gets the Gantt view. + + The Gantt view. + + + + Gets a value indicating whether this instance is suspended. + + + true if this instance is suspended; otherwise, false. + + + + + Represents a class that describes the relations used to extract data from a data source to populate a . + + + + + Gets or sets the name of the relation. + + The name of the relation. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets the tasks data member. + + The data member. + + + + Gets or sets the links data member. + + The data member. + + + + Gets or sets the title member. + + The title member. + + + + Gets or sets the parent member. + + The parent member. + + + + Gets or sets the child member. + + The child member. + + + + Gets or sets the start member. + + The start member. + + + + Gets or sets the end member. + + The end member. + + + + Gets or sets the progress member. + + The progress member. + + + + Gets or sets the link start member. + + The link start member. + + + + Gets or sets the link end member. + + The link end member. + + + + Gets or sets the link type member. + + The link type member. + + + + Represents the converter used to convert the type of the links from/to the data source format to/from the enumeration. + + + + + Converts the given value to a instance. + + The value. + + + + + Converts a instance to another type; + + Type of the link. + + + + + Gets the gantt view element. + + + The gantt view element. + + + + + Represents the data item uses to represent the data it is displaying. + + + + + Initializes a new instance of the class. + + + + + Sets a boolean property. + + Name of the property. + The property key. + The new value. + + + + + Notifies the that the expanded property of this item changed. + + The item. + + + + Raises the standard .NET PropertyChanged event. + + + + + + Expands this item. + + + + + Performs an update with the specified update actions. + + The update actions. + + + + Updates the parent item. + + + + + Sets the data bound item for this data item. + + if set to true the method assumes the data is set through data binding. + The value. + DataBoundItem can not be set explicitly in bound mode. + + + + Called when the Start property of a child item changes. + + The child item which Start changed. + + + + Called when the End property of a child item changes. + + The child item which End changed. + + + + Called when the Progress property of a child item changes. + + The child item which Progress changed. + + + + Called when a child item is added. + + The child item that is added. + + + + Called when a child item is removed. + + The child item that is removed. + + + + Called when the collection that will hold this children of this item is being created. + + + + + + Called when a child Start or End changes. + + + + + Called when a child progress changes. + + + + + Gets or sets the title. + + + The title. + + + + + Gets or sets the start. + + + The start. + + + + + Gets or sets the end. + + + The end. + + + + + Gets or sets the progress. + + + The progress. + + + + + Gets or sets a value indicating whether this is visible. + + + true if visible; otherwise, false. + + + + + Gets or sets the tag. + + + The tag. + + + + + Gets the child items of this item. + + + The child items. + + + + + Gets or sets a value indicating whether this instance is current. + + + true if this instance is current; otherwise, false. + + + + + Gets or sets a value indicating whether this instance is selected. + + + true if this instance is selected; otherwise, false. + + + + + Gets or sets a value indicating whether this instance is enabled. + + + true if this instance is enabled; otherwise, false. + + + + + Gets the hierarchy level of this task. + + The level. + + + + Gets the parent of this data item. + + The parent. + + + + Gets the index of this item in its parent items collection. + + The index. + + + + Gets or sets a value indicating whether this item is expanded. + + + true if this item is expanded; otherwise, false. + + + + + Gets the next item. + + The next item. + + + + Gets the prev visible item. + + The prev visible item. + + + + Gets or sets a value indicating whether the item is read only. + + + true if the item is read only; otherwise, false. + + + + + Gets or sets the context menu associated to the item. + + + Returns an instance of RadDropDownMenu Class that + is associated with the node. The default value is null. + + RadContextMenu Property (Telerik.WinControls.UI.RadTreeView) + + This property could be used to associate a custom menu and replace the ganttview's + default. If the context menu is invoked by right-clicking an item, the ganttview's menu + will not be shown and the context menu assigned to this item will be shown instead. + + + + + Gets a value indicating whether this data item is used in the RadGanttView. + + + + + Gets the data bound item. + + + The data bound item. + + + + + Gets or sets the value within the specified column of this item. + + + The value. + + The column. + + + + + Represents an observable collection of . + + + + + Initializes a new instance of the class. + + The owner. + + + + Refreshes this instance. + + + + + Gets the gantt view data item enumerator. + + + + + + Gets the gantt view data item enumerator. + + The position. + + + + + Gets the gantt view data item enumerator. + + The item. + + + + + Updates this instance. + + + + + Updates the view. + + + + + Inserts the item at the specified index. + + The index. + The item. + + + + + Sets the item at the specified index. + + The index. + The item. + + + + Removes the item at the specified index. + + The index. + + + + Removes all the items. + + + + + Raises the NotifyCollectionChanged event. + + The item. + + + + Raises the NotifyCollectionChanging event. + + The item. + + + + Raises the event. + + The instance containing the event data. + + + + Syncs the version of this collection with the binding provider. + + + + + Resets the version of this collection. + + + + + Gets the owner. + + The owner. + + + + Gets the gantt view. + + The tree view. + + + + Gets a value indicating whether the collection needs a refresh. + + + true if a refresh is needed; otherwise, false. + + + + + Gets a value indicating whether this instance is empty. + + + true if this instance is empty; otherwise, false. + + + + + Initializes a new instance of the class. + + The owner. + + + + Determines the index of a specific item. + + The object to locate. + + The index of if found in the collection; otherwise, -1. + + + + + Inserts an item to the collection at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the collection. + + + + Adds the item to the collection. + + The object to add. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + + + Removes all items. + + + + + Determines whether the collection contains a specific value. + + The object to locate. + + true if is found; otherwise, false. + + + + + Copies all items to the given array. + + The array. + Index of the array. + + + + Removes the first occurrence of a specific object. + + The object to remove. + + true if was successfully removed; otherwise, false. + + + + + Returns an enumerator that iterates through the collection. + + + An IEnumerator that can be used to iterate through the collection. + + + + + Gets the gantt view data item enumerator. + + + + + + Gets the gantt view data item enumerator. + + The position. + + + + + Gets the gantt view data item enumerator. + + The item. + + + + + Updates this instance. + + + + + + Updates the view. + + + + + + Gets or sets the element at the specified index. + + The index. + + + + + Gets the number of elements contained in this collection. + + + The number of elements contained in this collection. + + + + + Gets a value indicating whether ththis collection is read-only. + + true if this collection is read-only; otherwise, false. + + + + + Gets a value indicating whether this instance is attached. + + + true if this instance is attached; otherwise, false. + + + + + Gets a value indicating whether this instance is empty. + + + true if this instance is empty; otherwise, false. + + + + + Represents a data item used by to store links. + + + + + Raises the event. + + The name of the property that changed. + + + + Raises the event. + + The instance containing the event data. + + + + Sets the data bound item for this link. + + if set to true the method assumes the value is set through data binding. + The value. + DataBoundItem can not be set explicitly in bound mode. + + + + Gets or sets the start item for this link. + + + The start item. + + + + + Gets or sets the end item for this link. + + + The end item. + + + + + Gets or sets the type of this link. + + + The type of the link. + + + + + Gets the data bound item of this link. + + + The data bound item. + + + + + Gets the points wehre this link will be drawn. + + + The lines. + + + + + Gets the that owns this link. + + + The gantt view element. + + + + + Occurs when a property value changes. + + + + + Represents an observable collection of . + + + + + Initializes a new instance of the class. + + The gantt view element. + + + + Refreshes this instance. + + + + + Syncs the version of this instance with the binding provider. + + + + + Resets the version of this instance. + + + + + Inserts the item at the specified index. + + The index. + The item. + + + + + Sets the item at the specified index. + + The index. + The item. + + + + Removes the item at the specified index. + + The index. + + + + Removes all the items. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets the that owns this collection. + + + The gantt view element. + + + + + Gets a value indicating whether this instance needs refresh. + + + true if a refresh is needed; otherwise, false. + + + + + Represents a column shown in . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name. + + + + Initializes a new instance of the class. + + The name. + The header text. + + + + Initializes a new instance of the class. + + The name. + The header text. + Name of the field. + + + + Fires the PropertyChanged event. + + Name of the property. + + + + Updates the width. + + + + + Gets or sets the name of the column. + + + The name. + + + + + Gets or sets a value indicating the type of the data this column is displaying. + + + + + Gets or sets the tag of the column. + + + The tag. + + + + + Gets or sets the header text of the column. + + + The header text. + + + + + Gets or sets the name of the field used to populate this column + + + The name of the field. + + + + + Gets or sets the format string. + + + The format string. + + + + + Gets or sets a value indicating whether this is visible. + + + true if visible; otherwise, false. + + + + + Gets or sets a value indicating whether this is current. + + + true if current; otherwise, false. + + + + + Gets the that is the owner of this column. + + + The owner. + + + + + Gets or sets the width of the column. + + + The width. + + + + + Gets a value indicating whether this instance is data bound. + + + true if this instance is data bound; otherwise, false. + + + + + Gets or sets the accessor of the column. + + + The accessor. + + + + + Occurs when a property value changes. + + + + + Represents an observable collection of . + + + + + Initializes a new instance of the class. + + The owner. + + + + Adds a column with the specified name. + + The name. + + + + Adds a column with the the specified name and header text. + + The name. + The header text. + + + + Removes a column with the specified column name. + + Name of the column. + + + + Determines whether the collection contains a column with the specified column name. + + Name of the column. + + true if a column with the specified name is contained in the collection; otherwise, false. + + + + + Gets the index of the column with the specified name or -1 if the column is not found. + + Name of the column. + The index of the column if found otherwise returns -1. + + + + Adds the specified collection of columns to the collection. + + The columns. + + + + Adds the specified collection of columns to the collection. + + The columns. + + + + Renames the column with the specified name with the new name. + + The name. + The new name. + + + + Sets a unique name name to the column. + + The column. + + + + Gets a unique name for a column of the collection. + + A base name to use. + the unique name for the collection. + + + + Inserts the item. + + The index. + The column. + The approved action. + + + + Removes the item. + + The index. + + + + Clears the items. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets the that owns this collection. + + + The owner. + + + + + Gets the with the specified column name. + + + The . + + Name of the column. + + + + + Defines the type of range the timeline of a will be displayed in. + + + + + Weeks view + + + + + Months view + + + + + Years view + + + + + Years view with half years for the sub items. + + + + + Years view with quarters for the sub items. + + + + + Days view + + + + + Days view with half hours for the sub items. + + + + + Days view with quarter hours for the sub items. + + + + + Hours view. + + + + + When this value is set the user is responsible for providing the items for the gantt timeline view. + + + + + Defines the type of the link a represents. + + + + + A finish to finish link. + + + + + A finish to start link. + + + + + A start to finish link. + + + + + A start to start link. + + + + + Defines when will enter edit mode. + + + + + Edit mode will begin on every click. + + + + + Edit mode will begin on second click. + + + + + Represents the event arguments for the CreateDataItem event of RadGanttView. + + + + + Gets or sets the data item. + + + The data item. + + + + + Represents the event arguments for the CreateLinkDataItem event of RadGanttView. + + + + + Gets or sets the link data item. + + + The link data item. + + + + + Represents the event arguments for an item event raised by RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Gets the item. + + + The item. + + + + + Represents the event arguments for a link event of RadGanttView. + + + + + Initializes a new instance of the class. + + The link. + + + + Gets the link. + + + The link. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the SelectedLinkChanging event of RadGanttView. + + + + + Represents the event arguments for a cancelable link event of RadGanttView. + + + + + Initializes a new instance of the class. + + The link. + + + + Gets the link. + + + The link. + + + + + Initializes a new instance of the class. + + The link data item. + + + + Represents the event arguments for the HeaderCellElementCreating event of RadGanttView. + + + + + Initializes a new instance of the class. + + The cell element. + + + + Gets or sets the cell element. + + + The cell element. + + + + + Initializes a new instance of the class. + + The data item. + + + + Gets the data item. + + + + + Gets or sets the item element. + + + + + Represents the event arguments of the ContextMenuOpening event of . + + + + + Represents the event arguments for a cancelable item event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Gets the item. + + + The item. + + + + + Initializes a new instance of the class. + + The item. + The menu. + + + + Gets or sets the menu. + + + The menu. + + + + + Represents the event arguments for the DataCellElementCreating event of RadGanttView. + + + + + Initializes a new instance of the class. + + The cell element. + + + + Gets or sets the cell element. + + + The cell element. + + + + + Represents the event arguments for the EditorRequired event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The column. + Type of the editor. + + + + Gets the current column of the item. + + + The column. + + + + + Gets or sets the editor that will be used for editing. + + + The editor. + + + + + Gets or sets the type of the editor. + + + The type of the editor. + + + + + Represents the event arguments for the ExpandedChanged event of RadGanttView. + + + + + Represents the event arguments for the ExpandedChanging event of RadGanttView. + + + + + Represents the event arguments for the GraphicalViewItemFormatting event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The item element. + + + + Gets the item element. + + + The item element. + + + + + Represents the event arguments for the ItemAdded event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the ItemAdding event of RadGanttView. + + + + + Initializes a new instance of the class. + + The data item. + + + + Represents the event arguments for the ItemChildIdNeeded event of . + + + + + Initializes a new instance of the class. + + The item. + + + + Gets or sets the child id that will be used to identify the item. + + + The child id. + + + + + Represents the event arguments for the ItemDataBound event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the ItemDataError event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The error text. + The context. + + + + Gets the error text. + + + The error text. + + + + + Gets the context of the error. + + + The context. + + + + + Represents the event arguments for the ItemEdited event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The editor. + if set to true [commit]. + + + + Gets a value indicating whether the edit operation will be committed. + + + true if commit; otherwise, false. + + + + + Gets the editor. + + + The editor. + + + + + Represents the event arguments for the ItemEditing event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The column. + The editor. + + + + Gets the column. + + + The column. + + + + + Gets the editor. + + + The editor. + + + + + Represents the event arguments for the EditorInitialized event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The editor. + + + + Gets the editor. + + + The editor. + + + + + Represents the event arguments for the ItemElementCreating event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The view element. + + + + Gets the view element. + + + The view element. + + + + + Gets or sets the item element. + + + The item element. + + + + + Represents the event arguments of the ItemPaint event of . + + + + + Initializes a new instance of the class. + + The element. + The graphics. + + + + Gets the element which is painted. + + + The element. + + + + + Gets the graphics object used for drawing. + + + The graphics. + + + + + Represents the event arguments for the ItemRemoved event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the ItemValidated event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The column. + + + + Gets the column. + + + The column. + + + + + Represents the event arguments for the ItemValidating event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The column. + The new value. + The old value. + + + + Gets the column. + + + The column. + + + + + Gets the new value. + + + The new value. + + + + + Gets the old value. + + + The old value. + + + + + Represents the event arguments for the LinkAdded event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the even arguments for the LinkAdding event of RadGanttView. + + + + + Initializes a new instance of the class. + + The link data item. + + + + Represents the event arguments for the LinkDataBound event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the LinkDataError event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The error text. + The context. + + + + Gets the error text. + + + The error text. + + + + + Gets the context of the error. + + + The context. + + + + + Represents the event arguments for the LinkRemoved event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the SelectedItemChanged event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the SelectedItemChanging event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + + + + Represents the event arguments for the CellFormatting event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The cell element. + The column. + + + + Gets the column. + + + The column. + + + + + Gets the cell element. + + + The cell element. + + + + + Represents the event arguments for the ItemFormatting event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The item element. + + + + Gets the item element. + + + The item element. + + + + + Represents the event arguments for the TimelineItemFormatting event of RadGanttView. + + + + + Initializes a new instance of the class. + + The item. + The item element. + + + + Gets the item. + + + The item. + + + + + Gets the item element. + + + The item element. + + + + + Localizes the strings in the control by using the current . + + + + + Loads the from the printed into the dialog + + The print settings. + + + + Loads the into the dialog. + + The print settings. + + + + Saves all settings form the dialog. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the settings edited in the dialog. + + + The print settings. + + + + + Displays a hierarchical collection of task items along with the relations between them. Each item is represented by a and each link is represented by a . + + + + + Creates the child items. + + The parent. + + + + Creates the . + + + + + + Determines whether the pressed key is input key. + + The key data. + + true if the pressed key is an input key; otherwise, false. + + + + + Disables all notifications in the RadGanttView + + + + + Ends the update. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Processes a dialog key. + + One of the values that represents the key to process. + + true if the key was processed by the control; otherwise, false. + + + + + Handles windows messages. + + The message. + + + + Hanles the windows message for showing the context menu. + + The m. + + + + Directly prints the to the default printer. + + + + + Directly prints the to the default printer or shows printer settings and then prints the . + + Indicates whether printer settings dialog should be shown. + + + + Directly prints the to the default printer or shows printer settings and then prints the . + + Indicates whether printer settings dialog should be shown. + As instance of used to control the print process. + + + + Shows a for editing the print settings. + + + + + Shows a for editing the print settings. + + As instance of used to control the print process. + + + + Called when the printing begins. + + The that has initiated the printing. + The event args. + + The number of pages that will be printed. + + + + + Called when the printing ends. + + The that has initiated the printing. + The event args. + + false if the printing was canceled + + + + + Prints the page with the specified number. + + The number of the current page. + The that has initiated the printing. + The event args. + + true if there are more pages, false otherwise + + + + + Gets a print settings dialog that is specific for the printable object. + + The that has initiated the printing. + + The dialog. + + + + + Draws the current page by slicing a portion of the big bitmap. + + The graphics object. + The printed page. + + + + Draws the grid portion of the gantt view and the graphical view to the big bitmap. + + The BMP. + + + + Draws the grid cells and graphical tasks to the bitmap. + + The graphics. + + + + Draws the links to the bitmap. + + The g. + + + + Draws the header and the timeline view items to bitmap. + + The BMP. + + + + Draws the timeline items to bitmap. + + The g. + + + + Draws the header cells to bitmap. + + The g. + + + + Prints a gantt view element to the graphics object. + + The Graphics object used for painting the element. + The print element context. + The rectangle of the print element. + The text of the print element. + The data item of the print element. + + + + Prints a gantt view element to the graphics object. + + The Graphics object used for painting the element. + The print element context. + The rectangle of the print element. + The text of the print element. + The data item of the print element. + The column name of the print element. + + + + Gets the shape of an element based on the print context and the provided rectangle. + + The context. + The rect. + + + + + Gets an initialized print element based on the provided context. + + The context. + + + + + Returns a rectangle representing the coordinates where an object should be positioned or drawn for the given item and time frame. + + The item that will be printed. + The index of the item in a flat representation of the items hierarchy. + + + + + Gets the link lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the start to start lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the start to finish lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the finish to start lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the finish to finish lines for the given link. + + The link. + The index of the link start item in a flat representation of the items hierarchy. + The index of the link end item in a flat representation of the items hierarchy. + + + + Gets the gantt view element. + + + The gantt view element. + + + + + Gets the collection of links. + + + The links. + + + + + Gets the collection of task items. + + + The task items. + + + + + Gets the collection of columns shown in the . + + + The columns. + + + + + Gets or sets the ratio between the text view and the graphical view. + + + The ratio. + + + + + Gets or sets the height of the items. + + + The height of the item. + + + + + Gets or sets the height of the header row and the timeline container. + + + The height of the header. + + + + + Gets or sets the width of the splitter. + + + The width of the splitter. + + + + + Gets a value indicating whether this instance is in edit mode. + + + true if this instance is in edit mode; otherwise, false. + + + + + Gets or sets a value indicating whether summary items are editable by the user or their value is auto-calculated from their sub items. + + + + + Gets or sets the gantt view behavior. + + + The gantt view behavior. + + + + + Gets or sets the drag drop service. + + + The drag drop service. + + + + + Gets or sets a link type converter that will be used to convert values coming from the data source to and vice versa. + + + The link type converter. + + + + + Gets or sets the selected item. + + The selected item. + + + + Gets or sets the selected link. + + The selected link. + + + + Gets or sets the current column. + + + + + Gets a value indicating whether this instance is data bound. + + + true if this instance is data bound; otherwise, false. + + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets or sets the name of the list or table in the data source from which the will extract tasks data. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to extract the title of the data items. + + + + + Gets or sets a property name which will be used to extract the start of the data items. + + + + + Gets or sets a property name which will be used to extract the end of the data items. + + + + + Gets or sets a property name which will be used to extract the Progress of the data items. + + + + + Gets or sets the name of the list or table in the data source from which the will extract links data. + + + + + Gets or sets a property name which will be used to extract links start item. + + + + + Gets or sets a property name which will be used to extract the links end item. + + + + + Gets or sets a property name which will be used to extract the link type of the data items. + + + + + Gets or a value indicating whether the control is in design mode. + + + + + Gets or sets a value indicating whether custom painting is enabled. + + + true if custom painting is enabled; otherwise, false. + + + + + Gets the default size of the control. + + + The default of the control. + + + + + Gets or sets the context menu associated with the control. + + + A that represents the context menu associated with the control. + + + + + Gets or sets a value indicating whether to show the timeline today indicator. + + + true if the timeline today indicator is visible; otherwise, false. + + + + + Gets or sets a value indicating whether to show the today indicator. + + + true if the today indicator is visible; otherwise, false. + + + + + Gets or sets a instance, which enables integration with other controls. + + + The data provider. + + + + + Gets or sets a instance, which hold the default print settings. + + + The print settings. + + + + + Gets or sets a value indicating whether the gantt view is read only. + + + true if the gantt view is read only; otherwise, false. + + + + + RadGanttView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadGanttView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs when an item needs an id for storing in data sources. + + + + + Occurs when an item is painted. Allows custom painting over the item. EnableCustomPainting must be set to true for this event to be fired. + + + + + Occurs when a context menu is about to be opened. + + + + + Occurs when a new data item is created. + + + + + Occurs when a new link data item is created. + + + + + Occurs before an is added to the Items collection. + + + + + Occurs before an is added to the Links collection. + + + + + Occurs when there is an error in the data layer of RadGanttView related to data operations with Item objects. + + + + + Occurs when there is an error in the data layer of RadGanttView related to data operations with Link objects. + + + + + Occurs when the selected item is about to be changed. + + + + + Occurs when selected item has been changed. + + + + + Occurs when the selected link is about to be changed. + + + + + Occurs when selected link has been changed. + + + + + Occurs when an item is about to be expanded or collapsed. + + + + + Occurs after an item is expanded or collapsed. + + + + + Occurs when an item is data bound. + + + + + Occurs when a new item is added to the Items collection. + + + + + Occurs when an item removed from the Items collection. + + + + + Occurs when an item's property is changed. + + + + + Occurs when a link is data bound. + + + + + Occurs when a new link added to the Links collection. + + + + + Occurs when a link is removed from the Links collection. + + + + + Occurs when a new header cell element needs to be created. + + + + + Occurs when a new data cell element needs to be created. + + + + + Occurs when the content of a cell needs to be formatted for display. + + + + + Occurs when an item in the state changes and it needs to be formatted. + + + + + Occurs when the state of a timeline item changes and it needs to be formatted. + + + + + Occurs when the state of an item in the changes and it needs to be formatted. + + + + + Occurs when the state of a link item in the changes and it needs to be formatted. + + + + + Occurs when an item element needs to be created. + + + + + Occurs when a timeline item element needs to be created. + + + + + Occurs when an element will be printed. Allows formatting of the element. + + + + + Occurs after an element is printed. Allows for custom painting over the element. + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes a new instance of the class. + + + + + Creates the the . + + The gantt view. + + + + + Creates the . + + + + + + Creates the . + + The gantt view. + + + + + Performs an update according the specified update action. + + The update action. + + + + Performs an update according the specified update action. + + The update action. + The items. + + + + Updates the visual items in the gantt view + + Indicates the update action + Array representing the items which should be updated + + + + Updates the instance when an item expanded state changes. + + The item. + + + + + Updates the scrollers on add. + + The item. + + + + Updates the scrollers. + + The skip item. + The update action. + + + + Synchronizes all item elements. + + + + + Creates a new task. + + A new + + + + Creates a new link. + + A new + + + + Begins an update. + + + + + Ends an update. + + + + + Ends the update. + + Tells the view whether an update is required or not. + Indicates the update action + + + + Processes the item for selection. + + The item. + + + + Processes the item as current. + + The item. + + + + + Processes the item for selection. + + The item. + + + + Ensures that the specified item is visible within the gantt view element, scrolling the contents of the element if necessary. + + The item to scroll into view + + + + Ensures the item is visible vertically. + + The item. + The item element. + + + + + Ensures the item visible vertically. + + The item. + + + + + Ensures that the specified item is visible within the gantt view element, scrolling the contents of the element if necessary. + This method expands parent items when necessary. + + The item to bring into view + + + + Clears the selection. + + + + + Puts the current item in edit mode. + + + + + + Commits any changes and ends the edit operation on the current item. + + + + + + Close the currently active editor and discard changes. + + + + + + Ends the editing of an item and commits or discards the changes. + + Determines if the changes are commited [true] or discarded [false]. + + + + + Gets the type of the editor to be used for editing the given item and column. + + The item. + The column. + + + + + Determines whether the given type is a numeric type. + + The type to check. + + true if the type is numeric; otherwise, false. + + + + + Gets an editor based on its type. + + Type of the editor. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Called when [selected item changed]. + + The item. + + + + Called when an item expanded is changing. + + The item. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Processes mouse down. + + The instance containing the event data. + + + + + Processes mouse move. + + The instance containing the event data. + + + + + Processes mouse up. + + The instance containing the event data. + + + + + Processes mouse click. + + The instance containing the event data. + + + + + Processes double click. + + The instance containing the event data. + + + + + Processes mouse enter. + + The instance containing the event data. + + + + + Processes mouse leave. + + The instance containing the event data. + + + + + Processes mouse wheel. + + The instance containing the event data. + + + + + Processes mouse hover. + + The instance containing the event data. + + + + + Processes key down. + + The instance containing the event data. + + + + + Processes key press. + + The instance containing the event data. + + + + + Processes key up. + + The instance containing the event data. + + + + + Gets or sets a value indicating whether summary items are editable by the user or their value is auto-calculated from their sub items. + + + + + Gets a value indicating whether the inks collection is populated. + + + true if this instance has links; otherwise, false. + + + + + Gets the collection of links. + + + The links. + + + + + Gets the collection of task items. + + + The task items. + + + + + Gets the . + + + The text view element. + + + + + Gets the . + + + The graphical view element. + + + + + Gets the . + + + The splitter element. + + + + + Gets the columns shown in the . + + + The columns. + + + + + Gets the root item for the gantt view hierarchye. + + + The root. + + + + + Gets or sets a value indicating whether custom painting is enabled. + + + true if custom painting is enabled; otherwise, false. + + + + + Gets or sets the ratio between the text view and the graphical view. + + + The ratio. + + + + + Gets or sets the minimum width of a column. + + + The minimum width of a column. + + + + + Gets or sets the height of the items. + + + The height of the item. + + + + + Gets or sets the item spacing. + + + The item spacing. + + + + + Gets or sets the height of the header row and the timeline container. + + + The height of the header. + + + + + Gets or sets the minimum length of the link. + + + The minimum length of the link. + + + + + Gets or sets the width of the splitter. + + + The width of the splitter. + + + + + Gets or sets the minimum width of a task when resizing it with the mouse. The size is in pixels and is for the current zoom. + + + The minimum width of the task. + + + + + Gets or sets a value indicating whether the gantt view is read only. + + + true if the gantt view is read only; otherwise, false. + + + + + Gets a value indicating whether this instance is in edit mode. + + + true if this instance is in edit mode; otherwise, false. + + + + + Gets the active editor. + + + + + Gets or sets the begin edit mode. + + + The begin edit mode. + + + + + Gets or sets the drag drop service. + + + The drag drop service. + + + + + Gets or sets the gantt view behavior. + + + The gantt view behavior. + + + + + Gets the that is responsible for kinetic scrolling. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets a link type converter that will be used to convert values coming from the data source to and vice versa. + + + The link type converter. + + + + + Gets or sets the selected item. + + The selected item. + + + + Gets or sets the selected link item. + + The selected link item. + + + + Gets or sets the current column. + + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets or sets the default sort Comparer for RadGanttView. The default comparer compares the items according to their start time. + + + + + Gets a value indicating whether this instance is data bound. + + + true if this instance is data bound; otherwise, false. + + + + + Gets or sets the data source that the is displaying data for. + + + + + Gets or sets the name of the list or table in the data source from which the will extract tasks data. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to define a relation of the data items. + + + + + Gets or sets a property name which will be used to extract the title of the data items. + + + + + Gets or sets a property name which will be used to extract the start of the data items. + + + + + Gets or sets a property name which will be used to extract the end of the data items. + + + + + Gets or sets a property name which will be used to extract the Progress of the data items. + + + + + Gets or sets the name of the list or table in the data source from which the will extract links data. + + + + + Gets or sets a property name which will be used to extract links start item. + + + + + Gets or sets a property name which will be used to extract the links end item. + + + + + Gets or sets a property name which will be used to extract the link type of the data items. + + + + + Gets the binding provider. + + + The binding provider. + + + + + Gets the data item provider. + + + The data item provider. + + + + + Gets or sets a value indicating whether to disable ensure item visible horizontal. + + + true if ensure item visible horizontal is disabled; otherwise, false. + + + + + Gets or a value indicating whether the control is in design mode. + + + + + Gets or sets a value indicating whether the default context menu may be shown. + + + true if the default context menu may be shown; otherwise, false. + + + + + Gets or sets the context menu. + + The context menu. + + + + Gets or sets a value indicating whether to show the timeline today indicator. + + + true if the timeline today indicator is visible; otherwise, false. + + + + + Gets or sets a value indicating whether to show the today indicator. + + + true if the today indicator is visible; otherwise, false. + + + + + Gets or sets the BindingContext for the object. + + + + + Occurs when an item needs an id for storing in data sources. + + + + + Occurs when an item is painted. Allows custom painting over the item. EnableCustomPainting must be set to true for this event to be fired. + + + + + Occurs when a context menu is about to be opened. + + + + + Occurs when the binding context is changed. + + + + + Occurs when a new data item is created. + + + + + Occurs when a new link data item is created. + + + + + Occurs before an is added to the Items collection. + + + + + Occurs before an is added to the Links collection. + + + + + Fired when there is an error in the data layer of RadGanttView related to data operations with Item objects. + + + + + Fired when there is an error in the data layer of RadGanttView related to data operations with Link objects. + + + + + Occurs when the selected item is about to be changed. + + + + + Occurs when the selected link is about to be changed. + + + + + Occurs when selected item has been changed. + + + + + Occurs when selected link has been changed. + + + + + Occurs when an item is about to be expanded or collapsed. + + + + + Occurs after an item is expanded or collapsed. + + + + + Occurs when an item is data bound. + + + + + Occurs when a new item is added to the Items collection. + + + + + Occurs when an item removed from the Items collection. + + + + + Occurs when an item's property is changed. + + + + + Occurs when a link is data bound. + + + + + Occurs when a new link added to the Links collection. + + + + + Occurs when a link is removed from the Links collection. + + + + + Occurs when a new header cell element needs to be created. + + + + + Occurs when a new data cell element needs to be created. + + + + + Occurs when the content of a cell needs to be formatted for display. + + + + + Occurs when the state of an item in the changes and it needs to be formatted. + + + + + Occurs when the state of a timeline item changes and it needs to be formatted. + + + + + Occurs when the state of an item in the changes and it needs to be formatted. + + + + + Occurs when the state of a link item in the changes and it needs to be formatted. + + + + + Occurs when an item element needs to be created. + + + + + Occurs when a timeline item element needs to be created. + + + + + Occurs when an editor is required to edit a cell the text view. + + + + + Occurs when an cell is about to be edited. + + + + + Occurs when an editor has been initialized. + + + + + Occurs when an item validating is edited and needs to be validated. + + + + + Occurs when an item is validated. + + + + + Occurs when an item has been edited. + + + + + Occurs when the root item is created. + + + + + Represents a state manager used to define the states of an element for the theming mechanism. + + + + + Represents a state manager used to define the states of an element for the theming mechanism. + + + + + Creates the specific states. + + + + + + Creates the state manager. + + + + + + Represents a state manager used to define the states of an element for the theming mechanism. + + + + + Creates the specific states. + + + + + + Creates the state manager. + + + + + + Represents a state manager used to define the states of an element for the theming mechanism. + + + + + Creates the specific states. + + + + + + Represents a traverser which can traverse the hierarchical data structure of the data displayed by a . + + + + + Initializes a new instance of the class. + + The owner. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + + + + Moves to the previous. + + + + + + Moves to the last item. + + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Advances the enumerator to the next element of the collection. + + + true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Moves to the specified item. + + The item. + + + + + Moves to the next item. + + true if the move was successful; otherwise false + + + + Moves to the previous item. + + true if the move was successfull; otherwise false + + + + Gets the last visible item in the given parent children. + + The parent. + + + + + Gets or sets a value indicating whether the traverser will go through an item's children no matter if it is expanded or not. + + + true if traversing all items; otherwise, false. + + + + + Occurs when the traverser moves. + + + + + Gets or sets the position. + + + The position. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Gets the element in the collection at the current position of the enumerator. + + + The element in the collection at the current position of the enumerator. + + + + + Represents the method that will handle events in . + + + + + + + Represents the event arguments for the Traversing event of a + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets a value indicating whether the instance to be processed by . + + true if GanttViewRowInfo is processed otherwise, false. + + + + Gets the row. + + The row. + + + + Represents a class that is responsible for handling all the input for a + + + + + Initializes a new instance of the class. + + + + + Represents the base item element for the graphical and text view elements of + + + + + Represents the base visual item for all elements in + + + + + Initializes the class. + + + + + Attaches the specified data to the element. + + The data. + The context. + + + + Detaches this instance from the data it has been previously attached to. + + + + + Synchronizes this instance with its data item. + + + + + Determines whether the specified data is compatible with this element. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets the data item of this element. + + + The data. + + + + + Gets or sets a value indicating whether this is selected. + + + true if selected; otherwise, false. + + + + + Gets or sets a value indicating whether this is current. + + + true if current; otherwise, false. + + + + + Represents the base view element for the and . + + + + + Initializes a new instance of the class. + + The gantt view. + + + + Creates the element provider for the items of this view element. + + + + + + Gets the gantt view element that parents this instance. + + + The gantt view element. + + + + + Represents the class that handles the drag drop operations in . + + + + + Initializes a new instance of the class. + + The owner. + + + + Prepares the context for the drag drop operation. + + + + + + Notifies that a start request has occured. Cancelable. + + + + + + Handles the mouse move. + + The mouse pos. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Notifies that a stop request has occured. Cancelable. + + + + + + Notifies that a running operation has stopped. + Allows inheritors to perform some additional logic upon stop. + + + + + Location from where Drag is started + + + + + Gets or sets the owner. + + + The owner. + + + + + Represents the element used as a separator between the and . + + + + + Initializes the fields. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Represetns the element provider used by the virtualized view elements for creating visual item elements. + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates an element for the given data opbecj in the given context. + + The data. + The context. + + + + + Gets the size of the element based on the given data item. + + The item. + + + + + Called when a new item element is created. + + The item. + + + + + Represents the base item element for all items inside the . + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes a new instance of the class. + + The graphical view element. + + + + Creates the task element. + + + + + + Creates the left handle element. + + + + + + Creates the right handle element. + + + + + + Paints the children. + + The graphics. + The clip rectangle. + The angle. + The scale. + if set to true [use relative transformation]. + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance with its data item. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets the graphical view element. + + + The graphical view element. + + + + + Gets the task element. + + + The task element. + + + + + Gets the left link handle element. + + + The left link handle element. + + + + + Gets the right link handle element. + + + The right link handle element. + + + + + Represents a base class for all task elements in a . + + + + + Initializes the fields. + + + + + Initializes the class. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Determines whether the element may be dragged. + + + + + + + Determines whether this instance can be resized. + + + true if this instance can be resized; otherwise, false. + + + + + Gets or sets a value indicating whether the mouse is over the left area where resize could start. + + + true if this instance is mouse over start resize rectangle; otherwise, false. + + + + + Gets or sets a value indicating whether the mouse is over the right area where resize could start. + + + true if this instance is mouse over end resize rectangle; otherwise, false. + + + + + Represents the element which displays the graphical part of a . + + + + + Initializes the fields. + + + + + Creates the child elements. + + + + + Initializes a new instance of the class. + + The gantt view. + + + + Disposes the managed resources. + + + + + Updates the timeline data items. + + + + + Builds the timeline elements. + + + + + Applies the scroll offset to the link lines. + + The lines. + + + + + Determines whether the given link should be drawn. + + The link. + The link lines. + + + + + Calculates the link lines for all links. + + + + + Calculates the link lines for all links connected to the given item. + + The item. + + + + Calculates the link lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Calculates the start to start lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Calculates the start to finish lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Calculates the finish to start lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Calculates the finish to finish lines for the given link and optional point when a new link is being created. + + The link. + The position of the mouse (if creating or editing a link). + + + + Populates the flat tasks collection which is used for positioning links. + + + + + Returns a value indicating whether a line represented with two points intersects the given rectangle. + + The begin point of the line. + The end point of the line. + The rectangle. + + + + + Returns a value indicating whether two lines intersect. + + The begin point of the first line. + The end point of the first line + The begin point of the second line. + The end point of the second line. + + + + + Updates the specified update action. + + The update action. + + + + Updates the scrollers. + + The update action. + + + + Synchronizes the item elements. + + + + + Updates the inner state. + + + + + Updates the timeline zoom. + + + + + Updates the text view scroller when the scroll bar is moved. + + + + + Called when the OnePixelTime property is assigned a new value. + + Indicated whether the change results in a zoom-in or zoom-out. + + + + Returns a rectangle with zero width representing the coordinates where an object should be positioned or drawn for the given item and time. + + The item . + The datetime. + + + + + Returns a rectangle representing the coordinates where an object should be positioned or drawn for the given item and time frame. + + The item. + The start. + The end. + + + + + Returns a rectangle representing the coordinates where an object should be positioned or drawn for the given item and time frame. + + The item. + The start. + The end. + if set to true the horizontal scroll bar offset is taken into account. + + + + + Returns a rectangle representing the coordinates where an object should be positioned or drawn for the given item and time frame. + + The item. + The start. + The end. + if set to true the horizontal scroll bar offset is taken into account. + if set to true the vertical scroll bar offset is taken into account. + if set to true the header header height is added to the y coordinate of the result. + + + + + Scrolls the graphical view to the given date. The date is placed in the middle of the view. + + The date to scroll to. + true if the scroll operation was successful otherwise false. + + + + Gets the link item in the given position if such exists otherwise returns null; + + The location in control coordinates where to search for a link. + + + + + Paints the children. + + The graphics. + The clip rectangle. + The angle. + The scale. + if set to true [use relative transformation]. + + + + Draws the link lines. + + The graphics. + + + + Raises the standard .NET PropertyChanged event. + + + + + + Gets or sets how many pixels along the link of a link will trigger selection. + + + + + Gets or sets how wide the selection highlight color will be painted along a selected link. + + + + + Gets the horizontal scroll bar element. + + + The horizontal scroll bar element. + + + + + Gets or sets a value indicating whether to show the today indicator. + + + true if the today indicator is visible; otherwise, false. + + + + + Gets the today indicator element. + + + The today indicator element. + + + + + Gets or sets a value indicating whether to show the timeline today indicator. + + + true if the timeline today indicator is visible; otherwise, false. + + + + + Gets the timeline today indicator element. + + + The timeline today indicator element. + + + + + Gets the timeline scroller. + + + The timeline scroller. + + + + + Gets the timeline container. + + + The timeline container. + + + + + Gets the timeline items. + + + The timeline items. + + + + + Gets or sets the behavior which handles the perations related to the gantt view timeline items. + + + + + Gets or sets the timeline start date. + + + The timeline start. + + + + + Gets or sets the timeline end date. + + + The timeline end. + + + + + Gets or sets the type of the timeline range. + + + The timeline range. + + + + + Gets or sets a value indicating whether the TimeRange of the gantt view will be handled by the control. + + + + + Gets or sets how much time a single pixel represents. + + + The one pixel time. + + + + + Gets or sets the color of the links. + + + The color of the links. + + + + + Gets or sets the size of the links handles. + + + The size of the links handles. + + + + + Gets or sets the new link instance. This is not null when a new link is being created. + + + The new link. + + + + + Gets or sets a value indicating whether a new link is being created. + + + true if a new link is being created; otherwise, false. + + + + + Represents a milestone element in a + + + + + Initializes the fields. + + + + + Determines whether this instance can be resized. + + + true if this instance can be resized; otherwise, false. + + + + + Represents an element that displayes a milestone item in a + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates the task element. + + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Represents a summary element in a + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the progress indicator element. + + + + + + Gets the element used for indicating the progress of the summary element. + + + + + Gets the left edge element of the summary element. + + + + + Gets the right edge element of the summary element. + + + + + Gets the element thats between the two edges of the summary element. + + + + + Represents an element that displays a summary item in a + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates the task element. + + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Represents a task element in a . + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the progress indicator element. + + + + + + Gets the progress indicator element. + + + The progress indicator element. + + + + + + + + + + Represents an element that displayes a task item in a + + + + + Initializes the fields. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Represents an element that visualizes the progress of a summary. + + + + + Represents an element that visualizes the progress of a task. + + + + + Gets a list of s that will be shown in the timeline. + + + + + Returns a list of s for week range. + + + + + Returns a list of s for month range. + + + + + Returns a list of s for year range. + + + + + Returns a list of s for year range with half years for the sub-items. + + + + + Returns a list of s for year range with quarter years for the sub-items. + + + + + Returns a list of s for day range. + + + + + Returns a list of s for day range with half hours for the sub-items. + + + + + Returns a list of s for da range with quarter hours for the sub-items. + + + + + Returns a list of s for hour range. + + + + + Gets the week number for the given date using ISO8601 stadard. + + The date. + + + + + Gets the time line top element text. + + The item to get text for. + + + + + Gets the timeline lower element text for the specified index. + + The timeline item. + The index of the lower element. + + + + + Gets the number of cells and optionally a start index to be displayed for the given timeline data item and time range. + + The data item for which the cell info is calculated. + The time range for which the cell info is calculated. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Returns the number of cells and optionally a start index to be displayed for the given timeline data item. + + + + + Creates the element. + + + + + + Fills the RangesMinWidths property (dictionary) with the minimum width for each . These values are used when AutomaticTimelineTimeRange is se to true. + + + + + Gets a new time range based on the current state of the . If no change is needed returns the value of the input range. + + The current . + Indicates whether a zoom-in or a zoom-out operation is performed. + A value of the enumeration. If no change is needed returns the input range. + + + + Gets the gantt graphical view this behavior is associated with. + + + + + Gets or sets the format for the upper row items of the timeline. + + + The timeline upper item format. + + + + + Gets or sets the format for the lower row items of the timeline. + + + The timeline lower item format. + + + + + Gets a value which enlarges the timeline end so only whole cells would be displayed. + + + + + Gets a value which enlarges the timeline start so only whole cells would be displayed. + + + + + Gets a dictionary where the key is a time ranges and the value is the minimum width for a single item in the timeline view for that time range. + + + + + Gets or sets the number of cells to be added. + + + + + Gets or sets a value indicating the first cell index. The value is optional. + + + + + Represents an element displayed in the timeline of a + + + + + Initializes the fields. + + + + + Initializes a new instance of the class. + + The element. + + + + Represents a virtualized stack container that shows the items in the timeline of a + + + + + + + + + + + + + Type of the ViewElement + + + + Updates the items' layout + + + + + Begins the measure. + + Size of the available. + + + + + Ends the measure. + + + + + + Determines whether the specified item is visible. + + The item. + + true if item is visible; otherwise, false. + + + + + Gets the element context. + + + + + + Removes the element. + + The position. + + + + Inserts the element. + + The position. + The element. + The data. + + + + Finds the compatible element. + + The position. + The data. + + + + + Updates the element at concrete position + + The position. + The data. + + + + + Gets or sets the associated element provider. + + + The element provider. + + + + + Gets or sets the associated data provider. + + + The data provider. + + + + + Gets a value indicating whether the data provider is empty. + + + true if data provider is empty; otherwise, false. + + + + + Measures the element core. + + The element. + Size of the available. + + + + + Arranges the element core. + + The element. + The final size. + The arrange rect. + + + + + Adds artificial offset on IsItemVisible when we want to use the method to hide the items + which are above the top edge of the control (we hide them to improve the virtualization performance). + The artificial offset will make the ArrangeOverride method start arranging items from + their actual position, as if the hidden items were there. + + The offset to add. + + + + Gets or sets the item spacing. + + + The item spacing. + + + + + Gets or sets the items orientation. + + + The orientation. + + + + + Gets or sets a value indicating whether the elements fit to size. + + + true if [fit elements to size]; otherwise, false. + + + + + Gets or sets the scroll offset. + + + The scroll offset. + + + + + Initializes the fields. + + + + + Initializes a new instance of the class. + + The owner. + + + + Gets the that is the owner of this container. + + + The owner. + + + + + Represents a data item for a timeline. + + + + + Initializes a new instance of the class. + + The start. + The end. + The range. + The one pixel time. + + + + Gets or sets the start date for the item. + + + The start. + + + + + Gets or sets the end date for the item. + + + The end. + + + + + Gets or sets the range. + + + The range. + + + + + Gets or sets how much time a single pixel represents. + + + The one pixel time. + + + + + Gets the width of this item. + + + The width. + + + + + Represents the provider that creates elements for the timeline of a . + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates a new element. + + The data. + The context. + + + + + Gets the size of the element for a given item. + + The item. + + + + + Called when a new item element is created. + + The item. + + + + + Gets the that is the owner of this provider. + + + The owner. + + + + + Represents the stack container in the lower half of a timeline item. + + + + + Represents an element that is used in a timeline. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Creates the timeline item top element. + + + + + + Creates the timeline item bottom stack element. + + + + + + Initializes a new instance of the class. + + The data. + The graphical view element. + + + + Calculates the items that will be displayed in the timeline. + + + + + Called when the displayed data is changed. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance with its data item. + + + + + Determines whether the specified data is compatible with this element. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Gets the graphical view element that parents this element. + + + The graphical view element. + + + + + Gets the top element. + + + The top element. + + + + + Gets the bottom stack element. + + + The bottom element. + + + + + Gets the data item for this element. + + + The data. + + + + + Represents the top portion of a . + + + + + Represents the bottom portion of a . + + + + + Updates the scroll range. + + + + + Represents the layout for the expander element of each row in a + + + + + Initializes a new instance of the class. + + The item element. + + + + Creates the self-referencing cell's elements. + + The cell element. + + + + Disposes all MANAGED resources - such as Bitmaps, GDI+ objects, etc. + + + + + Disposes the link elements. + + + + + Updates the associated instance of expander primitive + + + + + Updates the indent items + + + + + Binds the row properties. + + + + + Unbinds the row properties. + + + + + Gets the data item assiciated with the layout + + + + + Gets the item element assiciated with the layout + + + + + Gets the expander element assiciated with the layout + + + + + Gets the stack layout element. + + The stack layout element. + + + + Gets the cell element. + + The cell element. + + + + Gets the witdh of the hierarchy indent. + + + + + Gets a value that indicates the indents count + + + + + Gets a collection that contains all indents + + + + + Represents a stack element which holds the expander element, the indent element(s) and the cell. + + + + + Represents an element that is used for displaying indentation in a item element. + + + + + Initializes a new instance of the class. + + The item element. + + + + Gets the item element. + + + The item element. + + + + + Represents an item element of a text part. + + + + + Initializes the fields. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + Initializes a new instance of the class. + + The text view. + + + + Creates the column container. + + + + + + Creates the element provider. + + + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance and all cells. + + + + + Disposes the self reference layout. + + + + + Synchronizes the properties. + + + + + Updates the info of each cell. + + + + + Gets the cell element for the given column. + + The column. + + + + + Gets or sets a value indicating whether this instance is expanded. + + + true if this instance is expanded; otherwise, false. + + + + + Gets the cell container. + + + The cell container. + + + + + Gets the self reference layout. + + + The self reference layout. + + + + + Gets the . + + + The text view. + + + + + Represents the element for a cell in a text part. + + + + + Initializes the fields. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + The owner. + The column. + + + + Disposes the managed resources. + + + + + Attaches the specified data. + + The data. + The context. + + + + Detaches this instance. + + + + + Synchronizes this instance. + + + + + Determines whether the specified data is compatible. + + The data. + The context. + + true if the specified data is compatible; otherwise, false. + + + + + Updates the info. + + + + + Updates the core. + + + + + Updates the self reference layout. + + + + + Arranges the self reference panel. + + The final size. + The client rect. + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Gets the editor element. + + The editor. + + + + + Gets the column of this cell. + + + The data. + + + + + Gets the column. + + + The column. + + + + + Gets the owner of this cell. + + + The owner. + + + + + Gets the data item. + + + The data item. + + + + + Gets the self reference layout. + + + The self reference layout. + + + + + Gets the expander. + + + The expander. + + + + + Gets a value indicating whether this instance is first cell. + + + true if this instance is first cell; otherwise, false. + + + + + Gets a value indicating whether this instance is last cell. + + + true if this instance is last cell; otherwise, false. + + + + + Gets a value indicating whether this instance can update info. + + + true if this instance can update info; otherwise, false. + + + + + Gets a value indicating whether this instance is in edit mode. + + + true if this instance is in edit mode; otherwise, false. + + + + + Gets the editor. + + + The editor. + + + + + Privedes cell elements for the item elements of + + + + + Initializes a new instance of the class. + + The owner. + + + + Creates a new element for the given data and context. + + The data. + The context. + + + + + Gets the size of the element. + + The item. + + + + + Gets the owner. + + + The owner. + + + + + Represents a container in which columns can be displayed. + + + + + Initializes the fields. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The owner. + + + + Gets or sets the owner. + + + The owner. + + + + + Gets or sets a value indicating whether [scroll columns]. + + + true if [scroll columns]; otherwise, false. + + + + + Represetns a scroller for the columns. + + + + + Represents a traverser which can traverse the columns of a + + + + + Initializes a new instance of the class. + + The columns. + + + + Called when [items navigating]. + + The current. + + + + + Represents the element that displayes the grid part of a + + + + + Creates the child elements. + + + + + Initializes a new instance of the class. + + The gantt view. + + + + Gets the first visible column. + + The first visible column. If there are no visible columns returns null. + + + + Gets the last visible column. + + The first visible column. If there are no visible columns returns null. + + + + Columnses the collection changed. + + The instance containing the event data. + + + + Updates the specified update action. + + The update action. + + + + Synchronizes the item elements. + + + + + Gets the first visible column. + + + The first visible column. + + + + + Gets the last visible column. + + + The last visible column. + + + + + Gets the column container. + + + The column container. + + + + + Gets the column scroller. + + + The column scroller. + + + + + Gets the columns. + + + The columns. + + + + + Gets or sets the indent of the hierarchy rows. + + + The indent. + + + + + Represents a header cell element of a column in a + + + + + Initializes a new instance of the class. + + The owner. + The column. + + + + Synchronizes this instance. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Determines whether this instance [can be resized]. + + + true if this instance [can be resized]; otherwise, false. + + + + + Adds the editor. + + The editor. + + + + Removes the editor. + + The editor. + + + + Gets or sets a value indicating whether this instance is mouse over resize rectangle. + + + true if this instance is mouse over resize rectangle; otherwise, false. + + + + + Privedes header cell elements for the item elements of + + + + + Creates a new element for the given data and context. + + The data. + The context. + + + + + Gets the size of the element. + + The item. + + + + + Represents the expander item of a row in a . + + + + + Represents an expander that is drawn in expander cells + + + + + This event fires when the expanded state is changed. + + + + + Initializes a new instance of the class. + + + + + Paints the sign's fill + + The IGraphics to use for painting the sign's fill + Rectangle containing sign bounds + + + + Paint the sign's border + + The IGraphics to use for painting the sign's border + Rectangle containing sign bounds + + + + Paints the sign + + The IGraphics to use fo painting the sign + Rectangle containing sign bounds + + + + Gets or sets the padding sizes of the sign. + + + + + Gets or sets the width of the sign. + + + + + Gets or sets the border width of the sign. + + + + + Gets or sets the padding sizes of the border around the sign. + + + + + Gets or sets a value indicating that the sign's border must be drawn + + + + + Gets or sets a value indicating that the sign's fill must be drawn + + + + + Gets or sets the sign's border color + + + + + Gets or sets sign's back color + + + + + Gets or sets sign's second back color + + + + + Gets or sets sign's third back color + + + + + Gets or sets sign's fourth back color + + + + + Gets or sets the number of colors used for drawing sign's background + + + + + Gets or sets the gradient style of sign's background + + + + + Gets or sets the gradient angle of sign's background + + + + + Gets or sets the gradient percentage of sign's background + + + + + Gets or sets the second gradient percentage of sign's background + + + + + Gets or sets the sign's style + + + + + Gets or sets a value indicating that the sign must maintain square size + + + + + Gets or sets the sign's size + + + + + Gets or sets a value indicating whether the sign is in expanded or collapsed state + + + + + Gets or sets the sign image. + + + + + Gets or sets a value detemining the link lines that be rendered around the expander sign + + + + + Gets or sets a value determining the style of the link lines + + + + + Gets or sets a value determining the color of the link lines + + + + + Defines a lines that will be render around the primitive + + + + + Initializes a new instance of the class. + + The item element. + + + + Gets or sets a value indicating whether the sign is in expanded or collapsed state + + + + + Gets the item element. + + + The item element. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets the main element of the editor. + + + + + Gets or sets the current bitmap. If you want to open an image for edit use one of the OpenImage methods. + + + + + Gets or sets the path that will be used for save operations. + + + + + Gets or sets the zoom factor of the editor. + + + + + Occurs after an image is loaded in the editor. + + + + + Occurs when the progress of an async load operation changes. + + + + + Occurs when an operation results in an error or an exception. + + + + + Closes the open dialog. + + + + + Fires the event. + + + + + + Fires the event. + + + + + + Fires the event. + + + + + + Gets the element containing the buttons with commands. + + + + + Gets the element that is responsible for drawing the image. + + + + + Gets the element continaing the zooming controls. + + + + + Gets the scroll viewer controller. + + + + + Gets or sets the current bitmap. If you want to open an image for edit use one of the OpenImage methods. + + + + + Gets or sets the original image when performing editing operations. + + + + + Gets or sets the path that will be used for save operations. + + + + + Gets or sets the zoom factor of the editor. + + + + + Gets or sets a factory used for creating dialogs. + + + + + Gets or sets the width of the . + + + + + Gets or sets the height of the + + + + + Gets the undo operations stack. + + + + + Gets the redo operations stack. + + + + + Occurs after an image is loaded in the editor. + + + + + Occurs when the progress of an async load operation changes. + + + + + Occurs when an operation results in an error or an exception. + + + + + Represents a draggable, selectable, and resize-able item which displays a snapshot + of its associated . This item is used in + when the + is in customize mode. + + + + + Invalidates the preview of the associated item. + + + + + Gets or sets the overlay color which is displayed when the item is selected. + + + + + Gets or sets the border color which is displayed when the item is selected. + + + + + Gets the associated . + + + + + Gets the inner container of the current item. Such will exist if this item represents a + + + + + + Gets the inner item of the current item. Such will exist if this item represents a + . + + + + + Gets or sets a value indicating whether the item is currently selected. + + + + + An element which hosts . + The main element of . Also used + as a child in when the represented item + is . + + + + + A responsible for the drag operations in . + + + + + Represents a control which overlays the when the last is put in customize mode. + + + + + Updates the preview of the underlying items. + + + + + Updates the preview of the underlying items. + + If [true], child elements will be reinitialized, + if [false], only the snapshot of existing elements will be updated. + + + + Selects the specified item. + + The item to select. + + + + Selects the specified item. + + The item to select. + If [true], item will be added to the current selection, + otherwise only the specified item will be selected + + + + Gets the items from all levels in the control. + + An enumeration to the items. + + + + Gets all items which are descendants of the specified parent element. + + The parent element. + An enumeration to the items. + + + + Sets the bounds of the drag preview rectangle. + + The bounds. + + + + Finds the associated of the specified . + + The specified item. + The associated draggable item. + + + + Starts the with the specified item as a drag context. + + The item to drag. + + + + Gets the owning + + + + + Gets the main element of the control. + + + + + The responsible for the drag operations in the control. + + + + + Gets a collection of the selected items. + + + + + Provides access to the default icons and images used in . + + + + + The image displayed next to in the customize dialog. + + + + + The Customize context menu icon. + + + + + The image displayed next to an empty in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + The icon of the LoadLayout button in the customize dialog. + + + + + The icon of the SaveLayout button in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + The image displayed next to the in the customize dialog. + + + + + Provides options for sizing the text part of the + + + + + Text will be sized proportionally to the whole size of the item. + + + + + Text will have a fixed size in pixels. + + + + + Provides options for arranging the text part of the + + + + + The text will appear above the control. + + + + + The text will appear below the control. + + + + + The text will appear on the left side of the control. + + + + + The text will appear on the right side of the control. + + + + + Represents a item which can display text. + + + + + Represents a item which displays a separator line. + Stands for visually separating logical groups of controls. + + + + + Gets or sets the thickness of the item. + + + + + Gets the current orientation of the item. The orientation is automatically + determined depending on the item's position. + + + + + Represents a item which displays a splitter line. + The splitter stands for visually separating logical groups of controls. In addition, + it allows the end user to resize the groups on both sides of it by dragging the splitter + with the mouse. + + + + + Gets or sets the image used by the splitter when in horizontal orientation. + + + + + Gets or sets the image used by the splitter when in vertical orientation. + + + + + A items which displays s + in a tabbed interface. + + + + + Gets the index at which a group should be inserted if dropped at the specified point. + + The specified point. + The index at which the group should be inserted. + + + + Gets the drag preview rectangle which is used when dropping over the tab items. + + The desired insert index + The bounds of the drag preview rectangle. + + + + Gets the main tab strip element. + + + + + Gets a collection of s which will be displayed + in the tabbed interface of this item. + + + + + Gets the of the selected . + + + + + Gets the selected . + + + + + A inheritor used to display the tab strip + inside s in . + + + + + Encapsulates the UI representation of a RadPageView instance. Different views will be described by different instances of this class. + + + + + Base element for all visual elements across RadPageView. + + + + + Adds padding and border size to the provided measured size. + + + + + + + Applies the Min/Max size constraints to the already measured size. + + + + + + + Gets the content orientation for this item. + + + + + Gets the content orientation for this item. + + + + + Gets or sets the padding that defines the offset of element's fill. + This does not affect element's layout logic such as size and location but has only appearance impact. + + + + + Gets or sets the padding that defines the offset of the border. + This does not affect element's layout logic such as size and location but has only appearance impact. + + + + + Gets an instance of the class that + represents the content area associated with the given item. By default, this method + returns the main content area of the control. + + + + + + + Gets the area, where the currently active page may be displayed. + + + + + Gets the rectangle where items reside. + + + + + + Displays the item list menu, using the provided element as menu's owner. + + + + + + Displays the item list menu, using the provided element as menu's owner and the specified horizontal and vertical alignment. + + + + + + + + + + + + + + Gets the item that contains the porvided point (in control's client coordinates). + + + + + + + Arranges the items and returns the available rectangle where the content area should be positioned. + + + + + + + Gets the default (automatic) item orientation, which may depend on some settings in inheritors such as RadPageViewStripElement. + + True to indicate that content orientation is to be retrieved, false to get orientation for border and fill. + + + + + Puts the current node in edit mode. + + + + + + Commits any changes and ends the edit operation on the current cell. + + + + + + Close the currently active editor and discard changes. + + + + + + Gets the RadElement instance that parents all the items. + + + + + Determines CloseButton will be displayed in each item, allowing that item to be closed. + + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where an item will be dropped after a drag operation. + + + + + Gets or sets the RadDragDropService instance which handles item drag requests. + + + + + Gets or sets the mode that controls item drag operation within the element. + + + + + Determines whether the currently selected item will be automatically scrolled into view. + + + + + Gets or sets the spacing between two items within the element. + + + + + Gets or sets the text orientation of the item within the owning RadPageViewElement instance. + + + + + Gets or sets the text orientation of the item within the owning RadPageViewElement instance. + + + + + Defines how each item's border and fill is oriented within this instance. + + + + + Gets the RadPageView instance that owns this element. May be null if element is hosted on another RadControl instance. + + + + + Gets the element which represents the content area of the tab view. + + + + + Gets the header element of the view. + + + + + Gets the footer element of the view. + + + + + Gets or sets the currently selected item in the view. + + + + + Gets or sets the mouse button that will be used to select items. Equals to MouseButtons.Left by default. + + + + + Gets all the items currently present within this element. + + + + + Gets or sets whether the pages will be wrapped around when performing selection using the arrow keys. + If the property is set to true, pressing the right arrow key when the last page is selected will result in selecting the first page. + + true if [wrapped around]; otherwise, false. + + + + Determines whether selecting an item will update the element's ContentArea. + + + + + Gets or sets the active editor. + + The active editor. + + + + Gets or sets a value indicating whether [allow edit]. + + true if [allow edit]; otherwise, false. + + + + Gets a value indicating whether there is an open editor in the tree view. + + + + + Gets the RadPageViewStripItem which stands for adding + new pages on click. + + + + + Gets or sets the item of the page which is opened for preview on the far side of the + regular items. + + + + + Determines if the PinButton will be displayed in each item, allowing that item to be pinned. + + + + + Gets or sets the visibility of the internal NewItem. + + + + + Determines whether strip scrolling will be animated. + + + + + Gets or sets the easing type of the strip scroll animation. + + + + + Gets the container that holds item layout and strip buttons panel. + + + + + Determines scroll buttons' visibility. + + + + + Determines the alignment of items within the strip layout. + + + + + Determines the fit mode to be applied when measuring child items. + + + + + Gets or sets the alignment of item strip within the view. + + + + + Selects the specified . + + The group item to select. + + + + Gets the currently selected . + + + + + An inheritor of used in . + Stands for displaying the tabs of s inside a . + Keeps track of its associated . + + + + + Indicates whether the item is pinned. Pinned items appear in from of the others. + + + + + Indicates whether the item is opened for preview. + + + + + Gets or sets the length of the associated + with this . By default, this property returns -1; + + + + + Determines whether the content of the current item is visible. This property is equivalent + to the IsSelected property, however its semantics can be changed in scenarios where multiple + content areas can be visible as in the . + + + + + Determines whether the current instance is internally created by the ViewElement and represents some built-in functionality. + + + + + Gets the RadPageViewItemButtonsPanel that contains all the buttons, associated with the item. + + + + + Gets or sets the alignment of item's associated buttons. + + + + + Gets or sets a boolean value that determines whether the item margin will be automatically + flipped according to the orientation of the items in the control. + + + + + Gets or sets the title of the item. Title is visualized in the Header area of the owning view element. + + + + + Gets or sets the description of the item. Description is visualized in the Footer area of the owning view element. + + + + + Gets or sets the RadElement instance that represents the content of this item. + The content is used when item is not bound to a RadPageViewPage instance. + + + + + Gets the size that is forced by the layout element for this item. It may differ from the DesiredSize one. + + + + + Gets the current size of the item. This may differ from Bounds.Size as it reflects internal changes within the item itself. + + + + + Determines whether the item is currently selected (associated with the SelectedPage of the owning RadPageView). + + + + + Gets the RadPageViewPage instance associated with this item. + + + + + Gets the RadPageViewElement that owns this item. + + + + + Gets or sets the use mnemonic. + + The use mnemonic. + + + + Gets or sets the show keyboard cues. + + The show keyboard cues. + + + + Gets or sets a property which determines whether to consider the ItemBorderAndFillOrientation of RadPageViewElement. + + + + + The associated with this tab strip item. + + + + + Represents a visual element, which contains set of common buttons for a instance. + + + + + Gets or sets the size to be applied to each of the embedded buttons. + + + + + Gets or sets the spacing between each two buttons. + + + + + Gets the RadPageViewButtonElement instance which represents the CloseButton for the owning item. + + + + + Gets the RadPageViewPinButtonElement instance which represents the PinButton for the owning item. + + + + + Provides localization settings for . + + + + + String IDs for the localizable strings in . + + + + + Provides the resize functionality for . + + + + + Begins the resize operation given a starting point and resize orientation. + + The starting point. + The resize direction. + [true] if successful, [false] otherwise. + + + + Begins the resize operation given a . + + The splitter item. + [true] if successful, [false] otherwise. + + + + If the behavior is active, moves the resize position to the specified point. + + The point in coordinates relative to the owning . + + + + Ends the resize operation. + + + + + Gets the mouse cursor that should be displayed at the specified position. + + The point in coordinates relative to the owning . + The cursor. + + + + Indicates whether the behavior is currently active. + + + + + Provides the XML serialization functionality for . + + + + + A container control which keeps its child controls arranged in a consistent way and scales their layout as the control size changes. + Allows runtime customization and serializing the layout. + + + + + Initializes the items of the default context menu. + + + + + Puts the control in an initialization state where it will not update until EndUpdate is called. + + + + + Puts the control out of the initialization state caused by calling BeginUpdate and updates it. + + + + + Adds a control at a specified position next to a specified control. + + The control to add. + An existing control next to which the new control will be added. + The position at which the new control will be added. + + + + Adds a control at a specified position next to a specified item. + + The control to add. + An existing item next to which the new control will be added. + The position at which the new control will be added. + + + + Adds a control to the specified container. + + The control to add. + The container. + + + + Adds an item at a specified position next to a specified existing control. + + The item to add. + An existing control next to which the new control will be added. + The position at which the new control will be added. + + + + Adds an item at a specified position next to a specified existing item. + + The item to add. + An existing item next to which the new control will be added. + The position at which the new control will be added. + + + + Adds an item at the root level of the control and rebuilds the layout. + + The item to add. + + + + Adds an item to the specified container and rebuilds its layout. + + The item to add. + The container to add the item to. + + + + Removes the specified control from the RadLayoutControl. + + The control to remove. + + + + Removes the specified item from the RadLayoutControl. + + The item to remove. + + + + Resizes the specified item with a specified amount. Resize direction depends + on the position of item. + + The item to resize. + The amount to resize with. + + + + Resizes the specified control with a specified amount. Resize direction depends + on the position of item. + + The control to resize. + The amount to resize with. + + + + Hides an item from the RadLayoutPanel and places it in the HiddenItems collection. + + The item to hide. + + + + Hides a control from the RadLayoutPanel and places it in the HiddenItems collection. + + The control to hide. + + + + Shows the control which allows reordering + and resizing the items. + + + + + Hides the . + + + + + Shows the and puts the control in customize mode. + + + + + Gets the initial location of the . + + The location. + + + + Closes the and puts the control out of customize mode. + + + + + Finds the item associated with a given control. + + The control. + The control's associated item. + + + + Finds the item associated with a given control. + + The control. + [true] if the HiddenItems collection should be searched, + [false] otherwise. + The control's associated item. + + + + Gets the items from all levels which are nested in the control. + + An enumeration of the items. + + + + Gets the items from all levels which are nested in the control. + + + + + + + Updates the scrollbar metrics. + + + + + Updates the bounds of nested controls. + + + + + Gets the mouse cursor which should be shown at a given point. + + The point. + The cursor to be shown at that point. + + + + Gets the that should be activated at a given point. + + The point. + The resizing behavior at that point. + + + + Gets all child items iterated recursively. + + The items. + + + + Stores RadLayoutControl's layout state in XML format, using the serialization + information provided by the property. + + XmlWriter to use by the built-in serializer + + + + Stores RadLayoutControl's layout state in XML format, using the serialization + information provided by the property. + + The stream to write to. + + Writes the Xml content in the stream and leaves the stream open. + + + + + Stores RadLayoutControl's layout state in XML format, using the serialization + information provided by the property. + + The file to write to. + + + + Loads RadLayoutControl's layout state from XML file, using the serialization + information provided by the property. + + The file to read from. + + + + Loads RadLayoutControl's layout state from XML file, using the serialization + information provided by the property. + + The stream to read from. + + + + Loads RadLayoutControl's layout state from XML file, using the serialization + information provided by the property. + + The XmlReader to read the XML from. + + + + Called after load layout to ensure the visibility of the controls is the same + as the visibility of the items. + + + + + Gets the default serialization info for RadLayoutControl used by Save/Load loyout methods to persist the layout to/from XML. + + The default serialization info. + + + + Fired when the items of the control or the items of the inner containers + (such as groups and tabbed groups) have changed. + + + + + Gets or sets a value indicating whether the control should draw its border. + + + + + Gets or sets the Customize Dialog form which is shown via the context menu. + + + + + Gets or sets a value indicating whether resizing is enabled when the Customize Dialog is not shown. + + + + + Gets or sets a value indicating whether the end-user is allowed to hide and show existing items. + + + + + Gets or sets a value indicating whether the end-user is allowed show the Customize Dialog and modify the existing layout. + + + + + Gets or sets the context menu. + + + + + Gets the vertical . + + + + + Gets the horizontal . + + + + + Gets the main which hosts the items on the root level. + + + + + Gets a collection containing the items on the root level. + + + + + Gets a collection containing the hidden items. + + + + + Gets the control which appears when the Customize Dialog is shown. + + + + + Indicates whether the DragOverlay control is visible. + + + + + Indicates whether the user is currently resizing the items. + + + + + If the user is currently resizing, returns the active , otherwise returns null. + + + + + This property is not relevant for this class. + + + + + Gets the serialization info for RadLayoutControl used by Save/Load loyout methods to persist the layout to/from XML. + By default or when set to null the ComponentXmlSerializationInfo provided by GetDefaultXmlSerializationInfo() will be used. + + + + + Gets the margin around the client area of the control. + In the default case, this should be the border thickness. + + + + + Adds the control to the underlying collection without creating a for it. + + The control to add. + + + + Removes the control from the underlying collection without destroying its associated item. + + + + + + Finds the item associated with a given control. + + The control. + The associated item. + + + + This class represents data in a list layout similar to the ListBox control provided by Microsoft. + + + + + Initializes all event key objects and performs other static initialization. + + + + + Subscribes to the relevant events of the underlaying RadListElement. + + + + + Unsubscribes from the relevant events of the underlaying RadListElement. + + + + + + + + Forces re-evaluation of the current data source (if any). + + + + + Suspends internal notifications and processing in order to improve performance. + This method is cumulative, that is, if BeginUpdate is called N times, EndUpdate must also be called N times. + Calling BeginUpdate will cause the ItemsChanged event to stop firing until EndUpdate is called. + + + + + Resumes the internal notifications and processing previously suspended by BeginUpdate. + + + + + Defers the refresh. + + + + + + Selects all items if the SelectionMode allows it. + This method throws an InvalidOperationException if SelectionMode is One or None. + + + + + Clears the currently selected items and selects all items in the closed range [startIndex, endIndex]. + + The first index at which to start selecting items. + The index of one item past the last one to be selected. + + + + Scrolls to the provided item so that the item will appear at the top of the view if it is before the currently visible items + and at the bottom of the view if it is after the currently visible items. + + The item to scroll to. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default this relation is the System.String.StartsWith(). + This method starts searching from the beginning of the items. + + The string with which every item will be compared. + The index of the found item or -1 if no item is found. + + + + Searches for an item related to the specified string. The relation is described by the object assigned to FindStringComparer property. + By default this relation is the System.String.StartsWith(). + This method starts searching from the specified index. If the algorithm reaches the end of the Items collection it wraps to the beginning + and continues until one before the provided index. + + The string with which every item will be compared. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but matches an item only if its text is exactly equal to the provided string. + + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index of the found item or -1 if no item is found. + + + + Searches for an item in the same manner as FindString() but does not start from the beginning when the end of the Items collection + is reached. + + The string that will be used to search for an item. + The index from which to start searching. + The index of the found item or -1 if no item is found. + + + + Raises the event. + + + An instance that contains the event data. + + + + + + Gets or sets value indicating if the user can reorder items via drag and drop. + + + + + Gets or sets a value indicating whether alternating item color is enabled. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Indicates whether the items should be displayed in groups. + + + + + Gets the collection of groups that items are grouped into + + + + + Gets or sets a value that indicates whether text case will be taken into account when sorting. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + + + + + Gets or sets a value that determines whether the user can search for an item by typing characters when RadListControl is focused. + + + + + The ListElement responsible for the majority of the control logic. The RadListControl is a wrapper of the RadListElement. + + + + + Gets the Items collection. Items can not be modified in data bound mode, and a DataSource can not be assigned while there + are items in this collection. + + + + + Provides a read only interface to the selected items. In order to select an item, use its Selected property. + + + + + Gets or sets the SelectionMode of RadListControl. This property has a similar effect to the SelectionMode of the + standard Microsoft ListBox control. + + + + + Gets or sets the SelectedValue. A linear search is performed to find a data item that has the same value + in its Value property and SelectedItem and SelectedIndex are updated to it and its index respectively. + + + + + Gets or sets the active item. The Active item is relevant only in MultiSimple SelectionMode or MultiExtended in combination with + the control keyboard key. + + + + + Gets or sets the currently selected item. + + + + + Gets or sets the currently selected index. + + + + + Gets or sets an object which will provide the data to be visualized as a list. + + + + + Gets or sets a property name which will be used to extract a string value from the data items in order to provide + a meaningful display value. + + + + + Gets or sets a property name which will be used to extract a value from the data items. The value of the property with + this name will be available via the Value property of every RadListDataItem in the Items collection. + + + + + Gets or sets a property name which will be used to extract a text for description text from the data items. The value of the property with + this name will be available via the Value property of every RadListDataItem in the Items collection. + + + + + Gets or sets the sort style. + + + + + Gets or set the scroll mode. + + + + + Gets or sets a format string which will be used for visual formatting of the items text. + + + + + Gets or sets a value that indicates whether the FormatString and FormatInfo properties will be used to format + the items text. Setting this property to false may improve performance. + + + + + Gets or sets a value that indicates whether items will be sized according to + their content. If this property is true the user can set the Height property of each + individual RadListDataItem in the Items collection in order to override the automatic + sizing. + + + + + Gets or sets a predicate which filters which items can be visible. + + + + + Gets or sets a filter expression which determines which items will be visible. + + + + + Gets a value indicating whether there is a Filter or FilterExpression set. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the FindString() method when searching for an item. + + + + + Gets or sets a value that determines whether the FindString() method searches via the text property + set by the user or by the text provided by the data binding logic, that is, by DisplayMember. + + + + + Gets or sets a value that indicates if this RadListControl will stop firing the ItemsChanging and ItemsChanged events. + + + + + Gets or sets a value that determines whether to stop the selection events from firing. These are SelectedIndexChanged, + SelectedIndexChanging and SelectedValueChanged. + + + + + This property is not relevant for this class. + + + + + Fires after data binding operation has finished. + + 1 + + + + + + This event fires when the selected index property changes. + + + + + This event fires before SelectedIndex changes. This event allows the operation to be cancelled. + + + + + This event fires only if the SelectedValue has really changed. For example it will not fire if the previously selected item + has the same value as the newly selected item. + + + + + This event fires before a RadListDataItem is data bound. This happens + when the DataSource property is assigned and the event fires for every item provided by the data source. + This event allows a custom RadListDataItem to be provided by the user. + + + + + This event fires after a RadListDataItem is data bound. This happens + when the DataSource property is assigned and the event is fired for every item provided by the data source. + + + + + This event allows the user to create custom visual items. + It is fired initially for all the visible items and when the control is resized afterwards. + + + + + This event fires when the SortStyle property changes. + + + + + The VisualItemFormatting event fires whenever a property of a visible data item changes + and whenever a visual item is associated with a new data item. During scrolling for example. + + + + + This event fires when the SelectedItems collection changes. + + + + + This event fires before the SelectedItems collection changes. + + + + + RadListControl consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadListControl consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Defines the alignment of checkbox within a . + + + + + Checkbox is aligned next to the near edge. + + + + + Checkbox is centered within the layout. + + + + + Checkbox is aligned next to the far edge. + + + + + ListViewSpreadExport is a powerful exporting API, allowing to export RadListView to XLSX, PDF, CSV, and TXT format, utilizing the Document Processing Libraries. + + + + + Initializes a new instance of the class. + + The ListView to export. + + + + Initializes a new instance of the class. + + The ListView to export. + The export format. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Starts an export operation. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadListView will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadListView will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadListView will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadListView will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Cancels an asynchronous export operation. + + + + + Check if date is supported from MS Excel + + + True if value is supported + + + + Gets or sets the name of the sheet. + + + The name of the sheet. + + + + + Specifies whether a file will be exported as a new file, or if a file with the same name already exists at the specified path, a new sheet will be added to it. + + + ExportAsNewSheetInExistingFile - will add a new sheet to the specified file, if it exists + ExportInNewFile - will create/override the specified file + + + + + Gets or sets a value indicating whether to export images. + + + + + Gets or sets a value indicating whether to export hierarchy and group child rows grouped. + + + + + Gets or sets the format of the exported file - XLSX, PDF, CSV or TXT. + + + The file extension. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets the maximum number of rows per sheet. + + + The sheet max rows. + + + + + Gets or sets a value indicating how children of collapsed items are exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when the export process completes. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents the method that will handle the CellFormatting event. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the CellFormatting event + + + + + Initializes a new instance of the class. + + Export cell for further formatting. + The exporting item of RadListView. + The row index in the worksheet. + + + + Gets the row index in worksheet. + + + + + Gets export cell for further formatting. + + + + + Gets the exporting item. + + + + + Defines values for specifying how the width of a column is adjusted. + + + + + The column width does not automatically adjust. + + + + + The column width adjusts to fit the contents of the header cell. + + + + + The column width adjusts to fit the contents of the data cells. + + + + + The column width adjusts to fit the contents of all cells + + + + + A helper class that process best fitting of columns + + + + + Initializes a new instance of the class. + + The detail list view. + + + + Performs best fit for specified column + + An instance of that will be best fitted + + + + Performs best fit for all columns + + + + + Bests the fit columns. + + The mode. + + + + Process all best fit column requests + + + + + Performs best fit for all columns + + + + + Performs best fit for specified column + + An instance of that will be best fitted + The mode. + + + + Determines whether the instance of can be best fitted. + + The item. + + true if the instance of can be best fitted ; otherwise, false. + + + + + Gets the desired cell's width + + An instance of + Returns the desired cell's with + + + + Sets 's width + + An instance of . + The desired width + + + + Gets the table element. + + The table element. + + + + Gets the best fit requests. + + The best fit requests. + + + + Best Fit All Columns Request + + + + + Requests the best fit columns. + + + + + Enqueues the best fit columns. + + The mode. + + + + Requests the best fit column. + + The column. + + + + Removes and returns the object at the beginning of the queue + + Returns BestFitRequest + + + + Dequeues the specified column's request from the queue + + The column's request that should be removed + Returns BestFitReques + + + + Represents BestFitRequest type + + + + + BestFit Operation for specified column + + + + + BestFit Operation for all columns + + + + + Represent best fit request + + + + + Initializes a new instance of the class. + + The operation. + The column. + + + + Initializes a new instance of the class. + + The operation. + + + + Initializes a new instance of the class. + + The operation. + The mode. + + + + Compares the current instance to the specified request. + + The request. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the operation. + + The operation. + + + + Gets the auto size mode. + + + + + Gets the column. + + The column. + + + + Gets the related with the page. + + + + + Gets the editor value. + + + + + Gets the element which hosts and arranges all the items within the strip. + + + + + Gets the element which hosts and arranges all the items within the strip. + + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Fires the event. + + The event arguments. + + + + Gets or sets a value indicating whether to use animation when collapsing and expanding the menu. + + + + + Gets or sets the animation interval. + + + + + Gets or sets the animation frames. + + + + + Occurs before the hamburger menu is collapsed. + + + + + Occurs before the hamburger menu is expanded. + + + + + Occurs after the hamburger menu is collapsed. + + + + + Occurs after the hamburger menu is expanded. + + + + + Creates Star like shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Creates Heart like shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Initializes a new instance of the RadRating class + + + + + CreateChildItems + + + + + + Set the default control size. + + + + + Gets or sets whether the edit control is auto-sized. + + + + + Gets or sets the direction of rating element paint (Standard, Reversed). + + + + + Gets or sets the orientation of the rating control. + + + + + Gets or sets the selection mode of the rating control. + + + + + Gets the rating items collection. + + + The items. + + + + + Gets or sets the average value of rating element. + + + + + Gets or sets the minimum value of rating element. + + + + + Gets or sets the maximum value of rating element. + + + + + Gets or sets the text of the Caption label. + + + + + Gets or sets the text of the Sub Caption label. + + + + + Gets or sets the text of the description label. + + + + + Gets the instance of RadRatingElement wrapped by this control. RadRatingElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRatingControl. + + + + + Gets or sets whether the rating is ReadOnly. + The Value of the element can still be set in ReadOnly mode, nothing else. + + + + + This property is not relevant for this class. + + + + + Occurs before the value of the RatingElement is changed. + + + + + Occurs when the value is being changed. Cancelable event. + + + + + Gets the rating items collection. + + + The items. + + + + + Gets or sets the text of the Caption label. + + + The caption. + + + + + Gets or sets the text of the Sub Caption label. + + + The sub caption. + + + + + Gets the caption element. + + + The caption element. + + + + + Gets the sub caption element. + + + The sub caption element. + + + + + Gets the description element. + + + The description element. + + + + + Gets the elements layout. + + + The elements layout. + + + + + Gets or sets the tool tip format string. + + + The tool tip format string. + + + + + Gets or sets the selected value. + + + The selected value. + + + + + Gets or sets the current value. + + + The current value. + + + + + Gets or sets the hover value. + + + The hover value. + + + + + Gets or sets whether the Hover layer should be applied. + + + + + Gets or sets the value of the rating. + + + + + Gets or sets the minimum value of rating element. + + + The minimum. + + The Minimum should be lower than the Maximum + + + + Gets or sets the maximum value of rating element. + + + The maximum. + + The Maximum should be bigger than the Minimum + + + + Gets or sets the orientation of the rating control (Horizontal, Vertical). + + + + + Gets or sets the selection mode of the rating control (full item, half item, precise selection). + + + + + Gets or sets a value indicating whether the element is read-only. + + + + + Gets or sets the text of the description label. + + + + + GGets or sets the direction of rating element paint (Standard, Reversed). + + + The direction. + + + + + Gets or sets the tool tip precision. + + + The tool tip precision. + + + + + Gets or sets the percentage rounding. + + + The percentage rounding. + + + + + Gets or sets the tool tip offset. + + + The tool tip offset. + + + + + Gets or sets the duration of the tool tip. + + + + + Occurs before the value of the RatingElement is changed. + + + + + Occurs when the value is being changed. Cancelable event. + + + + + Represents a state manager for + + + + + Creates the specific states. + + + + + + Creates the state manager. + + + + + + Creates a new star shape with the specified number of arms and inner radius. + + + + + Creates a new star shape with the specified number of arms and inner radius. + + The number of arms the star will have. + The ratio between the inner and out ration of the star. + + + + Creates Star like shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Gets or sets the number of arms. + + + + + Gets or sets the ration between the inner and out radius. + + + + + Represents a logical data item that contains the tokenzied text and its value + + + + + Initializes a new instance of the class. + + The text. + The value. + + + + Compares the current object with another object of the same type. + + An object to compare with this object. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Raises the event. + + Name of the property. + + + + Raises the event. + + The instance containing the event data. + + + + Gets the text. + + + + + Gets the value. + + + + + Occurs when a property value changes. + + + + + Represents a collection of + + + + + Initializes a new instance of the class. + + The text box. + + + + Initializes a new instance of the class. + + The text box. + The list. + + + + Raises the event. + + The instance containing the event data. + + + + Finds the specified text in the collection + + The text. + + + + + Fins all tokenized item that contains this text. + + The text. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Occurs when the collection is changed. + + + + + Represents the method that handles validation of tokens in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The text. + + + + Initializes a new instance of the class. + + The text. + if set to true [is valid token]. + + + + Gets the text of the token. + + + + + Gets or sets a value indicating whether the text is valid token. + + + true if the text is token; otherwise, false. + + + + + The AccessibleObject of + + + + + Initializes a new instance of the class. + + The text box control. + + + + Gets the associated text box. + + + + + Represents a close event arguments when closed + + + + + Represents event data of the RadPopupClosed event. + + + + + Initializes a new instance of the RadPopupClosedEventArgs class using + the closing reason. + + + closing reason + + + + + Initializes a new instance of the class. + + The reason. + The instance containing the event data. + + + + Gets the input arguments. + + + + + Represents the method that is called when is formatted. + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The text block. + + + + Gets the text block to be formatted + + + + + X-coordinate comparer of + + + + + Initializes a new instance of the class. + + The x coordinate. + + + + Compares the specified x value. + + The x value. + The y value. + + + + + Edit operation in + + + + + Insert text operation + + + + + Replace text operation + + + + + Delete text operation + + + + + The autocomplete drop down of + + + + + Initializes a new instance of the class. + + The owner. + + + + Gets the associated text box. + + + + + Gets the associated list element. + + + + + Represents a tokenized text block in + + + + + Represents a single word in + + + + + Gets a rectangle of character by index. + + The index. + if set to true [trail edge]. + + + + + Gets the character index at X-position. + + The x. + + + + + Measures the textblock available size. + + Size of the available. + + + + Arranges the textblock final rectangle. + + The final rectangle. + + + + Gets or sets the index of the block + + + The index. + + + + + Gets or sets the block according to the previous one + + + The offset. + + + + + Gets the length of the word. It can be different than the exact text length. + + + + + Gets or sets the block's text + + + The text. + + + + + Gets the desired size of the block + + + The size of the desired. + + + + + Gets the control bounding rectangle. + + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Creates the tokenized text item. + + The text. + The value. + + + + + Creates the text content element. + + + + + + Creates the remove button element. + + + + + + Called when the remove button is clicked. + + + + + Gets a rectangle of character by index. + + The index. + if set to true [trail edge]. + + + + + Gets the character index at X-position. + + The x. + + + + + Gets the associated tokenized text item. + + + + + Gets the content element that contains the text + + + + + Gets the remove button. + + + + + Gets or sets a value indicating whether the block can be remove by clicking the Remove button. + + + true if [allow remove]; otherwise, false. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the index of the block + + + The index. + + + + + Gets a value indicating the offset. + + + + + Gets the length of the word. It can be different than the exact text length. + + + + + An view port element of + + + + + An editable and selectable + + + + + The wrap layout of + + + + + Initializes a new instance of the class. + + + + + Called when text block is formatting. + + The text block. + + + + Raises the event. + + The instance containing the event data. + + + + Called when a property is changing. + + Name of the property. + The old value. + The new value. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Notifies the text changing. + + The start position. + The length. + The old text. + The new text. + The action. + + + + + Notifies the text changed. + + The text. + The caret position. + The action. + + + + Performs measurement and arrangement of child elements. + + + + + Clamps the desired size in the valid available size bounds. + + The available size. + The desired size. + + + + + Merge and measure block. + + The text block. + The available size. + + + + Measures and perfroms wrapping for blocks in WordWrap mode + + The available size. + Index of the current block. + Document desired size. + Index of the current line. + The current block offset. + + + + + Adds the desired size of the line to document desired size. + + The line. + Size of the desired. + + + + Adds the desired size of the block to desired size of line. + + Size of the block desired. + The line. + + + + Gets the baseline offset. + + The line. + The text block. + + + + + Checks that tow block are splitted block + + The first block. + The second block. + + + + + Gets the next block for this index + + The index. + + + + + Gets the previous block for this index + + The index. + + + + + Determines whether this panel has text. + + + true if this panel has text; otherwise, false. + + + + + Gets the line info by its index + + Index of the line. + + + + + Creates the block for concrete and instance. + + The text + The type. + + + + + Clears the presented text + + + + + Gets the text between start and end position + + The start position. + The end position. + + + + + Gets the block's text. + + The block. + The start. + The length. + + + + + Search a text block by X coordinate. + + The line. + The x. + + + + + Search a text block by offset. + + The line. + The offset. + + + + + Search a line by using concrete comparer + + The line. + The comparer. + + + + + Determines whether the text is tab, whitespace, line feed or carriage return symbol. + + The text. + + true if [is special text] [the specified text]; otherwise, false. + + + + + Determines whether the text contains a new line + + The text + + true if [contains new line] [the specified text]; otherwise, false. + + + + + Determines whether the specified text is whitespace. + + The text. + + true if the specified text is whitespace; otherwise, false. + + + + + Determines whether the specified text is tab. + + The text. + + true if the specified text is tab; otherwise, false. + + + + + Determines whether the text is tab or whitespace. + + The text. + + true if the text is tab or whitespace; otherwise, false. + + + + + Determines whether the text is line feed symbol. + + The text. + + true if the text is line feed symbol; otherwise, false. + + + + + Determines whether the text is carriage return symbol. + + The text. + + true if the text is carriage return symbol; otherwise, false. + + + + + Gets the bounds of the Viewport + + + + + Gets or sets the spacing between lines when the is in multiline mode. + + + The line spacing. + + + + + Gets the logical lines of . + + + + + Gets the length of the text. + + + The length of the text. + + + + + Gets or sets how the text is horizontally aligned in the element. + + The horizontal text alignment. + + + + Gets or sets a value indicating whether [word wrap]. + + + true if [word wrap]; otherwise, false. + + + + + Gets or sets a value indicating whether this is multiline. + + + true if multiline; otherwise, false. + + + + + Occurs when text block is formatting. + + + + + Occurs when a property value is changing. + + + + + Occurs when an instance of is created + + + + + Suspends notifcations when text is editing. + + + + + Resumes notifcations when text is editing. + + + + + Resumes notifcations when text is editing. + + if set to true the event is fired. + The new text. + The caret position. + The action. + + + + Convert point to absolute point according to the current scroll offset + + The point. + + + + + Gets the location of instance + + The position. + + + + + Deletes the text range + + The start position. + The end position. + + + + + Inserts the specified text in concerte position. + + The position. + The text. + + + + + Replaces the text ranged with a new text + + The start position. + The end position. + The text. + + + + + Replaces the text ranged with a new text + + The start position. + The end position. + The text. + + + + + Replaces the text range in + + The target block. + The start char position. + The end char position. + The text. + + + + Replaces the text range in concrete special + + The target block. + The start char position. + The end char position. + The text. + + + + Replaces the text range in concrete non-special + + The target block. + The start char position. + The end char position. + The text. + + + + Gets or sets a value indicating whether the text in view + should appear as the default password character. + + + + + Gets or sets the character used to mask characters of a password in a single-line + + + + + Gets or sets a value indicating whether text in the text box is read-only. + + + true if this is in read only mode; otherwise, false. + + + + + Gets or sets the scroller for Vertical Scrollbar + + + The Vertical Scroller + + + + + Gets or sets the scroller for Horizontal Scrollbar + + + The Horizontal Scroller + + + + + Gets or sets the selection primitive that renders the selection + + + The selection primitive. + + + + + Gets or sets the scroll offset. + + + The scroll offset. + + + + + Gets a value indicating whether this textbox is editing mode. + + + true if this textbox is editing; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Determines whether the specified text block is delimiter. + + The text block. + + true if the specified text block is delimiter; otherwise, false. + + + + + Removes range of the editable block. + + The block. + The start char position. + The text. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The token text. + + + + + Gets or sets the delimiter used to tokenize the text + + + The delimiter. + + + + + Gets or sets a value indicating whether the remove button of should appear. + Notice that the text box should not be in read only mode + + + true if [show remove button]; otherwise, false. + + + + + Gets or sets the height of the min line. + + + The height of the min line. + + + + + Occurs when text is validating as token + + + + + Represents a keyboard and mouse input handler + + + + + Represents a keyboard and mouse input handler + + + + + Represents a keyboard and mouse input handler + + + + + Processes the key down. + + The instance containing the event data. + + + + + Processes the key up. + + The instance containing the event data. + + + + + Processes the key press. + + The instance containing the event data. + + + + + Processes the mouse down. + + The instance containing the event data. + + + + + Processes the mouse up. + + The instance containing the event data. + + + + + Processes the mouse move. + + The instance containing the event data. + + + + + Processes the mouse wheel. + + The instance containing the event data. + + + + + Processes the double click. + + The instance containing the event data. + + + + + Processes the mouse leave. + + The instance containing the event data. + + + + Prcesses the mouse enter. + + The instance containing the event data. + + + + Initializes a new instance of the class. + + The text box element. + + + + Determines whether the mouse input should be handled + + The mouse position. + + + + + Processes the mouse down. + + The instance containing the event data. + + + + + Processes the mouse up. + + The instance containing the event data. + + + + + Processes the mouse move. + + The instance containing the event data. + + + + + Processes the mouse leave. + + The instance containing the event data. + + + + Prcesses the mouse enter. + + The instance containing the event data. + + + + Processes the mouse selection. + + The location. + + + + + Sets the current cursor position + + The location. + + + + Processes the mouse wheel. + + The instance containing the event data. + + + + + Processes the context menu. + + The location. + + + + + Processes the double click. + + The instance containing the event data. + + + + + Processes the key down. + + The instance containing the event data. + + + + + Processes delete of + + if set to true [move next]. + + + + + Processes the select of all + + + + + + Processes the copy operation of + + + + + + Processes the paste operation of text + + + + + + Processes the cut. + + + + + + Processes the tab key. + + The instance containing the event data. + + + + + Selects the next or previous control. + + if set to true [forward]. + + + + + Processes the navigation key. + + The instance containing the event data. + + + + + Processes the list navigation. + + The instance containing the event data. + + + + + Processes the enter key. + + The instance containing the event data. + + + + + Processes the page key. + + The instance containing the event data. + + + + + Processes the key press. + + The instance containing the event data. + + + + + Processes the insert. + + The text. + + + + + Processes the key up. + + The instance containing the event data. + + + + + Initializes a new instance of the class. + + The text box element. + + + + Gets the text block at point. + + The location. + + + + + Represent a navigator in + + + + + Represent a navigator in + + + + + Represent a navigator in + + + + + Suspends the notifications. + + + + + Resumes the notifications. + + + + + Navigates by specified keys. + + The instance containing the event data. + + + + + Saves the current selection position. + + + + + Restores the saved selection position. + + + + + Scrolls to caret position. + + + + + + Selects the specified range. + + The start. + The end. + + + + + Gets the position from point. + + The point. + + + + + Gets the position from offset. + + The offset. + + + + + Gets the previous position. + + The position. + + + + + Gets the next position. + + The position. + + + + + Gets or sets the selection start. + + + The selection start. + + + + + Gets or sets the selection end. + + + The selection end. + + + + + Gets or sets the caret position. + + + The caret position. + + + + + Gets the length of the selection. + + + The length of the selection. + + + + + Occurs when selection is changing. + + + + + Occurs when selection is changed. + + + + + Initializes a new instance of the class. + + The text box element. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Saves the current selection position. + + + + + Restores the saved selection position. + + + + + Suspends the notifications. + + + + + Resumes the notifications. + + + + + Gets the position from offset. + + The offset. + + + + + Gets the position from point. + + The point. + + + + + Gets the text position from line. + + The line. + The x. + + + + + Scrolls to caret position. + + + + + + Navigates by specified keys. + + The instance containing the event data. + + + + + Navigates at line. + + The instance containing the event data. + The position. + + + + + Gets the previous position. + + The position. + + + + + Gets the previous position resursively. + + The position. + + + + + Gets the next position. + + The position. + + + + + Gets the next position recursively. + + The position. + + + + + Navigates to line. + + The instance containing the event data. + The position. + + + + + Selects the specified range. + + The start. + The end. + + + + + Selects the override. + + if set to true [notify]. + + + + Sets the caret position. + + + + + Gets the associated text box element. + + + + + Gets or sets the selection start. + + + The selection start. + + + + + Gets or sets the selection end. + + + The selection end. + + + + + Gets the length of the selection. + + + The length of the selection. + + + + + Gets or sets the caret position. + + + The caret position. + + + + + Occurs when selection is changing. + + + + + Occurs when selection is changed. + + + + + Initializes a new instance of the class. + + The owner. + + + + Gets the editable position. + + The position. + if set to true [next]. + + + + + Represents a text box control that tokenized a text by specified delimiter + + + + + Enables the user to enter text, and provides multiline editing + + + + + Initializes a new instance of the class. + + + + + Creates the associated text box element. + + + + + + Appends text to the current text of a text box. + + The text. + + + + Clears all text from the text box element. + + + + + Specifies that the value of the SelectionLength property is zero so that no characters are selected in the element. + + + + + + Scrolls the contents of the control to the current caret position. + + + + + Selects a range of text in the text box. + + The selection start + The selection length + + + + Selects all text in the text box. + + + + + Moves the current selection in the text box to the Clipboard. + + + + + + Copies the current selection in the text box to the Clipboard. + + + + + + Replaces the current selection in the text box with the contents of the Clipboard. + + + + + + Inserts the specified text to the textbox + + The text. + + + + + Deletes the text at current position + + + + + + Deletes the text at the next current position + + if set to true deletes next character. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets the size of the drop down max. + + + The size of the drop down max. + + + + + Gets or sets the size of the drop down min. + + + The size of the drop down min. + + + + + Gets or sets the max count of visible items in auto-complete drop down + + + The max drop down item count. + + + + + Gets the associated text box element. + + + + + Gets the auto-complete list element. + + + + + Gets or sets an option that controls how automatic completion works for the TextBox. + + + The auto complete mode. + + + + + Gets or sets a value indicating whether the text in view + should appear as the default password character. + + + + + Gets or sets the character used to mask characters of a password in a single-line + + + + + Gets or sets when the vertical scroll bar should appear in a multiline TextBox. + + + The state of the vertical scroll bar. + + + + + Gets or sets when the horizontal scroll bar should appear in a multiline TextBox. + + + The state of the horizontal scroll bar. + + + + + Gets or sets the auto complete display member. + + + The auto complete display member. + + + + + Gets or sets a value specifying the source of complete items used for automatic completion. + + + The auto complete data source. + + + + + Gets a value specifying the complete items used for automatic completion. + + + + + Gets or sets a value indicating whether the selected text in the text box control remains highlighted when the element loses focus. + + + true if [hide selection]; otherwise, false. + + + + + Gets or sets the caret position. + + + The index of the caret. + + + + + Gets or sets the starting point of text selected in the text box. + + + The selection start. + + + + + Gets or sets the number of characters selected in the text box. + + + The length of the selection. + + + + + Gets the length of text in the element. + + + The length of the text. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box element. + + + The length of the max. + + + + + Gets or sets the current text in the text box element. + + + + + Gets or sets the prompt text that is displayed when the text box contains no text. + + + The null text. + + + + + Gets or sets the color of the null text. + + + The color of the null text. + + + + + Gets or sets a value indicating whether the null text will be shown when the control is focused and the text is empty. + + + + + Gets or sets how the text is horizontally aligned in the element. + + The horizontal text alignment. + + + + Gets or sets the lines of text in a text box control. + + + The lines. + + + + + Gets or sets a value indicating the currently selected text in the text box. + + + The selected text. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text box element types a TAB character in the element instead of moving the focus to the next element in the tab order. + + + true if [accepts tab]; otherwise, false. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline TextBox control creates a new line of text in the control or activates the default button for the form. + + + true if [accepts return]; otherwise, false. + + + + + Gets or sets a value indicating whether this is a multiline text box. + + + true if multiline; otherwise, false. + + + + + Indicates whether a multiline text box control automatically wraps words to the beginning of the next line when necessary. + + + true if [word wrap]; otherwise, false. + + + + + Gets or sets the color of the selection. + + + The color of the selection. + + + + + Gets or sets the selection opacity. + + + The selection opacity. + + + + + Gets or sets whether the TextBox control modifies the case of characters as they are typed. + + + The character casing. + + + + + Gets or sets a value indicating whether text in the text box is read-only. + + + true if this is in read only mode; otherwise, false. + + + + + Gets or sets a value indicating whether the caret is visible in read only mode. + + + true if the caret is visible; otherwise, false. + + + + + Gets or sets the shortcut menu associated with the control. + + + + A that represents the shortcut menu associated with the control. + + + + + Gets or sets a value indicating whether the clear button is shown. + + + + + Occurs when text selection is changing. + + + + + Occurs when text selection is changed. + + + + + Occurs when the text is changing. + + + + + Occurs when text block is formatting. + + + + + Occurs when an instance of is created + + + + + Occurs when opening the context menu. + + + + + Fired when the Input Method Editor starts the composition. + + + + + Fired when the Input Method Editor completes the composition. + + + + + Fired when the Input Method Editor has a result ready. For languages like Korean + this might happen before the composition has ended. + + + + + Initializes a new instance of the class. + + + + + Gets the associated auto complete text box element. + + + + + Gets or sets the delimiter used to tokenize the text. + + + The delimiter. + + + + + Gets or sets a value indicating whether the remove button of should appear. + Notice that the text box should not be in read only mode + + + true if [show remove button]; otherwise, false. + + + + + Gets the tokenized items. + + + + + Gets or sets an option that controls how automatic completion works for the TextBox. + + + The auto complete mode. + + + + + Gets or sets a property name which will be used to extract a value from the data items + + + + + Occurs when text is validating as token + + + + + Creates a new instance of the . + + + + + Fires right after the editor value is changed. + + The event arguments. + + + + Fires right before the editor value is changed. + + The event arguments. + + + + Fires after the dialog is closed. + + The event arguments. + + + + Fires when the is clicked. + + The event arguments. + + + + Sets the value of the editor. + + The new value to set. + + + + Creates the that will be opened when the browse button is clicked. + + A . + + + + Creates the that will be opened when the browse button is clicked. + + A . + + + + Creates the that will be opened when the browse button is clicked. + + A . + + + + Creates the that will be placed in the browse editor and will be used to open + the . + + + + + + Gets the value of the editor. + + + + + Gets or sets the type of dialog to be opened when the browse button is pressed. + + + + + Gets the that opens the . + + + + + Gets the that will open upon pressing the browse button. + + + + + Determines if users can input text directly into the text field. + + + + + Fires after the dialog window is closed. + + + + + Fires right before the value is changed. Cancelable event. + + + + + Fires after the editor value is changed. + + + + + Represents a browser control box. The RadBrowseEditor class is a simple wrapper for the + RadBrowseEditorElement class. The RadBrowseEditor acts + to transfer events to and from its corresponding + RadBrowseEditorElement. The + RadBrowseEditorElement which is essentially the + RadBrowseEditor control may be nested in other telerik controls. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the RadBrowseEditorElement of this control. + + + + + Gets the OpenFileDialog of this control. + + + + + Gets or sets the type of dialog to be opened when the browse button is pressed. + + + + + Gets or sets the value of the editor. + + + + + Determines if users can input text directly into the text field.. + + + + + This property is not relevant for this class. + + + + + Fires after the dialog window is closed. + + + + + Fires right before the value is changed + + + + + Fires after the editor value is changed. + + + + + Fires when the ReadOnly property value is changed. + + + + + Creates a RadTimePicker instance. + + + + + Determines whether the Clock will show the system time. + + + + + Determines whether the Clock will show the system time. + + + + + Determines whether control's height will be determined automatically, depending on the current Font. + + + + + Gets the RadTimePickerElement which encapsulates the UI representation and functionality of the control. + + + + + RadClock consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Shows the UITypeEditor + + + + + Occurs when the button of the editor is clicked. + + + + + Determines if the editor should be closed after the value has been changed. + + The current value of the editor. + The new value of the editor. + True if editor should be closed other wise false. + + + + Selects the whole text inside the editor tex box. + + + + + Validates if the text input in the text box is a valid value for the edited item + + True if the value is valid otherwise false. + + + + Gets the that is opening. + + + + + Gets or sets a value indicating whether the editor will loop through its values when double clicked. + + + true if the editor will loop through its values when double clicked; otherwise, false. + + + + + Provides information about the type of the editor required by the + GridTableViewManager when instantiating the requested type of column. + + + + + Initializes with editor type defined. + + + + + Initializes setting the required editor type. + + The type of the editor required. + + + + Initializes setting the required editor type. + The IInputEditor property is initialized by GridViewEditManager prior to event call, + if default implementation is available. + + The type of the editor required. + IInputEditor instance if available. + + + + Gets or sets the type of the editor required by the edited control if no default editor is available. + + + + + Gets or sets the ICellEditor instance if created outside the GridViewEditorManager. + Also if a default editor is provided by the RadGridView, it is available for post-initialization + or substitution. + + + + + Provides information about the new value that is edited inside the active + cell editor. + + + + + Gets the new value that is edited by the active editor. + + + + + Gets the new value that is edited by the active editor. + + + + + Sets the visibility of the sort/group items depending on whether the functionality is enabled. + + + + + Gets the Expand/Collapse menu item. + + + + + Gets the Edit menu item + + + + + Gets the Reset menu item. + + + + + Gets the Sort menu item. + + + + + Gets the Show description menu item. + + + + + Gets the Show toolbar menu item. + + + + + Represents a property descriptor for properties. + + + + + Creates a new instance of the class. + + The collection of objects whose properties will be exposed. + The original property descriptors for the objects. + + + + Gets a value indicating whether a property cam be reseted. + + Always returns true. + + + + Gets a common value of all objects or returns null if object's values differ. + + Returns a common value or null + + + + Resets the values of all objects for this property. + + + + + Sets a value to all objects. + + The value to set. + + + + + Gets a value indicating whether value should be serialized. + + Always returns true. + + + + Returns the type of component this property descriptor is for. + + + + + Gets a value indicating whether this property is read only. Always returns false. + + + + + Returns the type of the property. + + + + + Represents a for the + used in the . + + + + + Returns an instance of the . + + + + + Represents a for the . + + + + + Creates a new instance of the . + + The collection of objects. + + + + Returns a with the common properties of the objects in the + . + + The common properties of the objects in the . + + + + Returns a with the common properties of the objects in the + to which the specified attributes have been applied. + + The attributes by which to filter the properties. + The common properties of the objects in the . + + + + Represents a collection of objects. It can be used in a property grid to edit the common properties of the objects. + + + + + Creates a new empty . + + + + + Creates a new with the specified objects. + + The objects to fill the collection with. + + + + Gets the index of a given object. + + The object to look for. + The index of the object or -1 if the object is not present in the collection. + + + + Inserts an object in the given index. + + The index to insert on. + The object to insert. + + + + Removes an object from the specified index. + + The index to remove from. + + + + Adds an object to the collection. + + The object to add. + + + + Clears the entire collection. + + + + + Checks whether the collection contains the given object. + + The object to check for. + True if the object is present in the collection, otherwise false. + + + + Copies the objects from the collection to a specified array starting at the given index. + + The destination array. + The index to start at in the destination array. + + + + Removes a specified object from the collection. + + The object to remove. + True if the object was removed otherwise false. + + + + Gets or sets the object on the specified index. + + The index of the object + + + + Gets the number of items currently in the collection. + + + + + Gets a value indicating whether the collection si read only. Always returns false. + + + + + Creates a new instance of the which can be added to a . + + The type of the item. + The name to be displayed for the item. + The initial value for the item. + + + + Creates a new instance of the which can be added to a . + + The type of the item. + The name to be displayed for the item. + The initial value for the item. + The description to be displayed for the item. + + + + Creates a new instance of the which can be added to a . + + The type of the item. + The name to be displayed for the item. + The initial value for the item. + The description to be displayed for the item. + The category the item would be grouped in. + + + + Creates a new instance of the which can be added to a . + + The type of the item. + The name to be displayed for the item. + The initial value for the item. + The description to be displayed for the item. + The category the item would be grouped in. + Determines if the property would be editable. + + + + Resets the value to the initial state. + + + + + Called when the PropertyChanged event is fired. + + + + + Gets or sets the Type of the property. + + + + + Gets or sets the name that would be displayed in the RadPropertyGrid + + + + + Gets or sets the value of the item. + + + + + Gets or sets the description to be displayed in the RadPropertyGrid for this item. + Same as setting a to a property. + + + + + Gets or sets a value indication whether this property item would be read only in the RadPropertyGrid. + Same as setting a to a property. + + + + + Gets or sets the category of this item. + Same as setting a to a property. + + + + + Gets or sets the text to be displayed instead of the property name. + Same as setting a to a property. + + + + + Gets or sets a collection of attributes to be applied to the item in the property grid. + If an attribute covered by property of the is added the + attribute in this collection will be ignored. will always be ignored. + + + + + Gets or sets the that contains this item. + + + + + Occurs when any of the properties is changed. + + + + + A descriptor for the used in the . + + + + + Creates a new instance of the . + + The item this descriptor would represent. + + + + Returns a value indicating if Reset can be performed for this item. + + Always returns true. + + + + Resets the value of the current item to its initial value. + + + + + Gets the value of the current item. + + The value of the item. + + + + Sets a new value to the current item. + + The value to be set to the current item. + + + + + Gets a value indicating whether the value should be serialized. + + Always returns true. + + + + Gets the type of component this descriptor is used for. + + + + + Gets a value indicating whether the current item is read only. + + + + + Gets the type of the current item. + + + + + Type descriptor provider for the . + + + + + Gets a type descriptor for the given instance. + + + The instance to get a type descriptor for. + The type descriptor. + + + + Custom type descriptor for the . + + + + + Creates a new instace of the + + The this descriptor is used for. + + + + Returns a collection of property descriptors corresponding to the items in the current . + + A collection of . + + + + Returns a collection of property descriptors corresponding to the items in the current . + + A collection of . + + + + Collection of items which can be set as a property grid selected object. + It's items would be displayed in the property grid as properties of an object. + + + + + Creates a new instace of the + + + + + Adds an item to the collection. + + The item to add. + + + + Adds an item to the collection. + + Type of the item. + Name to be displayed in the RadPropertyGrid. + Value for the item. + + + + Adds a collection of items to this collection. + + The collection of items to add. + + + + Inserts the item on the specified index. + + The index to insert on. + The item to insert. + + + + Gets the index of the item. + + The item which index to return + The index of the item if found and -1 if item is not in the collection. + + + + Checks whether a specific item is present in the collection. + + The item to check. + True if the item is contained in the collection otherwise false. + + + + Removes the specified item form the collection. + + The item to remove from the collection. + True if the removal was successful otherwise false. + + + + Removes the item with the specified name form the collection. + + The name of the item to remove. + True if the removal was successfull otherwise false. + + + + Removes an item from the specified index. + + The index to remove on. + + + + Clears the entire collection. + + + + + Copies the items of the collection to the specified array starting from the provided index. + + The destination array. + The index in the destination array. + + + + Gets the generic enumerator for this collection. + + The generic enumerator. + + + + Gets the enumerator for this collection. + + The enumerator. + + + + Gets the number of items in the collection. + + + + + Gets a value indicating whether the collection is read only. + + + + + Gets or sets the item at the specified index. + + The index. + The item on the specified index. + + + + Gets or sets the item with the specified name. + + The property name. + Returns the item if its present in the collection otherwise returns null + + + + Gets a value indicating whether the item is selected. + + + + + Gets a value indicating whether the item is expanded. + + + + + Gets a value indicating whether the control contains the focus. + + + + + Gets the that is parent to this item. + + + + + Gets a value indicating whether a given point is in a location where resize should be initialized when the left mouse button is pressed. + + The point to check for. + true if point is in location for resize otherwise false. + + + + Attaches a logical item to this visual element. + + The logical item. + The context. + + + + Detaches the currently attached logical item. + + + + + Syncronizes changes with other elements. + + + + + Determines if a logical item is compatible with this visual element. + + The logical item to be checked for compatibility. + The context. + + + + + Gets or sets a value indicating whether this item has a parent or not. + + + + + Gets or sets a value indicating whether this item has changed its value or not. + + + + + Gets or sets a value indicating whether this property can be edited. + + + + + Gets the header element of the . + + + + + Gets the property grid item indent element + + + + + Gets the property grid item expander element. + + + + + Gets the property grid item text element. + + + + + Gets the property grid item value element + + + + + Gets the logical item attached to this visual element. + + + + + Synchronizes changes with other elements. + + + + + Determines if a logical item is compatible with this visual element. + + The logical item to be checked for compatibility. + The context. + + + + + Gets the property grid item check box element + + + + + Determines if a logical item is compatible with this visual element. + + The logical item to be checked for compatibility. + The context. + + + + + Syncronizes changes with other elements. + + + + + Editing begins when the cell receives focus. + + + + + Editing begins when a focused cell is clicked again. + + + + + Editing begins only when the method is called. + + + + + Represents a toggle button element. The toggle button supports two or three + states depending on the IsThreeState property. + + The RadToggleButton class is a simple wrapper + for the RadToggleButtonElement class. All UI and logic functionality is + implemented in the RadToggleButtonElement class. The + RadToggleButton acts to transfer events to + and from its corresponding RadToggleButtonElement instance. The latter can be + nested in other telerik controls. + + + + + Initializes a new instance of the RadToggleButtonElement class. + + + + Raises the StateChanging event. + + + + + Raises the CheckStateChanging event. + + + + + Raises the StateChanged event. + + + + + Raises the StateChanged event. + + + + + Raises the IsCheckedChanged event. + + + + + Occurs before the elements's state changes. + + + + + Occurs when the elements's state changes. + + + + + Occurs before the elements's check state changes. + + + + + Occurs when the elements's check state changes. + + + + + Gets or sets the CheckState + . CheckState enumeration defines the following values: Unchecked, Checked, and Indeterminate. + + + + + Gets or sets the toggle + state. Toggle state enumeration defines the following values: Off, + Indeterminate, and On. + + + + Gets or sets a value indicating whether the button is checked. + + + + Gets or sets a value indicating whether the toggle button has three or two + states. + + + + + Gets or sets a value indicating whether the toggle button element is read only. + + + true if the toggle button element is read only; otherwise, false. + + + + + Executes a search with the current state of the filter. + + + + + Synchronizes the default toggle buttons in the + with the PropertySort property of the . + + + + + Executed when one of the toggle buttons changes. + + The button that triggered the event. + The event arguments. + + + + Gets the parent . + + + + + Gets the that enables CategorizedAlphabetical view in the + + + + + Gets the that enables Alphabetical view in the + + + + + Gets the . + + + + + Gets or sets the property name by which the search will be performed. + + + + + Gets or sets the filter operator which will be used for the search. + + + + + Gets or sets the value by which the search will be performed. + + + + + Gets or sets the height of the . + + + + + Begins the resize of the description element. + + The offset used to resize the description element. + + + + Gets the . + + + + + Gets the . + + + + + Gets the . + + + + + Gets or sets the height of the . + + + + + Gets or sets a value indicating whether the is visible. + + + + + Uses a mechanism to maximize the visible strings in both columns of RadPropertyGrid. + + + + + Best fits the column(s) of RadPropertyGrid using the given mode. + + The mode that determines the mechanism used for best fitting. + + + + Expands all the categories in the . + + + + + Collapses all the categories in the . + + + + + Resets the selected property to its default value. + + + + + Gets the . + + + + + Gets the . + + + + + Gets the + + + + + Gets or sets the height of the . + + + + + Gets or sets a value indicating whether the should be visible. + + + + + Gets or sets a value indicating whether sorting is enabled. + + + + + Gets or sets a value indicating whether grouping is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets or sets a value indicating whether the data can be grouped programatically. + + + + + Displays the properties of an object in a grid with two columns with a property name in the first column and value in the second. + + + + + Uses a mechanism to maximize the visible strings in both columns of RadPropertyGrid. + + + + + Best fits the column(s) of RadPropertyGrid using the given mode. + + The mode that determines the mechanism used for best fitting. + + + + Expands all the categories in the . + + + + + Collapses all the categories in the . + + + + + Resets the selected property to its default value. + + + + + Puts the current item in edit mode. + + true if successful. + + + + Commits any changes and ends the edit operation on the current item. + + true if successful. + + + + Close the currently active editor and discard changes. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets or sets a value indicating whether the data can be grouped programmatically. + + + + + Gets a value indicating whether there are currently open editors. + + + + + Gets or sets a value indicating whether the user is allowed to edit the values of the properties. + + + + + Gets the active editor. + + + + + Gets or sets a value indicating how user begins editing a cell. + + + + + Gets or sets a value indicating whether the groups will be expanded or collapsed upon creation. + + + + + Gets or sets the shortcut menu associated with the control. + + + + A that represents the shortcut menu associated with the control. + + + + + Gets or sets a value indicating whether the default context menu is enabled. + + The default value is false. + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when RadPropertyGrid is focused. + + The default value is false. + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + + The default value is 300. + + + + Gets or sets the string comparer used by the keyboard navigation functionality. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the selected item. + + + + + Gets or sets the object which properties the is displaying. + + + + + Gets or sets the objects which properties the is displaying. + + + + + Gets the Items collection. + + + + + Gets the Groups collection. + + + + + Gets or sets a value indicating whether grouping is enabled. + + + + + Gets or sets a value indicating whether sorting is enabled. + + + + + Gets or sets a value indicating whether filtering is enabled. + + + + + Gets the group descriptors. + + + + + Gets the filter descriptors. + + + + + Gets the sort descriptors. + + + + + Gets or sets the sort order of items. + + + + + Gets or sets the mode in which the properties will be displayed in the . + + + + + Gets or sets a value indicating whether the is visible. + + + + + Gets or sets the height of the . + + + + + Gets or sets a value indicating whether the search box of the should be visible + + + + + Gets the of this control. + + + + + Gets or sets the height of the items. + + The height of the item. + + + + Gets or sets the distance between items of the RadPropertyGridElement. + + + + + Gets or sets the width of the indentation of subitems. + + + + + RadPropertyGrid consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadPropertyGrid consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs before the selected object is changed. + + + + + Occurs after the selected object is changed. + + + + + Occurs before a property grid item is selected. + + + + + Occurs after the property item is selected. + + For more information about handling events, see also SelectedItemChanging. + + + + + + Occurs when opening the context menu. + + + + + Fires for custom grouping operation. + + + + + Occurs when the user presses a mouse button over a property grid item. + + + + + Occurs when the user moves the mouse in the area of a property grid item. + + + + + Occurs when a mouse button is clicked inside a + + + + + Occurs when a mouse button is double clicked inside a + + + + + Occurs before the value of the Expanded property of a property grid item is changed. + + + + + Occurs after the value of the Expanded property of a property grid item is changed. + + + + + Occurs when the item changes its state and needs to be formatted. + + + + + Occurs when a new item element is going to be created. + + + + + Occurs when a new item element is going to be created. + + + + + Occurs when editor is required. + + + + + Occurs when editing is started. + + + + + Occurs when editor is initialized. + + + + + Occurs when editing has been finished. + + + + + Occurs when item's value is changing. + + + + + Occurs when a property value changes. + + + + + Fires when a property value is validating. + + + + + Fires when a property has finished validating. + + + + + Fires before the value in an editor is being changed. The action can be canceled. + + + + + Fires when the value of an editor changes. + + + + + This property determines whether the traverser will traverse only via expanded items or through all items + true to traverse all items, false to traverse expanded items only + + + + + Represents the method that will handle events in . + + + + + + + Provides data for all events used in + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets a value indicating whether the instance to be processed by . + + true if [process PropertyGridItemBase]; otherwise, false. + + + + Gets the item. + + The item. + + + + Gets or sets the text of the title. + + + + + Gets or sets the text of the content. + + + + + Gets the . + + + + + Gets the . + + + + + Gets or sets the height of the . + + + + + Gets the parent of this element. + + + + + Attaches a logical item to this visual element. + + The logical item. + The context. + + + + Detaches the currently attached logical item. + + + + + Syncronizes changes with other elements. + + + + + Determines if a logical item is compatible with this visual element. + + The logical item to be checked for compatibility. + The context. + + + + + Gets the property grid group item expander element. + + + + + Gets the property grid group item text element. + + + + + Gets the logical item currently attached to this visual element. + + + + + Syncronizes element with data item. + + + + + Allows you to raise ValueChanged event when using custom editor. + + + + + Allows you to raise ValueChanging event when using custom editor. + + + + + Uses a mechanism to maximize the visible strings in both columns of RadPropertyGrid. + + + + + Best fits the column(s) of RadPropertyGrid using the given mode. + + The mode that determines the mechanism used for best fitting. + + + + Begins the update. + + + + + Ends the update. + + + + + Ends the update. + + Tells the view whether an update is required or not. + Indicates the update action + + + + Updates the visual items in the property grid + + Indicated the update action + + + + Gets the element at specified coordinates. + + The x coordinate. + The y coordinate. + An instance of if successful. + + + + Ensures the item is visible within the RadPropertygridElement and scrolls the element if needed. + + The item to visualize. + + + + Scrolls the scrollbar to bring the specified into view. + + The item to visualize. + + + + Initializes and returns the context menu associated with the specified . + + The element. + An instance of if successfull. + + + + Makes the property grid columns even. + + + + + Sorts the sub items of all expanded items. + + + + + Ensures the item is visible within the RadPropertygridElement and scrolls the element if needed. + + The item to visualize. + + + + Performs the needed operations on the data layer when the mode is changed. + + + + + + Gets the default property for the selected object + + The that is the default property. + + + + Updates the scroll bars visibility. + Specifies the action which caused the update. + + + + + Syncronizes all visual elements. + + + + + This method traverses through the visible items of RadPropetyGrid and returns an item matching the . + + + + + + + Gets the type of editor used for a editing the given item. + + The item to get editor type for. + The type of the editor + + + + Puts the current item in edit mode. + + + + + + Commits any changes and ends the edit operation on the current item. + + + + + + Close the currently active editor and discard changes. + + + + + + Ends the editing of an item and commits or discards the changes. + + Determines if the changes are commited [true] or discarded [false]. + + + + + Gets an editor depending on the type of the value to be edited. + + The type of the value. + + + + + Returns a value indicating whether the is editable + + The item to check. + True if item can be edited. Otherwise false. + + + + Gets or sets a value indicating whether the data can be grouped programmatically. + + + + + Gets or sets a value indicating whether the values of the items should be invalidated the next time a grouping and/or sorting is performed. + + + + + Gets the that is responsible for the kinetic scrolling option. + + + + + Gets or sets a value indicating whether the kinetic scrolling function is enabled. + + + + + Gets the that is a parent to this element. + + + + + Gets the active editor. + + + + + Gets or sets the mode in which the properties will be displayed in the . + + + + + Gets or sets the minimum width columns can have. + + + + + Gets a value indicating whether there are currently open editors. + + + + + Gets or sets a value indicating whether the user is allowed to edit the values of the properties. + + + + + Gets or sets a value that indicates whether editors specified with an EditorAttribute will be used without considering built-in editors. + + + + + Gets or sets the width of the "column" that holds the values. + + + + + Gets or sets a value indicating whether the groups will be expanded or collapse upon creation. + + + + + Gets the group descriptors. + + The group descriptors. + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets the sort descriptors. + + The sort descriptors. + + + + Gets or sets the sort order of Nodes. + + The sort order. + + + + Gets or sets the height of the items. + + The height of the item. + + + + Gets or sets the width of the indentation of subitems. + + + + + Gets or sets the object which properties the RadPropertyGrid is displaying. + + + + + Gets or sets the objects which properties the RadPropertyGrid is displaying. + + + + + Gets the collection to which the RadPropertyGrid is bound to. + + + + + Gets the selected item. + + + + + Gets or sets the context menu. + + The context menu. + + + + Gets or sets a value indicating how user begins editing a cell. + + + + + Gets or sets the distance between property grid items. + + + + + Gets or sets a value that determines whether the user can navigate to an item by typing when RadPropertyGrid is focused. + The default value is false. + + + + + Gets or sets a value that specifies how long the user must wait before searching with the keyboard is reset. + The default value is 300. + + + + + Gets or sets an object that implements IFindStringComparer. + The value of this property is used in the keyboard search functionality. + + + + + Fires for custom grouping operation. + + + + + Occurs before the selected object is changed. + + + + + Occurs after the property grid selected object has been changed. + + + + + Occurs when is formatting + + + + + Occurs when a mouse button is pressed on the . + + + + + Occurs when a mouse button is clicked inside a + + + + + Occurs when a mouse button is double clicked inside a + + + + + Occurs when mouse moves over a . + + + + + Occurs when item is expanding. + + + + + Occurs when item has been expanded. + + + + + Occurs when the selected item is changing + + + + + Occurs when selected item has been changed. + + + + + Occurs when editor is required. + + + + + Occurs when editing is started. + + + + + Occurs when editor is initialized. + + + + + Occurs when editing has been finished. + + + + + Occurs when item's value is changing. + + + + + Occurs when item's value has been changed. + + + + + Fires when a property value is validating. + + + + + Fires when a peoperty has finished validating. + + + + + Fires before the value in an editor is being changed. The action can be canceled. + + + + + Fires when the value of an editor changes. + + + + + Occurs when [binding context changed]. + + + + + Docks the search button on the left or right side of the search text box depending on the RightToLeft state. + + + + + Gets the search button. + + + + + Represents base class for button elements used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorButton. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorOperationButtonElement. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorCommandButtonElement. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorDeleteButtonElement. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorEqualsButtonElement. + + Button text. + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorMemoryButtonElement. + + Button text. + + + + Represents arrow button used in RadCalculatorDropDown. + + + + + Represents memory element used in RadCalculatorContentElement. + + + + + Represents a control with calculator functionality. + + + + + Creates a RadCalculatorDropDown instance. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the RadCalculatorElement which encapsulates the UI representation and functionality of the control. + + + + + Gets or sets the calculator value. + + + + + Gets or sets a value indicating whether the calculator drop down is read only. + + + true if the calculator drop down is read only; otherwise, false. + + + + + This property is not relevant for this class. + + + + + Fires when the value of the calculator is changing. + + + + + Fires when the value of the calculator is changing. + + + + + Event needed by the engine behind simple data binding so that it can work two way. In order to receive notifications for changes in the calculator value subscribe to the CalculatorValueChanged event. + + + + + Represents button element used in RadCalculatorContentElement. + + + + + Creates new instance of RadCalculatorDigitButtonElement. + + Button text. + + + + Represents the content element of RadCalculatorDropDown. + + + + + Creates new instance of RadCalculatorContentElement. + + + + + + Gets the owner RadCalculatorElement. + + + + + Gets or sets the memory value. + + + + + Gets the grid layout. + + + The grid layout. + + + + + Gets the button add. + + + The button add. + + + + + Gets the button substract. + + + The button substract. + + + + + Gets the button multiply. + + + The button multiply. + + + + + Gets the button divide. + + The button divide. + + + + Gets the button SQRT. + + The button SQRT. + + + + Gets the button percent. + + The button percent. + + + + Gets the button reciprocal. + + The button reciprocal. + + + + Gets the button sign. + + The button sign. + + + + Gets the button equals. + + The button equals. + + + + Gets the button C. + + The button C. + + + + Gets the button CE. + + The button CE. + + + + Gets the button delete. + + The button delete. + + + + Gets the button mplus. + + The button mplus. + + + + Gets the button mminus. + + The button mminus. + + + + Gets the button MS. + + The button MS. + + + + Gets the button MR. + + The button MR. + + + + Gets the button MC. + + The button MC. + + + + Gets the button 0. + + The button 0. + + + + Gets the button 1. + + The button 1. + + + + Gets the button 2. + + The button 2. + + + + Gets the button 3. + + The button 3. + + + + Gets the button 4. + + The button 4. + + + + Gets the button 5. + + The button 5. + + + + Gets the button 6. + + The button 6. + + + + Gets the button 7. + + The button 7. + + + + Gets the button 8. + + The button 8. + + + + Gets the button 9. + + The button 9. + + + + Gets the button point. + + The button point. + + + + RadCalculatorDropDown arithmetic operations. + + + + + Represents the editor content element of RadCalculatorDropDown. + + + + + Creates new instance of RadCalculatorEditorContentElement. + + + + + Indicates whether the fast navigation buttons were used. + + + + + Gets the direction of the navigation. + + + + + Arguments class used when the SelectionChanging event is fired. + + + + + Gets a refference to the Dates which will be selected + + + + + Gets a refference to the SelectedDates collection, represented by the Telerik RadCalendar component + that rise the SelectionChanging event. + + + + + The public delegate for the SelectionChanging event. + + + + + Arguments class used with the ElementRender event. + + + + + Gets a refference to the LightVisualElement object that represents visually the specified day to render. + + + + + Gets a refference to the RadCalendarDay logical object that represents the specified day to render. + + + + + Gets a refference to the CalendarView object currently displayed by RadCalendar, + that contains the specified day to render. + + + + + The public delegate for ElementRender event. + + + + + Indicates whether the fast navigation buttons were used. + + + + + Gets the direction of the navigation. + + + + + Gets or sets the start date of the new view. + + + + + Arguments class used when the ViewChangingEvent event is fired. + + + + + Gets the new CalendarView instance that will substitute the view currently displayed by RadCalendar. + + + + + The public delegate for the ViewChanging event. + + + + + RadCalendarDay represents a object that maps date value to corresponding visual settings. + Also the object implements Boolean properties that represent the nature of the selected date - + whether it is a weekend, disabled or selected in the context of the calendar. Mostly the values + of those properties are set at runtime when a RadCalendarDay instance is constructed and passed + to the DayRender event. + + + + + Sets whether RadCalendarDay object is associated with a DateTime equal to today's date. + + True if RadCalendarDay object is associated with today's date. + + + + Sets whether RadCalendarDay object is associated with a DateTime that represents a weekend day. + + True if RadCalendarDay object is associated with a DateTime that represents a weekend day. + + + + Checks whether RadCalendarDay object is associated with a DateTime that represents a recurring event. + + the DateTime to compare. + the System.Globalization.Calendar object used to check whether the DateTime + represents a recurring event. + + + + + Removes the time component of a DateTime object, thus leaving only the date part. + + the DateTime object to be processed. + the DateTime object containing only the date part of the original DateTime object. + + + + + + the DateTime object associated with this particular RadCalendarDay. + + + + + + + the DateTime object associated with this particular RadCalendarDay. + the CalendarDayCollection that contains this particular RadCalendarDay. + + + + + Raises the PropertyChanged event. + + The name of the property. + + + + Raises the PropertyChanged event. + + PropertyChangedEventArgs instance containing the name of the property. + + + + Gets or sets the image associated with a particular RadCalendarDay object. + + + + + Gets or sets the template associated with a particular RadCalendarDay object. + The template must inherit from RadHostItem. + + + + + Gets or sets the date represented by this RadCalendarDay. + + + + + Gets or sets a value indicating whether the RadCalendarDay is qualified as available for selection. + + + + + Gets or sets a value indicating whether the RadCalendarDay is selected + + + + + Gets or sets a value indicating whether the RadCalendarDay is disabled + + + + + Gets or sets a value indicating whether the RadCalendarDay represents the current date. + + + + + Gets or sets a value indicating whether the RadCalendarDay settings are repeated/recurring through out the valid + date range displayed by the calendar. + + + The RecurringEvents enumeration determines which part of the date is handled (day or day and month). + + + + + Gets or sets a value indicating whether the RadCalendarDay is mapped to a date that represents a non working + day/weekend. + + + + + Gets or sets the text displayed when the mouse pointer hovers over the calendar day. + + + + + The owner of RadCalendarDay object. + + + + + Used to handle all requests for layout invalidation through a single place + + + + + Used to handle all requests for repainting through a single place + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Summary description for CalendarDayCollection. + + + + + Finds the RadCalendarDay with specified key, optionally searching child days. + + The date bound to a particular RadCalendarDay object to search for. + An array of RadCalendarDay objects whose Date property matches the specified key. + + + + Returns the index of the specified RadCalendarDay object in the collection. + + The RadCalendarDay object to locate in the collection. + The zero-based index of the item found in the CalendarDayCollection; otherwise, -1. + + + + Adds an collection of previously created RadCalendarDay objects to the collection. + + An array of RadCalendarDay objects representing the views to add to the collection. + + + + Adds a previously created RadCalendarDay object to the end of the CalendarDayCollection. + + The RadCalendarDay object to add to the collection. + + + + Adds a DateTime object to the end of the CalendarDayCollection. + + The DateTime object to add to the collection. + + + + Adds a collection of date time values to the collection. + + An IEnumerable of DateTime objects to add to the collection. + + + + Returns an enumerator that can be used to iterate through the RadCalendarDay collection. + + An IEnumerator that represents the RadCalendarDay collection. + + + + Inserts an existing RadCalendarDay object into the CalendarDayCollection at the specified location. + + The indexed location within the collection to insert the RadCalendarDay object. + The RadCalendarDay object to insert into the collection. + + + + Removes the specified RadCalendarDay object from the CalendarDayCollection. + + The RadCalendarDay object to remove. + + + + Returns an enumerator that can be used to iterate through the RadCalendarDay collection. + + An IEnumerator that represents the RadCalendarDay collection. + + + + Removes all RadCalendarDay objects in the collection of CalendarDays. + + + + + Copies the elements of CalendarDayCollection to a new + of elements. + + A one-dimensional of + elements containing copies of the elements of the . + Please refer to for details. + + + + Copies the elements of the CalendarDayCollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from CalendarDayCollection. + The Array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + + Adds a RadCalendarDay object to the collection of CalendarDays. + + The RadCalendarDay object to add to the collection. + + + + Removes all RadCalendarDay objects in the collection of CalendarDays. + + + + + Checks whether a specific RadCalendarDay object is in the collection of CalendarDays. + + The RadCalendarDay object to search. + True if the RadCalendarDay is found, false otherwise. + + + + Returns a zero based index of a RadCalendarDay object depending on the passed index. + + The zero-based index, RadCalendarDay object or the date represented by the searched RadCalendarDay object. + A zero based index of the RadCalendarDay object in the collection, or -1 if the RadCalendarDay object is not found. + + + + Adds a RadCalendarDay object in the collection at the specified index. + + The index after which the RadCalendarDay object is inserted. + The RadCalendarDay object to insert. + + + + Deletes a RadCalendarDay object from the collection. + + The RadCalendarDay object to remove. + + + + Deletes the RadCalendarDay object from the collection at the specified index. + + The index in collection at which the RadCalendarDay object will be deleted. + + + + Creates a new CalendarDayCollection object that is a copy of the current instance. + + A new CalendarDayCollection object that is a copy of this instance. + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + + + + Gets a value indicating whether access to the CalendarDayCollection is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the CalendarDayCollection. + + + + + Gets a value indicating whether the CalendarDayCollection has a fixed size. + + + + + Gets a value indicating whether the CalendarDayCollection is read-only. + + + + + Gets or sets the RadCalendarDay at the specified indexed location in the collection. + + The indexed location of the RadCalendarDay in the collection. + The RadCalendarDay at the specified indexed location in the collection. + + + + Gets the total number of RadCalendarDay objects in the collection. + + + + + Gets or sets the RadCalendarDay at the specified indexed location in the collection. + + The indexed location of the RadCalendarDay in the collection. + The RadCalendarDay at the specified indexed location in the collection. + + + + Gets or sets a RadCalendarDay object depending on the passed key. + Only integer and string indexes are valid. + + + + + Summary description for CalendarView. + + + + + Determines if a DateTime object belongs to the dates range managed by a particular CalendarView. + + The DateTime object to be tested. + True if the DateTime object belongs to the dates range managed by a particular CalendarView; False otherwise. + + + + Adds the specified date to the SelectedDates collection of RadCalendar. + + The DateTime object to add. + + + + Adds the specified range of dates to the SelectedDates collection of RadCalendar. + + array of DateTime objects to add. + + + + Adds the specified range of dates to the SelectedDates collection of RadCalendar. + + A System.DateTime that specifies the initial date to add to the SelectedDates collection. + A System.DateTime that specifies the end date to add to the SelectedDates collection. + + + + Gets a DateTime object that is part of the date range handled by the previous calendar view. + Used for traversal of the calendar. + + The DateTime object + + + + Gets a DateTime object that is part of the date range handled by the next calendar view. + Used for traversal of the calendar. + + The DateTime object + + + + + + + + + + + + Ensures that the child views collection is created. + + + + + Initializes properly the ViewStartDate, ViewEndDate, ViewRenderStartDate, ViewRenderEndDate properties + + + + + handles the page down key. + + The key data to be processed. + + + + handles the page up key. + + The key data to be processed. + + + + handles the down arrow key. + + The key data to be processed. + + + + handles the up arrow key. + + The key data to be processed. + + + + handles the End key. + + The key data to be processed. + + + + handles the Home key. + + The key data to be processed. + + + + handles the left arrow key. + + The key data to be processed. + + + + handles the right arrow key. + + The key data to be processed. + + + + Toogles the date selection (Enter key). + + The key data to be processed. + + + + Verifies CalendarView settings required for correct presentation of calendrical information. + + + + + Returns the DateTime object that is used by the CalendarView to initialize. + + DateTime object that is used by the CalendarView to initialize. + + + + handles key events that require processing from CalendarView. + + The key data to be processed. + + + + Creates a CalendarView object based on the logic implemented by the CalendarView instance + that implements the method. + + DateTime object that is used to create the CalendarView. + The created CalendarView object. + + + + Raises the PropertyChanged event + + The name of the property + + + + Gets the parent calendar that the current view is assigned to. + + + + + Gets the parent tree node of the current tree node. + + + + + Gets the collection of nodes that are assigned to the tree view control. + + + + + Gets or sets the name of the node. + + + + Gets or sets the format string that is applied to the days cells tooltip. + + The property should contain either a format specifier character or a + custom format pattern. For more information, see the summary page for + System.Globalization.DateTimeFormatInfo. + By default this property uses formatting string of + 'dddd, MMMM dd, yyyy'. Valid formats are all supported by the .NET + Framework. + Example: +
    +
  • "d" is the standard short date pattern.
  • +
  • "%d" returns the day of the month; "%d" is a custom pattern.
  • +
  • "d " returns the day of the month followed by a white-space character; "d " + is a custom pattern.
  • +
+
+
+ + + Gets or sets the orientation (rendering direction) of the calendar component. + Default value is Horizontal. + + + + + Member + Description + + + Horizontal + Renders the calendar data row after row. + + + Vertical + Renders the calendar data column after + column. + + + + + + + Gets or sets the horizontal alignment of the view title. + The ContentAlignment enumeration is defined in + System.Windows.Forms.VisualStyles + + + + + + Member name + + + Description + + + + + Center + + The contents of a container are centered. + + + Left + The contents of a container are left justified. + + + Right + The contents of a container are right justified. + + + + + + + Gets or sets a value indicating whether the tree node is visible or partially visible. + + + + + Gets the root parent node for this instance. + + + + + Gets a value indicating whether the CalendarView is the top most view displayed by RadCalendar. + + + + + Gets the zero-based depth of the tree node in the RadTreeView tree. + Returns -1 if the node is outside of a tree view. + + + + + Gets or sets a value indicating whether the calendar view is in read-only mode. + + + + + Gets or sets the text displayed for the complete CalendarView + selection element in the view selector cell. + + + The text displayed for the CalendarView selection element in the + selector cell. The default value is "". + + + Use the ViewSelectorText property to provide custom text for + the CalendarView complete selection element in the selector + cell. +
+ + + + This property does not automatically encode to HTML. You need + to convert special characters to the appropriate HTML value, unless + you want the characters to be treated as HTML. For example, to + explicitly display the greater than symbol (>), you must use the + value &gt;. + + + +
+ Because this property does not automatically encode to HTML, it is possible + to specify an HTML tag for the ViewSelectorText property. For + example, if you want to display an image for the next month navigation control, you + can set this property to an expression that contains an + <img> element. + This property applies only if the EnableViewSelector + property is set to true. +
+
+ + + Use the RowHeaderText property to provide custom text for + the CalendarView complete row header element. +
+ + + + + This property does not automatically encode to HTML. You need + to convert special characters to the appropriate HTML value, unless + you want the characters to be treated as HTML. For example, to + explicitly display the greater than symbol (>), you must use the + value &gt;. + + + +
+ Because this property does not automatically encode to HTML, it is possible + to specify an HTML tag for the RowHeaderText property. For + example, if you want to display an image for the next month navigation control, you + can set this property to an expression that contains an + <img> element. + This property applies only if the ShowRowsHeaders + property is set to true. +
+ + The text displayed for the CalendarView header element. The default value is "". + + + Gets or sets the text displayed for the row header element. + +
+ + + Use the ColumnHeaderText property to provide custom text + for the CalendarView complete column header element. +
+ + + + + This property does not automatically encode to HTML. You need + to convert special characters to the appropriate HTML value, unless + you want the characters to be treated as HTML. For example, to + explicitly display the greater than symbol (>), you must use the + value &gt;. + + + +
+ Because this property does not automatically encode to HTML, it is possible + to specify an HTML tag for the ColumnHeaderText property. For + example, if you want to display an image for the next month navigation control, you + can set this property to an expression that contains an + <img> element. + This property applies only if the ShowColumnHeaders + property is set to true. +
+ + The text displayed for the CalendarView column header element. The default value is "". + + + Gets or sets the text displayed for the column header element. + +
+ + + The image displayed for the CalendarView column header element in the + header cells. The default value is "". + + + Gets or sets the image displayed for the column header element. + + + This property applies only if the ShowColumnHeaders property + is set to true. If ColumnHeaderText is set too, + its value is set as an alternative text to the image of the column header. + When using this property, the whole image URL is generated using also the + value. + Example: + ShowColumnHeaders="true"
+ ImagesBaseDir = "Img/"
+ ColumnHeaderImage = "selector.gif"
+ complete image URL : "Img/selector.gif"
+
+
+ + + The image displayed for the CalendarView row header element. The default value is "". + + + Gets or sets the image displayed for the row header element. + + + This property applies only if the ShowRowHeaders property is + set to true. If RowHeaderText is set too, its + value is set as an alternative text to the image of the row header. + When using this property, the whole image URL is generated using also the + value. + Example:
+ ShowRowHeaders = "true"
+ ImagesBaseDir = "Img/"
+ RowHeaderImage = "selector.gif"
+ complete image URL : "Img/selector.gif"
+
+
+ + + Gets or sets the margin of the view cells + + + + + Gets or sets the margin of the view cells + + + + + Gets or sets the image displayed for the complete + selection element in the view selector cell. + + + The image displayed for the CalendarView selection element in + the selector cell. The default value is "". + + + When using this property, the whole image URL is generated using also the + value. + Example:
+ ImagesBaseDir = "Img/"
+ ViewSelectorImage = "selector.gif"
+ complete image URL : "Img/selector.gif"
+
+
+ + + Gets or sets whether the month matrix, when rendered will show days from other (previous or next) + months or will render only blank cells. + + + + Gets or sets whether the fish eye functionality is enabled. + + + Gets or sets the zooming factor of a cell which is handled by the fish eye functionality. + + + + Gets or sets the predefined pairs of rows and columns, so that the product of + the two values is exactly 42, which guarantees valid calendar layout. It is applied + on a single view level to every + + + + + + The Width applied to a Header + + + + + The Height applied to a Header + + + + Gets or sets whether a single CalendarView object will display a selector. + + + + Gets or sets the the count of rows to be displayed by a multi month CalendarView. + + + + + Gets or sets the the count of columns to be displayed by a multi month CalendarView. + + + + Gets or sets whether a single CalendarView object will display a title row. + + + Gets or sets the format string used to format the text inside the header row. + + + Gets or sets whether a CalendarView object will display a header row. + + + Gets or sets whether a CalendarView object will display a header column. + + + + Gets or sets whether row headers ( if displayed by a MonthView object) + will act as row selectors. + + + + + Gets or sets whether column headers ( if displayed by a MonthView object) + will act as column selectors. + + + + + Gets or sets whether a selector for the entire CalendarView ( + MonthView ) will appear on the calendar. + + + + + Gets a value indicating whether the CalendarView has child views. + + + + + Gets the DateTime object that is the first date to be rendered by CalendarView. + While ViewStartDate is the start date that is handled by a particular CalendarView instance, + the ViewRenderStartDate might belong to a different (previous) CalendarView object. + + + + + Gets the DateTime object that is the last date to be rendered by CalendarView. + While ViewEndDate is the start date that is handled by a particular CalendarView instance, + the ViewRenderEndDate might belong to a different (next) CalendarView object. + + + + + Gets or sets a DateTime value specifying the starting date for the period handled by a CalendarView instance. + + + + + Gets or sets a DateTime value specifying the ending date for the period handled by a CalendarView instance. + + + + + Gets or sets the size and location of the tree node in pixels, relative to the parent layout. + + + + + Gets or sets the the count of rows to be displayed by a CalendarView. + + + + + Gets or sets the the count of columns to be displayed by a CalendarView. + + + + + Gets the previous available view. Used for traversal of the calendar. + + + + + Gets the next available view. Used for traversal of the calendar. + + + + + Gets the default System.Globalization.Calendar instance as + specified by the default culture. + + + A calendar divides time into measures, such as weeks, months, and years. The + number, length, and start of the divisions vary in each calendar. + Any moment in time can be represented as a set of numeric values using a + particular calendar. For example, the last vernal equinox occurred at (0.0, 0, 46, + 8, 20, 3, 1999) in the Gregorian calendar. An implementation of Calendar can + map any DateTime value to a similar set of numeric values, and + DateTime can map such sets of numeric values to a textual representation + using information from Calendar and DateTimeFormatInfo. The + textual representation can be culture-sensitive (for example, "8:46 AM March 20th + 1999 AD" for the en-US culture) or culture-insensitive (for example, + "1999-03-20T08:46:00" in ISO 8601 format). + A Calendar implementation can define one or more eras. The + Calendar class identifies the eras as enumerated integers where the current + era (CurrentEra) has the value 0. + In order to make up for the difference between the calendar year and the + actual time that the earth rotates around the sun or the actual time that the moon + rotates around the earth, a leap year has a different number of days than a + standard calendar year. Each Calendar implementation defines leap years + differently. + For consistency, the first unit in each interval (for example, the first + month) is assigned the value 1. + The System.Globalization namespace includes the following + Calendar implementations: GregorianCalendar, + HebrewCalendar, HijriCalendar, + JapaneseCalendar, JulianCalendar, + KoreanCalendar, TaiwanCalendar, and + ThaiBuddhistCalendar. + + + + + Gets or sets the vertical spacing between the calendar cells + + + + + Gets or sets the horizontal spacing between the calendar cells + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Updates correctly the visual appearance of RadCalendar. Updates the parential + dependencies (parent and Calendar properties) also. + + the CalendarView that will be updated + + + + Finds the calendar views with specified key, optionally searching child views. + + The name of the calendar view to search for. + true to search child views; otherwise, false. + An array of CalendarView objects whose Name property matches the specified key. + + + + Returns the index of the specified calendar view in the collection. + + The CalendarView to locate in the collection. + The zero-based index of the item found in the calendar view collection; otherwise, -1. + + + + Adds an collection of previously created CalendarView objects to the collection. + + An array of CalendarView objects representing the views to add to the collection. + + + + Adds a previously created CalendarView object to the end of the CalendarViewCollection. + + The CalendarView object to add to the collection. + The zero-based index value of the CalendarView object added to the CalendarViewCollection. + + + + Returns an enumerator that can be used to iterate through the CalendarView collection. + + An IEnumerator that represents the CalendarView collection. + + + + Inserts an existing CalendarView object into the CalendarViewCollection at the specified location. + + The indexed location within the collection to insert the CalendarView object. + The CalendarView object to insert into the collection. + + + + Removes the specified CalendarView object from the CalendarViewCollection. + + The CalendarView object to remove. + + + + Returns an enumerator that can be used to iterate through the CalendarView collection. + + An IEnumerator that represents the CalendarView collection. + + + + Removes all CalendarView objects from the collection. + + + + + Copies the elements of the CalendarViewCollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from CalendarViewCollection. + The Array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + + Adds a previously created CalendarView object to the end of the CalendarViewCollection. + + The CalendarView object to add to the collection. + The zero-based index value of the CalendarView object added to the CalendarViewCollection. + + + + Removes all CalendarView objects from the collection. + + + + + Determines whether the specified CalendarView object is a member of the collection. + + The CalendarView to locate in the collection. + true if the CalendarView is a member of the collection; otherwise, false. + + + + Returns the index of the specified calendar view in the collection. + + The CalendarView to locate in the collection. + The zero-based index of the item found in the calendar view collection; otherwise, -1. + + + + Inserts an existing CalendarView object into the CalendarViewCollection at the specified location. + + The indexed location within the collection to insert the CalendarView object. + The CalendarView object to insert into the collection. + + + + Removes the specified CalendarView object from the CalendarViewCollection. + + The CalendarView object to remove. + + + + Removes the element at the specified index of the CalendarViewCollection. + + The zero-based index of the element to remove. + + + + Gets the total number of CalendarView objects in the collection. + + + + + Gets or sets the CalendarView at the specified indexed location in the collection. + + The indexed location of the CalendarView in the collection. + The CalendarView at the specified indexed location in the collection. + + + + Gets or sets by name the CalendarView instance in the collection. + + The name of the CalendarView in the collection. + The CalendarView with a specified name in the collection. + + + + Gets a value indicating whether access to the CalendarViewCollection is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the CalendarViewCollection. + + + + + Gets a value indicating whether the CalendarViewCollection has a fixed size. + + + + + Gets a value indicating whether the CalendarViewCollection is read-only. + + + + + Gets or sets the CalendarView at the specified indexed location in the collection. + + The indexed location of the CalendarView in the collection. + The CalendarView at the specified indexed location in the collection. + + + + Specifies the display formats for the days of the week used as selectors by + RadCalendar.You can specify whether the days of the week are displayed as + the full name, short (abbreviated) name, first letter of the day, or first two letters of the day. + + + + + The days of the week displayed in full format. For example, Tuesday. + + + + + The days of the week displayed in abbreviated format. For example, Tues. + + + + + The days of the week displayed with just the first letter. For example, T. + + + + + The days of the week displayed with just the first two letters. For example, Tu. + + + + + The shortest unique abbreviated day names associated with the current DateTimeFormatInfo object. + + + + + Indicates the first day of the week to use when calling date-related functions. + + + + + Sunday + + + + + Monday + + + + + Tuesday + + + + + Wednesday + + + + + Thursday + + + + + Friday + + + + + Saturday + + + + + Handled by the current System.Globalization.Calendar object. + + + + + Summary description for MonthLayout. + Layout_7columns_x_6rows - horizontal layout + Layout_14columns_x_3rows - horizontal layout + Layout_21columns_x_2rows - horizontal layout + Layout_7rows_x_6columns - vertical layout, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + Layout_14rows_x_3columns - vertical layout, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + Layout_21rows_x_2columns - vertical layout, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + + + + + Allows the calendar to display the days in a 7 by 6 matrix. + + 1 + + + + Alows the calendar to display the days in a 14 by 3 matrix. + + 2 + + + + Allows the calendar to display the days in a 21 by 2 matrix. + + 4 + + + + Allows the calendar to display the days in a 7 by 6 matrix, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + + 8 + + + + Allows the calendar to display the days in a 14 by 3 matrix, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + + 16 + + + + Allows the calendar to display the days in a 21 by 2 matrix, required when UseColumnHeadersAsSelectors is true and Orientation is set to RenderInColumns. + + 32 + + + + Summary description for RecurringEvents. + DayInMonth - Only the day part of the date is taken into account. That gives the ability to serve events repeated every month on the same day. + DayAndMonth - The month and the day part of the date is taken into account. That gives the ability to serve events repeated in a specific month on the same day. + Today - gives the ability to control the visual appearace of today's date. + None - Default value, means that the day in question is a single point event, no recurrences. + + + + + Only the day part of the date is taken into account. That gives the ability to serve events repeated every month on the same day. + + 1 + + + + The month and the day part of the date are taken into account. That gives the ability to serve events repeated in a specific month on the same day. + + 2 + + + + The week day is taken into account. That gives the ability to serve events repeated in a specific day of the week. + + 4 + + + + The week day and the month are taken into account. That gives the ability to serve events repeated in a specific week day in a specific month. + + 8 + + + + Gives the ability to control the visual appearace of today's date. + + 16 + + + + Default value, means that the day in question is a single point event, no recurrence. + + 32 + + + + Summary description for CalendarView. + + + + + Gets the string representation for a particular day in the week. + + Specifies the day of the week. + the string representation for the specified day. + + + + Retrieves the ToolTip text associated with a particular RadCalendarDay object. + + RadCalendarDay object + The retrieved ToolTip text associated with a particular RadCalendarDay object + + + + Gets the RadCalendarDay object associated with a particular DateTime object if any. + + DateTime object to be tested. + The retrieved RadCalendarDay object. + + + + Gets the month name. + + + + + Returns the number of months displayed by a particular MonthView (in this case 1). + + + + + Summary description for CalendarView. + + + + + Calculates the correct position of the CalendarView + + + + + Returns the index of the specified DateTime object in the collection. + + The DateTime object to locate in the collection. + The zero-based index of the item found in the DateTimeCollection; otherwise, -1. + + + + Adds a previously created DateTime object to the end of the DateTimeCollection. + + The DateTime object to add to the collection. + The zero-based index value of the DateTime object added to the DateTimeCollection. + + + + Returns an enumerator that can be used to iterate through the DateTime collection. + + An IEnumerator that represents the DateTime collection. + + + + Inserts an existing DateTime object into the DateTimeCollection at the specified location. + + The indexed location within the collection to insert the DateTime object. + The DateTime object to insert into the collection. + + + + CanAdd method verify whether the date can be add to the collection. + + The DateTime object to insert into the collection. + + + + Removes the specified DateTime object from the DateTimeCollection. + + The DateTime object to remove. + + + + Removes all DateTime objects from the collection. + + + + + Removes a range of DateTime elements from the DateTimeCollection. + + The zero-based starting index of the range of elements to remove. + The number of elements to remove. + + + + Adds an array of previously created DateTime objects to the collection. + + An array of DateTime objects representing the dates to add to the collection. + + + + Determines whether the specified DateTime object is a member of the collection. + + The DateTime to locate in the collection. + true if the DateTime is a member of the collection; otherwise, false. + + + + Copies the elements of the DateTime collection to a new DateTime array. + + A DateTime array + + + + Returns an enumerator that can be used to iterate through the DateTime collection. + + An IEnumerator that represents the DateTime collection. + + + + Copies the elements of the DateTimeCollection to an Array, starting at a particular Array index. + + The one-dimensional Array that is the destination of the elements copied from DateTimeCollection. + The Array must have zero-based indexing. + The zero-based index in array at which copying begins. + + + + Adds a previously created DateTime object to the end of the DateTimeCollection. + + The DateTime object to add to the collection. + The zero-based index value of the DateTime object added to the DateTimeCollection. + + + + Removes all DateTime objects from the collection. + + + + + Determines whether the specified DateTime object is a member of the collection. + + The DateTime to locate in the collection. + true if the DateTime is a member of the collection; otherwise, false. + + + + Returns the index of the specified DateTime object in the collection. + + The DateTime object to locate in the collection. + The zero-based index of the item found in the DateTimeCollection + + + + Inserts an existing DateTime object into the DateTimeCollection at the specified location. + + The indexed location within the collection to insert the DateTime object. + The DateTime object to insert into the collection. + + + + Removes the specified DateTime object from the DateTimeCollection. + + The DateTime object to remove. + + + + Removes the element at the specified index of the DateTimeCollection. + + The zero-based index of the element to remove. + + + + Creates a new DateTimeCollection object that is a copy of the current instance. + + A new DateTimeCollection object that is a copy of this instance. + + + + Creates a new object that is a copy of the current instance. + + A new object that is a copy of this instance. + + + + Gets the total number of DateTime objects in the collection. + + + + + Gets or sets the DateTime at the specified indexed location in the collection. + + The indexed location of the DateTime in the collection. + The DateTime at the specified indexed location in the collection. + + + + Gets a value indicating whether access to the DateTimeCollection is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the DateTimeCollection. + + + + + Gets a value indicating whether the DateTimeCollection has a fixed size. + + + + + Gets a value indicating whether the DateTimeCollection is read-only. + + + + + Gets or sets the DateTime at the specified indexed location in the collection. + + The indexed location of the DateTime in the collection. + The DateTime at the specified indexed location in the collection. + + + + The RadCalendar main class. + + + + + Raises the SelectionChanging event. + + A DateTimeCollection collection used by SelectionEventArgs. + A List with Dates which will be selected + SelectionEventArgs instance. + + + + Raises the SelectionChanged event. + + + + + Raises the ElementRender event of the RadCalendar control and allows you to provide a custom + handler for the ElementRender event. + + A LightVisualElement object that contains information about the cell to render. + A RadCalendarDay that contains information about the day to render. + A CalendarView that contains the day to render. + + + + Raises the ViewChanging event. + + A CalendarView collection used by ViewChangingEventArgs. + ViewChangingEventArgs instance. + + + + Raises the ViewChanged event. + + + + + Remove focused date and change the current view to today + + Indicates that all selected dates will be cleared as well. + + + + Removes the time component of a DateTime object, thus leaving only the date part. + + the DateTime object to be processed. + the DateTime object containing only the date part of the original DateTime object. + + + + Ensures that a valid CalendarView object is instantiated and used by RadCalendar as default view. + + The CalendarView object to be used as default view. + + + + Explicitely invalidates RadCalendar layout. Can be used when batch updates to calendar properties are made + outside of the control that require control invalidation. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the row in the multi-view table where the focused date is positioned. + + + + + The column in the multi-view table where the focused date is positioned. + + + + + Gets the instance of RadCalendarElement wrapped by this control. RadCalendarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadCalendar. + + + + + This property is not relevant for this class. + + + + + Specifies the navigation mode that will be used when user click on header element.Zoom navigation mode is not supporting in MultipleView of RadCalendar + + + + + Occurs when the view is about to be changed by the navigation elements. + + + + + Occurs when the view is changed by the navigation elements. + + + + + SlectionChanged event is fired when a new date is added or removed from + the SelectedDates collection. + + + + + SlectionChanged event is fired when a new date is added or removed from the + SelectedDates collection. + + + + + ElementRender event is fired after the generation of every calendar cell + object and just before it gets rendered. It is the last place where + changes to the already constructed calendar cells can be made. + + + + + ViewChanging event is fired when a navigation to a different date range is required. + + + + + ViewChanged event is fired when a navigation to a different date + range occurred. Generally this is done by using the normal navigation buttons. + + + + + Specifies the display formats for the days of the week used as selectors by RadCalendar. + + + Use the DayNameFormat property to specify the name format for the days + of the week. This property is set with one of the DayNameFormat + enumeration values. You can specify whether the days of the week are displayed as + the full name, short (abbreviated) name, first letter of the day, or first two + letters of the day. + The DayNameFormat enumeration represents the display formats for the + days of the week used as selectors by RadCalendar. + + + Member name + Description + + + FirstLetter + The days of the week displayed with just the first letter. For + example, T. + + + FirstTwoLetters + The days of the week displayed with just the first two + letters. For example, Tu. + + + Full + The days of the week displayed in full format. For example, + Tuesday. + + + Short + The days of the week displayed in abbreviated format. For + example, Tues. + + + Shortest + The shortest unique abbreviated day names associated with the current DateTimeFormatInfo + object. + + + + + + + Gets or sets a DateTimeFormatInfo instance that defines the + culturally appropriate format of displaying dates and times as specified by the default + culture. + + + A DateTimeFormatInfo can be created only for the invariant + culture or for specific cultures, not for neutral cultures. + The cultures are generally grouped into three sets: the invariant culture, + the neutral cultures, and the specific cultures. + The invariant culture is culture-insensitive. You can specify the invariant + culture by name using an empty string ("") or by its culture identifier 0x007F. + InvariantCulture retrieves an instance of the invariant culture. + It is associated with the English language but not with any country/region. It can + be used in almost any method in the Globalization namespace that requires a + culture. If a security decision depends on a string comparison or a case-change + operation, use the InvariantCulture to ensure that the behavior will be + consistent regardless of the culture settings of the system. However, the invariant + culture must be used only by processes that require culture-independent results, + such as system services; otherwise, it produces results that might be + linguistically incorrect or culturally inappropriate. + A neutral culture is a culture that is associated with a language but not + with a country/region. A specific culture is a culture that is associated with a + language and a country/region. For example, "fr" is a neutral culture and "fr-FR" + is a specific culture. Note that "zh-CHS" (Simplified Chinese) and "zh-CHT" + (Traditional Chinese) are neutral cultures. + The user might choose to override some of the values associated with the + current culture of Windows through Regional and Language Options (or Regional + Options or Regional Settings) in Control Panel. For example, the user might choose + to display the date in a different format or to use a currency other than the + default for the culture. + If UseUserOverride is true and the specified culture + matches the current culture of Windows, the CultureInfo uses those + overrides, including user settings for the properties of the + DateTimeFormatInfo instance returned by the DateTimeFormat property, + the properties of the NumberFormatInfo instance returned by the + NumberFormat property, and the properties of the + CompareInfo instance returned by the CompareInfo + property. If the user settings are incompatible with the culture associated with + the CultureInfo (for example, if the selected calendar is not one of the + OptionalCalendars ), the results of the methods and the values of + the properties are undefined.
+
+ Note: In this version of RadCalendar the + NumberFormatInfo instance returned by the + NumberFormat property is not taken into account.
+
+
+ + + Gets or sets the CultureInfo supported by this RadCalendar object. + Describes the names of the culture, the writing system, and + the calendar used, as well as access to culture-specific objects that provide + methods for common operations, such as formatting dates and sorting strings. + + + The culture names follow the RFC 1766 standard in the format + "<languagecode2>-<country/regioncode2>", where <languagecode2> is + a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> + is an uppercase two-letter code derived from ISO 3166. For example, U.S. English is + "en-US". In cases where a two-letter language code is not available, the + three-letter code derived from ISO 639-2 is used; for example, the three-letter + code "div" is used for cultures that use the Dhivehi language. Some culture names + have suffixes that specify the script; for example, "-Cyrl" specifies the Cyrillic + script, "-Latn" specifies the Latin script. + The following predefined CultureInfo names and identifiers are + accepted and used by this class and other classes in the System.Globalization + namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Culture NameCulture IdentifierLanguage-Country/Region
"" (empty string)0x007Finvariant culture
af0x0036Afrikaans
af-ZA0x0436Afrikaans - South Africa
sq0x001CAlbanian
sq-AL0x041CAlbanian - Albania
ar0x0001Arabic
ar-DZ0x1401Arabic - Algeria
ar-BH0x3C01Arabic - Bahrain
ar-EG0x0C01Arabic - Egypt
ar-IQ0x0801Arabic - Iraq
ar-JO0x2C01Arabic - Jordan
ar-KW0x3401Arabic - Kuwait
ar-LB0x3001Arabic - Lebanon
ar-LY0x1001Arabic - Libya
ar-MA0x1801Arabic - Morocco
ar-OM0x2001Arabic - Oman
ar-QA0x4001Arabic - Qatar
ar-SA0x0401Arabic - Saudi Arabia
ar-SY0x2801Arabic - Syria
ar-TN0x1C01Arabic - Tunisia
ar-AE0x3801Arabic - United Arab Emirates
ar-YE0x2401Arabic - Yemen
hy0x002BArmenian
hy-AM0x042BArmenian - Armenia
az0x002CAzeri
az-AZ-Cyrl0x082CAzeri (Cyrillic) - Azerbaijan
az-AZ-Latn0x042CAzeri (Latin) - Azerbaijan
eu0x002DBasque
eu-ES0x042DBasque - Basque
be0x0023Belarusian
be-BY0x0423Belarusian - Belarus
bg0x0002Bulgarian
bg-BG0x0402Bulgarian - Bulgaria
ca0x0003Catalan
ca-ES0x0403Catalan - Catalan
zh-HK0x0C04Chinese - Hong Kong SAR
zh-MO0x1404Chinese - Macau SAR
zh-CN0x0804Chinese - China
zh-CHS0x0004Chinese (Simplified)
zh-SG0x1004Chinese - Singapore
zh-TW0x0404Chinese - Taiwan
zh-CHT0x7C04Chinese (Traditional)
hr0x001ACroatian
hr-HR0x041ACroatian - Croatia
cs0x0005Czech
cs-CZ0x0405Czech - Czech Republic
da0x0006Danish
da-DK0x0406Danish - Denmark
div0x0065Dhivehi
div-MV0x0465Dhivehi - Maldives
nl0x0013Dutch
nl-BE0x0813Dutch - Belgium
nl-NL0x0413Dutch - The Netherlands
en0x0009English
en-AU0x0C09English - Australia
en-BZ0x2809English - Belize
en-CA0x1009English - Canada
en-CB0x2409English - Caribbean
en-IE0x1809English - Ireland
en-JM0x2009English - Jamaica
en-NZ0x1409English - New Zealand
en-PH0x3409English - Philippines
en-ZA0x1C09English - South Africa
en-TT0x2C09English - Trinidad and Tobago
en-GB0x0809English - United Kingdom
en-US0x0409English - United States
en-ZW0x3009English - Zimbabwe
et0x0025Estonian
et-EE0x0425Estonian - Estonia
fo0x0038Faroese
fo-FO0x0438Faroese - Faroe Islands
fa0x0029Farsi
fa-IR0x0429Farsi - Iran
fi0x000BFinnish
fi-FI0x040BFinnish - Finland
fr0x000CFrench
fr-BE0x080CFrench - Belgium
fr-CA0x0C0CFrench - Canada
fr-FR0x040CFrench - France
fr-LU0x140CFrench - Luxembourg
fr-MC0x180CFrench - Monaco
fr-CH0x100CFrench - Switzerland
gl0x0056Galician
gl-ES0x0456Galician - Galician
ka0x0037Georgian
ka-GE0x0437Georgian - Georgia
de0x0007German
de-AT0x0C07German - Austria
de-DE0x0407German - Germany
de-LI0x1407German - Liechtenstein
de-LU0x1007German - Luxembourg
de-CH0x0807German - Switzerland
el0x0008Greek
el-GR0x0408Greek - Greece
gu0x0047Gujarati
gu-IN0x0447Gujarati - India
he0x000DHebrew
he-IL0x040DHebrew - Israel
hi0x0039Hindi
hi-IN0x0439Hindi - India
hu0x000EHungarian
hu-HU0x040EHungarian - Hungary
is0x000FIcelandic
is-IS0x040FIcelandic - Iceland
id0x0021Indonesian
id-ID0x0421Indonesian - Indonesia
it0x0010Italian
it-IT0x0410Italian - Italy
it-CH0x0810Italian - Switzerland
ja0x0011Japanese
ja-JP0x0411Japanese - Japan
kn0x004BKannada
kn-IN0x044BKannada - India
kk0x003FKazakh
kk-KZ0x043FKazakh - Kazakhstan
kok0x0057Konkani
kok-IN0x0457Konkani - India
ko0x0012Korean
ko-KR0x0412Korean - Korea
ky0x0040Kyrgyz
ky-KZ0x0440Kyrgyz - Kazakhstan
lv0x0026Latvian
lv-LV0x0426Latvian - Latvia
lt0x0027Lithuanian
lt-LT0x0427Lithuanian - Lithuania
mk0x002FMacedonian
mk-MK0x042FMacedonian - FYROM
ms0x003EMalay
ms-BN0x083EMalay - Brunei
ms-MY0x043EMalay - Malaysia
mr0x004EMarathi
mr-IN0x044EMarathi - India
mn0x0050Mongolian
mn-MN0x0450Mongolian - Mongolia
no0x0014Norwegian
nb-NO0x0414Norwegian (Bokmål) - Norway
nn-NO0x0814Norwegian (Nynorsk) - Norway
pl0x0015Polish
pl-PL0x0415Polish - Poland
pt0x0016Portuguese
pt-BR0x0416Portuguese - Brazil
pt-PT0x0816Portuguese - Portugal
pa0x0046Punjabi
pa-IN0x0446Punjabi - India
ro0x0018Romanian
ro-RO0x0418Romanian - Romania
ru0x0019Russian
ru-RU0x0419Russian - Russia
sa0x004FSanskrit
sa-IN0x044FSanskrit - India
sr-SP-Cyrl0x0C1ASerbian (Cyrillic) - Serbia
sr-SP-Latn0x081ASerbian (Latin) - Serbia
sk0x001BSlovak
sk-SK0x041BSlovak - Slovakia
sl0x0024Slovenian
sl-SI0x0424Slovenian - Slovenia
es0x000ASpanish
es-AR0x2C0ASpanish - Argentina
es-BO0x400ASpanish - Bolivia
es-CL0x340ASpanish - Chile
es-CO0x240ASpanish - Colombia
es-CR0x140ASpanish - Costa Rica
es-DO0x1C0ASpanish - Dominican Republic
es-EC0x300ASpanish - Ecuador
es-SV0x440ASpanish - El Salvador
es-GT0x100ASpanish - Guatemala
es-HN0x480ASpanish - Honduras
es-MX0x080ASpanish - Mexico
es-NI0x4C0ASpanish - Nicaragua
es-PA0x180ASpanish - Panama
es-PY0x3C0ASpanish - Paraguay
es-PE0x280ASpanish - Peru
es-PR0x500ASpanish - Puerto Rico
es-ES0x0C0ASpanish - Spain
es-UY0x380ASpanish - Uruguay
es-VE0x200ASpanish - Venezuela
sw0x0041Swahili
sw-KE0x0441Swahili - Kenya
sv0x001DSwedish
sv-FI0x081DSwedish - Finland
sv-SE0x041DSwedish - Sweden
syr0x005ASyriac
syr-SY0x045ASyriac - Syria
ta0x0049Tamil
ta-IN0x0449Tamil - India
tt0x0044Tatar
tt-RU0x0444Tatar - Russia
te0x004ATelugu
te-IN0x044ATelugu - India
th0x001EThai
th-TH0x041EThai - Thailand
tr0x001FTurkish
tr-TR0x041FTurkish - Turkey
uk0x0022Ukrainian
uk-UA0x0422Ukrainian - Ukraine
ur0x0020Urdu
ur-PK0x0420Urdu - Pakistan
uz0x0043Uzbek
uz-UZ-Cyrl0x0843Uzbek (Cyrillic) - Uzbekistan
uz-UZ-Latn0x0443Uzbek (Latin) - Uzbekistan
vi0x002AVietnamese
vi-VN0x042AVietnamese - Vietnam
+
+
+ + + Gets the default System.Globalization.Calendar instance as + specified by the default culture. + + + A calendar divides time into measures, such as weeks, months, and years. The + number, length, and start of the divisions vary in each calendar. + Any moment in time can be represented as a set of numeric values using a + particular calendar. For example, the last vernal equinox occurred at (0.0, 0, 46, + 8, 20, 3, 1999) in the Gregorian calendar. An implementation of Calendar can + map any DateTime value to a similar set of numeric values, and + DateTime can map such sets of numeric values to a textual representation + using information from Calendar and DateTimeFormatInfo. The + textual representation can be culture-sensitive (for example, "8:46 AM March 20th + 1999 AD" for the en-US culture) or culture-insensitive (for example, + "1999-03-20T08:46:00" in ISO 8601 format). + A Calendar implementation can define one or more eras. The + Calendar class identifies the eras as enumerated integers where the current + era (CurrentEra) has the value 0. + In order to make up for the difference between the calendar year and the + actual time that the earth rotates around the sun or the actual time that the moon + rotates around the earth, a leap year has a different number of days than a + standard calendar year. Each Calendar implementation defines leap years + differently. + For consistency, the first unit in each interval (for example, the first + month) is assigned the value 1. + The System.Globalization namespace includes the following + Calendar implementations: GregorianCalendar, + HebrewCalendar, HijriCalendar, + JapaneseCalendar, JulianCalendar, + KoreanCalendar, TaiwanCalendar, and + ThaiBuddhistCalendar. + + + + + Gets or sets the format string that will be applied to the dates presented in the + calendar area. + + + For additional details see Date Format Pattern + topic + + + + + Specifies the day to display as the first day of the week on the + RadCalendar control. + + + The FirstDayOfWeek enumeration represents the values that specify + which day to display as the first day of the week on the RadCalendar control. + + + Member name + Description + + + Default + The first day of the week is specified by the system + settings. + + + Friday + The first day of the week is Friday. + + + Monday + The first day of the week is Monday. + + + Saturday + The first day of the week is Saturday. + + + Sunday + The first day of the week is Sunday. + + + Thursday + The first day of the week is Thursday. + + + Tuesday + The first day of the week is Tuesday. + + + Wednesday + The first day of the week is Wednesday. + + + + + + Gets or sets the format string that is applied to the calendar title. + + The property should contain either a format specifier character or a + custom format pattern. For more information, see the summary page for + System.Globalization.DateTimeFormatInfo. + By default this property uses formatting string of + 'MMMM yyyy'. Valid formats are all supported by the .NET + Framework. + Example: +
    +
  • "d" is the standard short date pattern.
  • +
  • "%d" returns the day of the month; "%d" is a custom pattern.
  • +
  • "d " returns the day of the month followed by a white-space character; "d " + is a custom pattern.
  • +
+
+
+ + Gets or sets the format string that is applied to the days cells tooltip. + + The property should contain either a format specifier character or a + custom format pattern. For more information, see the summary page for + System.Globalization.DateTimeFormatInfo. + By default this property uses formatting string of + 'dddd, MMMM dd, yyyy'. Valid formats are all supported by the .NET + Framework. + Example: +
    +
  • "d" is the standard short date pattern.
  • +
  • "%d" returns the day of the month; "%d" is a custom pattern.
  • +
  • "d " returns the day of the month followed by a white-space character; "d " + is a custom pattern.
  • +
+
+
+ + + Gets or sets the separator string that will be put between start and end months in a multi view title. + + + + + Gets or sets the the count of rows to be displayed by a single CalendarView. + + + If the calendar represents a multi view, this property applies to the child views + inside the multi view. + + + + + Gets or sets the the count of columns to be displayed by a single CalendarView. + + + If the calendar represents a multi view, this property applies to the child views + inside the multi view. + + + + + Gets the today button of the footer element + + + + + Gets the clear button of the footer element + + + + + The Width applied to a Header + + + + + The Height applied to a Header + + + + + Gets or sets the horizontal alignment of the date cells content inside the + calendar area. + + + + + + Member name + + + Description + + + + + Center + + The contents of a container are centered. + + + Left + The contents of a container are left justified. + + + Right + The contents of a container are right justified. + + + + + + + Gets or sets the the count of rows to be displayed by a multi month CalendarView. + + + + + Gets or sets the the count of columns to be displayed by a multi month CalendarView. + + + + + Gets or sets the maximum date valid for selection by + Telerik RadCalendar. Must be interpreted as the higher bound of the valid + dates range available for selection. Telerik RadCalendar will not allow + navigation or selection past this date. + + + This property has a default value of 12/30/2099 + (Gregorian calendar date). + + + + + Gets or sets the minimal date valid for selection by + Telerik RadCalendar. Must be interpreted as the lower bound of the valid + dates range available for selection. Telerik RadCalendar will not allow + navigation or selection prior to this date. + + + This property has a default value of 1/1/1980 + (Gregorian calendar date). + + + + + Gets or sets a value indicating whether the calendar is in read-only mode. + + + + + Sets or returns the currently selected date. The default value is the value of + System.DateTime.MinValue. + + + Use the SelectedDate property to determine the selected date on the >RadCalendar control. + The SelectedDate property and the SelectedDates collection are closely related. + When the AllowMultipleSelect property is set to false, a mode that allows only a single date selection, + SelectedDate and SelectedDates[0] have the same value and SelectedDates.Count equals 1. + When the AllowMultipleSelect property is set to true, mode that allows multiple date + selections, SelectedDate and SelectedDates[0] have the same value. + The SelectedDate property is set using a System.DateTime object. + When the user selects a date on the RadCalendar control, the SelectionChanged + event is raised. The SelectedDate property is updated to the selected date. + The SelectedDates collection is also updated to contain just this + date. +
+ Note Both the SelectedDate property and the + SelectedDates collection are updated before the SelectionChanged + event is raised. You can override the date selection by using the + OnSelectionChanged event handler to manually set the + SelectedDate property. The SelectionChanged event does not get + raised when this property is programmatically set. +
+
+
+ + + Gets or sets the value that is used by RadCalendar to determine + the viewable area displayed . + + + By default, the FocusedDate property returns the current + system date when in runtime, and in design mode defaults to + System.DateTime.MinValue. When the FocusedDate is + set, from that point, the value returned by the FocusedDate + property is the one the user sets. + + + + + Gets a collection of DateTime objects that represent the + selected dates on the RadCalendar control. + + + A DateTimeCollection that contains a collection of System.DateTime objects representing the selected + dates on the RadCalendar control. The default value is an empty DateTimeCollection. + + + Use the SelectedDates collection to determine the currently selected + dates on the control. + The SelectedDate property and the SelectedDates collection are closely related. When the AllowMultipleSelect + property is set to false, a mode that allows only a single date selection, + SelectedDate and SelectedDates[0] have the same value and + SelectedDates.Count equals 1. When the AllowMultipleSelect + property is set to true, mode that allows multiple date selections, + SelectedDate and SelectedDates[0] have the same value. + The SelectedDates property stores a collection of DateTime objects. + When the user selects a date or date range (for example with the column or + rows selectors) on the RadCalendar control, the SelectionChanged + event is raised. The selected dates are added to the SelectedDates + collection, accumulating with previously selected dates. The range of dates are not + sorted by default. The SelectedDate property is also updated to + contain the first date in the SelectedDates collection. + You can also use the SelectedDates collection to programmatically + select dates on the Calendar control. Use the Add, Remove, Clear, and SelectRange + methods to programmatically manipulate the selected dates in the SelectedDates collection. +
+ Note Both the SelectedDate property and the + SelectedDates collection are updated before the SelectionChanged + event is raised.You can override the dates selection by using the + OnSelectionChanged event handler to manually set the + SelectedDates collection. The SelectionChanged event is not + raised when this collection is programmatically set. +
+
+
+ + + Gets or sets whether navigating RadCalendar is allowed. + + + + + Gets or sets whether the fast navigation in RadCalendar is allowed. + + + + + Gets or sets the text displayed for the previous month navigation control. Will be + applied only if there is no image set (see + NavigationPrevImage). + + + Use the NavigationPrevText property to provide custom text for the + previous month navigation element in the title section of + RadCalendar. + + + The text displayed for the CalendarView previous month + navigation cell. The default value is "&lt;". + + + + + Gets or sets the text displayed for the next month navigation control. Will be + applied if there is no image set (see + NavigationNextImage). + + + The text displayed for the CalendarView next month navigation + cell. The default value is "&gt;". + + + Use the NavigationNextText property to provide custom text for the + next month navigation element in the title section of + RadCalendar. + + + + + Gets or sets the text displayed for the fast navigation previous month control. + + + The text displayed for the CalendarView selection element in the + fast navigation previous month cell. The default value is + "&lt;&lt;". + + + Use the FastNavigationPrevText property to provide custom text for + the next month navigation element in the title section of + RadCalendar. + + + + + Gets or sets the text displayed for the fast navigation next month control. + + + The text displayed for the CalendarView selection element in the + fast navigation next month cell. The default value is "&gt;&gt;". + + + Use the FastNavigationNextText property to provide custom text for + the next month navigation element in the title section of RadCalendar. + + + + + Gets or sets the image that is displayed for the previous month navigation control. + + + + + Gets or sets the image that is displayed for the next month navigation control. + + + + + Gets or sets the image that is displayed for the previous month fast navigation control. + + + + + Gets or sets the image that is displayed for the next month fast navigation control. + + + + + Gets or sets the text displayed as a tooltip for the previous month navigation control. + + + Use the NavigationPrevToolTip property to provide custom text for the + tooltip of the previous month navigation element in the title section of + RadCalendar. + + + The tooltip text displayed for the CalendarView previous month + navigation cell. The default value is "&lt;". + + + + + Gets or sets the text displayed as a tooltip for the next month navigation control. + + + The tooltip text displayed for the CalendarView next month + navigation cell. The default value is "&gt;". + + + Use the NavigationNextToolTip property to provide custom text for the + tooltip of the next month navigation element in the title section of + RadCalendar. + + + + + Gets or sets the text displayed as a tooltip for the fast navigation previous + month control. + + + Use the FastNavigationPrevToolTip property to provide custom text for + the tooltip of the fast navigation previous month element in the title section of + RadCalendar. + + + The tooltip text displayed for the CalendarView fast navigation + previous month cell. The default value is "&lt;&lt;". + + + + + Gets or sets the text displayed as a tooltip for the fast navigation previous + month control. + + + Use the FastNavigationPrevToolTip property to provide custom text for + the tooltip of the fast navigation previous month element in the title section of + RadCalendar. + + + The tooltip text displayed for the CalendarView fast navigation + previous month cell. The default value is "&lt;&lt;". + + + + + Gets or sets the horizontal alignment of the view title. + The ContentAlignment enumeration is defined in + System.Windows.Forms.VisualStyles + + + + + + Member name + + + Description + + + + + Center + + The contents of a container are centered. + + + Left + The contents of a container are left justified. + + + Right + The contents of a container are right justified. + + + + + + + Allows RadCalendar to render multiple months in a single view. + + + + + Allows the selection of dates. If not set, selection is forbidden, and if any dates are all ready selected, they are cleared. + + + + + Allows the selection of multiple dates. If not set, only a single date is selected, and if any dates + are all ready selected, they are cleared. + + + + Gets or sets whether the navigation buttons should be visible. + + + Gets or sets whether the fast navigation buttons should be visible. + + + Gets or sets whether RadCalendar will display a footer row. + + + Gets or sets whether RadCalendar will display a header/navigation row. + + + Gets or sets whether the column headers will appear on the calendar. + + + Gets or sets whether the row headers will appear on the calendar. + + + Gets or sets whether a single CalendarView object will display a header . + + + Gets or sets whether a single CalendarView object will display a selector. + + + + Gets or sets whether the view selector will be allowed to select all dates presented by the CalendarView. + + + + Gets or sets the zooming factor of a cell which is handled by the zooming (fish eye) functionality. + + + Gets or sets whether the zooming functionality is enabled. + + + + Gets or sets whether row headers ( if displayed by a MonthView object) + will act as row selectors. + + + + + Gets or sets whether column headers ( if displayed by a MonthView object) + will act as column selectors. + + + + + Gets or sets whether the month matrix, when rendered will show days from other (previous or next) + months or will render only blank cells. + + + + + Gets or sets the predefined pairs of rows and columns, so that the product of + the two values is exactly 42, which guarantees valid calendar layout. It is applied + on a single view level to every MonthView instance in the calendar. + + + The following values are applicable and defined in the MonthLayout + enumeration:
+
+ Layout_7columns_x_6rows - horizontal layout
+
+ Layout_14columns_x_3rows - horizontal layout
+
+ Layout_21columns_x_2rows - horizontal layout
+
+ Layout_7rows_x_6columns - vertical layout, required when AllowColumnHeaderSelectors is true and + Orientation is set to Vertical.
+
+ Layout_14rows_x_3columns - vertical layout, required when AllowColumnHeaderSelectors + is true and Orientation is set to Vertical.
+
+ Layout_21rows_x_2columns - vertical layout, required when AllowColumnHeaderSelectors is true and Orientation + is set to Vertical.
+
+
+ + + RadCalendar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadCalendar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Use the RowHeaderText property to provide custom text for + all row header elements. + + + The text displayed for all CalendarView row header elements. The default value is "". + + + Gets or sets the text displayed for all row header elements. + + + + + The image displayed for all CalendarView row header elements. The default value is "". + + + Gets or sets the image displayed for all row header elements. + + + + + Use the ColumnHeaderText property to provide custom text + for all CalendarView column header elements. + + + The text displayed for all CalendarView column header elements. The default value is "". + + + Gets or sets the text displayed for all column header elements. + + + + + The image displayed for all CalendarView column header elements. The default value is null. + + + Gets or sets the image displayed for all column header elements. + + + + + Gets or sets the text displayed for the view selector. + + + The text displayed for the view selector. The default value is "x". + + + Use the ViewSelectorText property to provide custom text for + the CalendarView selector element. + + + + + Gets or sets the image displayed for the view selector element. + + + The image displayed for the CalendarView selector element. The default value is null. + + + + + Gets or sets the orientation (rendering direction) of the calendar component. + Default value is Horizontal. + + + + + Member + Description + + + Horizontal + Renders the calendar data row after row. + + + Vertical + Renders the calendar data column after + column. + + + + + + + Gets or sets an integer value representing the number of CalendarView + views that will be scrolled when the user clicks on a fast navigation button. + + + + + A collection of special days in the calendar to which may be applied specific formatting. + + + + + Gets or sets the padding of the calendar cells. + + + + + Gets or sets the vertical spacing between the calendar cells. + + + + + Gets or sets the horizontal spacing between the calendar cells. + + + + + Gets or sets the margin of the calendar cells. + + + + + Exposes the top instance of CalendarView or its derived types. + Every CalendarView class handles the real calculation and + rendering of RadCalendar's calendric information. The + CalendarView has the ChildViews collection which contains all the sub views in case of a multi view + setup. + + + + Indicates the fish eye feature factor of a cell. + + + Gets or sets the zooming factor of a cell. + + + Gets or sets the week end cell. + + + Gets or sets the date which that cell is representing. + + + Gets or sets a cell representing a special day. + + + Gets or sets the today cell. + + + Gets or sets the today cell. + + + Gets or sets the out of range cell. + + + Gets or sets the cell which is from other month. + + + Gets or sets the selected cell. + + + + enable or disable animation on mouse click + + + + Specifies the type of a selector sell. + + + + Rendered as the first cell in a row. When clicked if UseRowHeadersAsSelectors is true, + it will select the entire row. + + + + + Rendered as the first cell in a column. When clicked if UseColumnHeadersAsSelectors is true, + it will select the entire column. + + + + + Rendered in the top left corner of the calendar view. When clicked if EnableViewSelector is true, + it will select the entire view. + + + + + Gets or sets the count of the items in the fast navigation drop down + + + + + first button + + + + + Last button + + + + + previuos button + + + + + next button + + + + + today button + + + + + label element + + + + + Gets or sets date time format + + + + + Gets or sets a value whether drop down fast navigation is enabled. + + + + Gets or sets whether the fish eye functionality is enabled + + + Gets or sets the zooming factor of a cell which is handled by the fish eye functionality.. + + + Gets or sets the width of header cells. + + + Gets or sets the height of header cells. + + + + first button + + + + + Last button + + + + + previuos button + + + + + next button + + + + + Sets the way opacity is applied to carousel items + + + + + Opacity is not modified + + + + + Selected item is with opacity 1.0. Opacity decreases corresponding to the distance from the selected item. + + + + + Opacity increases relatively to items' ZIndex. The Item with greatest ZIndex has opacity of 1.0 + + + + + CreateNewCarouselItem delegate usined by RadCarousel control + + + + + Arguments of CreateNewCarouselItem event + + + + + Initializes a new instance of the class. + + The new carousel item. + + + + Gets or sets the newly created item that will be added in RadCarousel + + + + + Represents a custom made ellipse path which will be used to specify the path travelled by carousel items when animated + + + + + Gets or sets the angle where itms new items will first appear in the carousel view. + + + + + RadCarouselContentItem with CarouselElement and Reflection primitive + + + + + create element with HostedItem + + + + + + Custom implementation for RadCarouselItem + + + + + + + Represent the HostedItem + + + + + Gets the owner RadCarouselElement. + + The owner. + + + Represents a RadCarouselReflectionItem primitive that is drawn on the screen. + + + + Default cstor for RadCarouselReflectionPrimitive + + which element will be draw + + + + repaint Reflection Image + + + + + ElementInvalidated + + + + + + + Represent ItemReflectionPercentage + + + + + Represents a color editor box. The RadColorBox class is a simple wrapper for the + RadColorBoxElement class. The RadColorBox acts + to transfer events to and from its corresponding + RadColorBoxElement. The + RadColorBoxElement which is essentially the + RadColorBox control may be nested in other telerik controls. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the RadColorDialog of this control. + + + + + Gets the RadColorBoxElement of this control. + + + + + Gets or sets the value of the editor. + + + + + Determines if users can input text directly into the text field.. + + + + + This property is not relevant for this class. + + + + + Fires after the color dialog is closed. + + + + + Fires right before the value is changed. Cancelable event. + + + + + Fires after the editor value is changed. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + Initializes a new instance of the RadItemCollectionBase class. + + + + + Initializes a new instance of RadItemCollection based on another RadItemCollection. + + + + A RadItemCollection from which the contents are copied. + + + + + + Initializes a new instance of RadItemCollection containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Returns an enumerator that can iterate through + the RadItemCollection . + + None. + + + + Adds a with the specified value to the + Telerik.WinControls.RadItemCollection . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the RadItemCollection. + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another RadItemCollection to the end of the collection. + + + + A RadItemCollection containing the objects to add to the collection. + + + None. + + + + + Inserts a into the RadItemCollection at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + RadItemCollection . + + The to remove from the RadItemCollection . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Gets a value indicating whether the + RadItemCollection contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Returns the index of a in + the RadItemCollection . + + The to locate. + + The index of the of in the + RadItemCollection, if found; otherwise, -1. + + + + + Copies the RadItemCollection values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from RadItemCollection . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the RadItemCollection is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + Retrieves an array of the items in the collection. + + + + Fires when item is changed. + + + + + Gets or sets the owner of the collection. + + + + + Gets or sets an array of the items' types in the collection. + + + + + Gets or sets an array of the excluded items' types for this collection. + + + + + Gets or sets an array of the sealed items' types for this collection. + That are types that are allowed but not their descendants. + + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Gets the first found item, with Name property equal to itemName specified, case-sensitive. + + item Name + RadItem if found, null (Nothing in VB.NET) otherwise + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + Initializes a new instance of the RadItemCollectionBase class. + + + + + Initializes a new instance of RadItemCollection based on another RadItemCollection. + + + + A RadItemCollection from which the contents are copied. + + + + + + Initializes a new instance of RadItemCollection containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Returns an enumerator that can iterate through + the RadItemCollection . + + None. + + + + Adds a with the specified value to the + Telerik.WinControls.RadItemCollection . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the RadItemCollection. + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another RadItemCollection to the end of the collection. + + + + A RadItemCollection containing the objects to add to the collection. + + + None. + + + + + Inserts a into the RadItemCollection at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + RadItemCollection . + + The to remove from the RadItemCollection . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Gets a value indicating whether the + RadItemCollection contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Returns the index of a in + the RadItemCollection . + + The to locate. + + The index of the of in the + RadItemCollection, if found; otherwise, -1. + + + + + Copies the RadItemCollection values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from RadItemCollection . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the RadItemCollection is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + Retrieves an array of the items in the collection. + + + + Fires when item is changed. + + + + + Gets or sets the owner of the collection. + + + + + Gets or sets an array of the items' types in the collection. + + + + + Gets or sets an array of the excluded items' types for this collection. + + + + + Gets or sets an array of the sealed items' types for this collection. + That are types that are allowed but not their descendants. + + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Gets the first found item, with Name property equal to itemName specified, case-sensitive. + + item Name + RadItem if found, null (Nothing in VB.NET) otherwise + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + Initializes a new instance of the RadItemCollectionBase class. + + + + + Initializes a new instance of RadItemCollection based on another RadItemCollection. + + + + A RadItemCollection from which the contents are copied. + + + + + + Initializes a new instance of RadItemCollection containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Returns an enumerator that can iterate through + the RadItemCollection . + + None. + + + + Adds a with the specified value to the + Telerik.WinControls.RadItemCollection . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the RadItemCollection. + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another RadItemCollection to the end of the collection. + + + + A RadItemCollection containing the objects to add to the collection. + + + None. + + + + + Inserts a into the RadItemCollection at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + RadItemCollection . + + The to remove from the RadItemCollection . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Gets a value indicating whether the + RadItemCollection contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Returns the index of a in + the RadItemCollection . + + The to locate. + + The index of the of in the + RadItemCollection, if found; otherwise, -1. + + + + + Copies the RadItemCollection values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from RadItemCollection . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the RadItemCollection is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + Retrieves an array of the items in the collection. + + + + Fires when item is changed. + + + + + Gets or sets the owner of the collection. + + + + + Gets or sets an array of the items' types in the collection. + + + + + Gets or sets an array of the excluded items' types for this collection. + + + + + Gets or sets an array of the sealed items' types for this collection. + That are types that are allowed but not their descendants. + + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Gets the first found item, with Name property equal to itemName specified, case-sensitive. + + item Name + RadItem if found, null (Nothing in VB.NET) otherwise + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + Represents data item for the list of strips in the customize dialog of the . + + + + + Represents visual item for the list of strips in the customize dialog of the . + + + + + Represents data item for the list of strip items in the customize dialog of the . + + + + + Represents visual item for the list of strip items in the customize dialog of the . + + + + + Provides customization dialogs for the customization of a . + + + + + Creates an instance of a dialog form. + + + object that contains information about strips. + A refference to the created form. + + + + Creates a default localization provider. + + A new instance of the default localization provider. + + + + Fires when the current dialog provider has changed. + + + + + Fires when a customize dialog is shown + + + + + Fires before a customize dialog is shown + + + + + Gets or sets the current localization provider. + + + + + Represents a simple dialog that provides customization options for the element. + + + + + Creates a customize dialog that provides customization options for the strips in the specified . + + The from which the information for the strips will be taken. + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Sets the strings values depending on the current localization provider. + + + + + Represents a form that holds the items of a that has been undocked and is floating. + + + + + Tries to dock the floating strip in a specified . + + The control into which the strip should be docked. + + + + Tries to dock the floating strip on a specified point of screen. The docking will be completed only if + the control under that point is . + + The location in screen coordinates where the strip should try to dock. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the control that hosts the floating items. + + + + + Gets or sets the parent of the control to which the floating strip belongs. + + + + + Gets the which contains information about the floating strip. + + + + + Gets or sets the which the floating form is hosting. + + + + + Provides localization services for . + + + + + Represents localization strings for . + + + + + Holds information about the strips in a + + + + + Adds information about a specific strip to the + + The object to add info about. + + + + Removes information about a specific strip from the + + The object to remove info about. + + + + Gets a list of elements for which the is storing info. + + + + + Represents a menu item on the context menu opened by right click on the RadCommandBar control. + Has a coresponding element and controls its VisibleInCommandBar property. + + + + + This create the default layout + + + + + + Represent Layout that holds elements over the menu + + + + + Represents an arrow button element. Each telerik control has a + corresponding tree of RadElements; the RadArrowButtonElement can be nested + in other telerik controls. + + + + Gets or sets the + %arrow direction:Telerik.WinControls.Primitives.ArrowPrimitive.ArrowDirection%. + + + Gets the ArrowPrimitive object. + + + + Represents a drop down list in . + + + + + Selects a range of text in the editable portion of the combo box + + The position of the first character in the current text selection within the text box. + The number of characters to select. + + + + Selects all the text in the editable portion of the DropDownList box. + + + + + selects the hosted control + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets the hosted . + + + + + Gets the collection of data-binding objects for this IBindableComponent. + + + + + Gets or sets the BindingContext for the object. + + + + + Gets the items collection of the . + + + + + Gets a reference to the drop down form associated with this RadDropDownList. + + + + + Determines whether control's height will be determined automatically, depending on the current Font. + + + + + Gets or sets the maximum number of items to be shown in the drop-down portion of the RadDropDownList. + + + + + Gets or sets a value that indicates whether items will be sized according to + their content. If this property is true the user can set the Height property of each + individual RadListDataItem in the Items collection in order to override the automatic + sizing. + + + + + Gets or sets the maximum number of characters the user can type or paste into the text box control. + + + + + + + + Gets or sets a value of the enumeration. + This value determines how the pop-up form can be resized: vertically, horizontally or both. + + + + + Gets or sets a value indicating whether string comparisons are case-sensitive. + + + + + + Specifies the mode for the automatic completion feature used in the DropDownList + and the TextBox controls. + + + + + + Rotate items on double click in the edit box part + + + + + + Gets or sets an object that implements the IFormatProvider interface. This object is used when formatting items. The default object is + CultureInfo.CurrentCulture. + + + + + + Gets or sets a format string that will be used for visual item formatting if FormattingEnabled is set to true. + + + + + + Gets or sets a value that determines whether text formatting is enabled for the visual items. + + + + + + /// + Gets or sets the easing type of the animation. + + + + + Gets or sets a value indicating whether the RadDropDownList will be animated when displaying. + + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + + + Gets or sets the height in pixels of the drop-down portion of the RadDropDownList. + + + + + Gets or sets a value specifying the style of the DropDownList + + + + + DefaultItems count in drop-down portion of the RadDropDownList. + + + + + Gets or sets the drop down maximum size. + + + + Represent the DropDownListElement element + + + + + Represent the List element + + + + + Provides a readonly interface to the currently selected items. + + + + + Gets or sets the currently selected value. Setting the SelectedValue to a value that is shared between many items causes the first item to be selected. + This property triggers the selection events. + + + + + Gets or sets the selected logical list item. + Setting this property will cause the selection events to fire. + + + + + Gets or sets the position of the selection. + Setting this property will cause the SelectedIndexChanging and SelectedIndexChanged events to fire. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Gets or sets the object that is responsible for providing data objects for the RadListElement. + + + + + Gets or sets a string which will be used to get a text string for each visual item. This value can not be set to null. Setting + it to null will cause it to contain an empty string. + + + + + Gets or sets the string through which the SelectedValue property will be determined. This property can not be set to null. + Setting it to null will cause it to contain an empty string. + + + + + Enable or disable Mouse Wheel Scrolling. + + + + + Indicating whether the Popup part of the control + are displayed. + + + + + Gets or sets a predicate which filters which items can be visible. + + + + + Gets or sets a filter expression which determines which items will be visible. + + + + + Gets a value indicating whether there is a Filter or FilterExpression set. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + Gets or sets the text that is selected in the editable portion of the DropDownList. + + + + + Gets or sets the number of characters selected in the editable portion of the combo box. + + + + + Gets or sets the starting index of text selected in the combo box. + + + + + Show or hide item from the strip + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Occurs when the popup is about to be opened. + + + + + Occurs when the popup is opened. + + + + + Occurs when the popup is about to be closed. + + + + + Occurs when the popup is closed. + + + + + Occurs when the CommandBarTextBox has focus and the user presses a key + + + + + Occurs when the CommandBarTextBox has focus and the user releases the pressed key up + + + + + Occurs when the CommandBarTextBox has focus and the user presses a key down + + + + + Occurs when the Text property value is about to be changed. + + + + + Occurs when the Text property value changes. + + + + + Represents a button in . + + + + + Represents a drop down button in . + + + + + Gets the arrow part of the button. + + + + + Gets or sets the drop down menu, opened on click. + + + + + Gets menu items collection + + + + + Represents a host for elements in . + + + + + Gets or sets the hosted . + + + + + Gets or sets the hosted . + + + + + Show or hide item from the strip + + + + + Represents a label in . + + + + + Represents a separator for the items in . + + + + + Gets or sets the thickness of the separator item. + + + + + Represents a split button in . + + + + + Raises the event. + + true if the event should be canceled, false otherwise. + + + + Raises the event. + + + + + Occurs when the default item is changed. + + + + + Occurs before the default item is changed. + + + + + Gets or sets the default item of the split button. + + + + + Represetns a text box in . + + + + + Appends the given text + + + + + + Clears the editing control's text + + + + + Clears and undoes the text + + + + + Copies the selected text + + + + + Cuts the selected text + + + + + clears the selection + + + + + Gets a character from a given point + + + + + + + Gets the index of a character at a given point + + + + + + + gets the index of the first char in a given line + + + + + + + gets the first char index at the current line + + + + + + Gets a line number from a char index + + + + + + + Gets the position from a char index + + + + + + + pastes the text in the clipboard + + + + + Pasted a given text + + + + + + scrolls the textbox to the caret position + + + + + Makes a selection in a given range specified by a start position and selection length + + + + + + + selects the whole text + + + + + selects the hosted control + + + + + Show or hide item from the strip + + + + + Gets or sets the hosted . + + + + + Gets or sets the prompt text that is displayed when the TextBox contains no text + + + + + Gets or sets the color of prompt text that is displayed when the TextBox contains no text + + + + + Gets or sets the number of characters selected in the editable portion of the textbox. + + + + + Gets or sets the starting index of text selected in the textbox. + + + + + Occurs when the CommandBarTextBox has focus and the user pressees a key + + + + + Occurs when the CommandBarTextBox has focus and the user releases the pressed key up + + + + + Occurs when the CommandBarTextBox has focus and the user pressees a key down + + + + + Occurs when the Text property value is about to be changed. + + + + + Occurs when the Text property value changes. + + + + + Occurs when the element recieves focus. + + + + + Occurs when the element loses focus. + + + + + Represents a toggle button in . + + + + + Raises the StateChanging event. + + + + + Raises the StateChanged event. + + + + + Raises the StateChanged event. + + + + + Raises the IsCheckedChanged event. + + + + + Occurs when the IsChecked property is changed. + + + + + Occurs before the toggle state is changed. + + + + + Occurs when the toggle state is changed. + + + + + Occurs when the elements's check state changes. + + + + + Gets or sets the CheckState + . CheckState enumeration defines the following values: Unchecked, Checked, and Indeterminate. + + + + + Gets or sets the toggle + state. Toggle state enumeration defines the following values: Off, + Indeterminate, and On. + + + + + Gets or sets a value indicating whether the toggle button has three or two + states. + + + + + + Represents a RadCommandBar control - a flexible component for implementation of tool and + button bars featuring docking behavior, toggling buttons, shrinkable toolbars. The RadCommandBar is responsible for managing + RadCommandBarBaseItem items which are positioned on some + of the CommandBarStripElement elements /// + + + Only items that inherit the RadCommandBarBaseItem class + can be placed inside the strip elements. You han use the special CommandBarHostItem + to host any other RadElement. + + + + + + Raises the event. + + A that contains the + event data. + True if the change of orientation should be canceled, false otherwise. + + + + Raises the event. + + A that contains the + event data. + + + + Propagete ThemeName to child bar's menu + + + + + Apllies the orientation to the control and its child elements. + + The orientation to apply + Indicates whether events should be fired + + + + Gets or sets which RadCommandBar borders are docked to its parent control and determines + how a control is resized with its parent. + + + One of the values. The default + is . + + + The value assigned is not one of the + values. + + 1 + + + + Gets the menu opened upon rightclick on the control. + + + + + Gets or sets the size in pixels when current strip is being Drag and Drop in next or previous row. + + + + + Gets or sets the RadCommandBarElement of the RadCommandBar control. + + + + + Gets or sets the orientation of the commandbar - could be horizontal or vertical. + This property is controlled by the Dock property of the RadCommandBar control. + + + + + RadCommandBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadCommandBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs before the orientation is changed. + + + + + Occurs after the orientation is changed. + + + + + Occurs before a floating form is created. + + + + + Occurs before a floating strip is docked. + + + + + Occurs when a floating strip is created. + + + + + Occurs when a floating strip is docked. + + + + + Gets the rows of the commandbar. + + + + + Represents the RootElement of the RadCommandBar control. + + + + + Raises a bubble event to notify its parents about the beginning of a drag. + + A that contains the + event data. + true if the drag should be canceled, false otherwise. + + + + Raises a bubble event to notify its parents about the end of a drag. + + A that contains the + event data. + + + + Raises a bubble event to notify its parents about the drag. + + A that contains the + event data. + + + + Paints the dots of the grip element. + + The IGraphics object where the element should be painted. + The angle under which the element should be painted. + The factor of scaling the element. + + + + Gets the delta of the drag. + + + + + Gets whether the item is being dragged. + + + + + Gets or sets the orientation of the grip element. + + + + + Gets or sets the that owns the grip element. + + + + + Gets or sets the size of the painted dots. + + + + + Gets or sets the space between dots. + + + + + Gets or sets the shadow offset of the dots. + + + + + Gets or sets the number of dots. + + + + + Gets or sets the elements orientation inside the stacklayout. + Possible values are horizontal and vertical. + + + + + Represent a single strip with controls inside + + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The collection that is changed. + The targeted element of the collection. + The type of the operation. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + true if the event should be canceled, false otherwise. + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + true if the event should be canceled, false otherwise. + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + true if the event should be canceled, false otherwise. + + + + Raises the event. + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + true if the event should be canceled, false otherwise. + + + + Forces the drag to end. + + + + + Measures the items with the size given and calculates the expected size of the strip + including the and . + + The size to measure the items with. + The calculated size of the strip. + + + + Subscribes to the children's events. + + + + + Unsubscribe from the children's events. + + + + + Applies an orientation to the strip and its children. + + The orientation to apply. + + + + Occurs before dragging is started. + + + + + Occurs when item is being dragged. + + + + + Occurs when item is released and dragging is stopped. + + + + + Occurs when Items collection is changed. + + + + + Occurs when item is clicked. + + + + + Occurs when item is moved to the overflow panel. + + + + + Occurs when item is moved out from the overflow panel. + + + + + Occurs before oferflow menu is opened. + + + + + Occurs when overflow menu is opened. + + + + + Occurs before oferflow menu is opened. + + + + + Occurs when overflow menu is opened. + + + + + Occurs before VisibleInCommandBar property is changed. + + + + + Occurs when VisibleInCommandBar property is changed. + + + + + Occurs before item is moved in or out of the UncheckedItems collection. + + + + + Occurs when item is moved in or out of the UncheckedItems collection. + + + + + Occurs before VisibleInCommandBar property is changed. + + + + + Occurs when VisibleInCommandBar property is changed. + + + + + Occurs when Orientation property is changed. + + + + + Occurs before Orientation property is changed. + + + + + Gets the form in which the items are placed where the strip is floating. + + + + + Gets the layout panel in which the items are arranged. + + + + + Gets or sets Overflow menu single strip minimum size. + + + + + Gets or sets Overflow menu single strip maximum size. + + + + + Gets or sets the desired location of the strip element. + + + + + + Gets or sets if the strip can be dragged. + + + + + + Gets or sets if the strip can be floating. + + + + + + Gets the delta of the drag. + + + + + + Gets or sets whether the strip is beeing dragged. + + + + + Gets or sets whether the strip is visible in the command bar. + This property is changed by the context menu which is opened on right click on the control. + + + + + + Gets or sets the elements orientation inside the line element. + Possible values are horizontal and vertical. + + + + + Gets whether the strip has items in its overflow panel. + + + + + Gets or sets the element of the strip. + + + + + Gets or sets the element of the strip. + + + + + Gets the items contained in the strip. + + + + + Represent a layout for the items contained in a strip + + + + + Represent the overflow button at the end of each strip + + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + + + + Raises the event. + + The element that is reponsible for firing the event. + A that contains the + event data. + + + + Raises the event. + + The element that is reponsible for firing the event. + A that contains the + event data. + + + + Gets the "Add or Remove Items" menu item from overflow menu + + + + + Gets the menu item from overflow menu which opens the Customize Dialog + + + + + Gets the overflow panel which contains the overflowed items + + + + + Gets the RadDropDownMenu that is shown on click. + + + + + Gets whether there are items in the overflow panel. + + + + + Gets or sets the orientation of the overflow button. + + + + + Gets or sets the dropdown menu element theme name. + + + + + Gets or sets the panel in which overflowed items are arranged. + + + + + Gets or sets the ArrowPrimitive element of the button. + + + + + This event fires before oferflow menu is opened. + + + + + This event fires when overflow menu is opened. + + + + + This event fires before oferflow menu is opened. + + + + + This event fires when overflow menu is opened. + + + + + Represents a menu item from drop down menu opened by the . + Has a coresponding item from the Items collection and + controls its VisibleInStrip property. + + + + + Create RadCommandBarOverflowMenuItem instance + + Which item will be show in menu + Menu that should be updated on representedItem visibility is changed + + + + Gets or sets the image that is displayed on menu item element. + + + + + Gets or sets the text that is displayed on menu item element. + + + + + Gets or sets whether the item is in checked state. + This property affects the VisibleInStrip property of the coresponding item in . + + + + + Represents a row of the . + Contains a collection of elements. + + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + The element that is responsible for firing the event. + A that contains the + event data. + + + + Raises the event + + A that contains the + event data. + + + + Raises the event. + + A that contains the + event data. + True if the change of orientation should be canceled, false otherwise. + + + + Moves specified in coresponding row + if its property points to a location in other row. + + The to move. + + + + Applies the new orientation to the element and its children. + + The orientation to apply. + + + + Gets or sets the that owns this row. + + + + + Occurs before dragging is started. + + + + + Occurs when item is being dragged. + + + + + Occurs when item is released and dragging is stopped. + + + + + Occurs when Orientation property is changed. + + + + + Occurs before Orientation property is changed. + + + + + Gets the elements contained in this row. + + + + + This class provides API for managing components. + + + + + Gets an instance of the struct + that represents the location of the current alert + according to its screen position setting and + the currently opened alerts. + + An instance of the + class that represents the alert which position to define. + The evaluated position in screen coordinates. + + + + Sets the active screen. The active screen is used + to calculate the positioning of all desktop alerts. + + An instance of the + class that is the active screen to set. + + + + Gets an enumerator for the currently shown dekstop alerts. + + + + + + Recalculates the location of all opened alerts + based on their screen position. + + + + + Registers an instance of the and + displays it on the screen according to its + + + + + + Unregisters a desktop alert from the manager. + + The alert to unregister. + + + + Evaluates whether a given + is registered with the . + + The to check. + + + + + Fires when an instance of the class + is registered with this . + + + + + Fires when an instance of the class + is removed from this . + + + + + Gets the only instance of the + class. + + + + + Gets an instance of the class + that represents the screen onto which the + positions the alert popups. + + + + + This class encapsulates information relevant to the events of the . + + + + + Creates an instance of the class + with a specified . + + + + + + Gets an instance of the class + associated with the event context. + + + + + This class represents the popup of a component. + This popup hosts an instance of the class which + represents the element hierarchy of the alert. + + + + + Creates an instance of the class. + + An instance of the class that + represents the owner alert of the + + + + Creates an instance of the class + with specified owner. + + An instance of the class that + represents the owner element of the + An instance of the class that + represents the owner alert of the + + + + Stops the auto-close timer. + + + + + Restarts the auto-close timer. + + + + + Gets a sets a boolean value determining whether the alert popup will be automatically + closed after a given amount of time. + + + + + Gets or sets the amount of time in seconds after + which the alert will be automatically closed. + + + + + Gets or sets a boolean value determining whether the options button is shown. + + + + + Gets or sets a boolean value determining whether the pin button is shown. + + + + + Gets or sets a boolean value determining whether the close button is shown. + + + + + Gets or sets a boolean value determining whether the popup is pinned on the screen. + + + + + Gets or sets a boolean value determining whether the popup + can be moved by dragging it by the grip. + + + + + Gets an instance of the which + represents the main alert element. + + + + + Gets or sets the caption text of the alert. + + + + + Gets or sets the content text of the alert. + + + + + Gets or sets the content image of the alert. + + + + + Gets an instance of the that + holds the buttons items added to the alert component. + + + + + This class represents the element which holds the buttons + that can be added in a window. + + + + + Gets an instance of the that + represents the buttons collection of the window. + + + + + Gets an instance of the + that represents the layout panel which holds the added buttons. + + + + + This class represents the caption of a . + It contains caption grip which is used to move the alert window, close + button and options drop-down button. + + + + + Gets an instance of the class + that represents the part of a that + can be used to move the component on the screen. + + + + + Gets an instance of the class + that represents the part of a that contains + the text and the system buttons. + + + + + This class represents the caption grip of a window. + + + + + This class represents the content of a component. + The content usually is built of an image and HTML enabled text. + + + + + This element represents the text and system buttons part of a component. + + + + + Gets an instance of the that + represents the layout panel which holds the alert window's + text and system buttons elements. + + + + + Gets an instance of the that + represents the layout panel which holds the alert window's caption + buttons. + + + + + Gets an instance of the class + that represents the text of the text + caption. + + + + + Gets an instance of the class + that represents the close button of a component. + + + + + Gets an instance of the class + that represents the pin button of a component. + + + + + Gets an instance of the class + that represents the options button of a component. + + + + + This class represents the main element of a window. + + + + + Gets or sets a value indicating whether the control is automatically resized by Height + to display its entire contents. + + + + + Gets or sets a boolean value determining whether the options button is shown. + + + + + Gets or sets a boolean value determining whether the pin button is shown. + + + + + Gets or sets a boolean value determining whether the close button is shown. + + + + + Gets or sets an instance of the class + that represents the alert's content image. + + + + + Gets or sets the text of the caption. + + + + + Gets or sets the content text of the . + This is the actual text displayed in a . + + + + + Gets an instance of the class + that represents the caption of a component. + The caption contains moving grip and system buttons. + + + + + Gets an instance of the class + that represents the main content element of a component. + This element contains an image and a text element. + + + + + Gets an instance of the class + that represents the panel which holds the buttons added to the + component. + + + + + This class encapsulates information needed for displaying a . + The class contains caption text, content text, content image and a collection of buttons. + + + + + Creates an instance of the class + with specified content text. + + The text which will be displayed as a content of the + + + + Creates an instance of the class + with specified content text and caption text. + + The text which will be displayed as a content of the + The text which will be displayed as a caption of the + + + + Creates an instance of the class + with specified content text, caption text and content image. + + The text which will be displayed as a content of the + The text which will be displayed as a caption of the + An instance of the class that will be displayed as a content image of the + + + + Creates an instance of the class + with specified content text, caption text, content image and a collection of buttons. + + The text which will be displayed as a content of the + The text which will be displayed as a caption of the + An instance of the class that will be displayed as a content image of the + An instance of the class that holds the buttons which will be displayed in the + + + + Represents a set of possible screen positions for a + windows. + + + + + The window is shown + at the position that is set to the Location property. + + + + + The window is shown + at the bottom right part of the working area + of the current screen. + + + + + The window is shown + centered at the bottom part of the working area + of the current screen. + + + + + The window is shown + at the bottom left part of the working area + of the current screen. + + + + + The window is shown + at the top right part of the working area + of the current screen. + + + + + The window is shown + centered at the top part of the working area + of the current screen. + + + + + The window is shown + at the top left part of the working area + of the current screen. + + + + + This class represents a Desktop Alert component which can be used to + display a small window on the screen to notify the user that an + event occurred. The location of the window and the way it appears + can be customized. + + + + + Creates an instance of the class. + + + + + Creates an instance of the class. + + An implementation of the interface + that holds this instance. + + + + Returns an instance of the class + that represents the alert's popup + + + + + Displays the alert popup on the screen at the specified location. + + + + + Hides the alert popup from the screen. + + + + + Resets the explicit location modifier. In other words, if the user + has modified the location of the alert's popup, the + will not consider it when rearranging the visible alerts. This method + will reset the explicit location modifier and thus the + will continue managing the location of the alert according to its location settings. + + + + + Gets or sets a value indicating whether the control is automatically resized by Height + to display its entire contents. + + + + Gets or sets a value indicating whether control's elements are aligned + to support locales using right-to-left fonts. + One of the values. + The default is . + The assigned + value is not one of the values. + + + + + Gets or sets a boolean value determining whether a sound is played + when the alert's popup is shown. + + + + + Gets or sets the sound which is played when the alert's popup is shown + and the PlaySound property is set to true. + + + + + Gets or sets the initial opacity of the alert's popup. + + + + + Gets or sets a boolean value determining whether the options button is shown. + + + + + Gets or sets a boolean value determining whether the pin button is shown. + + + + + Gets or sets a boolean value determining whether the close button is shown. + + + + + Gets or sets a boolean value determining whether the alert's + popup will be pinned on the screen. If pinned, the alert's popup + will not be automatically closed upon mouse click outside its bounds + or if the AutoClose property is set to true. + + + + + Gets or sets a boolean value determining whether the popup + can be moved by dragging the caption grip. + + + + + Gets or sets a boolean value determining whether the alert's popup + will be animated. + + + + + Gets or sets a value determining the direction of the alert's popup animation. + + + + + Gets or sets the count of the alert's drop-down animation frames. + + + + + Gets or sets the type of the drop-down animation easing. + + + + + Gets or sets a value from the + enumerator that determines the type of fade animation performed + when the alert's popup is opened/closed. + + + + + Gets or sets the interval in milliseconds between two animation frames. + + + + + Gets or sets the count of animation frames for the fade animation. + + + + + Gets a sets a boolean value determining whether the alert popup will be automatically + closed after a given amount of time. + + + + + Gets or sets the amount of time in seconds after + which the alert will be automatically closed. + + + + + Gets or sets a value of the + enum which defines the position of the alert popup + on the working area of the active screen. + + + + + Gets or sets an instance of the struct + which defines fixed size for the alert's popup. The default + value is an empty size. In this case the popup adjusts its + size according to its content. Otherwise the value of this property is + considered. + + + + + Gets or sets the content image of the . + + + + + Gets or sets the text displayed in the alert popup. This text + can be additionally HTML formatted to achieve better appearance. + + + + + Gets or sets the alert's caption text. + The caption text is displayed below the moving grip of the alert's popup. + + + + + Gets or sets the items collection containing the button items shown at the bottom + part of the desktop alert's popup. + + + + + Gets the items collection containing the items added to the options drop-down button + of the desktop alert's popup. + + + + + Gets an instance of the class + that represents the popup of the desktop alert. + + + + + This element is used for the sole purpose of storing the current DPI scale. + + + + + Fires when the alert's popup is about to be opened. The opening + action can be canceled by modifying the arguments of this event. + + + + + Fires when the alert's popup was opened. + + + + + Fires when the alert's popup is about to be closed. + The closing action can be canceled by modifying the + arguments of this event.. + + + + + Fires when the alert's popup was closed. + + + + + IsItemsDirty Property + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + Gets or sets the object that is responsible for providing data objects for the AutoComplete Suggest. + + + + + DropDownList Property + + + + + represent Navigation Button position + + + + + RadCarouses is a control that animates a group of items in Carousel-style + rotation. + + + You can add item to RadCarousel control using Items collection, or through binding + to data by assigning its DataSource properties. In order to manage the display of + great number of items you may need to set the + property to true. In this case you should specify the maximum + visible number of item, using the property. + Item path can be specified through property. Each + carousel path instance contains properties to adjust various aspects of the path + curve, including "start" and "end" position, selected items position. If you use a + RadCarousel bound to a data, you would need to handle the + ItemDataBound event to change each carouselItem's + properties according to items in the data source. You may also need to handle the + CreateNewCarouselItem event, to change the default type of items + RadCarousel will produce when data binding. + + + + + Enable or disable the re-animation of RadCarousel on form maximize, minimize or resize + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the default size of the control. + + + + + Gets a reference to the Carousel element, which encapsulates the most of the + functionality of RadCarousel + + + + + Gets ot sets the number of animation frames between two positions + + + + + Gets or sets the delay in ms. between two frames of animation + + + + + Gets or sets a value indicating that the Carousel will loop items automatically + + + + + Gets or sets a value indicating whether carousel will increment or decrement item indexes when in auto-loop mode. + + + + + Gets or sets a value indicating when carousel will pause looping if in auto-loop mode. + + + + + Gets or sets a value indicating the interval (in seconds) after which the carousel will resume looping when in auto-loop mode. + + + + + + + + + + + + + Gets or sets the item in the carousel that is currently selected. + + + + + + + Gets or sets the field from the data source to use as the actual value for the + carousel items. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMember property. + + + + + Gets or sets the number of items that carousel displays when is set to true. + + + + + Get or sets value indicating the maximum number of items that will be displayed in + the carousel, even when there are more Items in the + collection. Virtualizing the carousel would significantly improve its performance. + + + False indicates that all items be displayed. + It depends on SelectedIndex, which items are displayed in this case. + + + + + Gets or sets value indicating that when item position goes beyond the carousel + path, it will be displayed again in the beginning of the carousel path. + + + + + + + + Sets the way opacity is applied to carousel items + + + + + Gets or sets value indicating the minimum value of the opacity applied to items + + + + + + + + Gets or sets value indicating which of the predefined animations will be applied to carousel items + + + + + Gets or sets the default action when item is clicked as member. + + The item click default action. + + + + Gets or sets value indicating the height (in percentage - values from 0.0. to 1.0) of reflection that will be painted bellow each carousel item. + + The item reflection percentage. + + 0.0 indicates no reflection and 1.0 indicates 100% of the height of the original item + + + + + Present the Previous button + + + + + Pressent the Next button + + + + + Get or sets the minimum size to apply on an element when layout is calculated. + + + + + Represent the Navigation buttons Positions + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether the keyboard navigation is enabled. + + + + + Provides values for ItemClickDefaultAction property + + + + + Indicates that item click will not be handeled by default + + + + + Indicates that item will be set selected when clicked. + + + + + RadElement that animates a list of items using Carousel-style view, used by control + + + + + Fires the ItemLeaving event + + Event specific arguemtns + + + + Fires the ItemEntering event + + Event specific arguemtns + + + + Raises the CreateNewCarouselItem event. + + + + + Raises the ItemDataBound event. + + + + + Raises the SelectedItemChanged event. + + + + + Raises the SelectedValueChanged event. + + + + + Raises the SelectedIndexChanged event. + + + + + Finds the first item in the list box that matches the specified string. + + The string to search for. + The zero-based index of the first item found; returns null if no match is found. + + + Initiates batch update of the items. + + + Ends batch update of the items. + + + Gets the value of the given item. + + + + Finds the first item in the list with Text that starts with the specified string. + + The string to search for. + The zero-based index of the first item found; returns null if no match is found. + + + + Finds the first item in the list with Text containing the specified string. + + The string to search for. + The zero-based index of the first item found; returns null if no match is found. + + + + Occurs when an Item is about to leave carousel view + + + + + Occurs when an Item is about to enter carousel view + + + + + Occurs before a new databound carousel item is created. You can use this event to + replace the default item. + + + + Occurs after an Item is databound. + + + Occurs when the selected items is changed. + + + Fires when the selected value is changed. + + + Fires when the selected index is changed. + + + Gets a collection of RadItem objects managed by RadCarousel. + + Items are populated automatically when RadCarousel is data-bound. When using , carousel displays only number of items at a time. + + + + Gets the element, which contains all visible carousel items + + + + Gets or sets a value indicating whether sorting of carousel items is + case-sensitive. + + + + + Gets or sets a value indicating whether the keyboard navigation is enabled. + + + + Gets or sets the item in the carousel that is currently selected. + + + Gets or sets the index the currently selected item. + + + Gets or sets a value defining the currently selected item. + + + + Gets or sets the field from the data source to use as the actual value for the + carousel items. + + + + + Gets or sets a value indicating whether formatting is applied to the DisplayMember property. + + + + Gets or sets the data source that the carousel will bind to. + + + + Gets or sets the default action when item is clicked as member. + + The item click default action. + + + + Gets or sets value indicating the height (in percentage - values from 0.0. to 1.0) of reflection that will be painted bellow each carousel item. + + The item reflection percentage. + + 0.0 indicates no reflection and 1.0 indicates 100% of the height of the original item + + + + + Set ot get the Carousel animation frames + + + + + Set ot get the Carousel animation frames delay + + + + + Gets or sets a value indicating the interval (in seconds) after which the carousel will resume looping when in auto-loop mode. + + + + + Present the Previous button + + + + + Pressent the Next button + + + + + Get or sets the minimum size to apply on an element when layout is calculated. + + + + + Represent the Navigation buttons Possitions + + + + + Type of animation to be applied on carousel items + + + + + Enable or disable the re-animation of RadCarousel on form maximize, minimeze or resize + + + + + Sets the way opacity is applied to carousel items + + + + + Gets the owner RadCarouselElement. + + The owner. + + + + Gets or sets CarouselPath object that defines the curve which carousel items will animate through + + + + + Gets or sets carousel items' animation easing. + + + + + + + + Gets or sets the set of animations to be applied on carousel items + + + + + Set ot get the Carousel animation frames + + + + + Set ot get the Carousel animation frames + + + + + Gets or sets a value indicating whether carousel will increnment or decrement item indexes when in auto-loop mode. + + + + + Gets or sets a value indicating that the Carousel will loop items automatically + + + + + Gets or sets a value indicating when carousel will pause looping if in auto-loop mode. + + + + + Gets or sets the font for this RadListDataItem instance. + + + + Represents the method that will handle the DataBindingComplete event of a RadListView and RadDropDownList + 2 + + + Provides data for the ListBindingCompleteEventHandler event. + 2 + + + Initializes a new instance of the ListBindingCompleteEventArgs class. + One of the values. + + + Gets a value specifying how the list changed. + One of the values. + 1 + + + + Gets or sets the font. Font type defines a particular format for text, including + font face, size, and style attributes. + + + + + Contains the visual list item which is to be formatted in the VisualItemFormatting event of RadListControl. + + + + + Gets the visual list item which is to be formatted. + + + + + Allows setting custom instances of the visual list items in RadListControl. + + + + + Gets or sets the custom visual list item that will be used as visual representation + of the data items. + + + + + Allows setting custom instances of the data items in RadListControl. + + + + + Gets or sets a data item that will be used to store logical information + to represent data records. + + + + + Provides a data item that was just bound during RadListControls data binding. + + + + + Gets the data item that was just associated with a data record. + The data record can be accessed through the DataBoundItem property. + + + + + Provides the new sort style after the same property of RadListControl changes. + + + + + Gets the new sort style value. + + + + + This interface is used to provide alternative ways to compare strings. + Users can assign their custom comparer to the FindStringComparer property of the respective control. + + + + + This class is used to create the initial instance of the IFindStringComparer. + It uses the string StartsWith method. + + + + + This class is used to precisely compare strings. It searches for an item whose text is exactly equal to the provided string. + + + + + This class is used to determine whether a string contains another string. + + + + + This enum is used in RadListControl.FindString() to determine whether an item is searched via the text property + set by the user or the text provided by the data binding logic. + + + + + Clears this instance. + + + + + Gets a value for the Value property in unbound mode. + + Returns an object reference pointing to the value of the Value property in unbound mode. + + + + This method is called when setting the Value property of a RadListDataItem when it is in unbound mode. + + The value to set the Value property to. + + + + Key object that is used by the FindByKey method of RadListView. + By default this property holds a reference to the . + + + + + Gets or sets the key for the left image associated with this list view item. + + Image Property + ImageIndex Property + + + + Gets or sets the left image list index value of the image displayed. + + Image Property + ImageKey Property + + + + Gets or sets a value that indicates if this item is current. + + + + + Gets a value indicating whether this instance has style. + + true if this instance has style; otherwise, false. + + + + Gets or sets a value for the property indicated by ValueMember if in bound mode, and private value in unbound mode. + Trying to explicitly set this property in bound mode will result in an InvalidOperationException. + + + + + Gets or sets the text. + + The text. + + + + Gets a value that indicates if this item is selected. + + + + + Gets a value that indicates if this item is currently visible. + + + + + Gets a value that indicating the current check state of the item. + + + + + This collection is used for adding items at design time. It should not be used in runtime. + + + + + Gets or sets the backcolor of the list node. Color type represents an ARGB color. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the list item. This property is applicable to radial, glass, + office glass, gel, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the list item. This property is applicable to radial, glass, + office glass, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the backcolor of the list item. This property is applicable to radial, glass, + office glass, and vista gradients. + + GradientStyle Property + NumberOfColors Property + + + + Gets or sets the border color of the list item. + + + + + Gets or sets gradient angle for linear gradient. + + GradientStyle Property + GradientPercentage Property + GradientPercentage2 Property + NumberOfColors Property + The default value is 90.0. + + + + Gets or sets GradientPercentage for linear, glass, office glass, gel, vista, and + radial gradients. + + GradientStyle Property + GradientPercentage2 Property + GradientAngle Property + NumberOfColors Property + The default value is 0.5. + + + + Gets or sets GradientPercentage for office glass, vista, and radial + gradients. + + GradientStyle Property + GradientPercentage Property + GradientAngle Property + NumberOfColors Property + The default value is 0.5. + + + + Gets and sets the gradient style. The possible values are defined in the gradient + style enumeration: solid, linear, radial, glass, office glass, gel, and vista. + + + The default value is + GradientStyles.Linear. + + GradientStyles Enumeration + GradientPercentage Property + GradientPercentage2 Property + GradientAngle Property + NumberOfColors Property + + + + Gets or sets the number of used colors in the gradient effect. + + BackColor Property + BackColor2 Property + BackColor3 Property + BackColor4 Property + GradientStyle Property + The default value is 4. + + + + Gets or sets the relation between the image and the text. + + + + + Gets or sets the font. + + The font. + + + + Gets or sets the color of the fore. + + The color of the fore. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the back color4. + + The back color4. + + + + Gets or sets the back color3. + + The back color3. + + + + Gets or sets the back color2. + + The back color2. + + + + Gets or sets the color of the back. + + The color of the back. + + + + Gets or sets the number of colors. + + The number of colors. + + + + Gets or sets the gradient percentage2. + + The gradient percentage2. + + + + Gets or sets the gradient percentage. + + The gradient percentage. + + + + Gets or sets the gradient angle. + + The gradient angle. + + + + Gets or sets the gradient style. + + The gradient style. + + + + Gets or sets the text alignment. + + The text alignment. + + + + Gets or sets the image alignment. + + The image alignment. + + + + Sets the owner for this column. This method is used internally, never call it directly. + + The owner element. + + + + Adjusts the column width to fit the contents of all cells in the column, including the header cell. + + + + + Gets the that owns this column. + + + + + Gets the maximum width that the column can be resized to. + + + + + Gets the minimum width that the column can be resized to. + + + + + Gets the current width of the column. + + + + + Gets the name of the field of the bound item corresponding to this column. + + + + + Gets the name of the column. Must be unique for each column in the same . + + + + + Gets or sets the text that will be displayed in the header cells. + + + + + Gets a value indicating whether the column is in bound mode. + + + + + Gets or sets a value indicating whether this column is current. + + + + + Gets or sets a value indicating whether this column will be visible in DetailsView. + + + + + Gets or sets the mode by which the column automatically adjusts its width after BestFit is executed. + + + + + Gets or sets a value indicating whether the group's items should be displayed. + + + + + Gets the items in this group. + + + + + Gets the data group that is assigned to this group. + + + + + Clears this instance. + + + + + Used by the best fit columns mechanism so the cell measure would ignore the column width. + + + + + Represents the method that will handle events in . + + + + + + + Provides data for all events used in + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets a value indicating whether the instance to be processed by . + + + + + Defines the check on click mode. Check on click states are used in RadListView and RadCheckedListBox. + + + + + Item CheckState is not toggled on click. + + + + + Item is selected and CheckState is toggled on first click. + + + + + Item is selected on first click. On second click the CheckState is toggled. + + + + + Determines whether this instance can execute a best fit columns operation. + + + true if this instance can execute a best fit columns operation; otherwise, false. + + + + + Widens / shrinks a column based on the space required by the text in the columns. + + The column. + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + + + + Widens / shrinks all columns based on the space required by the text in the columns. + + The mode. + + + + Gets or sets the RadImageShape instance which describes the hint that indicates where a column will be dropped after a drag operation. + + + + + Represents the view type of . + + + + + Represents a simple list view type. + + + + + Represents an icon view type. + + + + + Represents a detailed view type. + + + + + Represents a check box element. The RadCheckBox + class is a simple wrapper for the RadCheckBoxElement class. The + RadCheckBox acts to transfer events to and from its + corresponding RadCheckBoxElement instance. The radCheckBoxElement which is + essentially the RadCheckBox control may be nested in + other telerik controls. + + + + Gets or sets a value indicating the alignment of the check box. + + + + Gets an instance of the class + that represents the check box part of the . + + + + + Gets the item that is being dropped. + + + + + Gets the item that the DraggedItem is being dropped on. + + + + + Gets the item that is being dropped. + + + + + Gets the item that the DraggedItem is being dropped on. + + + + + Provides data for the RadPageViewItemsChanged event. + + + + + Gets the changed item. + + + + + Gets the change operation. + + + + + Initializes a new instance of the RadPageViewItemsChangedEventArgs class. + + The changed item. + The change operation. + + + + Provides data for the RadPageViewItemSelected event. + + + + + Gets the previous selected item of RadPageView. + + + + + Gets the selected item of RadPageView. + + + + + Initializes a new instance of the RadPageViewItemSelectedEventArgs class. + + The previous selected item of RadPageView. + The selected item of RadPageView. + + + + Provides data for the RadPageViewItemSelecting event. + + + + + Gets the selected item of RadPageView. + + + + + Gets the item to be selected. + + + + + Initializes a new instance of the RadPageViewItemSelectingEventArgs class. + The selected item of RadPageView. + The item to be selected. + + + + + Gets or sets the rectangle (in screen coordinates) which will be used to align the menu. + + + + + Gets a list with all the items that will be displayed. + + + + + Gets or sets the horizontal alignment of the menu that will display the items. + + + + + Gets or sets the vertical alignment of the menu that will display the items. + + + + + Gets the view mode associated with the event. + + + + + Determines whether the event may continue or it should be canceled. + + + + + Gets the string corresponding to the given ID. + + String ID + The string corresponding to the given ID. + + + + Gets or sets the width of the items area. + + + + + Represents a page in a RadPageView instance. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the image to be displayed by the associated RadPageViewItem instance. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the title of the Page. Title appears in the Header area of the owning RadPageView. + + + + + Gets or sets the length of the current . The length + represents the fixed amount of space the page will take when the layout of the control is performed. + Note: This property is only functional when the control + is in ExplorerBar mode and its content size mode is set to FixedLength. + + + + + Gets or sets a boolean value determining whether the content of the current + is visible. This property is only functional in the + when the control is in ExplorerBar view mode. + + + + + Gets or sets the tooltip to be displayed when the item hovers page's associated item. + + + + + Gets or sets the text to be displayed in the associated item. + + + + + Gets the RadPageView instance that owns this page. + + + + + Gets the RadPageViewItem instance which is the UI representation of this page. + + + + + Gets or sets the size of the item of RadPageView.This size will be used in is PageViewItemSizeMode.Individual mode. + + + + + This enumerator defines the possible size modes for the content areas in a . + The size modes define how the content areas are calculated according to their content or the size of the + control. + + + + + The length of the content area is fixed and is defined by the PageLength value for each . + + + + + The length of the content area is automatically calculated to fit the length of the content. + + + + + The length of all visible content areas is equal. This usually implies that no scrollbars are shown. + + + + + This class contains layout information about a and + performs base layout operations over an item like measuring. + + + + + This class represents the element that implements the ExplorerBar view of the control. + This view allows for multiple visible pages, whereby items can be expanded/collapsed to show their content in an associated page. + + + + + Gets or sets a value from the enum + which determines the location of the items in relation to the content area. + + + + + Gets or sets a value from the enum + that determines how items in the stack view are selected and positioned. + + + + + Scroll in RadPageViewExplorerBar mode to control. + Control will be focused + + control to scroll + + + + Gets an instance of the that represents + the scrollbar of the . + + + + + Gets or sets a value from the enum + that defines how the content areas for each item are sized. + + + + + This class represents a single item in the 's explorer bar view mode. + + + + + Creates an instance of the . + + + + + Creates an instance of the . + + + + + Creates an instance of the . + + + + + Gets or sets a boolean value that determines whether the content of the + is expanded. + + + + + Gets or sets an instance of the that + represents the content holder of this . + + + + + Gets an instance of the class which is + the layout panel that holds instances of the + class representing items currently collapsed by using the overflow grip. + + + + + Gets the overflow menu button. + + + + + Gets the overflow drop-down menu. + + + + + Gets the overflow menu item used to show fewer items in the stack. + + + + + Gets the overflow menu item used to show more buttons in the stack. + + + + + Gets the overflow menu item used to add/remove items in the stack. + + + + + Represents a simple button within a RadPageViewElement. + + + + + Determines whether the RadPageViewItem is currently selected (associated with the SelectedPage of the owning RadPageView). + + + + + Gets an array containing the items that are currently hidden by using the + overflow grip. + + + + + Gets an array containing the items that are currently unchecked by using the + overflow menu. + + + + + This method returns the count of the items which are currently + visible to the user. + + + + + + Makes an item invisible. The item will appear as unchecked in the + overflow menu. + + The item to make invisible. + + + + Makes an item visible. The item will appear as checked in the + overflow menu. + + The item to make visible. + + + + Drags the overflow grip down to hide the first possible visible item. + + True if the drag operation succeeds, otherwise false. + + + + Drags the overflow grip up to show the first possible hidden item. + + True if the drag operation succeeds, otherwise false. + + + + Shows a given amount of items from the hidden items + in the starting from the + bottom part of the stack. + + The count of the items to be shown. + + + + Hides a given amount of items from the visible items + in the starting from the + bottom part of the stack. + + The count of the items to be hidden. + + + + Gets the element that represents the container which holds + the buttons shown when items in the stack are hidden by using + the overflow grip. + + + + + Gets the element which represents the grip which can be dragged + to adjust the count of visible items in the stack. + + + + + Gets or sets the image that is shown on the + item in the overflow drop-down menu that is used to + show more buttons in the control. + + + + + Gets or sets the image that is shown on the + item in the overflow drop-down menu that is used to + show fewer buttons in the control. + + + + + Gets the collection containing the unchecked items. + + + + + Fires when the user clicks on a button associated with a instance. + This buttons is shown when the item is collapsed by using the overflow grip. + + + + + Fires when an item is shown in the . + + + + + Fires when an item is collapsed in the . + + + + + Fires when an item is checked in the overflow drop-down menu of the . + + + + + Fires when an item is unchecked in the overflow drop-down menu of the . + + + + + Gets or sets the associated overflow button with the current page view item. + This button is displayed below all items in the overflow items panel when the item + is collapsed by using the outlook grip. + When setting this property, the previously set item is disposed. + + + + + Defines possible alignment of buttons within RadPageViewItem instance. + + + + + Buttons overlay item's content. + + + + + Buttons are before item's content. + + + + + Buttons are after item's content. + + + + + Buttons are above item's content. + + + + + Buttons are below item's content. + + + + + Defines possible modes for dragging items within a RadPageView instance + + + + + Item dragging is disabled. + + + + + A preview is generated, indicating where the item will be inserted when dropped. This mode is cancelable. + + + + + The item is immediately reordered when moved to a different position. + + + + + Determines whether the RadPageViewItem is currently selected (associated with the SelectedPage of the owning RadPageView). + + + + + Determines whether the RadPageViewItem is currently set as preview. + + + + + Represents a Label(static) element - such as Header and Footer - within a RadPageViewElement instance. + + + + + This enumerator defines the possible selection modes for items + in a . + + + + + The selected item is highlighted and its content is displayed in the content area. + + + + + The selected item is highlighted and its content is displayed before it according to the stack orientation. + + + + + The selected item is highlighted and its content is displayed after it according to the + stack orientation. + + + + + This enumerator defines the possible positioning + options for the items of a . + + + + + Positions the items to the left side of the content area. + + + + + Positions the items to the top of the content area. + + + + + Positions the items to the right of the content area. + + + + + Positions the items to the bottom of the content area. + + + + + Defines the visibility of the New item in a RadPageViewStripElement instance. + + + + + Represents a separator which is just a line separating one group of + controls from another. The RadSeparator is a simple wrapper of the + RadSeparatorElement class. + + + + + Gets or sets whether the edit control is auto-sized + + + + + + + + + + + + + + + + + + + + Gets the instance of RadSeparatorElement wrapped by this control. RadSeparatorElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadSeparator. + + + + + RadSeparator consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Represents an enumration of the possible transitions which a uses to change its content. + + + + + Represent a live tile that can change dinamically its content by using animations. + + + + + Represents a tile that can be arranged in a control. + + + + + Gets the zero-based index of the column in which the tile should be arranged. + + + + + Gets the zero-based index of the row in which the tile should be arranged. + + + + + Gets or sets the number of cells that the tile should occupy in a column. + + + + + Gets or sets the number of cells that the tile should occupy in a row. + + + + + Gets or sets the padding according to the currently occupied cell. + + + + + Cancels the currently running animations. + + + + + Pauses the change of the content. + + + + + Continues the change of the content. + + + + + Moves to the next frame. + + + + + Changes the content of the tile by setting the CurrentItem property. Called on an interval specified by the ContentChangeInterval property. + + + + + Gets or sets the interval at which the content of changes. + + + + + Gets or sets a value indicating whether the animations are enabled. + + + + + Gets or sets the number of frames of the transition animation. + + + + + Gets or sets the interval between each frame of the transition animation. + + + + + Gets a collection of objects that represent the content items of the . + + + + + Gets or sets the type of the transition animation. + + + + + Gets or sets the currently displayed item. + + + + + Represent a panoramic view control that can display and arrange tiles in grouped or ungrouped manner. + + + + + Creates the main element of the control. + + The created element. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the way that RadPanorama should handle mouse wheel input. + + + + + Gets or sets a value that indicates whether the newly added tiles should be automatically arranged. + + + + + Enables or Disables the build in zoom functionality + + + + + Gets or sets the minimum number of columns that the view can be reduced to. + + + + + Gets or sets a value indicating whether reordering of tiles via drag and drop is allowed. + + + + + Gets or sets a value indicating whether the groups or the items should be displayed. + + + + + Gets or sets a value indicating whether the background image should be scrolled along with the tiles. + + + + + Gets or sets the position on which the scrollbar should be aligned. + + + + + Gets or sets the thickness of the scrollbar. + + + + + Gets the that represents the main element of the control. + + + + + Gets or sets the image that is displayed in the background. + + + + + Gets or sets the size of the image that is displayed in the background. + + + + + Gets or sets the current number of columns. + + + + + Gets or sets the number of rows. + + + + + Gets or sets the size of a single cell. + + + + + Gets a collection of objects that represent the tiles that are displayed. + + + + + Gets a collection of objects that represent the tiles that are displayed. + + + + + RadPanorama consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Enumerates the possible alignments of a horizontal scrollbar. + + + + + Provides options for the way that the MouseWheel should be handled. + + + + + Do not handle mouse wheel. + + + + + Zoom the view on mouse wheel. + + + + + Scroll the view on mouse wheel. + + + + + Scroll the view on mouse wheel, zoom the view on Control + mouse wheel. + + + + + Represents the main element of control. + + + + + Scrolls the view with a specified offset. + + The offset. + + + + Scrolls the view with a specified offset. + + The offset. + If the method is called too often, set this to [true] to improve performance. + + + + Updates the view according to the current value of the scrollbar. + + + + + Zooms the view out. + + + + + Zooms the view in towards the specified location. + + The location. + + + + Gets or sets the way that RadPanorama should handle mouse wheel input. + + + + + Gets or sets a value that indicates whether the newly added tiles should be automatically arranged. + + + + + Enables or Disables the build in zoom functionality + + + + + Indicates whether the view is zoomed out. + + + + + Gets or sets the minimum number of columns that the view can be reduced to. + + + + + Gets or sets a value indicating whether reordering of tiles via drag and drop is allowed. + + + + + Gets or sets a value indicating whether the groups or the items should be displayed. + + + + + Gets or sets a value indicating whether the background image should be scrolled along with the tiles. + + + + + Gets or sets the position on which the scrollbar should be aligned. + + + + + Gets or sets the thickness of the scrollbar. + + + + + Gets or sets the image that is displayed in the background. + + + + + Gets or sets the size of the image that is displayed in the background. + + + + + Gets or sets the current number of columns. + + + + + Gets or sets the number of rows. + + + + + Gets or sets the size of a single cell. + + + + + Gets the scrollbar of the view. + + + + + Gets the image primitive that represents tha image in the background. + + + + + Gets the layout that arranges the tiles in ungrouped mode. + + + + + Gets the layout that arranges the tile groups. + + + + + Gets or sets the that is responsible for the drag-drop reorder of tiles. + + + + + Gets the that is responsible for kinetic scrolling behavior with the mouse pointer. + + + + + Gets a collection of items that should be displayed in grouped mode. + + + + + Gets a collection of items that should be displayed in ungrouped mode. + + + + + Gets or sets the offset from the edges of the control at which automatic + scrolling starts. + + + + + Represent a container for grouped tiles that is displayed in control. + + + + + Updates the number of rows and columns before each layout update. + + + + + Gets or sets the minimum number of columns that the view can be reduced to. + + + + + Gets or sets the height of the group title. + + + + + Gets the layout panel that arranges the tiles. + + + + + Gets or sets the current number of columns. + + + + + Gets or sets the number of rows. + + + + + Gets or sets the size of a single cell. + + + + + Represents the caret of + + + + + Initializes a new instance of the class. + + + + + Shows this caret. + + + + + Hides this caret. + + + + + Suspends the blinking of this caret. + + + + + Resumes the blinking of this caret + + + + + Gets or sets the caret position. + + + The position. + + + + + Gets or sets the height of the caret + + + The height. + + + + + Gets or sets the width of the caret + + + The width. + + + + + Represent the selection paiting primitive + + + + + Initializes a new instance of the class. + + The text box. + + + + Invalidates the specified selection start. + + The selection start. + The selection end. + if set to true [repaint]. + + + + Gets the rectangle of + + The current line. + + + + + Draws the primitive on the screen. + + + + + + + + Gets or sets a value indicating whether the primitive should be painted + be painted. + + + + + Gets or sets a value indicating whether the selection should be hidden if focused is lost + + + true if [hide selection]; otherwise, false. + + + + + Gets or sets the color of the selection. + + + The color of the selection. + + + + + Gets or sets the selection opacity. + + + The selection opacity. + + + + + Gets the associated text box element. + + + + + Represents a single word in + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text. + + + + Gets a rectangle of character by index. + + The index. + if set to true [trail edge]. + + + + + Gets the character index at X-position. + + The x. + + + + + Gets or sets the word's text + + + The text. + + + + + Gets the length of the word. It can be different than the exact text length. + + + + + Gets or sets the word according to the previous one + + + The offset. + + + + + Gets or sets the index of the word + + + The index. + + + + + Gets or sets a value indicating whether the word's background can be painted. + + + true if paint the background; otherwise, false. + + + + + Represents text measurer of . + + + + + Measures a text. + + The text. + The font. + + + + + Search the index position where the text should be wrapped for the available width. + + The text. + The font. + The available width. + + + + + Searches the text's index where the caret should be positioned + + The text. + The font. + The available width. + + + + + Represents an action when auto-complete performs + + + + + No action + + + + + Append action + + + + + Replace action + + + + + Represents the method that will handle the create text block in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Gets the text for which the block is created. + + + + + Gets or sets the text block. + + + The text block. + + + + + Represents the method that will handle when the selection is changed in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The selection start. + Length of the selection. + + + + Gets the selection start. + + + + + Gets the length of the selection. + + + The length of the selection. + + + + + Represents the method that will handle when the selection is changing in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The old selection start. + Old length of the selection. + The new selection start. + New length of the selection. + + + + Gets the old selection start. + + + + + Gets the old length of the selection. + + + The old length of the selection. + + + + + Gets the new selection start. + + + + + Gets the new length of the selection. + + + The new length of the selection. + + + + + Represents the method that suggested text is changed in + + The sender. + The instance containing the event data. + + + + An event arguments of + + + + + Initializes a new instance of the class. + + The text. + The suggested text. + The start position. + The end position. + The action. + + + + Gets the text. + + + + + Gets the suggested text. + + + + + Gets the auto-complete action. + + + + + Gets or sets the start position. + + + The start position. + + + + + Gets or sets the end position. + + + The end position. + + + + + Represents text changed action + + + + + Text editing + + + + + Text property change + + + + + Represents text changed event arguments + + + + + Initializes a new instance of the class. + + The text. + The caret position. + The action. + + + + Gets the text. + + + + + Gets the caret position. + + + + + Gets the text change action. + + + + + Represents text changing event arguments + + + + + Initializes a new instance of the class. + + The start position. + The length. + The old text. + The new text. + The action. + + + + Gets the text change action. + + + + + Gets the start position. + + + + + Gets the selection length. + + + + + Represent a method that handles menu opening in + + The sender. + The instance containing the event data. + + + + Event arguments of + + + + + Initializes a new instance of the class. + + The context menu. + + + + Gets the context menu. + + + + + Represents a logical line in + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The start block. + The end block. + The size. + + + + Gets or sets the start block. + + + The start block. + + + + + Gets or sets the end block. + + + The end block. + + + + + Gets or sets the location. + + + The location. + + + + + Gets or sets the size. + + + The size. + + + + + Gets the control bounding rectangle. + + + + + Index comparer of + + + + + Initializes a new instance of the class. + + Index of the block. + + + + Compares the specified line. + + The line. + The null line. + + + + + Represents collection of + + + + + Adds the specified line. + + The line. + + + + Removes the range. + + The index. + The count. + + + + Removes all items from the . + + The is read-only. + + + + Binaries the search by Y coordinate. + + The y. + + + + + Binaries the search by offset. + + The offset. + + + + + Binaries the index of the search by block. + + The index. + + + + + Binaries the search. + + The comparer. + + + + + Offset comparer of + + + + + Initializes a new instance of the class. + + The offset. + + + + Compares the specified line. + + The line. + The null line. + + + + + Y-coordinate comparer of + + + + + Initializes a new instance of the class. + + The y coorditante. + + + + Compares the specified line X. + + The line X. + The line Y. + + + + + Offset comparer of + + + + + Initializes a new instance of the class. + + The offset. + + + + Compares the specified x. + + The x. + The null object. + + + + + Represents a localizable provider of + + + + + Gets the localized string by identifier + + The id. + + + + + Contains identifiers of the localizable strings in + + + + + Represent a text position in + + + + + Initializes a new instance of the class. + + The line. + The text block. + The char position. + + + + Compares to + + The position. + + + + + Equalses the specified position. + + The position. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Performs an implicit conversion from to . + + The start. + + The result of the conversion. + + + + + Implements the operator >. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator >=. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator <. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator <=. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator ==. + + The start. + The end. + + The result of the operator. + + + + + Implements the operator !=. + + The start. + The end. + + The result of the operator. + + + + + Gets the length. + + The start. + The end. + + + + + Gets the first position. + + The layout panel. + + + + + Gets the last position. + + The layout panel. + + + + + Swaps two positions + + The start position. + The end position. + + + + Gets the line. + + + + + Gets the text block. + + + + + Gets the char position in + + + + + Represents a context menu of + + + + + Initializes a new instance of the class. + + The text box. + + + + Adds the menu item by localizable string identifier + + The string id. + + + + + Gets the associated text box. + + + + + Represents a scroller in + + + + + Initializes a new instance of the class. + + The scroll bar. + + + + Raises the event. + + The instance containing the event data. + + + + Suspends the notifications of event. + + + + + Resumes the notifications of event. + + + + + Updates the scroll range. + + Size of the client. + Size of the desired. + + + + Updates the scroll bar + + + + + Sets the scroll bar visibility. + + + + + Gets the max value of the scrollbar + + + + + Gets or sets the value of the scrollbar + + + The value. + + + + + Gets the associated scroll bar. + + + + + Gets or sets the state of the scrollbar. + + + The state of the scrollbar. + + + + + Gets the size of the client area. + + + The size of the client. + + + + + Gets the desired size of the document + + + The size of the desired. + + + + + Gets or sets the large change of the scrollbar. + + + The large change. + + + + + Gets or sets the small change of the scrollbar. + + + The small change. + + + + + Occurs when the scroller is updated. + + + + + Gets or sets the amount of time, in milliseconds, the Repeat button element waits while it is pressed before it starts repeating. The value must be non-negative. + + + + + Gets or sets the amount of time, in milliseconds, between repeats once repeating starts. The value must be non-negative. + + + + + Provides localization services for RadTimePicker. + + + + + Gets the string corresponding to the given ID. + + String ID. + The string corresponding to the given ID. + + + + RadWizard localization strings. + + + + + Creates a RadTimePicker instance. + + + + + Fires the ValueChanging event + + + + + + + Fires the ValueChanged event + + + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the Text associated to the Button below TimeTables + + + + + Gets or sets the current culture associated to the RadTimePicker + + + + + Gets or sets the row height in time picker popup. + + + + + Gets or sets the columns count. + + + + + Gets or sets headers height. + + + + + Gets or sets button panel height. + + + + + Gets or sets the table width. + + + + + Set the Clock position Before Time Tables or Above Time Tables + + + + + Gets or sets a value which determines how to represent the times in time picker popup. + + + + + Gets or sets a value indicating the time interval. + + + + + Gets or sets a value indicating whether the contents of the TextBox control can be changed. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + Gets the RadTimePickerElement which encapsulates the UI representation and functionality of the control. + + + + + Gets or sets the time value assigned to the control. + + + + + Gets or sets the Minimal time value assigned to the control. + + + + + Gets or sets the Maximal time value assigned to the control. + + + + + This property is not relevant for this class. + + + + + Occurs when the editing value is changing. + + + + + Occurs when the editing value has been changed + + + + + Occurs when a cell changes its state. + + + + + Occurs when the RadItem has focus and the user pressees a key down + + + + + Occurs when the RadItem has focus and the user pressees a key + + + + + Occurs when the RadItem has focus and the user releases the pressed key up + + + + + Occurs when + the value of the Multiline property has changed. + + + + + Occurs when + the value of the TextAlign property has changed. + + + + + Fires the ValueChanged event + + + + + + + Fires the ValueChanging event + + + + + + + Gets the culture to be used when displaying the time. + + + + + Determines whether control's height will be determined automatically, depending on the current Font. + + + + + Gets the RadTimePickerElement which encapsulates the UI representation and functionality of the control. + + + + + Gets or sets a value indicating whether the contents of the time picker control can be changed. + + + + + Occurs when the editing value has been changed + + + + + Occurs when the editing value is changing. + + + + + This property is used internally. + + + + + Creates the button element for the increment button. + + A to be placed in the . + + + + Creates the button element for the decrement button. + + A to be placed in the . + + + + Enables or disables the ReadOnly mode of RadTimeBox. The default value is false. + + + + + Gets or sets a value indicating whether the RadDropDownList will be animated when displaying. + + + + + Gets or sets the text that is displayed when RadDropDownList has no text set. + + + + + This property is used internally. + + + + + Occurs when the editing value is changing. + + + + + Occurs when the editing value has been changed + + + + + Represents a command area of RadWizard in Wizard97 mode. + + + + + Represents a command area of RadWizard. + + + + + Base class for RadWizard elements. + + + + + Updates the current state of the element. + + The WizardPage the element currently refers to. + + + + Gets or sets a value indicating that the element currently refers to a WizardWelcomePage. + + + + + Gets or sets a value indicating that the element currently refers to a WizardCompletionPage. + + + + + Gets the owner RadWizardElement of the element. + + + + + Creates a WizardCommandArea instance. + + + + + Creates a WizardCommandArea element. + + Owner of the element. + + + + Gets the CommandArea elements. + + + + + Gets the CommandArea Next button element. + + + + + Gets the CommandArea Cancel button element. + + + + + Gets the CommandArea Finish button element. + + + + + Gets the CommandArea Help button element. + + + + + Creates a Wizard97CommandArea instance. + + + + + Creates a Wizard97CommandArea element. + + >Owner of the element. + + + + Gets the CommandArea Back button element. + + + + + Represents a command area button element of RadWizard. + + + + + Gets or sets a value indication wether the button is focused. + + + + + Represents a button element of RadWizard in Aero mode. + + + + + Represents a top element of RadWizard in Aero mode. + + + + + Creates a WizardAeroTopElement instance. + + + + + Creates a WizardAeroTopElement. + + Owner of the element. + + + + Gets the AeroTopElement Back button element. + + + + + Represents a page header of RadWizard. + + + + + Creates a WizardPageHeaderElement instance. + + + + + Updates the current state of the element. + + + + + + Gets the element containing the WizardPageHeader title text. + + + + + Gets or sets the text of TitleElement. + + + + + Gets or sets the TitleElement visibility. + + + + + Gets the element containing the WizardPageHeader header text. + + + + + Gets or sets the text of HeaderElement. + + + + + Gets or sets the HeaderElement visibility. + + + + + Gets the element containing the WizardPageHeader icon image. + + + + + Gets or sets the WizardPageHeader icon image. + + + + + Gets or set the alignment of the WizardPageHeader icon image. + + + + + Represents an element of RadWizard which paints its text on glass. + + + + + Represents the method that will handle the ModeChanged events of RadWizard. + + The event sender. + Instance of ModeChangedEventArgs. + + + + Provides data for the ModeChanged event. + + + + + Gets the previous mode of the wizard. + + + + + Gets the current mode of the wizard. + + + + + Initializes a new instance of the ModeChangedEventArgs class. + + The previous mode of the wizard. + The current mode of the wizard. + + + + Represents the method that will handle the ModeChanging events of RadWizard. + + The event sender. + Instance of ModeChangingEventArgs. + + + + Provides data for the ModeChanging event. + + + + + Gets the current mode of the wizard. + + + + + Gets the next mode of the wizard. + + + + + Initializes a new instance of the ModeChangingEventArgs class. + + The current mode of the wizard. + The next mode of the wizard. + + + + Represents the method that will handle cancelable events of RadWizard. + + The event sender. + Instance of WizardCancelEventArgs. + + + + Provides data for cancelable events of RadWizard. + + + + + Initializes a new instance of the WizardCancelEventArgs class. + + + + + Determines whether the event is canceled or may continue. + + + + + Represents the method that will handle the SelectedPageChanged events of RadWizard. + + The event sender. + Instance of SelectedPageChangedEventArgs. + + + + Provides data for the SelectedPageChanged event. + + + + + Gets the previous selected page of the wizard. + + + + + Gets the selected page of the wizard. + + + + + Initializes a new instance of the SelectedPageChangedEventArgs class. + + The previous selected page of the wizard. + The selected page of the wizard. + + + + Represents the method that will handle the SelectedPageChanging events of RadWizard. + + The event sender. + Instance of SelectedPageChangingEventArgs. + + + + Provides data for the SelectedPageChanging event. + + + + + Gets the selected page of the wizard. + + + + + Gets the wizard page to be selected. + + + + + Initializes a new instance of the SelectedPageChangingEventArgs class. + The selected page of the wizard. + The wizard page to be selected. + + + + + Provides localization services for RadWizard. + + + + + Gets the string corresponding to the given ID. + + String ID. + The string corresponding to the given ID. + + + + RadWizard localization strings. + + + + + Represents a completion page of RadWizard. + + + + + Represents a page of RadWizard. + + + + + Creates a WizardPage instance. + + + + + Returns a string representation of the page. + + The string representation of the page. + + + + Gets the owner RadWizardElement of the page. + + + + + Gets or sets the panel presenting the content area of the page. + + + + + Gets or sets the page title text. + + + + + Gets or sets the page header text. + + + + + Gets or sets a value indicating whether the page customizes its header. + + + + + Gets or sets the page's TitleElement visibility. Applies if CustomizePageHeader has value 'true'. + + + + + Gets or sets the page's HeaderElement visibility. Applies if CustomizePageHeader has value 'true'. + + + + + Gets or sets the page's IconElement image. Applies if CustomizePageHeader has value 'true'. + + + + + Gets a value indicating whether the page is selected. + + + + + Creates a WizardCompletionPage instance. + + + + + Gets or sets the Completion page image. + + + + + Represents a collection of WizardPage objects. + + + + + Creates a WizardPageCollection instance. + + Owner of the element. + + + + Inserts a WizardPage before the RadWizard CompletionPage in the collection. + + + + + + Gets the owner RadWizardElement of the collection. + + + + + Represents a welcome page of RadWizard. + + + + + Creates a WizardWelcomePage instance. + + + + + Gets or sets the Welcome page image. + + + + + RadWizard is a control which helps you to break a complex process into separate steps. + + + + + Creates a RadWizard instance. + + + + + Returns true if the focus should go the navigation buttons when the user presses Shift and Tab + + + + + Returns true if the focus should go the navigation buttons when the user presses Left arrow + + + + + Returns true if the focus should go the navigation buttons when the user presses Right arrow + + + + + Returns true if the focus should go the navigation buttons when the user presses Tab + + + + + Selects next wizard page. + + + + + Selects previous wizard page. + + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of . + + + + Raises the event. + + An instance of . + + + + Raises the event. + + An instance of . + + + + Raises the event. + + The owner. + An instance of containing event data. + + + + Raises the event. + + The owner. + An instance of containing event data. + + + + Gets the RadWizardElement which encapsulates the UI representation and functionality of the control. + + + + + Gets or sets the mode of the control. + + + + + Gets or sets a value indication wether the Aero style should apply when the control is in Wizard Aero mode. + + + + + Gets the pages collection. + + + + + Gets or sets the welcome page. + + + + + Gets or sets the completion page. + + + + + Gets or sets the selected page. + + + + + Gets the command area element. + + + + + Gets or sets the height of the command area. Negative value makes the command area autosize. + + + + + Gets the page header element. + + + + + Gets or sets the height of the page header. Negative value makes the page header autosize. + + + + + Gets the element containing the image of the welcome pages. + + + + + Gets the element containing the image of the completion pages. + + + + + Gets or sets the image of the welcome pages. + + + + + Gets or sets a value indicating whether the image of the welcome pages should be visible. + + + + + Gets or sets the layout of the welcome pages image. + + + + + Gets or sets the background image shape of the welcome pages. + + + + + Gets or sets the image of the completion pages. + + + + + Gets or sets a value indicating whether the image of the completion pages should be visible. + + + + + Gets or sets the layout of the completion pages image. + + + + + Gets or sets the background image shape of the completion pages. + + + + + Gets or sets the visibility of the page header's title element. + + + + + Gets or sets the visibility of the page header's header element. + + + + + Gets or sets the icon of the page header. + + + + + Gets or sets the alignment of the page header's icon. + + + + + Gets the command area's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + RadWizard consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadWizard consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Fires before the mode of RadWizard is changed. + + + + + Fires after the mode of RadWizard is changed. + + + + + Fires when the next command button is clicked. + + + + + Fires when the back command button is clicked. + + + + + Fires when the finish command button is clicked. + + + + + Fires when the cancel command button is clicked. + + + + + Fires when the help command button is clicked. + + + + + Fires before the selected page of RadWizard is changed. + + + + + Fires after the selected page of RadWizard is changed. + + + + + Encapsulates the UI representation and functionality of RadWizard. + + + + + Creates a RadWizardElement instance. + + + + + Refreshes the element's view. + + + + + Selects next wizard page. + + + + + Selects previous wizard page. + + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + An instance of containing event data. + + + + Raises the event. + + The owner. + An instance of containing event data. + + + + Raises the event. + + The owner. + An instance of containing event data. + + + + Gets or sets the mode of RadWizard. + + + + + Gets the view of RadWizard. + + + + + Gets the Owner RadWizard control. + + + + + Gets or sets a value indication wether the Aero style should apply when RadWizard is in Wizard Aero mode. + + + + + Gets the pages collection. + + + + + Gets or sets the welcome page. + + + + + Gets or sets the completion page. + + + + + Gets or sets the selected page. + + + + + Gets the command area element. + + + + + Gets or sets the height of the command area. Negative value makes the command area autosize. + + + + + Gets the page header element. + + + + + Gets or sets the height of the page header. Negative value makes the page header autosize. + + + + + Gets the element containing the image of the welcome pages. + + + + + Gets the element containing the image of the completion pages. + + + + + Gets or sets the image of the welcome pages. + + + + + Gets or sets a value indicating whether the image of the welcome pages should be visible. + + + + + Gets or sets the layout of the welcome pages image. + + + + + Gets or sets the background image shape of the welcome pages. + + + + + Gets or sets the image of the completion pages. + + + + + Gets or sets a value indicating whether the image of the completion pages should be visible. + + + + + Gets or sets the layout of the completion pages image. + + + + + Gets or sets the background image shape of the completion pages. + + + + + Gets or sets the visibility of the page header's title element. + + + + + Gets or sets the visibility of the page header's header element. + + + + + Gets or sets the icon of the page header. + + + + + Gets or sets the alignment of the page header's icon. + + + + + Gets the command area's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + Fires before the mode of RadWizard is changed. + + + + + Fires after the mode of RadWizard is changed. + + + + + Fires when the next command button is clicked. + + + + + Fires when the back command button is clicked. + + + + + Fires before the selected page of RadWizard is changed. + + + + + Fires after the selected page of RadWizard is changed. + + + + + Represents a view element of RadWizard in Wizard97 mode. + + + + + Base class for RadWizard view elements. + + + + + Creates a WizardView instance. + + + + + Gets the owner RadWizardElement of the view. + + + + + Gets the pages collection of the Owner RadWizardElement. + + + + + Gets the welcome page of the Owner RadWizardElement. + + + + + Gets the completion page of the Owner RadWizardElement. + + + + + Gets the selected page of the Owner RadWizardElement. + + + + + Gets the command area of the view. + + + + + Gets or sets the height of the command area. Negative value makes the command area autosize. + + + + + Gets the page header of the view. + + + + + Gets or sets the height of the page header. Negative value makes the page header autosize. + + + + + Gets the element containing the image of the welcome pages. + + + + + Gets or sets the image of the welcome pages. + + + + + Gets or sets a value indicating whether the image of the welcome pages should be visible. + + + + + Gets or sets the layout of the welcome pages image. + + + + + Gets or sets the background image shape of the welcome pages. + + + + + Gets the element containing the image of the welcome pages. + + + + + Gets or sets the image of the completion pages. + + + + + Gets or sets a value indicating whether the image of the completion pages should be visible. + + + + + Gets or sets the layout of the completion pages image. + + + + + Gets or sets the background image shape of the completion pages. + + + + + Gets or sets the visibility of the page header's title element. + + + + + Gets or sets the visibility of the page header's header element. + + + + + Gets or sets the icon of the page header. + + + + + Gets or sets the alignment of the page header's icon. + + + + + Gets the command area's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + Creates a Wizard97View instance. + + + + + Creates a Wizard97View instance. + + Owner of the element. + + + + Gets the command area's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + Represents a view element of RadWizard in Wizard Aero mode. + + + + + Creates a WizardAeroView instance. + + + + + Creates a WizardAeroView instance. + + Owner of the element. + + + + Gets the top element of RadWizard in Wizard Aero mode. + + + + + Gets the top element's back button. + + + + + Gets the command area's next button. + + + + + Gets the command area's cancel button. + + + + + Gets the command area's finish button. + + + + + Gets the command area's help button. + + + + + Mode of RadWizard. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the default size of the control. + + + The default of the control. + + + + + Gets the range selector element. + + + The range selector element. + + + + + Gets or Sets the orientation of the RangeSelector + + + + + Gets or sets the start of the selected range. + + + The start range. + + + + + Gets or sets the end of the selected range. + + + The end range. + + + + + Gets or sets the range selector view zoom start. + + + The range selector view zoom start. + + + + + Gets or sets the range selector view zoom end. + + + The range selector view zoom end. + + + + + Gets or Sets whether the RangeSelector's handles should be drawn + + + + + Gets or sets how the associated chart will be updated. + + + Immediate, the chart will be updated while moving the thumb or the tracking element. Deferred, the chart will be updated upon releasing the thumb or the tracking element. + + + + + Gets or sets the associated control. + + + The associated control. + + + + + Gets or sets a value indicating whether ToolTips are shown for the RadItem objects contained in + the RadControl. + + + + + RadRangeSelector consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadRangeSelector consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs when the value of left thumb is changing. + + + + + Occurs when the value of left thumb is changed. + + + + + Occurs when the value of right thumb is changing. + + + + + Occurs when the value of left thumb is changed. + + + + + Occurs when the whole selection of the controls is about to change. + + + + + Occurs when the whole selection of the controls is changed. + + + + + Occurs when scale of the controls is Initializing. + + + + + Gets the body element. + + + The body element. + + + + + Gets the scroll selector element. + + + The scroll selector element. + + + + + Gets the top left scales. + + + The top left scales. + + + + + Gets the bottom right scales. + + + The bottom right scales. + + + + + Gets or sets a value indicating whether [show scroll]. + + + true if [show scroll]; otherwise, false. + + + + + Gets or sets the scroll view position. + + + The scroll view position. + + + + + Gets or sets the orientation. + + + The orientation. + + + + + Gets or sets how the associated chart will be updated. + + + Immediate, the chart will be updated while moving the thumb or the tracking element. Deferred, the chart will be updated upon releasing the thumb or the tracking element. + + + + + Gets or sets the associated element. + + + The associated element. + + + + + Gets or sets the start range. + + + The start range. + + + + + Gets or sets the end range. + + + The end range. + + + + + Gets or sets the range selector view zoom start. + + + The range selector view zoom start. + + + + + Gets or sets the range selector view zoom end. + + + The range selector view zoom end. + + + + + Gets or sets the selection rectangle start. + + + The selection rectangle start. + + + + + Gets or sets the selection rectangle end. + + + The selection rectangle end. + + + + + Gets or Sets whether the RangeSelector's handles should be drawn + + + + + Gets or sets the minimum selection length. + + + The minimum selection length. + + + + + Gets or sets the zoom factor. + + + The zoom factor. + + + + + Gets the total zoom factor. + + + The total zoom factor. + + + + + Gets or sets a value indicating whether [enable fast scrolling]. + + + true if [enable fast scrolling]; otherwise, false. + + + + + Occurs when the value of left thumb is changing. + + + + + Occurs when the value of left thumb is changed. + + + + + Occurs when the value of right thumb is changing. + + + + + Occurs when the value of left thumb is changed. + + + + + Occurs when the whole selection of the controls is about to change. + + + + + Occurs when the whole selection of the controls is changed. + + + + + Occurs when scale of the controls is Initializing + + + + Represents a repeat button element, and like all elements can be nested + in other telerik controls. RadRepeatButton is essentially a simple wrapper for + RadRepeatButtonElement. All UI and logic functionality is implemented in the + RadRepeatButtonElement class. RadRepeatButton acts to transfer events to and from + the RadRepeatButton class. + + + + Gets or sets the amount of time, in milliseconds, the Repeat button element waits while it is pressed before it starts repeating. The value must be non-negative. + + + + + Gets or sets the amount of time, in milliseconds, between repeats once repeating starts. The value must be non-negative. + + + + + Gets or Sets whether the RangeSelector's handles should be drawn + + + + + Represents a button on the . + + + + + Represents a base class + + + + + Represents the area where backstage pages are arranged. + + + + + Represents the area where backstage items are arranged. + + + + + Gets the that owns this element. + + + + + Gets a collection representing the items contained in this BackstageView. + + + + + Gets the back button element. + + + The back button element. + + + + + Represents a page on the on which you can add any type of controls. + + + + + Gets the that this page is attached to. + + + + + Represents a tab on the which has a page associated with it. + + + + + Indicates whether this tab is selected. + + + + + Gets or sets the page that is associated with this tab item. + + + + + Occurs when the selected state of this item has changed. + + + + + Occurs when the page associated with this item has changed. + + + + + + Represents a BackstageView control - the Office 2010 replacement of ApplicationMenu. + + + It can contain tabs, pages, buttons and all other RadItems as well. + + + + + + Shows the backstage view mimicking popup. + + The location on which the backstage will be shown. + The RadRibbonBarElement that the backstage view is attached to. + + + + Shows the backstage view mimicking popup. + + + + + + Hides the backstage view. + + + + + Raises the BackstageViewClosed event. + + + + + Raises the BackstageViewClosing event. + + + + + Raises the BackstageViewOpened event. + + + + + Raises the BackstageViewOpening event. + + + + + Fires when the backstage view is closed. + + + + + Fires when the backstage view is about to close. + + + + + Fires when the backstage view is opened. + + + + + Fires when the backstage view is about to open. + + + + + Fires when an item from the items panel is clicked. + + + + + Fires when the selected tab is about to change. + + + + + Fires when the selected tab is changed. + + + + + Gets or sets a value that indicates whether the position of the BackstageView should be + automatically adjusted to the bottom of the application button of the owner . + + + + + Gets or sets the selected tab. + + + + + Indicates whether the backstage view is opened. + + + + + Gets the backstage element. + + + + + Gets the RadRibbonBar element that the backstage view is attached to. + + + + + Represents the main visual element of the . + + + + + Raises the event. + + The backstage item. + + + + Raises the event. + + The backstage tab item. + + + + + Raises the event. + + The new item. + The old item. + + + + Raises the event. + + The instance containing the event data. + + + + Gets the on which the backstage items are arranged. + + + + + Gets the on which the backstage pages are arranged. + + + + + Gets the caption element. + + + The caption element. + + + + + Gets or sets the selected tab. + + + + + Gets a collection representing the items contained in this backstage view. + + + + + Gets or sets a value indicating whether this backstage view should be opened is full screen. + + + true if full screen; otherwise, false. + + + + + Fires when an item from the items panel is clicked. + + + + + Fires when the selected tab is about to change. + + + + + Fires when the selected tab is changed. + + + + + Represents event data for the following events: OnTabSelecting + + + + + Creats a new instance of the class. + + The tab which is currently selected + The tab that is being selected. + + + + Gets the tab which is currently selected. + + + + + Gets the tab that is being selected. + + + + + Creates an instance of the + class. + + + + + Gets or sets an instance of the + struct containing the coordinates which will be used + to position the key tip. + + + + + Gets or sets an instance of the + class containing the font which will be used + to paint the text of the key tip. + + + + + Gets or sets an instance of the + struct containing the color which will be used + to paint the background of the key tip. + + + + + Gets or sets an instance of the + struct containing the color which will be used + to paint the borders of the key tip. + + + + + Gets or sets an instance of the + struct containing the color which will be used + to paint the text forecolor of the key tip. + + + + + Represents a toolstrip overflow button element. + + + + + Creates child elements. + + + + + Shows small arrows. + + + + + + Gets the drop down button arrow position. + + + + + Gets the overflow primitive. + + + + + Represents the method that will handle the PageViewInstanceCreated events of RadDock. + + The event sender. + Instance of PageViewInstanceCreatedEventArgs. + + + + Provides data for the PageViewInstanceCreated event. + + + + + Gets the created RadPageViewElement. + + + + + Initializes a new instance of the PageViewInstanceCreatedEventArgs class. + + The created RadPageViewElement. + + + + Gets the index at which the page was before the change. + + + + + Gets the index at which the page is currently at. + + + + + Determines whether the event is canceled or may continue. + + + + + Gets the index the page is currently at. + + + + + Gets or sets the new index to be applied to the associated page. + + + + + Represents a control that has a collection of pages and displays one page at a time. + + + + + Temporary suspends event raising. + + + + + Resumes event raising, previously suspended by a SuspendEvents call. + + + + + Occurs when an item is about to be dropped over another item. + + + + + Occurs when an item was dropped over another item. + + + + + Raised when page item is about to be created. + + + + + Raised when the current mode of the view is about to change. Cancelable. + + + + + Raised when the current mode of the view is about to change. Cancelable. + + + + + Raised when the current mode of the view has changed. + + + + + Raised when the built-in ItemsList menu is about to be displayed. Cancelable. + + + + + Raised when the built-in ItemsList menu is displayed. + + + + + Raised when a new page is about to be added to the view. Cancelable. + + + + + Raised when a new page has been successfully added to the view. + + + + + Raised when a page is about to be removed from the view. Cancelable. + + + + + Raised when a page has been successfully removed from the view. + + + + + Raised when a page is about to change its index. Cancelable. + + + + + Raised when a page's index has been successfully changed. + + + + + Raised when all pages are about to be removed from the view. Cancelable. + + + + + Raised when all pages have been successfully removed from the view. + + + + + Raised when the content of a is expanding. + This event is only raised when the view mode of the control is set + to ExplorerBar. + + + + + Raised when the content of a is expanded. + This event is only raised when the view mode of the control is set + to ExplorerBar. + + + + + Raised when the content of a is collapsing. + This event is only raised when the view mode of the control is set + to ExplorerBar. + + + + + Raised when the content of a is collapsed. + This event is only raised when the view mode of the control is set + to ExplorerBar. + + + + + Raised when currently selected page has changed. + + + + + Raised when currently selected page has changed. + + + + + Determines whether event raising is currently enabled. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the BackColor of all pages. + + + + + Gets or sets the current mode of the view. + + + + + Gets or sets the RadPageViewPage instance that is currently selected within the view. + + + + + Gets the collection of pages for this view. + + + + + Gets the current RadPageViewElement instance that represents the UI of the view. + + + + + Gets or sets the default RadPageViewPage that will be loaded after EndInit of the control. + If the DefaultPage is null the currently selected page will be loaded. + + + + + Gets or sets the text orientation of the item within the owning RadPageViewElement instance. + + + + + Gets or sets the size of the items when ItemSizeMode of RadPageView is PageViewItemSizeMode.EqualSize. + + + + + RadPageView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadPageView consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Gets or sets whether the pages will be wrapped around when performing selection using the arrow keys. + If the property is set to true, pressing the right arrow key when the last page is selected will result in selecting the first page. + + true if [wrapped around]; otherwise, false. + + + + Determines whether ampersand character will be treated as mnemonic or not. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + + This property is not relevant for this class. + + + + + Gets the instance that this object is associated with. + + + + + Gets the RadPageViewPage instance that matches the specified name. + + + + + + + Gets the RadPageViewElement instance that owns this instance. + + + + + Gets the scroll offset applied to the strip. + + + + + Gets or sets the MultiLineItemFitMode.This mode determines how the multiLine layout will behave when control is resizing. + + + + + Defines the possible alignment of the strip in a RadPageViewStripElement. + + + + + Defines the alignment of items within a strip item layout. + + + + + Items are aligned starting from the near edge. This is Left for Left-to-right layout and Right for Right-to-left layout. + + + + + Items are centered within the layout. + + + + + Items are aligned starting from the far edge. This is Right for Left-to-right layout and Left for Right-to-left layout. + + + + + Defines possible modes to fit items within a RadPageViewStripElement instance. + + + + + Each item uses its desired size. + + + + + Items are shrinked if their size exceeds the available one. + + + + + Items are expanded if their size is less than the available one. + + + + + Items are either shrinked or expanded when needed. + + + + + Items are stretched in the available height of their parent container. + + + + + Items are arranged in multiLine layout. + + + + + Defines which internal buttons will be present for a RadPageViewStripElement instance. + + + + + No buttons are available. + + + + + Buttons are automatically displayed when needed. + + + + + Allows strip to be scrolled left when not enough space is available. + + + + + Allows strip to be scrolled right when not enough space is available. + + + + + Allows currently selected item to be closed. + + + + + Displays all available items in a drop-down manner. + + + + + Both left and right scroll buttons are present. + + + + + Both scroll buttons and Close button are present. + + + + + ItemList and Close buttons are present. + + + + + All buttons are present. + + + + + Defines how an item is sized within a RadPageViewElement instance. + + + + + Each item's desired size is applied. + + + + + All items are with equal width. + + + + + All items are with equal height. + + + + + All items are with equal size. + + + + + Defines the content orientation of in RadPageViewItem. + + + + + Orientation is automatically selected depending on the item alignment within the owning RadPageViewElement. + + + + + Item's content is horizontally oriented. + + + + + Item's content is rotated by 180 degrees. + + + + + Item's content is rotated by 90 degrees. + + + + + Item's content is rotated 270 degrees. + + + + + Defines methods and properties for a collapsible element. For example, + RadRibonBarChunk is a collapsible element. + + + + + Create a Adapter if possible for Item + + + The wrapper for Item + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets a boolean value determining whether the layout panel + will collapse its content according to its size. + + + + + This class represents the drop down button which is shown when + a is collapsed. This drop down button + holds the content of the collapsed group in its popup. + + + + + This class represents the popup of a . + The contents of the group are placed in this popup when the group is collapsed. + + + + + This class represents a separator line which can be put between + items in a or . + This separator is built of two instances which are layout + together to allow two-coloured separator appearance. + + + + + Gets or sets the orientation of the separator. A separator + can be positioned vertical or horizontal. + + + + + Gets an instance of the class + which represents the primitive that is used to paint the separator. + + + + + This class represents the popup which is displayed when a collapsed tab + is selected in the RadRibbonBar control. + + + + + Creates an instance of the RibbonBarPopup class. + + + + + + Close the popup upon mouse click unless + the user has clicked on a RadElement + that opens another popup. + + + + + + Gets a boolean value indicating + whether the ribbon popup is shown. + + + + + Gets the owner RadRibbonBarElement. + + + + + Represents a ribbon tab. Ribbon tabs are used to manage between different + groups of related operations, for example, in a text editor application between + write and insert functionality. + + + + + Initializes a new instance of the RadRibbonBarCommandTab class. + + + + + This method paints the left RibbonTab shadow that appears on the right of the tab. + The method paints two 1 pixel wide vertical linear gradient lines that + create a shadow effect. The colors of the shadow can be styled by + the Visual Style Builder. + + + + + This method paints the right RibbonTab shadow that appears on the right of the tab. + The method paints two 1 pixel wide vertical linear gradient lines that + create a shadow effect. The colors of the shadow can be styled by + the Visual Style Builder. + + + + + Gets or sets the first right inner color of the RibbonTab's shadow. + + + + + Gets or sets the second right inner color of the RibbonTab's shadow. + + + + + Gets or sets the first right outer color of the RibbonTab's shadow. + + + + + Gets or sets the second right outer color of the RibbonTab's shadow. + + + + + Gets or sets the first left inner color of the RibbonTab's shadow. + + + + + Gets or sets the second left inner color of the RibbonTab's shadow. + + + + + Gets or sets the first left outer color of the RibbonTab's shadow. + + + + + Gets or sets the second left outer color of the RibbonTab's shadow. + + + + + The RibbonTab tab item + + + + + Gets an instance of the class + that represents the content layout of the tab. In this layout all + chunks visible to the end user are put. + + + + + Gets or sets the ContextualTabGroup of this CommandTab. + + + + + Gets the nested items. + + + + + Exposes the + scroll button direction. + + + + + Indicates left scroll button direction. + + + + + Indicates up scroll button direction. + + + + + Indicates right scroll button direction. + + + + + Indicates down scroll button direction. + + + + Defines the scrolling types of the RadScrollBar control. + + + + Indicates horizontal scroll type. + + + + + Indicates vertical scroll type. + + + + + Defines the possible alignment of the TabStripElement in a TabStripPanel. + + + + + The panel itself decides where the element is positioned. + + + + + The element is positioned vertically on the left edge. + + + + + The element is positioned horizontally on the top edge. + + + + + The element is positioned vertically on the right edge. + + + + + The element is positioned horizontally on the bottom edge. + + + + + Defines the possible orientation of text within a TabStripPanel. + + + + + Default orientation is used, depending on the alignment of the TabStrip. + + + + + Text is oriented horizontally. + + + + + Text is oriented vertically. + + + + Creates the main panel element and adds it in the root element. + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this speciffic control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets the object that encapsulates sizing information for this panel. + + + + + Gets the instance of RadPanelElement wrapped by this control. RadPanelElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadPanel. + + + + + Applies the desired splitter width across all splitters and delegates the event to all descendant RadSplitContainer instances. + This method is used internally. + + + + + + Applies theme to all SplitterElements. + + + + + Provides a routine which merges a container with its parent (if appropriate). + The purpose of this logic is to remove internally created containers when they are not needed. + This method is used internally. + + + + + this method is used internally. + + + + + Gets SplitterElement which rectangle conttains the specified Point. + + Point to test, in SplitContainer client coordinates + SplitterElement if found, null otherwise + + + + Determines whether the container can be selected at design-time. This method is used internally. + + + + + + Updates the splitter, associated with the specified index of a child SplitPanel. + + The layout info, containing information about the operation. + The index of the panel for which the splitter should be updated. + The bounding rectangle of the splitter. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets a value indicating the splitter distance. Never set the value of this property directly. + + + + + Gets a value indicating whether the bounds of the split panels should be updated immediately on drag. + + + + + Gets the split container element. + + + + + Determines whether the container is a target of automatic defragment operation. + This property is internally used by the framework and is not intended to be directly used in code. + + + + + Gets or sets a value indicating the horizontal or vertical orientation of + the Telerik.WinControls.UI.RadSplitContainer panels. + + + + + Gets or sets the width of a single splitter on the container. + Specify zero to prevent displaying any splitters at all. + + + + + Gets or sets the layout strategy that arranges all the visible SplitPanel children. + + + + + Enable and Disable navigation buttons. + + + + + Determines whether the panels can be collapsed when clicking twice on splitter or click once on navigation button. + + + + + This property is not relevant for this class. + + + + + This property is not relevant for this class. + + + + + Occurs when any of the splitters is moving. + + + + + Occurs when any of the splitters is moved. + + + + + Occurs when some panel is collapsing. + + + + + Occurs when some panel collapsed. + + + + + Gets or sets the width of each splitter within the container. + + + + + Encapsulates the layout information for a layout pass of a RadSplitContainer. + + + + + Gets a list with all the panels that are target of a layout operation. + + + + + Gets a list with all the panels that are target of an auto-size logic. + + + + + Gets or sets the auto-size factor which depends on the auto-sizable targets per container. + + + + + Gets or sets the length (width or height, depending on the orientation) that is avilable for layout. + + + + + Gets or sets the length vailable for all panels with AutoSize mode. + + + + + Gets or sets the length of all panels which are with Absolute size mode. + + + + + Gets or sets the total length, reserved for splitters. + + + + + Gets or sets the total length, reserved for splitters. + + + + + Gets or sets the content rectangle that represents the layoutable area of the container. + + + + + Gets or sets the orientation of the associated container. + + + + + Defines the layout strategy for a RadSplitContainer. + + + + + Entry point for the entire layout operation. + Called in the OnLayout override of RadSplitContainer. + + + + + + Applies a correction in both of the specified panels, after a successful spliter drag operation. + + The panel left (top) on the splitter. + The panel right (bottom) on the splitter. + The dragged distance. + + + + Updates the layout info for a pending layout operation. + + + + + + Performs the core measure logic. + This is the pass which determines the desired size for each panel. + + + + + Performs the core layout logic. Updates each panel's bounds, keeping in mind restrictions like Minimum and Maximum size. + + + + + + Gets an integer value for the specified size (depending on the orientation of the current laid-out container). + + + + + + + Gets a single-precision value from the provides SizeF struct. + + + + + + + Gets the available length left for the panel at the specified index. + + + + + + + + + Gets the minimum size for the specified split panel. + If it is a container, the sum of minimum sizes of all child panels is calculated. + + + + + + + Special measure logic, used when there is at least one fill panel in the layout info. + + + + + Default measure logic. + + + + + Apply constraints on measured length for each layout target, + having in mind MinSize, MaxSize, available size and other conditions. + + + + + Final pass that determines whether we have less + or more measured length than the currently available one and performs the needed corrections. + + + + + Updates the provides panel after a splitter drag operation. + + + + + + + + Propagates a splitter change down to all children of the specified container. + + + + + + Gets the viewport origin for the current layout operation. + + + + + + Gets a list with all the descendant panels which SizeMode is SplitPanelSizeMode.Fill + + + + + + Gets the layout info associated with this layout strategy. + + + + + Gets or sets the Type that is treated as Root for the layout strategy. + Allows for defining how deep the search for a Fill panel should be. + + + + The main element of the RadPanel control. + + + Create the elements in the hierarchy. + + + + Gets the SplitPanel instance associated with the event. + + + + + Gets the Control instance, which Controls collection has changed. + + + + + Gets the child Control instance, inserted or removed in the Parent's collection. + + + + + Gets the action of the notification. + + + + + Defines the possible actions for a ControlTreeChanged event. + + + + + A control has been added. + + + + + A control has been removed. + + + + + Encapsulates all size-related properties for a SplitPanel instance residing on a RadSplitContainer. + + + + + Gets or sets the minimum size for the associated SplitPanel. + + + + + Gets or sets the maximum size for the associated SplitPanel. + + + + + Gets or sets the amount (in pixels) applied to the size of the panel by a splitter. + + + + + Gets or sets the scale factor for relatively-sized panels. + + + + + Gets or sets the scale factor to be used by auto-sized panels. + Usually this is internally updated by a splitter resize. + + + + + Gets or sets the size mode for the owning panel. + + + + + Gets or sets the size used when size mode is Absolute. + + + + + Gets or sets the desired (measured) size for the owning panel. + This field is internally updated by a SplitContainerLayoutStrategy upon a layout operation. + + + + + Gets the current DPI scaling. + + + + + Defines the posiible size modes for a split panel residing on a RadSplitContainer. + + + + + The panel is auto-sized. Its size depends on the size of its container + as well as the number of all auto-sizable panels within the container. + + + + + The panel has fixed size, regardless of the size of its container. + + + + + The panel occupies a relative amount of its container's available size. + + + + + A special mode, used to specify that a certain panel should fill all the available auto-sizable area. + + + + + Notifies for a change in the Image member of this panel. + + + + + + Determines whether the ToolTip property should be serialized. + + + + + + Gets or sets the Image associated with the panel. + + + + + Gets or sets the tooltip to be displayed when the mouse hovers the tabitem of this panel. + + + + + Represents an image button. + + + + + Gets or sets the image that is displayed on a button element when it is hovered. + + + + + Gets or sets the image list index value of the image displayed on the button control when it is hovered. + + + + + Gets or sets the key accessor for the image for hovered state in the ImageList. + + + + + Gets or sets the image that is displayed on a button element when it is clicked. + + + + + Gets or sets the image list index value of the image displayed on the button control when it is clicked. + + + + + Gets or sets the key accessor for the image for clicked state in the ImageList. + + + + + Determines whether the RadPageViewItem is currently selected (associated with the SelectedPage of the owning RadPageView). + + + + + Determines whether the RadPageViewItem is currently pinned (associated with the SelectedPage of the owning RadPageView). + + + + + Determines whether the RadPageViewItem is currently set as preview. + + + + + Gets the TabStripButtonItem that represents the CloseButton in this TabItem. May return null if ShowCloseButton is false. + + + + + Gets the TabStripButtonItem that represents the CloseButton in this TabItem. May return null if ShowCloseButton is false. + + + + + Determines whether the CloseButton of the item will be displayed or not. + + + + + Determines whether the CloseButton of the item will be displayed or not. + + + + + Gets or sets the offset of the close button from the item's ImageAndTextLayout panel. + + + + + Disables the selection in the strip panel. + + + + + Handles the click of a CloseButton on a child TabStripItem. + Closes the corresponding TabPanel by default. + + + + + + Temporary suspends notifications like TabSelecting and TabSelected from the parented RadTabStripElement. This method is used internally. + + + + + Callback to notify the panel that a control has been successfully removed, tab strip has been updated and any additional update is allowed. + + + + + + Resumes previously suspended notifications like TabSelecting and TabSelected from the parented RadTabStripElement. This method is used internally. + + + + + Determines whether the tabstrip element is visible. + + + + + + Forces layout update by explicitly re-setting the current bounds and performing a layout pass. + + + + + Suspends the focus change in the strip panel. + + + + + Gets the default alignment of the TabStripElement. + + + + + Gets the default text orientation. + + + + + Gets or sets the text orientation of the tab used to switch among child panels. + + + + + Determines whether each TabStripItem will display a CloseButton, which allows for explicit close of its corresponding panel. + + + + + Determines whether each TabStripItem will display a CloseButton, which allows for explicit close of its corresponding panel. + + + + + Gets the point where the mouse was pressed and a drag operation has been instanciated. + + + + + Determines whether the tab used to navigate among child panels is displayed. + + + + + Gets or sets the alignment of the tab used to switch among child panels. + + + + + Determines whether the child panels' Index update is currently locked. This property is used internally. + + + + Represents a Panel that is capalbe to host standard Windows Forms controls. + + + Initializes a new instance of the RadTabStripContentPanel class. + + + + Gets the item associated with the panel. + + + + Gets or sets the background color of the tabstrip layout. + + + + Defines the possible positions of the tab items + relatively to the base area. + + + + + The tab items will appear on the left of the base area. + + + + + The tab items will appear on the right of the base area. + + + + + The tab items will appear on the top of the base area. + + + + + The tab items will appear on the bottom of the base area. + + + + + Gets or sets SliderArea's first background color. + + + + + Gets or sets SliderArea's second background color. + + + + Gets or sets RadTrackBar's ticks color. + + + Gets or sets the gradient angle of the SliderArea. + + + Gets or sets whether the TrackBar should fit to available size. + + + Gets or sets whether the SlideArea should be visible. + + + Gets or sets Ticks Visibility. + + + + The number of positions the slider moves in response to mouse clicks. + + + + + The number of positions the slider moves in response to mouse clicks. + + + + + The number of positions between tick marks. + + + + + Gets or sets TrackBar's orientation. + + + + + Gets or sets the width of TrackBar's SlideArea. + + + + + Indicates the tick style of the progress bar. Possible values are members of + %TickStyles enumeration:Telerik.WinControls.Enumerations.TickStyles%: none, + topleft, BottomRight, and both. + + + + Gets or sets a minimum int value for the trackbar position. + + + Gets or sets a maximum int value for the trackbar position. + + + + Gets or sets the position of the Slider. + + + + Initializes a new instance of the TrackbarThumb class. + + + + CreateChildElements + + + + + GetPreferredSizeCore + + + + + + + + gets or sets Thumb's width + + + + + + gets or sets whether the trackbar's thumb should use its default shape + + + + + gets ParentTrackBarElement + + + + + Represents a track bar. The trackbar class is essentially a simple wrapper + for the RadTrackBarElement. All UI and + logic functionality is implemented in the + RadTrackBarElement class. The RadTrackBar acts + to transfer the events to and from its corresponding + RadTrackBarElement instance. The + RadTrackBarElement may be nested in other + telerik controls. + + + + + Creates the associated TrackBar element. + + RadTrackBarElement + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the instance of RadTrackBarElement wrapped by this control. RadTrackBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadTrackBar. + + + + + Gets or sets a minimum value for the trackbar position + + + + + Gets or sets a maximum value for the trackbar position + + + + + Gets or Sets TrackBar's value + + + + + Gets or Sets whether the TrackBar's ticks should be drawn + + + + + Gets or Sets the orientation of the TrackBar + + + + + Gets or Sets the number of positions that the trackbar moves in response to mouse clicks. + + + + + Gets or Sets the number of positions that the trackbar moves in response to keyboard arrow keys and the trackbar buttons. + + + + + Gets or Sets the orientation of the text associated with TrackBar. Whether it should appear horizontal or vertical. + + + + + Gets or Sets whether the TrackBar's labels should be drawn + + + + + Gets or Sets whether the TrackBar's handles should be drawn + + + + + Gets or Sets the number of positions between large tick marks + + + + + Gets or Sets the number of positions between small tick marks + + + + + Gets or Sets the Mode of the TrackBar + + + + + Gets the Range collection. + + + + + Gets or Sets the Snap mode of the TrackBar + + + + + Gets or Sets TrackBar's Size + + + + + Gets or Sets whether the SlideArea should be visible + + + + + Gets or Sets whether the selected thumb should move on arrow key press. + + + + + This property is not relevant for this class. + + + + + Occurs when the value of the controls changes + + + + + Occurs when a Label needs to be formatted. + + + + + Occurs when a Tick needs to be formatted. + + + + Represents a trackbar element. RadTrackBarElement can be nested in other + telerik controls. Essentially, the RadTrackBar is a simple wrapper for the + RadTrackBarElement. The former transfers events to and from its corresponding + RadTrackBarElement instance. + + + + Gets the instance of TrackBarBodyElement. TrackBarBodyElement + is the core element in the hierarchy tree and encapsulates the Scale and indicators functionality. + + + + + Gets instance of TrackBarArrowButton + + + + + Gets instance of TrackBarArrowButton + + + + + Gets or sets a minimum value for the trackbar position + + + + + Gets or sets a maximum value for the trackbar position + + + + + Gets or Sets TrackBar's value + + + + + Gets or Sets whether the TrackBar's ticks should be drawn + + + + + Gets or Sets TrackBar's Orientation + + + + + Gets or Sets whether the SlideArea should be visible + + + + + Gets or Sets the number of positions that the trackbar moves in response to mouse clicks. + + + + + Gets or Sets the number of positions that the trackbar moves in response to keyboard arrow keys and the trackbar buttons. + + + + + Gets or Sets Ticks Visibility + + + + + Gets or Sets TrackBar's sliders area color + + + + + Gets or Sets TrackBar's ticks color + + + + + Gets or Sets TrackBar's sliders area color + + + + + Gets or Sets the gradient angle of the SliderArea + + + + + Gets or Sets TrackBar's thumbWidth + + + + + Gets or Sets the number of positions between small tick marks + + + + + Gets or Sets the width of TrackBar's SlideArea + + + + + Gets or Sets whether the TrackBar's labels should be drawn + + + + + Gets or Sets whether the TrackBar's handles should be drawn + + + + + Gets or Sets the number of positions between large tick marks + + + + + Gets or Sets the number of positions between small tick marks + + + + + Gets or Sets TrackBar's Size + + + + + Gets or Sets the Snap mode of the TrackBar + + + + + Gets or Sets the Mode of the TrackBar + + + + + Gets the Range collection. + + + + + Gets or Sets the selected thumb + + + + + Gets or Sets whether the selcted thumb should move on arrow key press. + + + + + Occurs when the value of the controls changes + + + + + Occurs when the trackBar slider moves + + + + + Occurs when a Label needs to be formatted. + + + + + Occurs when a Tick needs to be formatted. + + + + + Represents a core range object that contains the start and end. + + + + + Creates a new object that is a copy of the current instance. + + + + + + Gets or Sets the start of the range. + + + + + Gets or Sets the end of the range. + + + + + Gets whether the range contains selected thumb" + + + + + Gets the Owner Collection + + + + + Gets or Sets the Name. + + + + + Gets or Sets the ToolTipText + + + + + Gets or Sets the Tag. + + + + + Occurs when a property value changes. + + + + + Represents a collection of + + + + + Check thumb move. + + value + isStart + range + bool + + + + Perform Thumb Move in SingleThumb Mode. + + Value + bool + + + + Returns an enumerator that iterates through the collection. + + IEnumerator + + + + Determines the index of a specific item in the Collection + + item + int + + + + Inserts an item to the Collections at the specified + index. + + index + item + + + + Removes the TrackBarRange item at the specified index. + + index + + + + Add range to the System.Collections.Generic.ICollection + + item + + + + Removes all items except the first from the System.Collections.Generic.ICollection + + + + + Determines whether the System.Collections.Generic.ICollection contains a specific value. + + + bool + + + + Copies the elements of the System.Collections.Generic.ICollection to an System.Array, starting at a particular System.Array index. + + array + arrayIndex + + + + Removes the first occurrence of a specific object from the Collection. + + item + bool + + + + Adds an item to the System.Collections.Generic.ICollection. + + value + int + + + + Determines whether the System.Collections.Generic.ICollection contains a specific value. + + value + bool + + + + Determines the index of a specific item in the System.Collections.IList. + + value + int + + + + Inserts an item to the System.Collections.IList at the specified index. + + index + value + + + + Removes the first occurrence of a specific object from the System.Collections.IList. + + value + + + + Copies the elements of the System.Collections.ICollection to an System.Array, + starting at a particular System.Array index. + + array + index + + + + Suspends all property and collection notifications. + + + + + Resumes property and collection notifications. + + + + + Gets or Sets a maximum value for the trackbar position + + + + + Gets or Sets a minimum value for the trackbar position + + + + + Gets or Sets the Mode of the TrackBar + + + + + Gets the RadTrackBarElement which owns this collection + + + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + Occurs when a property value changes. + + + + + Gets or sets the Range at the specified index. + + index + TrackBarRange + + + + Gets or sets the Range at the specified name. + + text + TrackBarRange + + + + Gets the number of elements contained in the Collection + + + + + Gets a value indicating whether the Collection is read-only. + + + + + Gets a value indicating whether the System.Collections.IList has a fixed + size. + + + + + Gets or sets the element at the specified index. + + index + object + + + + Gets a value indicating whether access to the System.Collections.ICollection + is synchronized (thread safe). + + + + + Gets an object that can be used to synchronize access to the System.Collections.ICollection. + + + + + Gets the nodes. + + + + + + Sets the current. + + The node. + + + + Resets this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Suspends the update. + + + + + Resumes the update. + + + + + Gets or sets a value indicating weather the changes in the child collections + in Object Relational Binding mode will be reflected automatically. + + + + + Gets the tree view. + + The tree view. + + + + Gets a value indicating whether this instance is suspended. + + + true if this instance is suspended; otherwise, false. + + + + + Initializes a new instance of the class. + + The data source. + The data member. + The display member. + The parent member. + The child member. + The value member. + The checked member. + + + + Initializes a new instance of the class. + + The data source. + The data member. + The display member. + The parent member. + The child member. + The value member. + + + + Initializes a new instance of the class. + + The data source. + The display member. + The parent member. + The child member. + The value member. + + + + Initializes a new instance of the class. + + The data source. + The display member. + The parent member. + The child member. + + + + Initializes a new instance of the class. + + The data source. + The display member. + The parent child member. + + + + Gets or sets the name of the relation. + + The name of the relation. + + + + Gets or sets the data source. + + The data source. + + + + Gets or sets the data member. + + The data member. + + + + Gets or sets the display member. + + The display member. + + + + Gets or sets the parent member. + + The parent member. + + + + + Gets or sets the child member. + + The child member. + + + + + Gets or sets the value member. + + The value member. + + + + Gets or sets the checked member. + + The checked member. + + + + Adds the specified data source. + + The data source. + The display member. + The parent child member. + + + + Adds the specified data source. + + The data source. + The display member. + The parent member. + The child member. + + + + Adds the specified data source. + + The data source. + The display member. + The parent member. + The child member. + The value member. + + + + Adds the specified data source. + + The data source. + The data member. + The display member. + The parent member. + The child member. + The value member. + + + + Adds the specified data source. + + The data source. + The data member. + The display member. + The parent member. + The child member. + The value member. + The checked member. + + + + Clears this instance. + + + + + Refreshes this instance. + + + + + Adds the tree node with specified text. + + The text. + + + + + Adds the specified text. + + The text. + Index of the image. + + + + + Adds the specified text. + + The text. + The image key. + + + + + Adds the specified key. + + The key. + The text. + Index of the image. + + + + + Adds the specified key. + + The key. + The text. + The image key. + + + + + Removes the specified name. + + The name. + + + + Determines whether [contains] [the specified name]. + + The name. + + true if [contains] [the specified name]; otherwise, false. + + + + + Indexes the of. + + The name. + + + + + Gets the owner. + + The owner. + + + + Gets the tree view. + + The tree view. + + + + Gets the with the specified name. + + + + + + Defines the expanding animation style of nodes in a + RadTreeView Class. + + + + + Indicates animation style changing the opacity of the expanding nodes. + + + + + Indicates no animation. + + + + + Specifies the type of option list formed by child nodes. + + + + + All children have a check box. + + + + + All children have a radio button. + + + + + Every child can specify whether it has a check box or a radio button. + + + + + Defines the style of the lines between the nodes in a + RadTreeView Class. + + + + Specifies a solid line. + + + Specifies a line consisting of dashes. + + + Specifies a line consisting of dots. + + + Specifies a line consisting of a repeating pattern of dash-dot. + + + Specifies a line consisting of a repeating pattern of dash-dot-dot. + + + + Gets the error text. + + The error text. + + + + Show expander + + + + + Gets the checked mode. + + + The checked mode. + + + + + TreeViewSpreadExport is a powerful exporting API, allowing to export RadTreeView to XLSX, PDF, CSV, and TXT format, utilizing the Document Processing Libraries. + + + + + Initializes a new instance of the class. + + The RadTreeView to export. + + + + Initializes a new instance of the class. + + The RadTreeView to export. + The export format. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Starts an export operation. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadTreeView will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadTreeView will still execute on the UI thread. + + The file name where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an export operation, in the specified sheet. If such sheet does not exist, it gets created. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Starts an export operation that runs in a background thread. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadTreeView will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + + + + Starts an async export operation, in the specified sheet. If such sheet does not exist, it gets created. + Note that if ExportVisualSettings is true, collecting the visual styles from the RadTreeView will still execute on the UI thread. + + The stream where data will be exported. + Instance of ISpreadExportRenderer class. + Name of the sheet. + + + + Cancels an asynchronous export operation. + + + + + Check if date is supported from MS Excel + + + True if value is supported + + + + Gets or sets the name of the sheet. + + + The name of the sheet. + + + + + Specifies whether a file will be exported as a new file, or if a file with the same name already exists at the specified path, a new sheet will be added to it. + + + ExportAsNewSheetInExistingFile - will add a new sheet to the specified file, if it exists + ExportInNewFile - will create/override the specified file + + + + + Gets or sets a value indicating whether to export images. + + + + + Gets or sets a value indicating whether to export child nodes grouped. + + + + + Gets or sets the format of the exported file - XLSX, PDF, CSV or TXT. + + + The file extension. + + + + + Gets or sets a value indicating whether the visual settings should be exported. + + + true if visual settings are exported; otherwise, false. + + + + + Gets or sets the maximum number of rows per sheet. + + + The sheet max rows. + + + + + Gets or sets the indent of child nodes. + + + + + Gets or sets a value indicating how children of collapsed nodes are exported. + + + + + Occurs for every cell that is being exported. + + + + + Occurs when the export process completes. + + + + + Occurs when the progress of an async export operation changes. + + + + + Occurs when an async export operation is completed. + + + + + Represents the method that will handle the CellFormatting event. + + The sender. + The instance containing the event data. + + + + Provides event arguments for the CellFormatting event + + + + + Initializes a new instance of the class. + + Export cell for further formatting. + The exporting tree node of RadTreeView. + The row index in the worksheet. + + + + Gets the row index in worksheet. + + + + + Gets export cell for further formatting. + + + + + Gets the exporting tree node. + + + + + Determines whether a tree node will be selected upon clicking on the action part of the split button element. The default value is false and click on the action part will result in opening the popup with the menu items. + + + + + Gets the breadCrumb element. + + + + + RadbreadCrumb consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Gets a collection of items which are children of the TabStrip element. + + + + + Initializes a new instance of the TreeViewCheckboxEditor class. + + + + + Begins the edit. + + + + + Toggles the checkbox state. + + + + + Translates system key down events to the owner element. + + A System.Windows.Forms.KeyEventArgs that contains the event data. + + + + Gets or sets the editor value. + + + + + + Gets the is modified. + + The is modified. + + + + Gets the type of the editor value + + System.Boolean + + + + Initializes a new instance of the DataFilterCheckboxEditorElement class. + + A instance. + + + + Get the checkmark element. + + + + + Gets or sets the checkmark state. + + + + + Represents a date time editor in RadTreeView. + + + + + Represents a DropDownList editor in RadTreeView. + + + + + Represents a spin editor in RadTreeView. + + + + + Represents the method that will handle events in the hierarchy traverser. + + + + + + + Provides data for all events used in the hierarchy traverser. + + + + + Initializes a new instance of the class. + + The content. + + + + Gets or sets a value indicating whether the object instance to be processed by the hierarchy traverser. + + true if [process hierarchy object]; otherwise, false. + + + + Gets the node. + + The node. + + + + + + + + + Gets or sets the font. + + The font. + + + + Gets or sets the color of the fore. + + The color of the fore. + + + + Gets or sets the color of the border. + + The color of the border. + + + + Gets or sets the back color4. + + The back color4. + + + + Gets or sets the back color3. + + The back color3. + + + + Gets or sets the back color2. + + The back color2. + + + + Gets or sets the color of the back. + + The color of the back. + + + + Gets or sets the number of colors. + + The number of colors. + + + + Gets or sets the gradient percentage2. + + The gradient percentage2. + + + + Gets or sets the gradient percentage. + + The gradient percentage. + + + + Gets or sets the gradient angle. + + The gradient angle. + + + + Gets or sets the gradient style. + + The gradient style. + + + + Gets or sets the text alignment. + + The text alignment. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The table element. + + + + Gets or sets the size of the arrow. Used to calculate pixel-perfect results. + + + + + Gets or sets a value determining the shape of the link + + + + + Gets or sets a value determining the style of the link lines + + + + + Defines the differen link styles + + + + + + + + This constant is used internally. + + + + + Initializes a new instance of + + + + + + Initializes a new instance of + + + + + Raises the ModifiedChanged event. + + + + + Appends the given text + + + + + + Clears the editing control's text + + + + + Clears and undoes the text + + + + + Copies the selected text + + + + + Cuts the selected text + + + + + clears the selection + + + + + Gets a character from a given point + + + + + + + Gets the index of a character at a given point + + + + + + + gets the index of the first char in a given line + + + + + + + gets the first char index at the current line + + + + + + Gets a line number from a char index + + + + + + + Gets the position from a char index + + + + + + + pastes the text in the clipboard + + + + + Pasted a given text + + + + + + scrolls the textbox to the caret position + + + + + Makes a selection in a given range specified by a start position and selection length + + + + + + + selects the whole text + + + + + Undoes the last edit operation in the text box. + + + + + Raises the AcceptsTabChanged event. + + + + + Raises the HideSelectionChanged event. + + + + + Raises the MultilineChanged event. + + + + + Raises the PreviewKeyDown event. + + + + + Raises the ReadOnlyChanged event. + + + + + Raises the TextAlignChanged event. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets whether the control can receives the focus when tab is pressed + + + + + Gets or sets whether the text box accepts the return key + + + + + Gets or sets whether the text box accepts the tab key + + + + + Gets if the text box could undo its value + + + + + Indicates if all characters should be left alone or converted + to upper or lower case + + + + + Gets or sets the selection in the text box + + + + + The lines of the text in a multi-line edit, as an array of string values + + + + + Specifies the maximum length of characters which could be entered + + + + + Indicates the visibility level of the object + + + + + The text could span more than a line when the value is true + + + + + Gets or sets the char used for entering passwords + + + + + Gets the preferred height + + + + + Indicates whether the text could be changed or not + + + + + The scrollbars which will appear if the editing control is in multiline mode + + + + + the text which is in selection + + + + + the length of the selection + + + + + Gets or sets the start selection position + + + + + Indicates whether the shortcuts are enabled. + + + + + Gets or sets the alignment of the text in the editing control + + + + + Indicates the text length + + + + + Indicates if lines are automatically word-wrapped for + multiline editing controls + + + + + Gets or sets the prompt text that is displayed when the TextBox contains no text + + + + + Gets or sets the color of prompt text that is displayed when the TextBox contains no text + + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Gets the TextBox control hosted in this item. + + + + + Gets or sets the vertical stretch value + + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + + This property is used internally. + + + + + Occurs when the TabStop property has changed. + + + + + Occurs when the AcceptsTab property has changed. + + + + + Occurs when the HideSelection property has changed. + + + + + Occurs when the Modified property has changed. + + + + + Occurs when the Multiline property has changed. + + + + + Occurs when a key is pressed while focus is on text box. + + + + + Occurs when the ReadOnly property has changed. + + + + + Occurs when the TextAlign property has changed. + + + + + Represents a base button control. The button control serves as a + RadButtonElement Class wrapper. All logic and + presentation features are implemented in a parallel hierarchy of objects. For this + reason, RadButtonElement Class may be nested in + any other telerik control, item, or element. + + + + + Initializes a new instance of the RadButtonBase class. + + + + + Override this method to create custom main element. By default the main element is an instance of + RadButtonElement. + + Instance of the one-and-only child of the root element of RadButton. + + + + Gets or sets the text associated with this item. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets the instance of RadButtonElement wrapped by this control. RadButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadButton. + + + + + Includes the trailing space at the end of each line. By default the boundary rectangle returned by the Overload:System.Drawing.Graphics.MeasureString method excludes the space at the end of each line. Set this flag to include that space in measurement. + + + + + + + + + + + + + + Specifies the options for display of image and text primitives in the element. + + + + + Gets or sets the position of text and image relative to each other. + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + Determines whether the button can be clicked by using mnemonic characters. + + + + + Toggles the value of RadToggleSwitch + + + + + Toggles the value of RadToggleSwitch + + Indicates whether to use animation. + + + + Sets the value of RadToggleSwitch. + + The new value. + + + + Sets the value of RadToggleSwitch. + + The new value. + Indicates whether to use animation. + + + + Gets the instance of RadToggleSwitchElement wrapped by this control. RadToggleSwitchElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadToggleSwitch. + + + + + Gets the on element of RadToggleSwitch. + + + + + Gets the off element of RadToggleSwitch. + + + + + Gets the thumb of RadToggleSwitch. + + + + + Gets or sets the text displayed when the state is On. + + + + + Gets or sets the text displayed when the state is Off. + + + + + Gets or sets width of the thumb. + + + + + Determines how far the switch needs to be dragged before it snaps to the opposite side. + + + + + Gets or sets the value. + + + + + Gets or sets a value indicating whether to use animation when changing its state. + + + + + Gets or sets the animation interval. + + + + + Gets or sets the animation frames. + + + + + Gets a value indicating whether the control is currently animating. + + + + + Determines how ToggleSwitch button should handle mouse click and drag. + + + + + Gets or sets a value indicating whether the value could be changed. + + + + + RadToggleSwitch consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadToggleSwitch consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + Occurs when the Value is about to change. Cancelable. + + + + + Occurs when the Value has changed. + + + + + Occurs when the animation starts. + + + + + Occurs when the animation finishes. + + + + + Toggles the value of RadToggleSwitch + + + + + Toggles the value of RadToggleSwitch + + Indicates whether to use animation. + + + + Sets the value of RadToggleSwitch. + + The new value. + + + + Sets the value of RadToggleSwitch. + + The new value. + Indicates whether to use animation. + + + + Cancels the currently running animation. + + + + + Gets or sets a value indicating whether to use animation when changing its state. + + + + + Gets or sets the animation interval. + + + + + Gets or sets the animation frames. + + + + + Gets a value indicating whether the control is currently animating. + + + + + Gets the on element + + + + + Gets the off element. + + + + + Gets the thumb element. + + + + + Gets or sets the value. + + + + + Gets or sets width of the thumb. + + + + + Determines how far the switch needs to be dragged before it snaps to the opposite side. + + + + + Gets or sets the text displayed when the state is On. + + + + + Gets or sets the text displayed when the state is Off. + + + + + Determines how ToggleSwitch button should handle mouse click and drag. + + + + + Gets or sets a value indicating whether the value could be changed. + + + + + + + + + + + + + + + Get or set thumb size + + + + + Gets or sets the image used by the splitter when in horizontal orientation. + + + + + Gets or sets the image used by the splitter when in vertical orientation. + + + + + This class represents the drop-down + of the RadGalleryElement. + + + + + Creates an instance of the + class. + + An instance of the + class that represents the gallery that owns this drop-down. + + + + Represents the groupbox content. + + + + + Gets the FillPrimitive contained in the Content area + + + + + Gets the BorderPrimitive contained in the Content area. + + + + + Creates child elements. Please refer to TPF documentation for more information. + + + + + Returns class name. + + class name + + + + Represents the groupbox footer. + + + + + Creates child elements. Please refer to TPF documentation for more information. + + + + + Performs layout measure. Please refer to TPF documentation for more information. + + + desired size + + + + Returns class name. + + class name + + + + Represents a groupbox. The group box major purpose is to define a radio buttons group. The RadGroupBox does not support scrolling. + The control is highly customizable using themes. + + + + + Parameterless contstructor. + + + + + Gets or sets the header text. + + + + + Gets the groupbox element. + + + + + Gets or sets the groupbox style - Standard or Office. + + + + + Gets or sets the header position - Top, Right, Bottom, Left + + + + + Gets or sets the header alignment - Near, Center, Far. + + + + + Gets or sets the header margin. + + + + + Gets or sets footer visibility. + + + + + Gets or sets the header text. + + + + + Gets or sets the footer text. + + + + + Gets or sets the header image. + + + + + Gets or sets the footer image. + + + + + Gets or sets the header image key. + + + + + Gets or sets the header image index. + + + + + Gets or sets the footer image key. + + + + + Gets or sets the footer image index. + + + + + Gets or sets the header text image relation. + + + + + Gets or sets the footer text image relation. + + + + + Gets or sets the header text alignment. + + + + + Gets or sets the footer text alignment. + + + + + Gets or sets the header image alignment. + + + + + Gets or sets the footer image alignment. + + + + + If true, the first character preceded by an ampersand will be used as mnemonic key + + + + + Gets or sets the header margin. + + + + + Gets or sets the header text. + + + + + Gets or sets the footer text. + + + + + Gets or sets the header image. + + + + + Gets or sets the footer image. + + + + + Gets or sets the header text image relation. + + + + + Gets or sets the footer text image relation. + + + + + Gets or sets the header text alignment. + + + + + Gets or sets the footer text alignment. + + + + + Gets or sets the header image alignment. + + + + + Gets or sets the footer image alignment. + + + + + Gets or sets the header image key. + + + + + Gets or sets the header image index. + + + + + Gets or sets the footer image key. + + + + + Gets or sets the footer image index. + + + + + Gets or sets the group box style - Standard, or Office. + + + + + Defines group box styles. + + + + + Prevent Design time serilizaltion for Image from theme + + + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets or sets the position of text and image relative to each other. + + + + + true if the text should wrap to the available layout rectangle otherwise, false. The default is true + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + + + + + + + + + + If true, the first character preceded by an ampersand will be used as the label's mnemonic key + + + + + Gets or sets a value indicating whether the border is visible + + + + + Gets the instance of RadLabelElement wrapped by this control. RadLabelElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadLabel. + + + + + A light element that inherits from , adds the base states for theming and sets the default event to Click. + + + + + IsDirty Property + + + + + Takes as parameters the that is binding + and the that is being bound to the RadItem. + + The that is binding. + The object that is being bound to the . + + + + Gets the that is bound. + + + + + Gets the that was swapped with a new RadItem. + + + + + Gets the object that is being bound to the . + + + + + Takes as parameters the that is bound + and the that is being bound to the RadItem. + + The that is bound. + The object that is being bound to the . + + + + Gets the that is bound. + + + + + Gets the object that is being bound to the . + + + + + Returns the type supported by the class implementing the ICellEditor interface. + The supported type is the data type that can be handled and edited by the editor. + + + + + Defines how the editor will be positioned relatively to the edited container + + + + + Editor is positioned inline, inside of the editor container, and logically resides in container's children + hierarchy. Usually it is recommended to use this option for compact-sized editors, + like textboxes, comboboxes, mask editors, checkboxes, etc. + + + + + Editor is positioned inside a popup control which is positioned vertically under the edited + container. Usually it is recommended to use this + option for medium to large-sized editors, like calendars, custom controls and panels, + radiobutton lists, checkbox groups, etc. + + + + + Usually this means that the editor is positioned explicitly by the edited containers's logic. + Also it is used as a default initialization value. + + + + + Provides functionality for managing editors + + + + + Returns an editor instance of the default type for the editor provider. + + An object that implements interface. + + + + Gets the default editor type for the editor provider. + + The default type. + + + + Initializes a specified editor. + + An object that implements interface. + + + + Establishes the common events and also the event-related properties and methods for basic input processing by + Telerik Presentation Foundation (TPF) elements. + + + + + This interface defines all necessary methods for custom scrolling. Performing each + scroll operation via the method (thus allowing custom + logic to be used) is called logical scrolling. The only way to enable logical + scrolling in is via implementation of this + interface. + + + + + Gets the real size of the content that the viewport must visualize. + + + + + Invalidates the viewport. + + + + + Calculate scroll value. This method is used while resizing the scroll panel. + + + + + + + + + + + + + + + Calculates the necessary offset in order to make the given child visible. + + + + Retrieves the scroll parameters. + + + + + + Returns the number of items that are visible when the viewport is scrolled to its + maximum value (the bottom for vertical stack and the right-most place for left-to-right + horizontal stack). The last item must always be fully visible. + If there are children the result will be at least 1. + + Number of full visible items in the viewport. If the items are with different sizes, + the last items are used in the calculations. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the captured color + + + + + Fires when the color is changed. + + + + + + + + Fires when the selected color has changed + + + + + Represents a color palette + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the number of columns in the palette + + + + + Gets or sets the margin of the palette + + + + + Gets or sets the color in the palette + + + + + Gets or sets the selected color + + + + + Fires when the selected color has changed + + + + + + + + Provides different sets of colors + + + + + Gets the color correspoding to a hex value + + + + + + + Gets the hex value for the color + + + + + + + Gets the rounded value + + + + + + + Gets the set of basic colors + + + + + Gets the set of system colors + + + + + Gets the set of named colors + + + + + Provides common services for color transformations + + + + + Gets a color from RGB ratios + + + + + + + + + Gets a color quotient + + + + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the RgbValue value + + + + + Gets or sets the HSL value + + + + + Fires when the selected color changes + + + + + Represents a hexagon of discrete colors + + + + + Fires when the selected color has changed + + + + + Gets the selected color + + + + + Paints the hexagon + + + + + + Gets or sets the hexagon color + + + + + Gets a rectangle containing the hexagon + + + + + Gets or sets a value indicating whether the hexagon is hovered + + + + + Gets or sets a value indicating whether the hexagon is selected + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the color mode + + + + + Gets or sets the color in HSL format + + + + + Gets or sets the color in RgbValue format + + + + + Fires when the selected color has changed + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the color mode of the slider + + + + + Gets or sets the color in HSL format + + + + + Gets or sets the color in RgbValue format + + + + + Gets or sets the position of the slider arrow + + + + + Fires when the selected color has changed + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the color in RgbValue format + + + + + Fires when the selected color changes + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the color shown in RGB format + + + + + Gets or sets the color shown in HSL format + + + + + Fires when the selected color has changed + + + + + Represents a color selector control + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Fires when custom colors configuration is about to be saved or loaded. + Can be used to change the default location of the configuration file. + + + + + Fires when the selected color changes + + + + + Fires when the OK button is clicked + + + + + Fires when the Cancel button is clicked + + + + + Gets or sets a value indicating whether the Analytics functionality is enable or disable for this control. + + + + + Gets or sets the selected color + + + + + Gets or sets the selected color + + + + + Gets or sets the selected HSL color + + + + + Gets or sets the old color + + + + + Gets the list of custom colors + + + + + Shows or hides the web colors tab + + + + + Shows or hides the basic colors tab + + + + + Shows or hides the system colors tab + + + + + Shows or hides the professional colors tab + + + + + Shows or hides the system colors tab + + + + + Shows or hides the hex color textbox + + + + + Gets or sets the value indicating whether the user can edit the hexadecimal color value + + + + + Gets or sets the value indicating whether the user can pick a color from the screen + + + + + Gets or sets the value indicating whether the user can save colors + + + + + Gets or sets the text of the add new color button + + + + + Sets or gets the active mode of the RadColorPicker + + + + + Gets or sets the heading of the basic colors tab + + + + + Gets or sets the heading of the system colors tab + + + + + Gets or sets the heading of the web colors tab + + + + + Gets or sets the heading of the professional colors tab + + + + + Gets or sets the heading of the new color label + + + + + Gets or sets the heading of the old color label + + + + + Gets the DiscreteColorHexagon control + + + + + Gets or sets a value indicating whether custom colors should be save upon exiting the color picker. + + + + + A panel holding a collection of saved colors + + + + + Safely tries to find the path to the local app data folder. + If no path is found, tries to find the path to the common app data folder. + + + + + Serializes the custom colors. + + + Deserializes the custom colors. + + + + Save the color to the next color slot + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Fires when the selected color has changed + + + + + Fires when custom colors configuration is about to be saved or loaded. + Can be used to change the default location of the configuration file. + + + + + Gets or sets a value indicatign whether custom colors should be save upon exiting the color picker. + + + + + Gets or sets the custom directory path which will be used + when the custom colors XML file is stored on the hard drive. + + + + + Gets or sets the index of the currently selected color + + + + + Gets the currently selected color + + + + + Gets all the colors in the saved colors collection + + + + + A transparent color box where semi-transparent colors can be shown + + + + + Gets or sets the color shown in the box + + + + + A transparent color box where semi-transparent colors can be shown + + + + + Gets or set the color shown in the box + + + + + Represents the RadDateTimePicker class + + + + + Represents the RadDateTimePicker constructor + + + + + creates and initializes the RadDateTimePickerElement + + + + + + Sets the current value to behave as a null value + + + + + Raises the FormatChanged event + + + + + + Raises the ValueChanged event + + + + + + Raises the ValueChanged event + + + + + + Raises the ValueChanging event + + + + + + Gets the control's default size + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the culture supported by this calendar. + + + + + Gets the instance of RadDateTimePickerElement wrapped by this control. RadDateTimePickerElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadDateTimePicker. + + + + + Gets or sets the date/time value assigned to the control. + + + + + Gets or sets the date/time value assigned to the control. + + + + + Gets or sets the format of the date and time displayed in the control. + + + + + Indicates whether a check box is displayed in the control. When the check box is unchecked no value is selected + + + + + Gets or sets the custom date/time format string. + + + + + When ShowCheckBox is true, determines that the user has selected a value + + + + + Gets or sets the minimum date and time that can be selected in the control. + + + + + Gets or sets the maximum date and time that can be selected in the control. + + + + + Gets or sets the location of the drop down showing the calendar + + + + + Gets or sets the size of the calendar in the drop down + + + + + The DateTime value assigned to the date picker when the Value is null + + + + + Indicates whether a spin box rather than a drop down calendar is displayed for editing the control's value + + + + + Gets or sets the text that is displayed when the DateTimePicker contains a null + reference. + + + + Gets or sets a value indicating whether RadDateTimePicker is read-only. + + true if the RadDateTimePicker is read-only; otherwise, false. The default is + false. + 1 + + + + Gets the maximum date value allowed for the DateTimePicker control. + + + + + Occurs when MaskProvider has been created + This event will be fired multiple times because + the provider is created when some properties changed + Properties are: Mask, Culture, MaskType and more. + + + + + Occurs when the format of the control has changed + + + + + Occurs when the value of the control has changed + + + + + Occurs when the value of the control is changing + + + + + Occurs when the value of the control is changing + + + + + Occurs when the drop down is opened + + + + + Occurs when the drop down is opening + + + + + Occurs when the drop down is closing + + + + + Occurs when the drop down is closed + + + + + Occurs when the RadItem has focus and the user presses a key down + + + + + Occurs when the RadItem has focus and the user presses a key + + + + + Occurs when the RadItem has focus and the user releases the pressed key up + + + + + Occurs before the CheckBox's state changes. + + + + + Occurs when the CheckBox's state changes. + + + + + Occurs when the value of the checkbox in the editor is changed + + + + + Represents the RadDateTimePickerCalendar class + + + + + Represents the RadDateTimePickerCalendar constructor + + + + + + Creates dateTimePicker's children + + + + + Shows the drop-down window part of the combo box + + + + + Sets the date shown in the textbox by a given value and format type. + + + + + + + Gets the instance of RadDateTimePickerElement associated to the control + + + + + Gets the RadArrowButtonElement instance + that represents the Date Time Picker's arrow + button. + + + + + Gets or sets the calendar control which is shown when the pop up control is shown + + + + + Gets or sets the drop down control which is shown when the user clicks on the arrow button + + + + + Gets or sets the drop down sizing mode. The mode can be: horizontal, vertical or a combination of them. + + + + + Gets or sets the drop down minimum size. + + + + + Gets or sets the drop down maximum size. + + + + + Gets a value representing whether the drop down is shown + + + + + The owner control of the popup + + + + + Shows the popup control with a specified popup direction and offset by the owner + + + + + + + Hides the popup + + + + + Occurs when the drop down is opened + + + + + Occurs when the drop down is opening + + + + + Occurs when the drop down is closing + + + + + Occurs when the drop down is closed + + + + + Gets or sets the hosted control in the popup. + + + + + Get/Set minimum value allowed for size + + + + + Get/Set maximum value allowed for size + + + + + Represents the RadDateTimePickerSpinEdit class + + + + + Represents the RadDateTimePickerSpinEdit constructor + + + + + + Sets the date shown in the textbox by a given value and format type. + + + + + + + Creates dateTimePicker's children + + + + + Gets the instance of RadDateTimePickerElement associated to the control + + + + + RadRotator BeginRotate Event Arguments + + + + + Delegate for the BeginRotate event + + The RadRotator that rotates + + + + + This control is transfers the web-based rotators' functionality to the Windows forms work space. + + + + + Initializes the RadRotator control + + + + + Initializes the Childs Items + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /// + + + + + + + /// + + + + + + + + Gets or sets whether the edit control is auto-sized + + + + + + + + Gets the instance of RadRotatorElement wrapped by this control. RadRotatorElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRotator. + + + + + Gets or sets whether RadRotator should stop rotating on MouseOver + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The RadItem containing , Border and Fill primitives + + + + + + + + + + + + + + + + + + + + + + + + + + Gets the collection of s that will be rotated. + + + + + Gets or Sets the that is to be displayed while loading the rest items. It is not cycled through when rotation starts. + If you want to have initial item that will be cycled through, add it to the collection + and advance to it using + + + + + + + Gets or Sets the interval between consequetive rotation animations. + + + + + Gets or Sets the swap animation's frames number + + + + + Gets or sets whether RadRotator should stop rotating on MouseOver + + + + + Gets or Sets value indicating whether opacity will be animated when switching frames + + + + + Gets or Sets value defining the initial position of the incomming item + and the final position of the outgoing item. + Note: The position is relative, in the range [-1, 1] for each of the components (X, Y). + Value of positive or negative 1 means that the object will not be in the visible area + before the animation begins (for the incomming item) or after it ends (for the outgoing item) + + + + + Gets or Sets the index of the current item. + Note: When setting the current item, the old and the new item will be swapped. + + + + + + Gets the current item. + + + + + + Gets or Sets value indicating whether the is started/stopped. + + + + + + + + Gets the in the current + + + + + + + + + + + + + + + + + + + + Represents TPF controls container + + + + + Gets the collection of s contained in the + + + + + The RadItem that implements the actual 's functionality. + + + + + Starts cycling through the elements in the collection + + set to true to initiate rotation immediately, or set to false to rotate after the time + there are no elements to rotate (Items collection is empty) + + + + Stops the rotation process. If swap is under way, it will be completed. + + + + + Initiates swap between the current item and the one whose index is supplied. + + the index of the item in the collection. The index of the home element is -1. + true on successful swap + + + + Makes transition to the default element. + + + + + Advances to the next item + + + + + Advances to the previous item + + + + + + + + + + + + + + Gets the collection of s that will be rotated. + + + + + Gets or Sets the that is to be displayed while loading the rest items. It is not cycled through when rotation starts. + If you want to have initial item that will be cycled through, add it to the collection + and advance to it using + + + + + + + Gets or Sets the interval between consequetive rotation animations. + + + + + Gets or sets whether RadRotator should stop rotating on MouseOver + + + + + Gets or Sets the swap animation's frames number + + + + + Gets or Sets value indicating whether opacity will be animated when switching frames + + + + + Gets or Sets value defining the initial position of the incomming item + and the final position of the outgoing item. + Note: The position is relative, in the range [-1, 1] for each of the components (X, Y). + Value of positive or negative 1 means that the object will not be in the visible area + before the animation begins (for the incomming item) or after it ends (for the outgoing item) + + + + + Gets or Sets the index of the current item. + Note: When setting the current item, the old and the new item will be swapped. + + + + + + Gets the current item. + + + + + + Gets or Sets value indicating whether the is started/stopped. + + + + + + + + Fires when an Item is clicked + + + + + Fires when is started. + + + + + Fires when is stopped. + + + + + Fires before s' swap begins. + + + + + Fires when s' swap has finished. + + + + + Provides information about the validation process. + + + + + Gets the exception that is caused by the validation of the edited value. Generally + the exception is populated by the validation logic and is available for rising by the editor. + + + + + Gets the edited value that fails to be validated + + + + + Represents the method that handles the Validating event. + + The source of the event. + A ValidationErrorEventArgs that contains the event data. + + + + Represents the method that handles the ValueChanging event. + + The source of the event. + A ValueChangingEventArgs that contains the event data. + + + + Adds the RadContextMenu dynamic property and enables using RadContextMenu in all controls. + + + + + Provides a menu-like interface within a button. + + + + + Create main button element that is specific for RadSplitButton. + + The element that encapsulates the functionality of RadSplitButton + + + + + + + Gets the instance of RadSplitButtonElement wrapped by this control. RadSplitButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadSplitButton. + + + + + + + + + + + Raises the DropDownItemClicked event. + + + + + Get or sets the item that is activated when the button portion of the + RadSplitButtonElement is clicked or selected and Enter is pressed. + + + + + Get or sets the item that is separating the action part and the arrow part of the button. + + + + + Occurs when the default item is changed. + + + + + + Represents a checkmark element in a menu item. + + + + + Represents checkmark. + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Gets the instance of BorderPrimitive wrapped by this element. + + + + + Gets the instance of FillPrimitive wrapped by this element. + + + + + Gets the instance of ImagePrimitive wrapped by this element. + + + + + Gets the instance of CheckPrimitive wrapped by this element. + + + + + Gets or sets the image that is displayed on a button element. + + + + + Gets or sets the image list index value of the image displayed as a checkmark. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets value indicating RadCheckmark checkstate. + + + + + Determines whether the item will be used as a separate item in another element. + + + + Gets or sets value indicating whether border must be shown. + + + Gets or sets value indicating whether background must be shown. + + + + Represents a menu item which has a combobox placed inside. + + + + + Provides a reference to the ComboBox element in the menu item. + + + + + Represents a generic menu item which could have any descendant of RadElement placed inside. + Such element could be placed in the menu by setting the ContentElement property. + + + + + Gets or sets if the image column offset is shown along with content element or not. + + + + + Provides a reference to the content element in the menu item. + + + + Defines scrolling states. + + + + + + + Represents event data of the Scroll event defined in all controls providing + scrolling functionality(e.g. RadScrollBar). + + + + + Initializes a new instance of the ScrollPanelEventArgs class. + + + + + + Gets the old thumb position (point). + + + Gets the new thumb position (point). + + + + Represents event data for the + ScrollParametersChanged event. + + + + + Indicates whether the scroll parameters are for the horizontal or for the vertical scroll bar. + + + + + Scroll bar parameters taken from the scroll bar that caused the event. + All parameters are filled correctly, not only the chagned one. + + + + + Indicates whether the need for horizontal or vertical srcolling has changed + + + + + Indicates whether horizontal scrolling was necessary + + + + + Indicates whether horizontal scrolling is necessary + + + + + Represents the method that will handle the + Scroll event. + Represents the event sender. + Represents the event arguments. + + + + + Represents the method that will handle the + Scroll event. + + Represents the event sender. + Represents the event arguments. + + + + Represents the method that will handle the + ScrollNeedsChanged event. + + + + + + + Represents parameters of the scroll panel such as values for the small and + large changes while scrolling. + + + + + Represents horizonatal scroll parameters data: horizontal minimum and maximum + positions, and horizontal small and large change. + + + + + Represents vertical scroll parameters data: vertical minimum and maximum + positions, and vertical small and large change. + + + + + Initializes a new ScrollPanelParameters struct. + + + ScrollPanelParameters(int,int,int,int,int,int,int,int) + + + Initializes the parameters pertaining to the horizontal scrolling - small and + large horizontal changes, and minimum and maximum scrolling positions. + + + Initializes the parameters pertaining to the vertical scrolling - small and large + vertical changes, and minimum and maximum scrolling positions. + + + + + Initializes a new ScrollPanelParameters structure. + + + ScrollPanelParameters(ScrollBarParameters,ScrollBarParameters) + + Initializes the minimum horizontal scrolling position. + Initializes the maximum horizontal scrolling position. + + Initializes the small horizontal change value; the value added or substracted + from the current position when small horizontal change is initiated. + + + Initializes the large horizontal change value; the value added or substracted + from the current position when large horizontal change is initiated. + + Initializes the vertical minimum scrolling position. + Initializes the vertical maximum scrolling position. + + Initializes the small change vertical value; the value added or substracted from + the current position when small vertical change is initiated. + + + Initializes the large vertical change value; the value added or substracted from + the current position when large vertical change is initiated. + + + + + Represents a menu. It may be nested in other telerik controls. RadMenu can be + horizontal or vertical. You can add, remove, and disable menu items at run-time. It + offers full support for the Telerik RadControls + for WinForm theming engine, allowing you to easily construct a variety of stunning + visual effects. You can nest any other RadControl within a RadMenu + . For example, you can create a menu with an embedded + textbox or combobox. + + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Occurs when the menu Orientation property value changes. + + + + + Occurs when the menu AllItemsEqualHeight property value changes. + + + + Gets or sets the context items. + + + + Gets an instance of the class + that represents the layout panel in which the menu items reside. + + + + + + Gets all root menu items (see for more + information about menu items). + + + + Root menu items are these menu items that can be displayed in the menu when + nothing is dropped down. + + Menu items are hierarchical items - they have a parent item and a list of children + items. Children items are menu items that can be dropped down as submenu of + their parent. The difference between the root and the non-root menu items is that + root items have no parent item (the property + can be used to check if an item is a + root one). + + Note that Items contains all root menu items, not just the + items that are displayed. An item remains in the Items collection even if it is an + overflow item and is therefore not currently visible. + + RadMenuItemBase Class + + + + Gets or sets the + orientation of menu + items - Horizontal or Vertical. + + + + + Gets or sets whether all items will appear with the same size (the size of the highest item in the collection). + + + + + Gets or sets a value indicating whether the DropDown animation will be enabled when it shows. + + + + + Gets or sets the type of the DropDown animation. + + + + + Gets or sets the number of frames that will be used when the DropDown is being animated. + + + + + Gets an instance of the class + that represents the menu background fill. + + + + + Gets an instance of the class + that represents the border of the menu. + + + + + Represents the method that will handle the RadPopupClosing event. + + Represents the event sender. + Represents the event arguments. + + + + Represents the method that will handle the + Represents the event arguments. + Represents the sender of the event. + + + + + Represents a method which will handle the PopupOpening event. + + Repretents the event sender. + Represents the event arguments + + + + Represents a method which will handle the FadeAnimationFinished event. + + Repretents the event sender. + Represents the event arguments + + + + Represents a method which will handle the PopupOpened event. + + Repretents the event sender. + Represents the event arguments + + + Defines the closing reasons for the popup. + + + + Specifies that the popup was closed because + another application has received the + focus. + + + + + Specifies that the popup was closed because the + mouse was clicked outside the + popup. + + + + + Specifies that popup was closed because of + keyboard activity, such as the ESC key being + pressed. + + + + + Specifies that the popup was closed because + ClosePopup() method had been called. + + + + + Specifies that the popup was closed because its parent was closed. + + + + + Instances of this class contain information + about the fade animation finished event of a popup control. + + + + + Gets a boolean value determining the type + of the fade animation. + + + + + Instances of this class contain information + about the opening event of a popup control. + + + + + Creates an instance of the + class. + + + + + Gets an instance of the + struct which contains the coordinates which will be used + to position the popup. + + + + + Represents event data of the RadPopupClosingEvent. + + + + + Initializes a new instance of the RadPopupClosingEventArgs class using the close reason. + + + + + + Defines the direction in which the drop-down window will be shown relative to its parent. + + + This enumeration is used in such controls like menus, combo boxes, etc. for example. + + + + + Indicates that the drop-down will be shown on the left side of the parent. + + + + + Indicates that the drop-down will be shown on the right side of the parent. + + + + + Indicates that the drop-down will be shown on the top side of the parent. + + + + + Indicates that the drop-down will be shown on the bottom side of the parent. + + + + + + + + Gets the screen rectangle of the provided screen. + + The screen. + Determines whether the taskbar is included in the result. + A Rectangle struct that contains the data about the bounds of the screen. + + + + Gets the valid location for a context menu + + + + + + + + + + Gets the valid location for a drop-down (for menus, combo boxes, + etc.). + + + This method calculates: + 1. The rectangle of the screen where the drop down should be shown + 2. The rectangle (in screen coordinates) of the owner element. Owner element + is the element that shows the drop-down and is connected to it - like a menu item + that shows its sub menus or a combobox element that shows its drop-down. + After calculating the screen and the element rectangles this method calls the + basic method. + + + + + + + Offset in pixels from the owner element. When this is zero there is no space + between the owner and the drop-down. + + + + + Gets the valid location for a drop-down (for menus, combo boxes, etc.). + + The popup is not allowed to be outside the screen rectangle and to be shown over + the ownerRect. + + + + + + + Offset in pixels from the owner element. When this is zero there is no space + between the owner and the drop-down. + + + + + Gets a screen from a point on the desktop. + + A Screen object that contains the given point or the PrimaryScreen on + error. + + The point on the desktop that must be in the returned screen. + + + + Gets the rectangle of the screen that contains the biggest part of a given + element. + + The rectangle of the primary screen on error. + + If the element is not added in a control or is not visible the rectangle of the + primary screen is returned. + + + + Gets the rectangle of the screen that contains given point on the desktop. + The rectangle of the primary screen on error. + The point on the desktop that must be in the returned screen rectangle. + + + + Ensures a drop-down rectangle is entirely visible in a given screen + rectangle. + + + + + Represents a progress bar. You can set progress bar appearance in numerous ways. + For example, you can use dash or dash integral style, set separator color and width, set a + background image, etc. The RadProgressBar class is a simple wrapper for the + RadProgressBarElement class. The latter may + be nested in other telerik controls. All UI and logic functionality is + implemented by the RadProgressBarElement + class. RadProgressBar acts to transfer the events to and from the + RadProgressBarElement class. + + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the text associated with this control. + + + The text. + + + + + Gets or sets the background image of the RadProgressBar. + + + + + Gets or sets the layout of the background image of the RadProgressBar. + + + + + Gets the instance of RadProgressBarElement wrapped by this control. RadProgressBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadProgressBar. + + + + + Gets or sets the value of the first progress line. There could be two progress + lines in the progress bar. + + + + + Gets or sets the value of the second progress line. There could be two progress + lines in the progress bar. + + + + + Gets or sets the minimum value for the progress. + + + The minimum. + + + + + Gets or sets the maximum value for the progress. + + + The maximum. + + + + + Gets or sets a value indicating the amount to increment the current value with. + + + The step. + + + + + Gets or sets the StepWidth between different separators. + + + The width of the step. + + + + + Indicates whether the progress bar style is dash. When style is dash + the progress line is broken into segments with separators in between them. + + + + + Indicates whether the progress bar style is hatch. When style is hatch + the progress line is covered with a hatch. You will have to change the SweepAngle + in order to see the style. + + + + + When style is dash indicates if the progress indicators will progress on steps or smoothly. + + + + + Gets or sets the first gradient color for separators + + + The separator color1. + + + + + Gets or sets the second gradient color for separators. + + + The separator color2. + + + + + Gets or sets the third gradient color for separators. + + + The separator color3. + + + + + Gets or sets the fourth gradient color for separators. + + + The separator color4. + + + + + Gets or sets the fourth gradient color for separators. + + + The separator gradient angle. + + + + + Gets or sets the first color stop in the separator gradient. + + + The separator gradient percentage1. + + + + + Gets or sets the second color stop in the separator gradient. + + + The separator gradient percentage2. + + + + + Gets or sets the number of colors used in the separator gradient. + + + The separator number of colors. + + + + + Gets or sets the separators width in pixels. + + + The width of the separator. + + + + + + + + + + + + + + + + + Gets or sets the alignment of the image of the progress line. + + + + + Gets or sets the text orientation in the progress bar. + + + + + Gets or sets the alignment of the text content on the drawing surface. + + + + + Gets or sets the progress + orientation: Bottom, Left, Right, Top. + + + + + Indicates whether the progress bar style is hatch. When true, the style is Hatch. + When both dash and hatch are true the style is hatch. + + + + + Gets or sets the angle at which the dash or hatch lines are tilted. + + + + + Fires when value is changed. + + + + + Fires when step is changed. + + + + + Fires when step width is changed. + + + + + Fires when the separator width is changed. + + + + + Fires when the minimum property is changed. + + + + + Fires when the maximum property is changed. + + + + + Fires when the dash property is changed. + + + + + Fires when the hatch property is changed. + + + + + Fires when the integral dash property is changed. + + + + + Fires when the text orientation is changed. + + + + + Fires when the text alignment is changed. + + + + + Fires when the progress orientation is changed. + + + + + Fires when show progress indicators is changed. + + + + + Fires when the separator color is changed. + + + + + Represents the method that will handle some of the following events: + ValueChanged, + StepChanged, + StepWidthChanged, + SeparatorWidthChanged, + MinimumChanged, + MaximumChanged, + DashChanged, + TextOrientationChanged, + Represents the event sender. + Represents the event arguments. + + + + + Represents a progress bar element. RadProgressBar + is a simple wrapper for RadProgressBarElement. The latter may be included in other + telerik controls. All graphical and logic functionality is implemented by + RadProgressBarElement. The RadProgressBar acts to + transfer the events to and from its RadProgressBarElement instance. + + + + + Creates the child elements and sets their locally applied values as Default + + + + + Initializes the fields. + + + + + Gets the final size of the progress indicator. + + The element. + The client rect. + The value. + + + + + Gets the final size of a vertical progress indicator. + + The client rect. + The value. + The step. + + + + + Gets the final size of a horizontal progress indicator. + + The client rect. + The value. + The step. + + + + + Gets the final size of the separators. + + The progress bar1 rectangle. + The progress bar2 rectangle. + + + + + Raises the event. + + The instance containing the event data. + + + + Advances the + current position of the progress bar by the amount of the Step property + + + + + Reverses the + advance of the current position of the second progress bar by the amount of the Step + property. + + + + + Increments Value1 with the given argument value. + + The value. + + + + Decrements Value1 with the given argument value. + + The value. + + + + Advances the + current position of the first progress bar by the amount of the Step + property. + + + + + Advances the + current position of the first progress bar by the amount of the Step + property. + + + + + Increments Value2 with the given argument value. + + The value. + + + + Decrements Value2 with the given argument value. + + The value. + + + + Gets or sets the value for the first progress indicator. + + + + + Gets or sets the value for the second progress indicator. + + + + + Gets or sets the minimum possible value for the progress bar Value1(2). + + + + + Gets or sets the maximum possible value for the progress bar Value1(2). + + + + + Gets or sets the value with which the progress bar Value1(2) will + increments/decrements. + + + + + Gets or sets the step width in pixels with which the progress bar + indicator will move if style is dash. + + + + + Gets or sets the progress orientation of the progress bar indicator. + Bottom, Left, Right, Top + + + + + Gets or sets if the progress should be show with percentages. + + + + + Gets or sets the style to dash. + + + + + Gets or sets the style to hatch. + + + + + Gets or sets the style to integral dash. To set IntegralDash you need + to first set dash to true. + + + + + Gets or sets the progress bar indicator image. + + + + + Gets or sets the layout of the image in the progress indicator. + + + + + Gets or sets the image index of the progress bar indicator image. + + + + + Gets or sets the image key for the progress bar indicator image. + + + + + Gets or sets the alignment of the image in the progress line. + + + + + Gets an instance of the class + that represents the progress indicator of the progress bar. + + + + + Gets an instance of the class + that represents the progress bar indicator. + + + + + Gets an instance of the class + that represents the separators on the progress bar indicator. + + + + + Gets or sets the separators width in pixels. + + + The width of the separator. + + + + + Gets or sets the first gradient color for separators + + + The separator color1. + + + + + Gets or sets the second gradient color for separators + + + The separator color2. + + + + + Gets or sets the third gradient color for separators + + + The separator color3. + + + + + Gets or sets the fourth gradient color for separators + + + The separator color4. + + + + + Gets or sets the angle of the separators gradient + + + + + Gets or sets the first color percentage in the separator gradient. + + + + + Gets or sets the second color percentage in the separator gradient. + + + + + Gets or sets the number of colors used in the separator gradient. + + + + + Gets an instance of the class + that represents the text of the progress bar. + + + + + Gets or sets the text associated with this element. + + + + + Gets or sets the angle at which the dash or hatch lines are tilted. + + + + + Gets the instance of RadScreenTipElement wrapped by this control. RadScreenTipElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadScreenTip. + + + + + Gets the element that displays the caption + + + + + Gets the element that displays the footer line + + + + + Gets the element that displays the Text + + + + + Gets the element that displays the Footer + + + + + Gets the FillPrimitive instance that represents + the screen tip fill. + + + + + Gets the BorderPrimitive instance that represents + the screen tip border. + + + + + Represents event data for the following events: OnTabSelected, OnTabHovered, + OnTabDragStarted, OnTabDragStarting, OnTabDragEnding, and OnTabDragEnded. + + + + + Initializes a new instance of the CommandTabEventArgs class using the + affected command tab. + + + + + + Gets the affected command tab. + + + + + Represents the method that will handle the following event: + CommandTabSelected. + + + + + ContextualTabGroups are used to organize RibbonBar Tabs in + groups which are visible depending on certain context. + + + + + Collection containing references to the TabItems in the group. + + + + Gets or sets the displayed text. + + + + + A collection that stores objects. + + + + + + + + Initializes a new instance of the + . + + + + + + + Initializes a new instance of the + . + + + + + + + Initializes a new instance of the + + based on another + . + + + + A from which the contents are copied + + + + + + Initializes a new instance of the + + containing any array of + objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space to the end of . + is . + + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + + Returns an enumerator that can iterate through + the . + + None. + + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + Gets or sets a value indicating the owner. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + + + + + + Initializes a new instance of the ContextualTabGroupEnumerator class + using a collection of ribbon bar command tabs. + + + + + + Moves to the next element in the collection. When invoked for the first time, + moves to the first element of the collection. + + + + Resets the iterator. + + + Gets the current element of the collection. + + + + Find main form and save it in member variable + + + + + Main method for internal logic + + + + + Gets the Minimize button + + + + + Gets the Maximize button + + + + + Gets the Close button + + + + + This method defines whether a Quick Access Toolbar item is visible or not. + If the method is called to hide an item, its Visibility property is set to Collapsed + and the corresponding menu item in the overflow button is unchecked. + The method throws an InvalidOperationException if the item does not below + to the current QAT collection. + + The item which visibility will be modified. + True to show an item, false to collapse it. + + + Gets the items in the tabstrip. + + + + + + + Determines whether the parent form can be moved by dragging the title bar. + + + + + Gets or sets the value of the caption + + + + + Gets the caption layout + + + + + Gets the Help button. + + + + + Gets the Minimize button + + + + + Gets the Maximize button + + + + + Gets the Close button + + + + + Fires when the close button is clicked + + + + + Fires when the minimize button is clicked + + + + + Fires when the maximize button is clicked + + + + + + + + Transforms the given point's X coordinate from world coordinates to local coordinates. + + The point to transform + The transformed point + + + + This method calculates the available space for the + ribbon caption text at the left side of the + contextual tab groups + The total available size for the elements + managed by this layout panel. + The width available. + + + + This method calculates the available space for the + ribbon caption text at the right side of the + contextual tab groups + The total available size for the elements + managed by this layout panel. + The width available. + + + + Determines whether the tab strip items should be reordered so that they match + the requirements for associated tab strip items. + + True if a reset is needed. Otherwise false. + + + + Checks whether the Add New Tab item is in the tab strip. + + True or false + + + + Gets the count of the empty contextual tab groups. + + The count of the empty groups. + + + + Resets the layout context variables which are used to determine the position + of the caption text, the contextual tabs and the design-time + contextual tab groups which are empty. + + + + + Gets the left most contextual tab group. + + Determines whether empty contextual groups are considered when + calculating the left most group + A reference to the left most group. Null if no groups are found. + + + + Gets the right most contextual tab group. + + Determines whether empty contextual groups are considered when + calculating the right most group + A reference to the right most contextual group. Null if no groups are found. + + + + This method reorders the TabStrip items so that they are positioned under the + ContextualTabGroup they are associated with. All tab items that are + associated with a tab groups should be positioned on the right side of the tab strip. + This algorithm begins iterating from the first to the last contextual tab group as they + appear in the collection of the ribbon bar. The associated tab items are always inserted + at the end of the tab strip. In this way the effect of positioning the last associated + tab item at the end of the corresponding contextual group is achieved. + + + + + This method calculates the size of a contextual group base on the associated tabs. + + The tab group which size is to be calculated + The calculated size of the group. + + + + This method is responsible for measuring the rightmost visible contextual group with associated tabs. + This is a private case method which is called only for the right most group, + since it has to be shrinked when the system buttons panel has to 'step' over it while resizing. + + The available size for measuring + The tab group which is to be shrinked + + + + This method is responsible for arranging the rightmost visible contextual group with associated tabs. + This is a private case method which is called only for the right most group, + since it has to be shrinked when the system buttons panel has to 'step' over it while resizing. + + The final size for arranging + The tab group which is to be arranged + + + Represents parameters of the scroll bar such as small change and + large change in the scrolling position. + + + + Represents the minimum value of the scrolling position. + + + + + Represents the maximum value of the scrolling position. + + + + + Represents a small change in the scrolling position; the value which will be + added or substracted from the current position in case of small change. + + + + + Represents a large change in the scrolling position; the value which will be + added or substracted from the current position in case of large change. + + + + Initializes a new ScrollBarParameters structure. + + Initializes the minimum value of the scrolling. + Initializes the maximum value of the scrolling. + Initializes the small change value. + Initializes the large change value. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Allow form's resize + + + + + Gets or sets the form's border color + + + + + Gets or sets the form's border width + + + + + Gets or sets an instance of the Shape object of a form. The shape of the + form is responsible for providing its' border(s) with custom shape. + + + Some predefined shapes are available, like or . + offers a way to specify element's shape with a sequance of points and curves using code + or the design time + . + + + + Gets or sets theme name. + + + Enables or disables transparent background on Vista + + + + Gets or sets the FormBorderStyle of the Form. + + + + + Represents a title bar. This control helps in creation of borderless forms by + substituting the system title bar. Subscribe for radTitleBar events to implement + the actual action for the the corresponding event. For example, on Close event + close the form of your application. + Use the Visual Style Builder to change the default appearance and the visible + elements. For example the system menu is not visible by default. + + + + + Initializes a new instance of the RadTitleBar class. + + + + + Gets or sets the text associated with this item. + + + + + Gets or sets a boolean value that determines whether the title bar + can manage the owner form. + + + + + Allow form's resize + + + + + An Icon that represents the icon for the form. + + + + + Gets the instance of RadTitleBarElement wrapped by this control. RadTitleBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadTitleBar. + + + + + Fires when a minimize action is performed by the user (the minimize button is + pressed). + + + + + Fires when a maximize/restore action is performed by the user (maximizes button + is pressed or the title bar is double clicked). + + + + + Fires when the minimize in the tray button is pressed. It is hidden by default. + Use the Visual Style Builder to set which elements are visible and design their visual + appearance. + + + + + Represents the method that will handle some of the following events: Close, + MaximizeRestore, Minimize, and MinimizeInTheTray. + + + + + Represents a button control. The button control serves as a + RadButtonElement Class wrapper. All logic and + presentation features are implemented in a parallel hierarchy of objects. For this + reason, RadButtonElement Class may be nested in + any other telerik control, item, or element. + + + + + Gets or sets the DialogResult for this button. + + + + + Rec editors. It is used in + RadComboboxElement, DropDownButton, etc. + + + + + Note: this property is supposed to be used only when this.Parent.AutoSizeMode==WrapAroundChildren + + + + Represents a menu separation item. + Use it to separate logically unrelated items in the menu. + + + Initializes a new instance of the RadMenuSeparatorItem class. + + + Gets or set the sweep angle in degrees. + + + + Gets or sets the separator + orientation. Possible values are members of SepOrientation enumeration. + + + + Gets or sets separators width in pixels. + + + + Gets or sets the offset of the location where the draw of the line should start + + + + Gets a value indicating whether the RadMenuSeparator can be selected. + + + + Gets or sets a value indicating whether the text should be visible. + + + + + Represents the RadRadioButton control + + + + + Represents a RadToggleButton. A ToggleButton may have the following states: + On, Off, and Indeterminate. The button may have only the first two states if the + IsThreeState property is set to false. + + The RadToggleButton class is a simple wrapper for the + RadToggleButtonElement. All UI and + logic functionality is implemented in the + RadToggleButtonElement class. The + latter can be nested in other telerik controls. RadToggleButton acts to + transfer events to and from the its corresponding + RadToggleButtonElement instance. + + + + + Initializes a new instance of the RadToggleButton class. + + + + Initializes a new instance of the class. + + + + + Create main button element that is specific for RadToggleButton. + + The element that encapsulates the functionality of RadToggleButton + + + + Raises the StateChanging event. + + + + + Raises the StateChanged event. + + + + + Raises the CheckStateChanging event. + + + + + Raises the CheckStateChanged event. + + + + + Gets the instance of RadToggleButtonElement wrapped by this control. RadToggleButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadToggleButton. + + + + + + + Gets or sets a boolean value indicating where the button is checked. + + + + Gets or sets the CheckState + . CheckState enumeration defines the following values: Unchecked, Checked, and Indeterminate. + + + + Gets or sets a boolean value indicating where the button is checked. + + + + Gets or sets a value indicating whether the toggle button is read only. + + + true if the toggle button is read only; otherwise, false. + + + + Occurs when the elements's state is changing. + + + + Occurs when the element's state changes. + + + + Occurs when the elements's check state is changing. + + + + Occurs when the element's check state changed. + + + + + Create main button element that is specific for RadRadioButton. + + The element that encapsulates the funtionality of RadRadioButton + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets the default size of RadRadioButton + + + + + Gets the instance of RadRadioButtonElement wrapped by this control. RadRadioButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRadioButton. + + + + Gets or sets a value indicating the alignment of the radio button. + + + + Represents a radio button element. The RadRadioButton + class is a simple wrapper for the RadRadioButtonElement class. The + RadRadioButton acts to transfer events to and from its + corresponding RadRadioButtonElement instance. The RadRadioButtonElement which is + essentially the RadRadioButton control may be nested in + other telerik controls. + + + + + Registers the RadioCheckAlignment dependency property + + + + + initializes and adds the child elements + + + + + Fires te Click event and handles the toggle logic + + + + + Gets or sets a value indicating the alignment of the radio-mark according to the text of the button. + + + + Represents checkmark. + + + + Registers the CheckState dependency property + + + + + Registers the IsImage dependency property + + + + + Registers the IsCheckMark dependency property + + + + + Initializes the newly added children if needed. + + + + + + + handles the properties behavior when a property value is changed. + + + + + + Sets the toggle state of the RadioMark + + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Gets an instance of the check element + + + + + Gets an instance of Image element + + + + Gets or sets value indicating RadRadiomark checkstate. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Raises the GalleryItemHover event. + + + + + Raises the DropDownOpening event. + + + + + Raises the DropDownOpened event. + + + + + Raises the DropDownClosing event. + + + + + Raises the DropDownClosed event. + + + + + Gets an instance of the class + that represents the popup control which hosts the + displayed to the user when he/she clicks on the drop-down button of the gallery. + + + + + Gets an instance of the class + that represents the main element put in the + when it is shown to the user. This element holds the content of the gallery, + as well as some additional elements like sizing grip etc. + + + + + Gets the instance + that represents the Gallery Element's fill. + + + + + Gets the instance + that represents the Gallery Element's border. + + + + + Gets tne that + represents the up button in the gallery element. + + + + + Gets tne that + represents the down button in the gallery element. + + + + + Gets tne that + represents the show popup button in the gallery element. + + + + + Gets or sets a value indicating whether group filtering is enbled when filters are defined. + + + + + Gets a collection representing the group filters defined in this gallery. + + + + + Gets a collection representing the groups contained in this gallery. + + + + + Returns whether the gallery is currently dropped down. + + + + + Gets a collection representing the items contained in this gallery. + + + + + Gets or sets a value indicating whether the selection of the gallery items is enabled or not. + + + + + Gets or sets the maximum number of columns to be shown in the in-ribbon portion of the gallery. + + + + + Gets or sets the maximum number of columns to be shown in the drop-down portion of the gallery. + + + + + Gets or sets the maximum number of rows to be shown in the in-ribbon portion of the gallery. + + + + + Gets or sets the minimum number of columns to be shown in the drop-down portion of the gallery. + + + + + Gets or sets the currently selected item. + + + + + Gets the Tools menu items collection where you can add and remove items from the + Tools part of the gallery + + + + + Gets or sets a value indicating whether a gallery item is zoomed-in when mouse over it. + + + + + Occurs when the mouse pointer rests on the gallery item. + + + + + Occurs when the drop-down is opening. + + + + + Occurs when the drop-down has opened. + + + + + Occurs when the drop-down is about to be closed. + + + + + Occurs when the drop-down window has closed. + + + + + Gets or sets value indicating whether DropDownMenu will have the same class name as the owner control or its own. + True means that the same class name will be used as the control that opened the dropdown. + + + + + Gets a collection representing the group items contained in this gallery filter. + + + + + Returns whether the filter is currently selected. + + + + + Gets or sets a value indicating whether the caption of the group is shown. + + + + + Gets or sets the description text associated with this item. + + + + + Angle of rotation for the button image. + Unlike AngleTransform the property ImagePrimitiveAngleTransform rotates the image only. + AngleTransform rotates the whole item + + + + + Gets or sets the font of the description text of the RadGalleryItem. + + + + + Returns whether the gallery item is currently selected. + + + + + Gets or sets the alignment of text content on the drawing surface. + + + + + + + + Gets or sets the image that is displayed on a button element. + + + + + Gets or sets the image list index value of the image displayed on the button control. + + + + + Gets or sets the key accessor for the image in the ImageList. + + + + + Gets or sets the position of text and image relative to each other. + + + + + Gets or sets the alignment of image content on the drawing surface. + + + + + Gets the element responsible for painting the background of the label + + + + + Gets the element responsible for painting the text of the label + + + + + Gets the image element responsible for painting the image part of the label. + + + + + Gets the responsible for painting the image part of the label. + + + + + Represents a check box. The RadCheckBox class is a simple wrapper for the + RadCheckBoxElement class. The RadCheckBox acts + to transfer events to and from its corresponding + RadCheckBoxElement. The + RadCheckBoxElement which is essentially the + RadCheckBox control may be nested in other telerik controls. + + + + + Create main button element that is specific for RadCheckBox. + + The element that encapsulates the functionality of RadCheckBox + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets the instance of RadCheckBoxElement wrapped by this control. RadCheckBoxElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadCheckBox. + + + + Gets or sets value indicating the checked state of the checkbox. + + Since RadCheckBox is tri-state based (ToggleState property) the Checked property is provided for compatibility only. + Checked=true corresponds to ToggleState.On and Checked=false corresponds to ToggleState.Off. + If value of ToggleState property equals , + value of Checked property is 'false'. + + + + + Gets or sets a value indication whether mnemonics are used. + + + + Gets or sets a value indicating the alignment of the check box. + + + + Represents a RadRepeatButton. If the button is continuously held pressed, it + generates clicks. The RadRepeatButton class is a simple wrapper for the + RadRepeatButtonElement class. The + RadRepeatButton acts to transfer events to and from its corresponding + RadRepeatButtonElement instance. The + RadRepeatButtonElement which is + essentially the RadRepeatButtonElement + control may be nested in other telerik controls. All graphical and logical + functionality is implemented in + RadRepeatButtonElement class. + + + + + Raises the ButtonClick event. + + + + + Gets the instance of RadRepeatButtonElement wrapped by this control. RadRepeatButtonElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRepeatButton. + + + + + Determines whether the button can be clicked by using mnemonic characters. + + + + + Gets or sets the amount of time, in milliseconds, the Repeat button element waits while it is pressed before it starts repeating. The value must be non-negative. + + + + + Gets or sets the amount of time, in milliseconds, between repeats once repeating starts. The value must be non-negative. + + + + + Propagates internal element click. + + + + + Represents the method that will handle the + ToggleStateChanging + event. + + Represents the event sender. + Represents the event arguments. + + + + Represents the method that will handle the + CheckStateChanging + event. + + Represents the event sender. + Represents the event arguments. + + + + Represents event data of the + CheckStateChanging + event. + + + + + Initializes a new instance of the StateChangingEventArgs class using the old toggle state, the new toggle state and + + + + + + + + Gets or sets the old toggle state. + + + + + Gets or sets the new toggle state. + + + + + Represents event data of the + ToggleStateChanging + event. + + + + + Initializes a new instance of the StateChangingEventArgs class using the old toggle state, the new toggle state and + + + + + + + + Gets or sets the old toggle state. + + + + + Gets or sets the new toggle state. + + + + + Represents event data of the + ToggleStateChanged. + + + + + Initializes a new instance of the StateChangedEventArgs class. + + + + + + Gets the toggle state Off, On, or Indeterminate + + + + + Represents the method that will handle the + ToggleStateChanged + event. + + Represents the event sender. + Represents the event arguments. + + + + Represents the method that will handle the SelectedIndexChanged event. + A SelectedIndexChangedEventArgs that contains the event data. + The source of the event. + + + + + Represents event data of the SelectedIndexChanged event. + + + + + Initializes a new instance of the SelectedIndexChangedEventArgs class. + + + + + Gets the instance of previously selected item. + + + + + Gets the instance of currently selected item. + + + + Used to group collections of controls. + + A RadPanel is a control that contains other controls. You + can use a RadPanel to group collections of controls such as a + group control of radio buttons. If the RadPanel control's + Enabled property is set to false, the controls + contained within the RadPanel will also be disabled. + You can use the AutoScroll property to enable scroll bars in + the RadPanel control. When the AutoScroll + property is set to true, any controls located within the + RadPanel (but outside of its visible region), can be scrolled to + with the scroll bars provided. + The RadPanel control is displayed by default with border and + a text (using TextPrimitive). There is a + FillPrimitive which is transparent by default. It allows gradients + to be used for background of the RadPanel. + + + + Initializes new RadPanel + + + Creates the main panel element and adds it in the root element. + + + + Gets the instance of RadPanelElement wrapped by this control. RadPanelElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadPanel. + + + + + Gets or set a value indicating whether panel will scroll automatically to show + the currently focused control inside it. + + + + + Gets or sets the alignment of the text within Panel's bounds. + + + + Gets the default size of the control. + The default System.Drawing.Size of the control. + The default Size of the control. + + + + This property is not relevant for this class. + + + + + Gets or sets a value indicating whether the control causes validation to be + performed on any controls that require validation when it receives focus. + + + true if the control causes validation to be performed on any controls requiring + validation when it receives focus; otherwise, false. + + + + The main element of the RadPanel control. + + + Create the elements in the hierarchy. + + + + Gets the of the + panel element. + + + + + Gets the of the + panel element. + + + + + Gets the of the + panel element. + + + + + This class represents the root element + of a control. + + + + + Represents a dialog containing a color picker + + + + + Creates instance of RadColorDialog class + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the color selector + + + + + Gets or sets the selected color + + + + + Gets or sets the selected color + + + + + Gets or sets the old color + + + + + Gets or sets the active mode of the color tabstrip + + + + + Shows or hides the basic colors tab + + + + + Shows or hides the system colors tab + + + + + Shows or hides the web colors tab + + + + + Shows or hides whe professional colors tab + + + + + Shows or hides the custom colors tab + + + + + Shows or hides the hex color value + + + + + Allows or disallows editing the HEX value + + + + + Allows or disallows color picking from the screen + + + + + Allows or disallows color saving + + + + + Gets the custom colors + + + + + Gets or sets the heading of the basic colors tab + + + + + Gets or sets the heading of the system colors tab + + + + + Gets or sets the heading of the web colors tab + + + + + Gets or sets the heading of the professional colors tab + + + + + Gets or sets the heading of the selected color label + + + + + Gets or sets the heading of the old color label + + + + + Fires when the selected color has changed + + + + + Instance of this class contain information about the control to which + a container of the RadScrollablePanel is scrolled. + + + + + Gets an instance of the + class that represents the scrollable panel that holds + the gallery items when the popup is shown. + + + + + Gets an instance of the class + that represents the element holding the buttons that represent + the different filters and groups. + + + + + Gets an instance of the class + that represents the sizing grip of the dropdown. + + + + + Set theme name for the whole RadMessageBox + + + + + + Displays RadMessageBox with specified text. + + The text to display in the RadMessageBox. + One of the values + + + + Displays RadMessageBox with specified text and caption. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, and buttons. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, and buttons. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, buttons, and icon. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, buttons, and icon. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, buttons, icon and default button. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox with specified text, caption, buttons, icon and default button. + + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text and caption. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, and buttons. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, and buttons. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, and icon. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, and icon. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + that displays in the RadMessageBox. + One of the values. + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, icon, and default button. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, icon, and default button. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values that specifies right to left settings. + One of the values + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, icon, and default button. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + One of the values that specifies which icon to display in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values that specifies right to left settings. + If this parameter is set to a string value the message box will contain a details button and a text field which will display this string. + One of the values + + + + Displays a RadMessageBox in front of the specified object and with the specified text, caption, buttons, icon, and default button. + + An implementation of that will own the RadMessageBox. + The text to display in the RadMessageBox. + The text to display in the title bar of the RadMessageBox. + One of the values that specifies which buttons to display in the RadMessageBox. + that displays in the RadMessageBox. + One of the values that specifies the default button for the RadMessageBox. + One of the values. + + + + Gets the RadMessageBoxForm instance + + + + + Gets or set theme name for the whole RadMessageBox + + + + + Set the cursor that is displayed when the mouse pointer is over the control. + + + + + Set the message to be shown in windows taskbar. Default is false + + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Set label text and size according to text string measure + + + + + + Calculate form size according to title text size + + width + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Gets or sets a value indicating whether a beep is played when the message box is shown. + + + true if a beep is played; otherwise, false. + + + + + Sets the RadMessageBox Text + + + + + Sets the RadMessageBox caption text + + + + + RadMessageBox Icon + + + + + Gets ot sets the size of the buttons shown in the message box. + + + + + Provides Localization service for RadMessageBox + + + + + Gets the string corresponding to the given ID. + + String ID + The string corresponding to the given ID. + + + + present RadGripElement + + + + + creacte child elements + + + + + OnMouseDown + + + + + + OnMouseUp + + + + + + OnMouseMove + + + + + + Grip image + + + + + Represents a RadStatusStrip. The RadStatusStrip class is a simple wrapper for the + RadStatusBarElement class. The RadStatusStrip acts + to transfer events to and from its corresponding + + + + + create RadStatusStrip instance + + + + + create child items + + + + + + fire the StatusBarClick event + + + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + implement default Dock style + + + + + This property is not relevant for this class. + + + + + Gets or sets the visibility of the grip used to reposition the control. + + + + + Gets all the items that belong to a RadStatusStrip. + + + + + Set the RadStatusStrip's layout style + + + + + Gets the instance of RadStatusBarElement wrapped by this control. RadStatusBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadStatusStrip. + + + + + RadStatusStrip consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadStatusStrip consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + status bar click events + + + + + this event fired before Layout Style Changing + + + + + this event fired after LayoutStyle Changed + + + + + custom event handle for the click event + + + + + + + represent the RadStatusBarClickEventArgs object + + + + + create a instance of + + + + + + + present the clicked element + + + + + Represents a RadStatusBarElement. + + + + + create elements in the RadStatusBarElement + + + + + this event fired before Layout Style Changing + + + + + this event fired after LayoutStyle Changed + + + + + Gets a collection representing the "View changing" items contained in this statusbar. + + + + + get or set RadStatusBarElement orienatation + + + + + show or hide the Grip element in RadStatusStrip + + + + + Set the RadStatusStrip's layout style + + + + + enumerate RadStatusStrip LayoutStyles + + + + + represent the RadStatusBarPanelElement + + + + + create child items + + + + + Represents the StatusBarBoxLayout class + + + + + Registers the Proportion dependancy property of StatusBarBoxLayout + + + + + Registers the Orientation dependancy proeprty of StatusBarBoxLayout + + + + + Registers the StripPosition dependancy property of StatusBarBoxLayout + + + + + Gets the proportion based on a given element + + + + + + + arranges the children by a given criteria + + + + + + + Gets or sets strip orientation - it could be horizontal or vertical. + + + + + represents StripPosition enumeration + + + + Gets or sets the line width in pixels. + + + + Gets or sets the line orientation. Possible values are defined in the SepOrientation + enumeration. + + + + Gets or sets the line angle in degrees. + + + + Represents a numeric up/down control box. The RadSpinEditor class is a simple wrapper for the + RadSpinElement class. The RadSpinEditor acts + to transfer events to and from its corresponding + RadSpinElement. The + RadSpinElement which is essentially the + RadSpinEditor control may be nested in other telerik controls. + + + + + Initializes a new instance of the RadSpinEditor class + + + + + CreateChildItems + + + + + + increase or decrease value in the numeric up/dowm with step value + + + + + + Gets or sets a value indicating whether the user can give the focus to this control using the TAB key. + + + True if the user can give the focus to the control using the TAB key, otherwise false. The default is true. + + + + + set the default control size + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the instance of RadSpinElement wrapped by this control. RadSpinElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadSpinControl. + + + + + Gets or sets the mimimum value for the spin edit + + + + + Gets or sets the maximum value for the spin edit + + + + + Gets or sets the whether RadSpinEditor will be used as a numeric textbox. + + + + + Gets or sets whether by right-mouse clicking the up/down button you reset the value to the Maximum/Minimum value respectively. + + + + + Gets or sets a value indicating whether the border is shown. + + + + + Set or get the Step value + + + + + Set or get the Step value + + + + + Gets or sets a value indicating that value will revert to minimum value after reaching maximum and to maximum after reaching minimum. + + + + + Represents the decimal value in the numeric up/down + + + + + Represents the decimal value in the numeric up/down. The Value can be null + + + + + Gets or set how to interpret the empty text in the editor portion of the control + if true the empty value will set NULL in NullableValue property + + + + + Gets or sets a value indicating whether the user can use the UP ARROW and DOWN ARROW keys to select values. + + + + + Gets or sets a value indicating whether the text can be changed by the use of the up or down buttons only. + + + + + Gets or sets a value indicating whether a thousands separator is displayed in the RadSpinEditor + + + + + Gets or sets the number of decimal places to display in the RadSpinEditor + + + + + Gets or sets a value indicating whether the RadSpinEditor should display the value it contains in hexadecimal format. + + + + + Gets or sets the minimum value that could be set in the spin editor + + + + + Gets or sets a value indicating whether the control causes validation to be + performed on any controls that require validation when it receives focus. + + + true if the control causes validation to be performed on any controls requiring + validation when it receives focus; otherwise, false. + + + + + Occurs before the value of the SpinEdit is changed. + + + + + Occurs before the value of the SpinEdit is changing. + + + + + Occurs when the NullableValue of the SpinEdit is changed. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Initializes a new instance of the RadTextBoxBase class. + + + + + Represents RadTextBoxBase constructor + + + + + Initializes textbox's children + + + + + Appends text to the current text. + + + + + Empties the TextBox. + + + + + Undo to the previous text value before clear invocation. + + + + + Copies the text value to the clipboard. + + + + + Cuts the text value to the clipboard. + + + + + Deselects the text in the cotrol. + + + + + Retrieves the character that is closest to the specified location within the + control. + + + + + Retrieves the index of the character nearest to the specified location. + + + + + Retrieves the index of the first character of a given line. + + + + + Retrieves the index of the first character of the current line. This method + is not supported by MaskedTextBox. + + + + + Retrieves the line number from the specified character position within the + text of the control. + + + + + Retrieves the location within the control at the specified character + index. + + + + + Pastes the text value to the clipboard. + + + + + Pastes the string parameter to the clipboard. + + + + + Scrolls the contents of the control to the current caret position. + + + + + Selects the text in the TextBox from the start position inclusive to the end + position exclusive. + + + + + Selects the text in the TextBox. + + + + + Undoes the last edit operation in the text box. + + + + + Sets input focus to the control. + + true if the input focus request was successful; otherwise, false. + + + + + Activates the control. + + + + + Raises the AcceptsTabChanged event. + + + + + Raises the HideSelectionChanged event. + + + + + Raises the ModifiedChanged event. + + + + + Raises the MultilineChanged event. + + + + + Raises the ReadOnlyChanged event. + + + + + Raises the TextAlignChanged event. + + + + + Raises the TextChanging event. + + + + + Gets or sets whether the edit control is auto-sized + + + + Gets or sets the displayed text. + + + + Gets or sets + the font of the text displayed by the control. + + + + + Gets or sets a value indicating whether pressing ENTER in a multiline RadTextBox + control creates a new line of text in the control or activates the default button for + the form. + + + + + Gets or sets a value indicating whether pressing the TAB key in a multiline text + box control types a TAB character in the control instead of moving the focus to the + next control in the tab order. + + + + Gets value indicating whether undo is allowed. + + + + Gets or sets a value indicating whether the RadTextBox control modifies the + case of characters as they are typed. + + + + + Gets or sets a value indicating whether the selected text remains highlighted + even when the RadTextBox has lost the focus. + + + + + Gets or sets + the lines of text in multiline configurations. + + + + + Gets or sets + the maximum number of characters allowed in the text box. + + + + + Gets or sets a value indicating whether the RadTextBox control has been modified + by the user since the control was created or since its contents were last set. + + + + + Gets or sets + a value indicating whether this is a multiline TextBox control. + When the value is true, the AutoSize property is automatically changed to false and the user needs to take care of the height of this control. + + + + + Gets or sets the text that is displayed when the ComboBox contains a null + reference. + + + + + Gets or sets a value indicating whether the null text will be shown when the control is focused and the text is empty. + + + + + Gets or sets + the character used to mask characters of a password in a single-line TextBox + control. + + + + + Gets or sets + a value indicating whether the contents of the TextBox control can be + changed. + + + + + Gets or sets + which scroll bars should appear in a multiline TextBox control. + + + + + Gets or sets a value indicating the currently selected text in the + control. + + + + + Gets or sets + the number of characters selected in the text box. + + + + + Gets or sets + the starting point of text selected in the text box. + + + + + Gets or sets + a value indicating whether the defined shortcuts are enabled. + + + + Gets or sets how text is aligned in a TextBox control. + + + Gets the length of the text in the control. + + + + Gets or sets a value indicating whether a multiline text box control + automatically wraps words to the beginning of the next line when necessary. + + + + + Occurs when + the value of the AcceptsTab property has changed. + + + + + Occurs when + the value of the HideSelection property changes. + + + + + Occurs when + the value of the Modified property has changed. + + + + + Occurs when + the value of the Multiline property has changed. + + + + + Occurs when + the ReadOnly property changes. + + + + + Occurs when + the value of the TextAlign property has changed. + + + + + Occurs + when text is being changed. + + + + + The TextBox control that is hosted by default by RadTextBoxItem. + Children of this calss can be passed to RadTextBoxItem in order to customize the hosted text box. + + + + + Overload to automatically create the Graphics region before drawing the text prompt + + The Graphics region is disposed after drawing the prompt. + + + + Draws the NullText in the client area of the TextBox using the default font and color. + + + + + Gets or sets a color of the null text + + + + + Gets or sets a value indicating whether the null text will be shown when the control is focused and the text is empty + + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + + + Represents a RadTextBox. The RadTextBox control serves as a simple wrapper for + RadTextBoxElement class which in turn wraps + RadTextBoxItem Class. All logic and presentation + features are implemented in a parallel hierarchy of objects. For this reason, + RadTextBoxElement class may be nested in any + other telerik control, item, or element. RadTextBox acts to transfer events to and + from its corresponding instance of the + RadTextBoxElement class. + + + + + Represents RadTextBox's constructor + + + + + Initializes textbox's children + + + + + Gets the instance of RadTextBoxElement wrapped by this control. RadTextBoxElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadTextBox. + + + + + Gets or sets a value indicating whether to show the bottom part of characters, clipped + due to font name or size particularities + + + + + Gets or sets a value indicating whether the text should appear as the default password character. + + + true if the text otherwise hould appear as the default password character; false. + + + + + Gets or sets a value indicating whether the clear button is shown. + + + + + Gets or sets a value indicating whether the control causes validation to be + performed on any controls that require validation when it receives focus. + + + true if the control causes validation to be performed on any controls requiring + validation when it receives focus; otherwise, false. + + + + + Represents a layout panel used in the RadCheckBoxElement. + + + + Gets or sets the offset between the check and body elements. + + The body can contain image and / or text the same way as all buttons can - + see + + + + Gets or set a value indicating the check alignment. + + + + RadScrollLayoutPanel is the layout panel that arranges viewport, horizontal and vertical scrollbars + and a spot that appears when both scrollbars are shown. + + + For more information about scrolling see the help for + RadScrollViewer class and for + IRadScrollViewport interace. + + + + + The spot between the ScrollBars when both are shown + + + + + Set visible and enabled state of the ScrollBars. + + + + + Make viewportOffset to be with correct value. + Set Value of ScrollBars using viewportOffset + + + + + Occurs when horizontal or vertical scrolling is performed + + + + + Occurs when the need for horizontal or vertical scrollbar has changed. + + + + + Occurs when property that affects the scrolling functionality is changed. + + + + + Occurs when the Viewport is changed + + + + + Gets the horizontal scrollbar + + + + + Gets the vertical scrollbar + + + + + Gets the retcangle that is between the two scrollbars when they both are shown. + + + + + Gets a value indicating whether can be performed horizontal scrolling operation + + + + + Gets a value indicating whether can be performed vertical scrolling operation + + + + Gets or sets the scroll state of the horizontal scroll bar. + State of type . Default value is AutoHide. + + + Gets or sets the scroll state of the vertical scroll bar. + State of type . Default value is AutoHide. + + + + Gets or sets the thickness of the scrollbar. + + + + + Gets or sets the element which content will be scrolled if the scroll viewer has + not enough space for it. Very often the viewport is a layout panel that implements + . + + + Object of type RadElement which represents the content that could be scrolled if + necessary. Default value is null. + + + + + Gets or sets a value indicating whether physical or logical scrolling will be + used. + + Boolean value: when it is false logical scrolling will be used. + + + This property cannot be set to false if does not + implement . + + + Default value is true for ordinary viewports and false for viewports that + implement . + + + + + + Gets or sets the number of pixels to use when performing Line + Up/Down/Left/Right scrolling operation. + Still the scrolling position can be set with one pixel accuracy if the scroll + bar thumb is dragged. + + + + Gets the minimum possible scrolling position. + + Point which contains minimum values for scrolling in horizontal and vertical + direction. + + + + Gets the maximum opssible scrolling position. + + Point which contains maximum values for scrolling in horizontal and vertical + direction. + + + + + Gets or sets the scrolling position. The value is between + and . + + + Point which contains the current scrolling position in horizontal and vertical + direction. + + + + + + The only implementation of and base class of + all scrollable elements. + + This class contains one element called Viewport. In addition to the ordinary + property Size, Viewport has parameter called "extent size" which represents the + real size of its content. Extent size could be bigger as well as smaller than the + size of the scroll viewer. + + There are two types of viewports: ordinary elements and elements that implement + . In the first case extent size is the + size of the viewport itself. The scrolling is done on pixel basis and via + painting offset of the viewport (it is called physical scrolling). In the + second case the functions that are declared in + are called for getting extent size and + performing the scroll operation (this is called logical scrolling). + + + If the viewport implementation is of type it + still can be physically scrolled by setting the property + to true. + + + Physical scrolling has one parameter that can be set - + which represents the small change value + for the scrolling (i.e. the number of pixels for Line Up/Down/Left/Right). The + large change (Page Up/Down/Left/Right) is the corresponding size of the + viewable size of the viewport. + + + For more information about custom viewports and logical scrolling - see + . + + + Current scroll position can be get or set via the property + . In addition scrolling can be performed by calling the + methods that are implemented from . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether the border is shown. + + + Gets or sets a value indicating whether the fill is shown. + + + + + + + + + + + + + Represents a menu. RadMenu can be horizontal or vertical. You can add, + remove, and disable menu items at run-time. It offers full theming support, + allowing you to easily construct a variety of stunning visual effects. You + can nest any other RadControl within a RadMenu. For + example, you can create a menu with an embedded textbox or combobox. + RadMenu is a simple wrapper for the RadMenuElement class. + + + + + Initializes a new instance of the RadMenu class. RadMenu can be horizontal or + vertical. You can add, remove, and disable menu items at run-time. It offers full + theming support, allowing you to easily construct a variety of stunning visual effects. + You can nest any other RadControl within a RadMenu. For + example, you can create a menu with an embedded textbox or combobox. + + + + + + + + + + + + + + + + + + + + + + + Gets or sets boolean value that determines whether + RadMenu handles the MDI menu functionality. + + + + + Indicates whether the menu items should be stretched to fill the available space. + + + + + Gets or sets whether the Alt or F10 keys can be used to highlight the menu. + + + + + Gets the instance of RadMenuElement wrapped by this control. RadMenuElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadMenu. + + + + + + + + + + + + + + + + + + + + + + + RadMenu consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadMenu consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + This enumerator describes the states can + jump into when processing mnemonics. + + + + + When the menu is in this state, that means that Mnemonics are visible. + + + + + When the menu is in this state, that means it listens for keyboard input and can process mnemonics. + + + + + When the menu is in this state, that means it can process keyboard input not associated with mnemonics. + This can be navigation input for instance. + + + + + When the menu is in this state, that means it will not process mnemonics. + + + + + other Telerik RadControls and Windows Represents a RadRibbonBar. The + RadRibbon bar visual appearance can be customized in numerous ways through themes. + Also you can nest other telerik controls in the ribbon bar chunks thus creating + intuitive interface for your applications. All of the application's functionality + is accessible from a single ribbon. The ribbon is divided into command tabs such as + Write, Insert, and Page Layout. When the users clicks on a command tab, they see + chunks such as Clipboard, Font, and Paragraph. Each chunk can hold an unlimited + number of controls including toolbars, comboboxes, and Forms controls. + + The RadRibbonBar class is a simple wrapper for the + RadRibbonBarElement class. All UI and + logic functionality is implemented in + RadRibbonBarElement class. RadRibbonBar + acts to transfer the events to and from its + RadRibbonBarElement class. + + + + + Initializes a new instance of the RadRibbonBar control class. + + + + + + + + + + + + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets or sets the small image list + + + + + Gets or sets the text of the control + + + + + Gets or sets a flag indicating whether the control causes validation + + + + + + + + + + + + + + Allows the user to navigate the control using the keyboard + + + + + Represent the Ribbon Help button + + + + + Represent the Ribbon Expand button + + + + + Get or sets value indicating whether RibbonBar Help button is visible or hidden. + + + + + Get or sets value indicating whether RibbonBar Help button is visible or hidden. + + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this specific control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets or sets a value indicating the type of the fade animation. + + + + + + + + + + + Gets the QuickAccessToolBar element + + + + + + + + + + + + + + + + + + + + Gets the options menu button + + + + + Gets the exit menu button + + + + + + + + Gets the instance of RadRibbonBarElement wrapped by this control. RadRibbonBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadRibbonBar. + + + + Gets or sets a value indicating whether the ribbon bar is expanded. + + + Gets or sets a value indicating whether the ribbon bar will be collapsed or expanded on ribbon tab double click. + + + + Gets or sets if the ribbon bar has minimize button in its caption + + + + + Gets or sets if the ribbon bar has maximize button in its caption + + + + + Gets or sets if the ribbon bar has close button in its caption + + + + + Gets the localization settings associated with this control + + + + + RadRibbonBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadRibbonBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + Represents a ribbon bar button group. You can group buttons that are + logically related, for example, bold, italic, and underline buttons in + a text editor application. + + + + + Fires ItemChanged event. + + + + + Fires ItemClicked event. + + + + + + + + + + + Refreshes the items nested in the argument. + + + + + + + + + + + + + Gets the collection of items in the button group. + + + Gets or sets the orientation of the elements inside the button group: Horizontal or Vertical. + + + Gets or sets a value indicating whether the border is shown. + + + Gets or sets a value indicating whether the back color is shown. + + + + Gets the stack layout panel + that holds all elements. + + + + + Represents a Ribbon Bar group. The Group can contain telerik controls. You may + group related controls in groups; this gives the application intuitive interface. + + + + + Overrides object ToString() method. Returns the value of the Text property + prefixed with the "chunk:" string. + + + + Expands the chunk. + + + Collapses the chunk. + + + + Gets an instance of the class + that represents the group's outer border. + + + + + Gets an instance of the class + that represents the group's fill; + + + + + Gets an instance of the class + that represents the caption's fill; + + + + + Gets an instance of the class + that represents the body's fill; + + + + + Get or sets value indicating whether Dialog button is visible or hidden. + + + + Gets a collection of nested items. + + + Gets or sets the orientation of the items inside the chunk. Possible values are: Horizontal and + Vertical. + + + + Gets or sets the image that is displayed when the chunk is collapsed. + + + + + Get or Set collapsing order weight - bigger mean to start collapsing from this RadRibbonbarGroup + + + + + Occurs when Dialog Button is clicked + + + + + + A collection that stores objects. + + + + + + + + Initializes a new instance of the + . + + + + + + Initializes a new instance of the . + + Collection owner. + + + Fires when the collection is changed. + + + + Represents a ribbon bar element. The RadRibbonBarElement can be nested in other + telerik controls. Essentially RadRibbonBar class is a simple wrapper for + RadRibbonBarElement class. RadRibbonBar acts to transfer events to and from the its + corresponding instance of the RadRibbonBarElement. + + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An instance that contains the event data. + + + + Calls the OnCommandTabCollapsed event. + For internal use only. + + The event args associated with this event + + + + Calls the OnCommandTabExpanded event. + For internal use only. + + The event args associated with this event + + + + Gets or sets a boolean value determining whether the groups are collapsed according to the ribbon's size. + + + + + Gets or sets the Minimize button + + + + + Gets or sets the Maximize button + + + + + Gets or sets the Close button + + + + Gets a collection of the command tabs. + + + + Gets or the localization settings for this element + + + + + Gets a collection of contextual tab groups. + + + + + Get or sets value indicating whether RibbonBar Help button is visible or hidden. + + + + + Get or sets value indicating whether RibbonBar Expand button is visible or hidden. + + + + + Gets the collection of quick access menu items. + + + + Gets or sets the height of the quick access. + + + Gets or sets if the quick access toolbar is below the ribbon. + + + + Gets or sets the image of the start button placed in the top left corner. + + + + + Gets the application menu element + + + + + Gets the options menu button + + + + + Gets the exit menu button + + + + + Gets the collection of the start button menu item. + + + + + Gets the collection of the start button menu items which appear on the right. + + + + + Gets the collection of the start button menu DropDown which is displayed when the button has two columns. + + + + + Gets or sets the width of the start menu + + + + + Gets an instance of the TabStripElement which is used to display the tab items in the RibbonBarElement. + + + + + Gets the instance of the currently selected command tab. + + + + + Gets or sets a boolean value indicating whether the + RadRibbonBarElement is expanded or not. + + + + + Gets the QuickAccessToolBar + + + + + Gets the instance + that represents the fill of the ribbon's caption. + + + + + Gets the instance + that represents the border of the ribbon's caption. + + + + + Occurs just before a command tab is selected. + + + + + Occurs when a command tab is selected. + + + + + Occurs when a command tab is expanded by double clicking a collapsed command tab item. + + + + + Occurs when a command tab is collapsed by double clicking an expanded command tab item. + + + + + Gets an instance of the RibbonBarPopup class which represents the + RadRibbonBar popup. + + + + + Implements + the basic functionality of a horizontal scroll bar control. + + + + Implements the basic functionality for the scrolling. + + + This class can be used both for horizontal and for vertical scrolling through its + property . Only the + specialized children are put in the Toolbox: + and . + + + To adjust the value range of the scroll bar control set the + and + properties. To adjust the + distance the scroll thumb moves, set the + and + properties. To adjust the starting point of the scroll thumb, set the + property when the control is + initially displayed. + + + + + + Decrements the thumb position by the number of small steps given as a parameter. + The distance of a small step is determined by the + SmallChange property. + + + + + Increments the thumb position by the number of small steps given as a parameter. + The distance of a small step is determined by the + SmallChange property. + + + + + Decrements the thumb position by the number of large steps given as a parameter. + The distance of a large step is determined by the + LargeChange property. + + + + + Increments the thumb position by the number of large steps given as a parameter. + The distance of a large step is determined by the + LargeChange property. + + + + + Scrolls to the first position specified by the Minimum + property. + + + + + Scrolls to the last position specified by the Maximum + property. + + + + + Scrolls to the specified position. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets the instance of RadScrollBarElement wrapped by this control. RadScrollBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of both + RadHScrollBar and RadVScrollBar. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RadScrollBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current BackColor property might be ignored. + + + + + RadScrollBar consists of multiple visual elements and separate settings are provided to customize their appearance. + Current ForeColor property might be ignored. + + + + + This property is not relevant for this class. + + + + + + + + + + + Gets or sets the ScrollType. Possible values are defined in the ScrollType + enumeration: Vertical, and Horizontal. + + + + Implements the basic functionality for scrolling. + + + This class can be used both for horizontal and for vertical scrolling via its + property . In the Toolbox only the specialized + children are put: and + . + + + To adjust the value range of the scroll bar control, set the + and properties. To adjust + the distance the scroll thumb moves, set the and + properties. To adjust the starting point of the + scroll thumb, set the property when the control is + initially displayed. + + + + + + + + + + Retrieves the srolling parameters. + ScrollBarParameters Structure + + + Sets the given scroll parameters. + ScrollBarParameters Structure + + + + Simulate scrolling - just like the top / left button is pressed. + Unlike setting property Value this function fires scrolling events. + + Value is decremented with (numSteps * SmallChange) + + + + Simulate scrolling - just like the bottom / right button is pressed. + Unlike setting property Value this function fires scrolling events. + + Value is incremented with (numSteps * SmallChange) + + + + Simulate scrolling - just like the top / left area according the thumb is pressed. + Unlike setting property Value this function fires scrolling events. + + Value is decremented with (numSteps * LargeChange) + + + + Simulate scrolling - just like the bottom / right area according the thumb is pressed. + Unlike setting property Value this function fires scrolling events. + + Value is incremented with (numSteps * LargeChange) + + + + Simulate scrolling with positioning the thumb on its first position. + Unlike setting property Value this function fires scrolling events. + + + + + Simulate scrolling with positioning the thumb on its last position. + Unlike setting property Value this function fires scrolling events. + + + + Scrolls just like the thumb is dragged at given position + Position of the thumb (in screen coordinates). + + + + Occurs when the scroll thumb has been moved by either a mouse or keyboard + action. + + + + + Occurs when the property is changed, either by a + event or programmatically. + + + + + Occurs when a property that affects the scrolling is changed. + See for more information on which properties affect the scrolling. + + + + + Indicates whether invalid values should be clamped or an exception should be thrown + + + + + Gets the first button element of this scrollbar + + + + + Gets the second button element of this scrollbar + + + + + Gets or sets a value between 0.0 and 1.0 that indicates what part of the scrollable area + can be occupied by the thumb. If the value is 0.0 then the thumb should be with length 0 + but the property MinThumbLength will cause the thumb to be larger. + If the value is 1.0 the thumb takes the whole area between the two scrolling buttons. + Negative value means that the thumb length should be calculated automatically based on + Minimum, Maximum and LargeChange values. + + + + + + Gets or sets the minimum length of the scrolling thumb. See + for more information about thumb length. + + + + An integer value that gives the minimum thumb length. It is taken into account no + matter if the thumb length is calculated automatically or the thumb length is set + explicitly. + The thumb length could be smaller than MinThumbLength if there is no space in the scroll bar. + + + + + Gets the length of the scrolling thumb. Thumb length is the thumb's height + for vertical scroll bar and the thumb's width for horizontal scroll bar. + + + + + Controls the angle that the fill primitive will be rotated when switching from horizontal to vertical orientation + + + + Gets or sets the upper limit of the scrollable range. + A numeric value. The default value is 100. + + NOTE: The value of a scroll bar cannot reach its maximum value through user + interaction at run time. The maximum value that can be reached is equal to the + Maximum property value minus the + property + value plus 1. The maximum value can only be reached programmatically. + + + + Gets or sets the lower limit for the values of the scrollable range. + A numeric value. The default value is 0. + + The value of a scroll bar cannot reach its maximum value through user + interaction at run time. The maximum value that can be reached is equal to the + Maximum property value minus the + property + value plus 1. The maximum value can only be reached programmatically. + + + + + Gets or sets a numeric value that represents the current position of the scroll thumb on + the scroll bar. + + + A numeric value that is within the and + range. The default value is 0. + + + + + Gets or sets the value to be added to or subtracted from the + property when the scroll thumb is moved a small distance. + + A numeric value. The default value is 1. + + When the user presses one of the arrow keys, clicks one of the scroll bar + buttons or calls one of the LineXXX() functions, the Value property changes + according to the value set in the SmallChange property. + + + + + Gets or sets a value to be added to or subtracted from the + property when the scroll + thumb is moved a large distance. + + A numeric value. The default value is 10. + + When the user presses the PAGE UP or PAGE DOWN key, clicks in the scroll bar + track on either side of the scroll thumb, or calls one of the PageXXX() functions, the + Value property changes according to the value set in the LargeChange + property. + + + + + Gets or sets the scroll type - it could be horizontal + or vertical. + + + + + Gets the thumb element of this scrollbar + + + + + Gets or sets the scroll timer delay + + + + Represents a vertical scroll bar. + + + + Gets or sets the ScrollType. Possible values are + defined in the ScrollType enumeration: Horizontal and Vertical. + + + + + Represents a scrollbar button. There are two buttons in the implementation of the + RadScrollBar: FirstButton and SecondButton. + + + + Initializes a new instance of the ScrollBarButton class. + + + + Initializes a new instance of the ScrollBarButton class using + scrollButtonDirection. + + + + + Gets or sets a value indicating the button + direction defined in the ScrollButtonDirection enumeration: up, right, + buttom, and left. + + + + + Gets an instance of contained in the button. + + + + + Gets an instance of contained in the button. + + + + + Gets an instance of contained in the button. + + + + Represents a scrollbar thumb in the scroll bar. + + + + Gets a value indicating whether the thumb is in pressed state. + + + + + Gets or sets the image associated with the thumb + + + + + Gets an instance of contained in the thumb. + + + + + Gets the contained in the thumb. + + + + + RadWebBrowserElement extends RadWebBrowserItem adding border and background fill. + + + + + + + + + + + + + + + + + + + + + Gets the of the + + + + + + Gets the of the + + + + + + Gets or Sets value indicating whether the is visible + + + + + + RadWebBrowserItem hosts WebBrowser control to allow using it in the TPF structure. + + + + + Gets or Sets the Url that is to be browsed. + + + + + + Gets or Sets the HTML document content. + + + + + + Gets the HTML document title content. + + + + + + Fires when document loading has completed. + + + + + + Fires when file has been downloaded + + + + + + Fires when the browser has navigated to a new document and has begun loading it. + + + + + + + Fires before the browser navigates to a new document + + + + + + + Fires before new browser window is opened + + + + + + Fires before System.Windows.Forms.Control.KeyDown event when a key is pressed while focus is on this control. + + + + + Fires when the RadWebBrowserItem has updated information on the download progress of a document it is navigating to. + + + + + + Fires when the System Colors change + + + + + Gets or sets the zoom popup shadow + + + + + Gets or sets the animation frames count + + + + + Gets or sets the animation interval (in miliseconds) + + + + + Provides data for the ToolTipTextNeeded event used in ItemScroller + + + + + Initializes a new instance of the GridElementToolTipTextNeededEventArgs class. + + The tool tip. + The row index of the first visible item. + The first visible item. + The default tooltip text. + + + + Gets the item index of the first visible item. + + + + + Gets the item associated with this ToolTip. + + + + + Represent a interface that is traversable + + + + + Gets the count. + + The count. + + + + Gets the item at the specified index. + + + + + + Specifies the mode in which an ItemScroller will scroll the items in its view. + + + + + Items are scrolled one at a time. The scrollbar maximum is equal to the number of the items in the view. + The scrollbar SmallChange is equal to 1 and each small increment or decrement will move the items in the view with one whole item. + + + + + Items are scrolled smoothly. The scrollbar maximum is equal to the sum of the heights of all the items in the view. + The scrollbar SmallChange is calculated automatically. Increments and decrements will move the items in the view with the actual value of the scrollbar. + + + + + Works in a similar way as Smooth with the difference that the view is updated only when the scrollbar thumb is released. A tooltip helps indicated the + position to which the view will be scrolled to. + + + + + Represent a navigating event handler raised by ItemScroller + + + The sender. + The e. + + + + Event arguments of ItemsNavigatingEventHandler + + Item + + + + Initializes a new instance of the class. + + The navigating item. + + + + Gets the item. + + + The item. + + + + + Gets or sets a value indicating whether the item should be skipped. + + + true if skip the item; otherwise, false. + + + + + Represent a generic scroll view element + + + + + Container element of + + + + + Gets or sets the element count. + + The element count. + + + + Gets or sets the color of the elements. + + The color. + + + + Gets or sets the secondary color of the elements. + + The secondary color. + + + + Gets or sets the inner radius. + + The inner radius. + + + + Gets or sets the radius. + + The radius. + + + + Gets or sets the initial start element angle. + + The initial start element angle. + + + + Gets or sets the rotation direction. + + The rotation direction. + + + + Gets or sets the element gradient percentage. + + The element gradient percentage. + + + + Gets or sets the element gradient percentage. + + The element gradient percentage. + + + + Gets or sets the element back color3. + + The element back color3. + + + + Gets or sets the element back color3. + + The element back color3. + + + + Gets or sets the element number of colors. + + The element number of colors. + + + + Gets or sets the current leading element angle. + + The current leading element angle. + + + + Gets or sets the dot radius. + + The dot radius. + + + + Gets or sets the last dot radius. + + The last dot radius. + + + + Gets or sets the line thickness. + + The line thickness. + + + + Checks if an angle is in given range(by given start and end angles) depending on the RotationDirection. + + The angle to check. + Start of range. + End of range. + + + + + Gets or sets a value indicating whether to expand and collapse the ring. + + Boolean. + + + + Gets or sets the sweep angle. + + The sweep angle. + + + + Gets or sets the minimal sweep angle. + + The minimal sweep angle. + + + + Gets or sets the outer ring sweep angle. + + The outer ring sweep angle. + + + + Gets or sets the width of the outer ring. + + The width of the outer ring. + + + + Gets or sets the background color of the outer ring. + + The outer ring background color. + + + + Gets or sets the inner ring sweep angle. + + The inner ring sweep angle. + + + + Gets or sets the inner ring start angle measured in degrees. + + The inner ring start angle. + + + + Gets or sets the width of the inner ring. + + The width of the inner ring. + + + + Gets or sets the background color of the inner ring. + + The inner ring background color. + + + + Gets or sets the distance between segments. + + + + + Represents accelerating dots moving in a line. + + + + + Gets a value indicating whether the WaitingDirection is vertical(Top or Bottom). + + + + + Gets or sets the dot radius. + + The dot radius. + + + + Gets or sets the acceleration speed. + + The acceleration speed. + + + + Gets or sets the distance between dots. + + The distance between dots. + + + + Gets or sets a value, indicating the distance(in percent) which each ball moves with slow speed. + + The slow speed range. + + + + Gets or sets the waiting direction. + + The waiting direction. + + + + Gets or sets the empty frames count between animation cycles. + + The delay between animation cycles. + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets the dot radius. + + The dot radius. + + + + Gets or sets the acceleration speed. + + The acceleration speed. + + + + Gets or sets the max speed sweep angle. + + The max speed sweep angle. + + + + Gets or sets the sweep angle dot travels before the end of animation cycle. + + The dot sweep angle life cycle. + + + + Gets or sets the distance between dots. + + The distance between dots. + + + + Gets or sets the empty frames count between animation cycles. + + The delay between animation cycles. + + + + Represents the content element of . + + + + + The waiting style property of + + + + + Clears all indicators and creates new, depending on the WaitingStyle value. + + + + + Gets the reversed direction. + + The direction. + + + + + Increments the offset of the indicator + + The value. + + + + Determines whether this instance is vertical. + + + true if this instance is vertical; otherwise, false. + + + + + Resets the waiting state of the indicator. + + + + + Updates the indicator stretch orientation. + + The indicator. + + + + Updates the vertical state property of the indicator. + + The indicator. + + + + Adds the indicator step. + + The step. + The index of the indicator. + + + + + Arranges the indeterminate indicator elements. + + The client rectangle. + + + + Calculates the indicator step. + + The client rectangle. + + + + + Gets the final size of the throbber indicator element. + + The element. + The client rectangle. + + + + + Gets the final size of the dash element. + + The element. + The client rectangle. + + + + + Moves the indicator element. + + The element. + The client rectangle. + The waiting direction. + + + + + Sets the elements visibility. + + The style. + + + + Sets the indicators visibility. + + The visibility. + + + + Sets the dash initial position. + + The element. + The client rectangle. + + + + + Updates the offset. + + The client rectangle. + + + + Gets a collection of elements + which contains all waiting indicators of RadWaitingBar + + + + + Gets an instance of the class + that represents the waiting bar text element + + + + + Gets an instance of the class + that represents the waiting bar separator element + + + + + Gets and sets the direction of waiting. + Range: Bottom, Left, Right, Top + + + + + Indicates whether the element is currently waiting + + + + + Gets or sets the style of the WaitingBarElement. + + + + + Returns true if WaitingStyle is Indeterminate, Throbber or Dash. + + + + + The RadWaitingBar class is a simple wrapper for the + RadWaitingBarElement class. + The latter implements all UI and logic functionality. + The RadWaitingBar class acts to transfer events to and from the + RadWaitingBarElement class. + RadWaitingBarElement can be + nested in other telerik controls. + + + + + Creates the waiting bar element. + + + + + + exclude WaitingBarElement from Serilization + + should serialize + + + + Starts the waiting animation. + + + + + Stops the waiting animation. + + + + + Resets the waiting indicator to initial position. + + + + + Gets or sets whether the edit control is auto-sized + + + + + Gets a collection of elements + which contains all waiting indicators of RadWaitingBar + + + + + Gets the instance of RadWaitingBarElement wrapped by this control. RadWaitingBarElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadWaitingBar. + + + + + Sets the DefaultSize of RadWaitingBar + + + + + Gets and sets the image property of the indicator + + + + + Gets and sets the image index property of the indicator + + + + + Gets and sets the image key property of the indicator + + + + + Indicates whether the control is currently waiting + + + + + Indicates the orientation of the RadWaitingBar + + + + + Indicates whether the indicators are stretched horizontally + + + + + Indicates whether the indicators are stretched vertically + + + + + Sets the style of RadWaitingBar + + + + + Gets and sets the text of the control's textElement + + + + + Gets and sets the WaitingDirection of the RadWaitingBarElement + + + + + Gets and sets the size of the indicator in pixels + + + + + Gets and sets the speed of the animation. Higher value moves the indicator more quickly across the bar + + + + + Gets and sets the number of pixels the indicator moves each step + + + + + Shows text in RadWaitingBar. + + + + + Gets/Sets the control to associated it. RadWaitingBar will be shown in the middle of the associated control when started. + + + + + Gets the associated panel. + + + + + Starts control waiting + + + + + Ends control waiting + + + + + Represents a waiting bar element. It may be included in other telerik controls. + All graphical and logical functionality is implemented in RadWaitingBarElement. + + + + + The timer + + + + + The continue waiting + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Initializes the class. + + + + + Initializes a new instance of the class. + + + + + Starts the waiting process + + + + + Stops the waiting process + + + + + Sets the indicator to its starting position depending on the WaitingDirection + + + + + Gets an instance of the class + that represents the waiting bar content element + + + + + Gets a collection of elements + which contains all waiting indicators of RadWaitingBar + + + + + Gets an instance of the class + that represents the waiting bar text element + + + + + Gets an instance of the class + that represents the waiting bar separator element + + + + + Gets and sets the Image of the element's indicator + + + + + Gets and sets the ImageIndex of the element's indicator + + + + + Gets and sets the ImageKey of the element's indicator + + + + + Shows text in RadWaitingBarElement. + + + + + Indicates whether the indicators are stretched horizontally + + + + + Indicates whether the indicators are stretched vertically + + + + + Sets the style of the WaitingBarElement + + + + + Gets and sets the size of the indicator in pixels + + + + + Indicates whether the element is currently waiting + + + + + When set to vertical the RadWaitingBar WaitingDirection property is set to Bottom + When set to horizontal the RadWaitingBar WaitingDirection is property is set to Right + + + + + Gets and sets the direction of waiting, e.g. + the Right value moves the indicator from left to right + Range: Bottom, Left, Right, Top + + + + + Gets and sets the speed of the indicator + Greater value results in faster indicator + Range: [0, 100] + + + + + Gets and sets the step in pixels which moves the indicator + + + + + Occurs when waiting is started. + + + + + Occurs when waiting is stopped. + + + + + The state manager class of + + + + + Represents a collection of items. + + + + + Initializes a new instance of the class. + + + + + Represents waiting bar indicator element + + + + + Initializes the class. + + + + + Gets the separator element. + + + The separator element. + + + + + Gets a offset of the indicator. + + + + + The state manager class of . + + + + + The state manager class of + + + + + Represents 's text element + + + + + Represents separator element in . + + + + + Initializes the class. + + + + + Sets and gets the width of each separator line in pixels + + + + + Sets and gets the distance between two adjacent separator lines + + + + + Sets and gets the orientation of the separator element + + + + + Sets and gets the angle of rotation of all separator lines + + + + + Indicates whether separator lines should be drawn + + + + + Indicates whether a second set of separator lines should be drawn + + + + + Represents a collection of items. + + + + + Initializes a new instance of the class. + + +
+
diff --git a/Analysis/bin/x64/Release/Telerik.WinControls.dll b/Analysis/bin/x64/Release/Telerik.WinControls.dll new file mode 100644 index 0000000..fd85934 Binary files /dev/null and b/Analysis/bin/x64/Release/Telerik.WinControls.dll differ diff --git a/Analysis/bin/x64/Release/Telerik.WinControls.xml b/Analysis/bin/x64/Release/Telerik.WinControls.xml new file mode 100644 index 0000000..510774e --- /dev/null +++ b/Analysis/bin/x64/Release/Telerik.WinControls.xml @@ -0,0 +1,22380 @@ + + + + Telerik.WinControls + + + + + This interface represents a monitor which receives trace events from RadControls. You can implement it if you need to + receive trace events from the controls used in your application. + + + + + This method is called when an atomic feature is executed. + + The feature to be tracked. + + + + This method is called when a feature is initiated. + + The feature that was initiated. + + + + This method is called when a feature finishes execution. + + The feature that finished. + + + + This method is called when a feature is canceled. + + The feature that was canceled. + + + + Traces an error in a specified feature. + + The feature in which the error occurred. + The error that occurred. + + + + This method is called when a value connected with a specific feature is tracked. + + The feature that produced the value. + The value that was tracked by the feature. + + + + Gets or sets the monitor, which the controls report to. + + + + + Notifies listeners of dynamic changes, such as when items get added and removed or the whole list is refreshed. + + + You can enumerate over any collection that implements the IEnumerable interface. However, to set up dynamic bindings so that insertions or deletions in the collection update the UI automatically, the collection must implement the INotifyCollectionChanged interface. This interface exposes the CollectionChanged event that must be raised whenever the underlying collection changes. + + + + + Occurs when the collection changes. + + + + + Moves the specified old index. + + The old index. + The new index. + + + + Adds the range. + + The items. + + + + Adds the range. + + The items. + + + + Begins the update. + + + + + Ends the update. + + + + + Defers the refresh. + + + + + + Defines possible reasons for a CurrentChanged notification from RadCollectionView. + + + + + The default reason for causing the event. + + + + + The event was caused by an Add operation. + + + + + The event was caused by a Move operation. + + + + + The event was caused by an EndUpdate operation. + + + + + The event was caused by a Sync operation. + + + + + String + + + + + Number + + + + + DateTime + + + + + Boolean + + + + + Null + + + + + Other + + + + + Used when exporting null value. + + + + + General format + + + + + Displays anything as text (i.e. Left aligned without formatting) + + + + + Displays numeric values with two fixed decimals + + + + + Displays numeric values with two fixed decimals and digit grouping + + + + + Displays numeric values as percentage values + + + + + Displays numeric values in scientific notation + + + + + Displays numeric or date values as short date format + + + + + Displays numeric or date values as short date format + + + + + Displays numeric or date values as medium date format + + + + + Displays numeric or date values as long date format + + + + + Displays numeric or date values as a combination of the short date and short time patterns, separated by a space. + + + + + Displays numeric or date values as a combination of the long date and long time patterns, separated by a space. + + + + + Displays numeric date as currency + + + + + Displays numeric or date values in a long time format + + + + + Displays numeric or date values in a medium time format + + + + + Displays numeric or date values in a short time format + + + + + Custom defined format + + + + + The cell content type + + + + + Cell does not contain anything + + + + + Cell contains a string + + + + + Cell contains a number + + + + + Cell contains a DateTime value + + + + + Cell contains a bool value + + + + + Cell contains a formula + + + Cell contains a formula which cannot be resolved + + + + + Gets or sets the type of the grid row. + + The type of the row. + + + + Gets or sets the index of the grid row. + + The index of the row. + + + + Gets or sets the type of the grid column. + + The type of the column. + + + + Gets or sets the index of the grid column. + + The index of the column. + + + + Gets or sets the cell style info. + + The cell style info. + + + + This creates a linear gradient depending on number of colors needed + + + + + this.editor.Position = savePosition; + + Horizontal offset that will be set as new Matrix position + Vertical offset that will be set as new Matrix position + + + + Enum listing the export formats supported by RadSpreadProessing. + + + + + XLSX format + + + + + PDF format + + + + + CSV format + + + + + Txt format + + + + + Enum listing the export formats supported by RadSpreadStreamProessing. + + + + + XLSX format + + + + + CSV format + + + + + Enum listing the different options when exporting to a file + + + + + Export as new sheet in existing file + + + + + Export in new file or override existing file + + + + + Load expression items list from embedded in Telerik assembly xml source + + + + + Load expression items list + + Xml file path + + + + Load expression items list + + + + + + Sets the first page as the current page. + + true if the operation was successful; otherwise, false. + + + + Sets the last page as the current page. + + true if the operation was successful; otherwise, false. + + + + Moves to the page after the current page. + + true if the operation was successful; otherwise, false. + + + + Requests a page move to the page at the specified index. + + true if the operation was successful; otherwise, false. + The index of the page to move to. + + + + Moves to the page before the current page. + + true if the operation was successful; otherwise, false. + + + + Gets a value indicating whether this data view can be paginated. + + + true if this data view can be paginated; otherwise, false. + + + + + Occurs when the IPagedCollectionView.PageIndex has changed. + + + + + Occurs before the IPagedCollectionView.PageIndex is changed. + + + + + Gets a value that indicates whether the IPagedCollectionView.PageIndex value is allowed to change. + + true if the IPagedCollectionView.PageIndex value is allowed to change; otherwise, false. + + + + Gets a value that indicates whether a page index change is in process. + + true if the page index is changing; otherwise, false. + + + + Gets the zero-based index of the current page. + + The zero-based index of the current page. + + + + Gets or sets the number of items to display on a page. + + The number of items to display on a page. + + + + Gets the total number of items in the source collection. + + The total number of items in the source collection, or -1 if the total number is unknown. + + + + Gets or sets the tag. + + The tag. + + + + Determines whether [contains] [the specified value]. + + The value. + + true if [contains] [the specified value]; otherwise, false. + + + + + Copies to. + + The array. + The index. + + + + Indexes the of. + + The value. + + + + + Gets the count. + + The count. + + + + Gets the item at the specified index. + + + + + + Use the StyleBuilderReadOnly attribute to mark properties that should appear as readonly when edited in the Visual + Style Builder application + + + + + This attribute should be used on classes which will be present in the Visual Studio toolbox (i.e. the ones that should also have a attribute). + + + + + Creates a new instance of the ToolboxCategory attribute with the specified title. + + The title of the category where the control will be placed + + + + Theme manager Component is used to load user-defined themes for RadControls in an application. + Use the LoadedThemes property to add new team source files. Themes load immediately when correct + property values specified and last for the life time of the application. After a theme is loaded + it can be used by the corresponding types of controls placed on any Form of the application. + + + + + ThemeSource is used to load user-defined themes for RadControls in an application. + Themes load immediately when correct property values specified and last for the life + time of the application. After a theme is loaded it can be used by the corresponding + types of controls placed on any Form of the application. ThemeSource object are generally + used by ThemeManager component placed on a Form + + + + + Base for all TPF classes. Implements WPF-like property system with different value sources. + Provides public interface for getting, setting value or re-setting property value. + + + + + Represents a basic object which implements IDisposable interface. + + + + + Gets the current bit state for the object, defined by the provided key. + + + + + + + Applies the specified boolean value to the BitVector of the object. + + + + + + + Notifies the object for a change in its bit state. + + + + + + + + Releases all resources associated with this object. + + + + + Performs the actual Dispose logic. + + + + + + Performs the core resources release logic. + + + + + + Disposes all MANAGED resources - such as Bitmaps, GDI+ objects, etc. + + + + + Releases any UNMANAGED resources used by this object. + NOTE: If you declare some unmanaged resources in your class, + you should override its finalizer and put disposing logic there also. + + + + + Gets the RadBitVector64 structure that holds all the bit states of the object. + + + + + Provides a simple list of delegates. + + + + + Determines whether the object is in a process of being disposed of. + + + + + Determines whether the object is already disposed. + + + + + Replaces the default property descriptors of properties of the object in order to perform Rad-Object specific + tasks like checking ShouldSerialize and RadProperty-DefaultValue... + + + + + + + + + + + + Removes all references to external property modifiers such as + property bindings, style settings and animations. + + + + + Allows PropertyChanging and PropertyChanged notifications to be temporary suspended. + + + + + Resumes property notifications after a previous SuspendPropertyNotifications call. + + + + + Gets the RadPropertyValue structure that holds information + about the specified property's effective value for this instance. + May be null if no effective value is recorded. + + + + + + + Applies the provided value as an override + of the Default value provided by the specified property's metadata. + + + + + + + + Marks the current PropertyValue entry for the specified property as "Set at design-time". + This is used by our custom code-dom serializer to determine which properties needs to be persisted. + + + + + + Applies the specified value as Local for the desired property + and raises the flag IsLocalValueSetAtDesignTime for that property. + All design-time direct property modifications (e.g. item.Text = "Item1") + should be done through this method for the property to be properly serialized. + If a property is modified through a property grid, the custom property descriptor will automatically apply this logic. + This method is used internally. + + + + + + + Retrieves the current value for the specified property. + + + + + + + Applies the provided value as Local for the specified property. + + + + The result of the operation. + + + + Resets the current value of the specified property. + This method will remove any effective value modifier + (such as style or animation setting) for the specified property. + + The RadProperty that should be reset. + The result of the operation. + + + + Resets the current value of the specified property using the provided flags. + + The RadProperty that should be reset. + Additional flags that specify which effective modifiers should be reset. + The result of the operation. + + + + Forces re-evaluation of the current value for the specified property. + + + The result of the operation. + + + + Gets the source of the current value for the specified property. + + + + + + + Gets the registered property with the specified name. + + + + + + + Performs the core value update logic. + + + The result of the operation. + + + + Performs the core logic of updating property value. + + The property value structure, holding property information. + Additional modifier, like IPropertySetting + The actual new value to be set, valid for Local and DefaultValue sources. + Specifies the source of the provided new value. + The result of the operation. + + + + Resets the specified property value, using the provided reset flags. + + + + The result of the operation. + + + + Allows inheritors to provide custom default value. + + + + + + + + Allows inheritors to force a coersion of the current calculated value for the given property. + + The property value. + The current caluclated value of the property. + Null if no coersion is needed. + + + + Determines whether the property defined by the provided property descriptor should be serialized. + + + + + + + Checks needed conditions to perform property update. + + + + + + + Performs the following logic: + 1. Compares oldValue and newValue and returns ValueUpdateResult.NotChanged if they are equal. + 2. Raises the PropertyChanging notification. If the event is canceled returns ValueUpdateResult.Canceled. + 3. Raises PropertyChanged notification and returns ValueUpdateResult.Updated. + + + + + + The result of the operation. + + + + Determines whether the object can raise PropertyChanging and PropertyChanged notifications. + Current implementation checks whether the object is disposing or is already disposed of. + + + + + + + Gets the animation (if any) attached to the current property. + + + + + + + Gets notified for a change in an animated property. + + The property which is currently animated. + + + + Binds the specified property to a property of the provided binding source object. + + Our property that is about to be bound. + The object to which source property belongs. + The property to which we will bind. + Additional options, specifying the binding operation. + + + + Removes the binding for the specified property. + + + The result of the operation. + + + + Gets notified that the specified object has bound to a property of ours. + + The instance that has bound the specified property. + + + + + Gets notified that the specified object has unbound itself from a property of ours. + + + + + + + Notifies a binding source that a change occured in a two-way bound property. + + + + + + + Gets notified for a change in an already bound external property. + + + + + + Detaches binding reference from the binding source. + + + + + + Registers a style setting for this instance. + + + + + + Called when element style condition changes. This method is used internally. + + + + + + Called when element style condition changes. This method is used internally. + + + + + + Searches up in the chain of InheritanceParents for a value for the specified property. + + The property to examine. + + + + + Raises the event. + + + + + + Raises the event. + + + + + + Raises the PropertyChanged event. + + The name of the property. + + + + Raises the standard .NET PropertyChanged event. + + + + + + Determines whether the specified property may be canceled. + + The metadata associated with the property change. + + + + Occurs when a property of an object changes. + Note: if a property which is not a RadProperty changes, + the developer is responsible for firing this event by using the + API. + + + + + Occurs when a property of a RadObject changes. + + + + + Occurs prior to property of a RadObject changes. + + + + + Gets a collection containing property values. + + + + + Gets the RadObject which is treated as the parent from which inheritable properties are composed. + + + + + Determines whether the element is in design mode. + + + Gets or sets a value indicating whether design mode is active. + + + + + Gets or sets a Filter instance, used to filter the ICustomPropertyDescriptor.GetProperties collection. + + + + + Gets the RadObjectType which is associated with this system type. + + + + + Gets or sets the BindingContext for the object. + + + + + Loads the theme from the file resource specified and registers it into ThemeResolutionService. Thais method is called + immediately when correct ThemeLocation and StorageType are specified. + + + + + Indicates whether the specified theme was loaded successfully. + + + + + Gets value indicating the error message if Theme was not loaded successfully. + + + + + Gets or sets the full resource name if StorageType is Resource. Example: "MyNamespace.MyThemeFileName.xml". + If the StorageType specified is File, then the value of this property should represent the full or relative file path, + accessible by the application. The "~" sign can be used to substitute the application executable path. + Eg. "C:\MyApp\MyThemeFileName.xml" or "..\..\MyThemeFileName.xml" or "~\MyThemeFileName.xml" + + + + + Gets or sets the owner theme manager component. Generally used by Form's designer. + + + + + Gets or sets File or Resource type of storage for the theme file + + + + + Gets a value indicating whether property values are valid + + + + + Represents + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of the. + + + + Owner component + + + + + + Initializes a new instance of the based on another . + + + + A from which the contents are copied + + + Owner component + + + + + + Initializes a new instance of the containing any array of objects. + + + + A array of objects with which to intialize the collection + + + Owner component + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Defines the theme storage type. + + + + + Indicates that the theme is contained in a external file. + + + + + Indicates that the theme is contained as a resource. + + + + + Represent the ColorChangedEventArgs class + + + + + Represents event arguments for the + %ColorChanged:Telerik.WinControls.CaptureBox.ColorChanged% event. + + + Represents the changed color. + + + + + Represents event arguments for the + event. + + + Represents the changed color. + + + + + Modes the RadColorPicker can be in + + + + + This class is used to hold the event arguments + for the CustomColorsConfigLocationNeeded event of the CustomColors control. + + + + + Creates an instance of the CustomColorsEventArgs class. + + The location of the config file. + The name of the config file. + + + + Gets or sets the file name of the configuration file. + + + + + Gets or sets the path where the configuration file will be stored. + + + + + Represents color in HSL color space. + + + Used for color blending operations, defined in HSL color space which are more precise than in RGB. + HSL colors are used by theming and painting sub-systems of RadControls. + + + + + H Channel value + + + + + S Channel value + + + + + L Channel value + + + + + RGB color value + + + + + Gets or sets color'a alpha chanel level in terms of argb color. Used mainly for conversion from/to ARGB color values. + + + + + Wraps the functionality provided by the color picker + + + + + Gets or sets the selected color + + + + + Gets or sets the selected color + + + + + Gets or sets the old color + + + + + Shows or hides the basic colors tab + + + + + Gets or sets the active mode of the color tabs + + + + + Shows or hides the system colors tab + + + + + Shows or hides the web colors tab + + + + + Shows or hides the professional colors tab + + + + + Shows or hides the custom colors panel + + + + + Shows or hides the hex color textbox + + + + + Allows or disallows editing the hex value + + + + + Allows or disallows picking colors from the screen + + + + + Allows or disallows color saving + + + + + Gets the custom colors + + + + + Gets or sets the heading of the basic colors tab + + + + + Gets or sets the heading of the system colors tab + + + + + Gets or sets the heading of the web colors tab + + + + + Gets or sets the heading of the professional colors tab + + + + + Gets or sets the heading of the selected color label + + + + + Gets or sets the heading of the old color label + + + + + Fires when the OK Button is clicked + + + + + Fires when the Cancel Button is clicked + + + + + Gets the color selector + + + + + Gets or sets the selected color + + + + + Gets or sets the selected color + + + + + Gets or sets the old color + + + + + Gets or sets the active mode of the color tabstrip + + + + + Shows or hides the basic colors tab + + + + + Shows or hides the system colors tab + + + + + Shows or hides the web colors tab + + + + + Shows or hides whe professional colors tab + + + + + Shows or hides the custom colors tab + + + + + Shows or hides the hex color value + + + + + Allows or disallows editing the HEX value + + + + + Allows or disallows color picking from the screen + + + + + Allows or disallows color saving + + + + + Gets the custom colors + + + + + Gets or sets the heading of the basic colors tab + + + + + Gets or sets the heading of the system colors tab + + + + + Gets or sets the heading of the web colors tab + + + + + Gets or sets the heading of the professional colors tab + + + + + Gets or sets the heading of the selected color label + + + + + Gets or sets the heading of the old color label + + + + + Fires when the selected color has changed + + + + + Represents a dialog that can be used to select color with rich UI and extended functionality. + + + + + Resets the properties of a color dialog box to their default values. Replaces the underlaying ColorDialogForm + with new instance + + 1 + + + + Shows modal dialog box. + + + + true if the dialog box was successfully run; otherwise, false. + + + A value that represents the window handle of the owner window for the common dialog box. + + + + Gets the instance of RadColorDialogForm, which incorporates various settings of the + underlaying color selection Form and ColorSelector user control. + + + + + Gets or sets the icon displayed for this dialog. + + + + Gets or sets a value indicating whether control's elements are aligned + to support locales using right-to-left fonts. + One of the values. + The default is . + The assigned + value is not one of the values. + + + + + Gets or sets the selected color. References to SelectedColor of . + + + + + Gets or sets the selected color. References to SelectedColor of . + + + + + Gets the user-defined colors. References to CustomColors of . + + + + + Represents the method that will handle the ColorChanged event. + + + + + + + + + + + + + + + + + + + Fires when the selected color changes + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + + + + Represents a RadControl. RadControl is an abstract class and is base class for + all Telerik controls. + + + + + Returns the value for some ambient properties like BackColor, ForelColor, Font, etc. + + + + + + + Updates after a change in an ambient property like BackColor, ForeColor, Font, etc. + + + + + + Creates the input behavior instance. Allows inheritors to provide custom input implementations. + + + + + + Loads the element tree. While not loaded, no layout operations are allowed upon the tree. + By default, the tree will be loaded when the control is displayed for the first time. + + + + + Loads the element tree using the specified desired size. + + + + + + This method is used internally! + + + + + + Determines whether the BackColor property should be serialized. + + + + + + Determines whether the ForeColor property should be serialized. + + + + + + Determines whether the ForeColor property should be serialized. + + + + + + Notifies that the control is about to be visualized. + + + + + + Processes a focus request from the specified element. + + The element that requested the focus. + True if focus is approved, false otherwise. + + + + Processes a capture request from the specified element. + + The element which requested the capture. + + True if the capture request is approved, otherwise false. + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + + This method is used internally! + + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + Suspends layout during initialization. + + + Resumes layout. + + + + Raises the PropertyChanged event + + The name of the property + + + + Fires the ZoomGesture event. + + The arguments for the ZoomGesture event. + + + + Fires the RotateGesture event. + + The arguments for the RotateGesture event. + + + + Fires the PanGesture event. + + The arguments for the PanGesture event. + + + + Fires the TwoFingerTapGesture event. + + The arguments for the TwoFingerTapGesture event. + + + + Fires the PressAndTapGesture event. + + The arguments for the PressAndTapGesture event. + + + + Enable firing gesture events of the specified type. + + The type of gesture events to enable. + + + + Disable firing gesture events of the specified type. + + The type of gesture events to disable. + + + + Checks whether the 's theme is defined by the control. + + + If true is returned the ThemeResolutionService would not not set any theme to the element + to avoid duplicating the style settings of the element. + + The element to should be checked. + true if the control defines theme for this element, false otherwise. + + + + Replaces the default style group for specific element. + + The style group to replace. + The element on which this style should apply. + An instance of is successfull. + + + + Strips all html tags of the text set to the control and returns only the plain text. + + Plain text stripped of any html tags. + + + + Determines whether an element from this element tree may be displayed in the EditUIElements dialog. + + + + + + + Method used by control Code Dom serializer to access element in the collection of RootElement. + + + + + + + Determines whether the specified RadProperty should be serialized. + + + + + + + Determines whether an element may be edited via the EditUIElements dialog at design-time. + + + + + + + This method is used internally! + + The default size for this control + + + + This method is used internally! + + + + + + + Gets or sets a value indicating whether the RadControls scaling logic will be used when the application is run in a high DPI environment. + + + + + Determines whether the control is properly loaded. + + + + + Set or get the default value for UseCompatibleTextRendering property. + + + + Gets the input behavior for the control. + + + Gets the RootElement of the control. + + + Gets or sets padding within the control. + A representing the control's + internal spacing characteristics. + + + + Gets or sets control's preferred theme name. Themes are stored and retrieved using + APIs of . + + + If ThemeResolutionService.ApplicatonThemeName refers to a + non-empty string, the theme of a RadControl can differ from the one set using + RadControls.ThemeName property. If the themes differ, the + RadControls.ThemeName property will be overridden by + ThemeResolutionService.ApplicatonThemeName. If no theme is registered + with a name as ThemeResolutionService.ApplicatonThemeName, then + control will revert to the theme specified by its ThemeName property. + If ThemeName is assigned to a non-existing theme name, the control may + have no visual properties assigned, which will cause it look and behave in unexpected + manner. If ThemeName equals empty string, control's theme is set to a + theme that is registered within ThemeResolutionService with the name + "ControlDefault". + + + + + Gets or sets value indicating whether the control is styled through theme + + + + + Gets or sets the class name string that ThemeResolutionService will use to find the themes registered for the control. + + + By default the return value is RadControl's type FullName; Some controls like drop down menu has different ThemeClassName + depending on the runtime usage of the control. + + + + + Gets or sets the ImageList that contains the images displayed by this control. + + + + + Gets or sets the image scaling size. + + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Gets or sets a value indicating whether the control is automatically resized + to display its entire contents. + + + + + Gets or sets the size that is the upper limit that GetPreferredSize can + specify. + + + + + Gets or sets the size that is the lower limit that GetPreferredSize can + specify + + + + + Gets or sets a value indicating whether the control causes validation to be performed on any controls that require validation when it receives focus. + + + + + Gets or sets the SmallImageList that contains the small images which are displayed when there's not enough space. + + + + Gets or sets the small image scaling size. + + + + Determines whether the control is currently displayed on the screen. + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets or sets a value indicating whether ToolTips are shown for the RadItem objects contained in + the RadControl. + + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this specific control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets or sets the BackColor of the control. + This is actually the BackColor property of the root element. + + + + + Gets or sets the ForeColor of the control. + This is actually the ForeColor property of the root element. + + + + + Gets or sets the Font of the control. This is actually the Font property of the root element. + + + + + Occurs when a RadItem instance inside the RadControl requires ToolTip text. + + + + + Occurs prior the ScreenTip of a RadItem instance inside the RadControl is displayed. + + + + Fires when the theme name is changed. + + + Fires when the control is initialized. + + + + Occurs when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Occurs when a zoom gesture was sent by a touch input device. + + + + + Occurs when a rotate gesture was sent by a touch input device. + + + + + Occurs when a pan gesture was sent by a touch input device. + + + + + Occurs when a two-finger-tap gesture was sent by a touch input device. + + + + + Occurs when a press-and-tap gesture was sent by a touch input device. + + + + + Gets or sets a value indicating whether the Gestures functionality is enabled. + + + + + Gets or sets a value indicating whether the Analytics functionality is enabled or disabled for this control. + + + + + Gets or sets the Analytics Name associated with this control. + By default the Control Name property is logged. + If you want to customize the information which will be logged for this control + set this property to a preferred value. + + + + + Gets or sets a value indicating whether the RadControls Accessible custom object is enabled. + + + + + Gets or sets a value indicating whether the CodedUI Tests functionality is requested from external program such a Narrator. + + + + + Gets or sets a value indicating whether the CodedUI Tests functionality is enabled. + + + + + Gets or sets the default value for EnableCodedUITests property. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets a value indicating whether the gradient editor is in loading state. This property is used internally. + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets or sets the values + + + + + Fires when the color has changed + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the different positions where an item can be docked + + + + + Defines element selector types. + + + + + Selects an element based on its type. + + + + + Selects an element based on its class property. + + + + + Selects an element based on its visual state property. + + + + + Defines the different sign styles + + + + + plus/minus sign + + + + + up/down arrow + + + + + image + + + + + Triangle + + + + + TextWrapExpand Modes + + + + + Indicates Indeterminate style + + + + + Indicates Throbber style + + + + + Indicates Dash style + + + + + Shows a line of moving dots. + + + + + Shows a ring of moving dots. + + + + + Shows a ring, composed of lines. + + + + + Shows a ring, composed of segments. + + + + + Shows a ring, composed of dots. + + + + + Shows a rotating fading ring. + + + + + Shows two rotating rings in opposite directions. + + + + + [true] if the event has been handled and should not be proccessed further, [false] otherwise. + + + + + The type of the gesture that has occured. + + + + + [true] if this is the beggining of the gesture, [false] otherwise. + + + + + [true] if this is the end of the gesture, [false] otherwise. + + + + + [true] if the event was caused by inertia, [false] otherwise. + + + + + The location of the gesture. + + + + + Initializes a new instance of the class. + + The index of the requested page. + + + + Gets the index of the requested page. + + The index of the requested page. + + + + The possition offset according to the previous pan event. + + + + + A direction vector that indicates the direction of the velocity. + + + + + The offset of the tapping finger according to the pressing finger. + + + + + The rotation angle in radians. + + + + + The zoom factor according to the previous zoom gesture event. + + + + + The center of the zoom gesture. + + + + + Exposes methods and properties for a concrete property setttings used in StyleSheets and Themes. + PropertySetting can customize the current value of any RadPropertry of any RadElement instance. + + + + + Retrieves the current value of the property. + + + + + + + + + + + Applies the value to the element given as a parameter. + + + the element that the property value is applied to. + + + + + Unapply the property to the element given as a parameter. + + + the element that the property value is unapplied to. + + + + + Gets or sets the property itself. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Gets the instance of RadScreenTipElement wrapped by this control. RadScreenTipElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadScreenTip. + + + + + + + + + + Represents the item which could be added to an ItemsCollection and can be selected, deleted or moved during VS design time. + + + + + + + + Extends RadElement and adds visual properties common to all elements. + + + + + RadElement class represents the smallest unit in a RadControl that can be painted or that has a layout slot in a RadControl. + Generally each RadCotnrol is composed of a tree of RadElements. The tree has as a root the and + children property. + + + Elements nesting also represents the visual nesting. Elements are painted starting + from the root to the leaves of the tree. the leaves are most often primitive + elements like, text, fills, borders and so on. Elements that are descendants of + LayoutPanel are responsible for arranging their children in the available space + and/or for notifying the parent that the layout space is not enough to expand. + Layout behavior of each element can be adjusted using the properties: + , , + (old layouts), and and for + the new layouts. + RadElement is the base class of all elements that need to take advantage of TPF features, like + property inheritance, layouts, styling + with the Visual Style Builder application. Each property change of a RadElement or + of its inheritance parent would result in calling the method OnPropertyChange, + which can be overridden in order to customize the response to changes of any + RadPoperty. + + + + + Defines a visual element which may be displayed using system skins (UxTheme semantic). + + + + + Gets the VisualStyleElement which represents the current state of this instance for Windows XP. + + + + + + Gets the VisualStyleElement which represents the current state of this instance for Windows Vista. + + + + + + Determines whether to use system skins or not. + If this is false, the default TPF rendering will be used. + If this is true and there is no system skin enabled, TPF rendering will be used. + + + + + This constant is used internally. + + + + + Creates the child elements and sets their locally applied values as Default + + + + + Temporary suspends UpdateReferences method. + Useful when modifying the element tree without changing the actual element's references. + + + + + Resumes previously suspended UpdateReference method. + + + + + Initializes member fields to their default values. + This method is called prior the CreateChildItems one and allows for initialization of members on which child elements depend. + + + + + Called by the element when constructed. Allows inheritors to build the element tree. + + + + + A callback used by the owning RadControl to notify the element for a first-time screen visualization. + + True to notify entire subtree for the load process, false otherwise. + + + + This method is used internally. + + + + + + Allows inheritors to provide custom load logic. + + + + + Called when the element has been successfully loaded. That includes loading of all its children as well. + + + + + Unloads the element if it was previously loaded on an element tree. + + Reference to the element tree from which we are in a process of unload. + + + + + Executes the core unload logic. Allows inheritors to perform additional action while the element is unloading itself. + + Reference to the element tree from which we are in a process of unload. + + + + Notifies that the element has been successfully unloaded from an element tree. + Allows inheritors to provide custom logic at this stage. + + Reference to the element tree from which the element has been unloaded. + + + + The element gets notified for a change in its current ElementTree member. + + + + + + A callback used by the owning RadControl to notify the element for the beginning of a disposing process. + + + + + Applies the specified RadElement instance as parent of the current instance. + + + + + + Notifies for a change in the Parent value. + + The previous parent element (if any) + + + + Updates the local references using the provided element tree. + + + True to update inheritance chain, false otherwise. + True to update children also, false otherwise. + + + + This method is used internally! + + + + + + + Updates the state of the element when reference update is suspended and we have a change in our parent. + + + + + + Performs an update after a change in the Children collection. + + The element associated with the change. + + + + + Resets all layout related fields and puts the element in its initial layout state. + + + + + + Determines whether there is an ancestor in this element tree that is not visible. + + + + + + This method is used internally. + + + + + + Temporary suspends layout operations upon this element. + + + + + Temporary suspends layout operations upon this element. + + True to suspend children also, false otherwise. + + + + Sets the bounds of the element to the specified rectangle (locating and + size). + + + + + Sets the bounds of the element to the specified rectangle (X, Y, width and + height). + + + + + Gets the rectangle which surrounds the rotated element (if having AngleTransform property set). + + The size of the element which is accepted as a parameter (for example when returned from GetPreferredSize). + + + + + Retrieves a point in screen coordinates taking as a parameter a point which is in + element coordinates (this means that the top left corner of the element is with + coordinates 0, 0). + + + + + Retrieves a rectangle in screen coordinates taking as a parameter a rectangle + which is in element coordinates (this means that the top left corner of the element is + with coordinates 0, 0). + + + + + This method is used internally. + + + + + + Arranges the to its final location. + The element must call the Arrange method of each of its children. + + The size that is available for element. + The rectangle occupied by the element. Usually . Should you return different size, the Layout system will restart measuring and rearranging the items. That could lead to infinite recursion. + In this method call to the Arrange method of each child must be made. + + + + Measures the space required by the + + Used by the layout system. + + The size that is available to the . The available size can be infinity (to take the full size of the element) + The minimum size required by the element to be completely visible. Cannot be infinity. + In this method call to the Measure method of each child must be made. + + + + Gets the arrange rectangle, valid for this element. + + + + + + + Determines whether the element can perform layout operation. + + + + + + Determines whether the element is currently in valid state. + That is having a valid RadElementTree reference and being in either Constructed or Loaded state. + + + + + + Gets the offset that is caused by scrolling. The difference between this method and + PositionOffset property is that GetScrollingOffset() takes into account RightToLeft. + + The scrolling offset for this element. + + + + Returns the bounds of the area that should be invalidated when the element is invalidated. + + The bounds to invalidate. + + + + This method is executed when a property which affects the absolute position of the element has been changed. + + + + + This method is used internally. + + + + + Provides a routine to paint element's content when system skin appearance is desired. + + + + + + Virtual layer between PaintChildren() and Paint(). + Can be overridden to fully customize element hierarchy paint. + Used for painting disabled items. + + The graphics object. + The rectangle which has been invalidated. + The angle (in degrees) to which the current element is rotated. This angle is a sum of all AngleTransform properties of this element's parents. + + + + + + This method is used internally. + + + + + + + + + + Gets the VisualStyleElement instance that describes the skin appearance for the element when the current OS is Windows XP. + + + + + + Gets the VisualStyleElement instance that describes the skin appearance for the element when the current OS is Windows Vista. + + + + + + Performs initialization when the element is first-time painted using system skin. + + + + + Gets the rectangle where skin background should be painted. + Defaults to BoundingRectangle. + + + + + + The element gets notified for a change in the UseSystemSkin property. + This method will recursively notify all descendants for the change. + + + + + + Determines whether we should paint system skin. + + + + + + Composes a value which determines whether the element should use system skins when painting. + This method will traverse the element and control tree and will end with the global UseSystemSkin property. + + + + + + Maps a style property to another property. This method is used + to map corresponding properties of LightVisualElement + instances and instances. + + An instance of the + class that represents the property to map. + + An instance of the + class which represents the mapped property. If no property is found, + the method returns null + + + + Gets the IFilter instance that may be used to filter the properties, treated as Stylable for this element. + + + + + + Resets the Style modifier of each registered property. + + + + + Resets the Style modifier for the specified property. Will reset all properties if null is passed. + + + + + Adds a property change behavior to the list of behaviors of the element. + + + Behaviors can be used to specify how an element should respond when a certain element property changes. + Behaviors are used internally by stylesheets when applying to an hierarchy of elements. + + behavior instance - should not be null (or Nothing in VB.NET) + + + + + + list of behaviors + + + + Used internally to support RadControl infrastructure. This method is not intended for use directly from your code. + + + + + + This method is used internally. + + + + + This method is used internally. + + + + + Gets a list of child elements using the type to filter the results. + + + + + + + Searches up the parent chain and returns the first parent with the provided ThemeEffectiveType. + + + + + + Searches up the parent chain and returns the first parent of type T. + + + + + + + Gets a boolean value that determines whether a given element + resides in the element hierarchy of this element. + + An instance of the + class which is checked. + + + + + Searches down the subtree of elements, using breadth-first approach, and returns the first descendant of type T. + + + + + + + Searches down the subtree of elements, using breadth-first approach, and returns the first descendant of type T. + + + + + + Searches down the subtree of elements, using breadth-first approach, and returns the first descendant of the specified Type. + + + + + + Provides flexible routine for traversing all descendants of this instance that match the provided predicate. + + The mode used to traverse the subtree. + + + + + Provides flexible routine for traversing all descendants of this instance that match the provided predicate. + + The filter that defines the match criteria. + The mode used to traverse the subtree. + + + + + Provides flexible routine for traversing all descendants of this instance that match the provided filter. + + The filter that defines the match criteria. + The mode used to traverse the subtree. + + + + + Gets a list with all the descendants that match the provided filter. + + + + + + + + Gets a list with all the descendants that match the provided filter. + + + + + + + + Provides a routine which enumerates all ancestors up in the parent chain of this element, which match the provided Filter. + + + + + + + Provides a routine which enumerates all ancestors up in the parent chain of this element, which match the provided predicate. + + The predicate used to filter parents. + + + + + Forces an update in the z-ordered collection after a change in the Children collection. + + + + + + + Allows enumerating of this element's children, using the specified options. + + + + + + + Sends this element to the beginning of its parent's z-ordered collection. + + + + + Sends this element at the end of its parent's z-ordered collection. + + + + + Method used by control Code Dom serializer to access items in the collection + + + + + + + Get a value indicating whether the element is a direct or indirect child of specified parent element + + Parent to test + true if the element is child of parent, false otherwise + + + + This method sets the focused state of an element. It is used internally. + + The new focused state. + + + + This method is used internally! + + + + + Raises the Click event. + + + + + Raises the DoubleClick event. + + + + + Raises the MouseWheel event. + + + + + + This method is used internally! + + + + + + Updates the ContainsMouse property. The notification may be received from a child whose IsMouseOver property has changed. + + + + + Updates the ContainsFocus property. The notification may be received from a child whose IsFocused property has changed. + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + Invalidates all Ambient (inherited) properties down in the parent chain. + Called when the parent for this element changes. + + True to update children also, false otherwise. + + + + The object gets notified for a parent property change. + + + + + + Add the ElementTree property if we are in the context of RadControlSpy. + + + + + + + Tunnels and bubbles on MouseClick on current element + + + + + Tunnels and bubbles on MouseDoubleClick on current element + + + + + Tunnels and bubbles on MouseDown on current element + + + + + Tunnels and bubbles on MouseUp on current element + + + + + Tunnels and bubbles on MouseWheel on current element + + + + + Routed event key for ChildElementAdded event. Bubbles when element is added + + + + + Routed event key for ParentChanged event. Tunnels when element parent changes + + + + + Tunnels when bounds changed in order to notify any children that should take special actions in this case - like RadHostItem. + + + + + Tunnels and bubbles when changes the current element + + + + + Tunnels when the Enabled property changes in order to notify any children that should take special actions. + + + + + Tunnels when the winforms control has been changed. + + + + + Used by RadControlSpy to display certain hidden properties in the Property Grid. + + + + + Get or sets the maximum size to apply on an element when layout is calculated. + + + + + Property key of the ZIndex Property. + + + + + This field is used internally. + + + + + Gets the current state of the element. + + + + + Gets the layout manager of the element. Will be null until the element is loaded on a visual scene. + + + + + Gets the element desired size. + + + + + Gets a value indicating whether the layout is suspended or not. + + + + + Represents the rectangle which surrounds the element bounds after the rotation caused by setting the AngleTransform property to some degree. The rectangle is in parent element's coordinates. + + + + + Represents the rectangle which surrounds the element bounds after the rotation caused by setting the AngleTransform property to some degree. The rectangle is in control coordinates. + + + + + This property is used internally. + + + + + Gets the level of this element in the ElementTree it currently resides. + + + + + This event occurs after printing the element. It is used internally. + + + + + Gets or sets the mode that describes the usage of system skinning (if available). + + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Gets a value indicating whether the element can have its own style with style conditions. + + + + + Defines whether stylesheet rules should be applied for this element and its children, or only for this element + + + + + Gets a reference to the tree object, that contains information about the scene where the element is currently visualized. + + + + + Gets the collection of elements that are child elements in the element + tree. + + + + + Enumerates entire subtree of elements (using depth-first approach), + starting from this one as a root. + + + + Gets a reference to the parent element in the visual element tree. + + + + + + + Gets the count of all elements, which visibility is not ElementVisibility.Collapsed. + + + + + Occurs when the mouse pointer rests on the element. + + + + + Occurs when the mouse pointer is moved over the element. + + + + + Occurs when the mouse pointer is over the element and a mouse button is pressed. + + + + + Occurs when the mouse pointer is over the element and a mouse button is released. + + + + + Occurs when the element is clicked. + + + + + Occurs when the element is double-clicked. + + + + + Occurs when the mouse pointer enters the element. + + + + + Occurs when the RadItem has focus and the user scrolls up or down the mouse wheel + + + + + Occurs when the mouse pointer leaves the element. + + + + + Occurs when the children collection of the element is changed. + + + + + Determines whether the element or one of its descendants currently contains the keyboard focus. + + + + + Specifies whether the Item should handle MouseOver, MouseMove and related mouse events. + + + By default only elements that inherit RadItem can process mouse input. + + + + + Gets or sets a value indicating whether the element should pass the handled mouse + event to the first parent element which has the + property set to true. + + + + + Gets or sets a value indicating whether the element size will be calculated + automatically by the layout system. Value of false indicates that the element's size + will not be changed when calculating the layout. + + + + + Gets or sets a value corresponding to the bounding rectangle of the element. + Location and/or Size portions of the bounds may be calculated automatically based + on the current and + settings. + + + + + Gets or sets the location of the element based on the element parent rectangle. + Corresponds to .Location + + + + + Gets or sets the size of the element which is the height and width of the visual + rectangle that would contain the graphics of the element. Size corresponds to + element's Bounds.Size. When the AutoSize property is set + to true setting the Size property to some value has no effect. + + + + + Gets or sets the border thickness of the element. This thickness is included into the + element's bounding rectangle. + + + + + Gets or sets the padding sizes of the element. The paddings are included into the + element's bounding rectangle. + + + + + Gets or sets a value corresponding to the margins of the element. Margins are not + included into the element's bounding rectangle. + + + + + Gets or sets the preferred location of the element if its size is less than its + parent size. + + + + + Gets or sets the way the element should calculate its , when + the property is set to true. + + + + + Gets or sets a value indicating the way element will fill its available size when + parent element is calculating element size and location. + + + + + Gets or sets a value indicating whether the element can respond to user + interaction. + + + By default, if element is currently selected when Enabled set to false, next element would be selected. + Values inherits from Parent.Enabled. + When a scrollable control is disabled, the scroll bars are also disabled. + For example, a disabled multiline textbox is unable to scroll to display all the lines of text. + + + + + Gets or sets a value indicating whether the element can receive input + focus. + + + + + Gets a value indicating whether the element has input focus. + + + + + Gets or sets a value indicating whether the mouse has entered the bounds of the + element or any of its sibling elements in the parent RadItem. + + + + + Gets or sets a value indicating whether the mouse has entered the bounds of the + element. + + + + + Gets or sets a value indicating whether the mouse button has been pressed when + inside the bounds of the element. + + + + + Provide for use within TelerikLayoutEngine. + + + + Gets or sets a value indicating whether the element should be painted. + + Children visibility is not be affected. + + + + Gets or sets a value indicating element visibility. + + Setting this property affects also the children of the element. Collapsed means the element and its children would not be painted and would not be + calculated in the layout. + This property has no effect in design-time on objects. + + + + Gets a value indicating if the element is visible. + + + Represents the element unique name. + + + + Gets or sets a string value indicating the element visual class name. It's used + when a stylesheet has been applied to this element. + + + Style sheets contain groups of property settings categorized by element type and/or class, thus + element "class" is used to determine whether certain style rule would be applied over an element. + Generally this property is assigned by the control developer but it can be changed design time or runtime if + certain element is decided to have different style class. + + + + + Indicates whether the painting of the element and its children should be + restricted to its bounds. + + + + + Gets or sets an instance of the Shape object of an element. The shape of the + element is both responsible for clipping the element's children and for providing its' + border(s) with custom shape. + + + Value of null (or Nothing in VisualBasic.Net) indicates that element has rectangular (or no) shape. + Shape is an object that defines the bounding graphics path of an element. Graphics clip is always applied when an element has shape. + Shape is considered when painting the border element, and when hit-testing an element. + Some predefined shapes are available, like or . + offers a way to specify element's shape with a sequence of points and curves using code + or the design time + . + + + + + Get or sets the minimum size to apply on an element when layout is calculated. + + + + + Get or sets the maximum size to apply on an element when layout is + calculated. + + + + + Gets of sets the order of painting an element compared to its sibling elements. Greater ZIndex means an element would be + painted on top of other elements amongst its siblings. ZIndex changes the order of the elements in the list returned by + . + + + + + Gets or sets the direction of flow of the elements and whether elements are aligned to support locales + using right-to-left fonts. + + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Gets or sets the RadImageShape that describes the background of the element. + + + + + Determines whether the element or one of its descendants currently contains the mouse. + + + + + Gets or sets a value indicating the scale transform factors, when painting the + element and its children. + + + + + Gets or sets the rotation transform angle used when painting the element and its + children. + + + + + Gets or sets the offset of the origin of the coordinate system used when + painting the element and its children. + + + TrnslateTransform of the graphics is used prior to painting the element and after painting element children, + to reset the transformation + + + + + Gets or sets whether the properties of this element should be serialized + + + + + Gets or sets whether the element should be serialized in designer + + + + + Gets or sets whether the children of this element should be serialized + + + + Gets or sets a value indicating maximum rendered frames per second. + + + + Gets a value indicating if theme finished applying + + + + + Gets a value indicating if a theme should be applied + + + + + Gets a value indicating whether the AngleTransform should use + the center of the object as origin for the transformation. + + + + + Specifies when the Click event should fire. + + + + + Gets or sets a value indicating whether the DoubleClick event will fire for this item. + + + + + Determines whether mouse will be captured upon MouseDown event. + + + + + This property is used internally! + + + + + Gets or sets the stylesheet associated with the element. + + + Stylesheets provide dynamic property settings for elements' RadProperties organized into groups, each regarding a + certain state of the element. State means a property has certain value. + Style of an element can affect also element children. + Generally element style is set through control theme, which is a holder for various styles for many controls. + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + This property is used internally! + + + + + Fires when the font is changed. + + + + + Gets or sets the DefaultSize. + + + + + Gets or sets the forecolor. Color type represents an ARGB color. + + + + + Gets or sets the backcolor. Color type represents an ARGB color. + + + + + Gets or sets the font. Font type defines a particular format for text, including + font face, size, and style attributes. + + + + + Gets or sets the smoothing mode of an element. Smoothing mode enumeration defines + possible values. + + + + + Gets or sets the opacity of an element. Value 0.0f indicates that the element is completely transparent, + 1.0f means the element is not transparent (the default value). + + + + + This constant is used internally. + + + + + Gets or sets a value indicating whether design mode is active. + + + + + Gets the collection of data-binding objects for this IBindableComponent. + + + + + Exposes methods and properties for draggable elements. + + + + + Determines that the element is availble for dragging. + + An instance of which represents a dragging start location. + True if the object can be dragged, otherwise false. + + + + Gets the assosiated with dragged element data context. + + + + + + Gets the image used by the DragDropService to indicate that the element is being dragged. + Usually this is a snapshot of the element itself. + + + + + + Determines whether this instance may enter drag operation. + + + + + Exposes methods for drop targets + + + + + Completes drag-drop operation of instance of the IDraggable over the specified target. + + An instance of which represents a drop location. + An instance of the IDraggable which is dragged over the target. + + + + + + The current position of the mouse cursor + An instance of the IDraggable which is dragged over the specified target. + True if the operation finished successfully, otherwise false. + + + + Drop operations to occur in the drop target. Called when the cursor first enters the specified target. + + The current position of the mouse cursor + An instance of the IDraggable which is dragged over the target. + + + + Special behavior when the drag operation leaves the specified target. + + The old position of the mouse cursor + An instance of the IDraggable which is dragged over the target. + + + + Determines whether the instance allows for drop operations. + + + + + Occurs when the complete keyboard combination for a registered RadShortcut is triggerred. + + + + + + Occurs when a registered shortcut's keyboard combination is partially complete. + E.g. if we have Ctrl+C+V and Ctrl+C is pressed the event will be raised. + + + + + + This constant is used internally. + + + + + Raises the KeyDown event. + + + + + + Raises the KeyPress event. + + + + + + Raises the KeyUp event. + + + + + Raises the event. + + A that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Raises the event. + + An that contains the event data. + + + + Paints the border highlight. + + The screen RAD graphics. + + + + Determines if the item displays any text. + + + + + + This method is used internally! + + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + This method is used internally! + + + + + + Add the VisualState property if we are in the context of RadControlSpy. + + + + + + + Calls the appropriate gesture event according to the GestureType property of the event arguments. + + The event arguments. + + + + Fires the TwoFingerTapGesture event. + + The arguments for the TwoFingerTapGesture event. + + + + Fires the PressAndTapGesture event. + + The arguments for the PressAndTapGesture event. + + + + Fires the PanGesture event. + + The arguments for the PanGesture event. + + + + Fires the RotateGesture event. + + The arguments for the RotateGesture event. + + + + Fires the ZoomGesture event. + + The arguments for the ZoomGesture event. + + + + Determines whether the element may be dragged. + + + + + + + Gets the context, associated with a drag operation. + + + + + + Gets the image to be used as a hint when this element is being dragged. + + + + + + Core logic when a drag-drop is performed over this element. + Allows inheritors to provide their own implementations. + + + + + + + Determines whether the element may be treated as a drop target during drag-and-drop operation. + + + + + + + + Allows the element to perform additional action upon mouse entering its bounds upon a drag-and-drop operation. + + + + + + + Allows the element to perform additional action upon mouse leaving its bounds upon a drag-and-drop operation. + + + + + + + Applies the provided value as an override of the theme setting + for the specified property in the specified state. + + The property to override. + The value to override the theme setting with. + The VisualState of the item for which the setting will be applied. + States can be combined using "." (dot). To see a list of the available states for this + element, use the GetAvailableVisualStates method. + + + + Applies the provided value as an override of the theme setting + for the specified property in the specified state. + + The property to override. + The value to override the theme setting with. + The VisualState of the item for which the setting will be applied. + States can be combined using "." (dot). To see a list of the available states for this + element, use the GetAvailableVisualStates method. + The value of the Class property of the child element for which + the override stands. (e.g. ButtonFill, ButtonBorder, etc.) + + + + Applies the provided value as an override of the theme setting + for the specified property in the specified state. + + The property to override. + The value to override the theme setting with. + The VisualState of the item for which the setting will be applied. + States can be combined using "." (dot). To see a list of the available states for this + element, use the GetAvailableVisualStates method. + The type of the child element for which + the override stands. (e.g. typeof(FillPrimitive), typeof(BorderPrimitive), etc.) + + + + Resets all overrides for the theme settings of a given property. + + The property to reset overrides for. + + + + Resets all overrides for the theme settings of a given property and a given state. + + The property to reset overrides for. + The state to reset. + + + + Resets all theme override settings for this element. + + + + + Suspends the apply of theme settings. + + + + + Resumes the apply of theme settings. + + + + + Gets the available visual states for this item. Visual states can be combined using "." (dot). + + A list with the available visual states for this element. + + + + Occurs when the Text property value is about to be changed. + + + + + Occurs when the Text property value changes. + + + + + Occurs when the TextOrientation property value changes. + + + + + Occurs when the FlipText property value changes. + + + + + Gets or sets whether the item should use the default way for painting the item when disabled (making it gray) or whether + the disabled appearance should be controlled by the theme. + + + + + Specifies the orientation of the text associated with this item. Whether it should appear horizontal or vertical. + + + + + Specifies the text associated with this item will be flipped. + + + + + Gets or sets the text associated with this item. + + + + + Gets a value indicating whether the item can be selected. + + + + + This property is used internally. + + + + + This property is used internally. + + + + + Occurs when the RadItem has focus and the user presses a key down + + + + + Occurs when the RadItem has focus and the user presses a key + + + + + Occurs when the RadItem has focus and the user releases the pressed key up + + + + + Occurs when a zoom gesture was sent by a touch input device. + + + + + Occurs when a rotate gesture was sent by a touch input device. + + + + + Occurs when a pan gesture was sent by a touch input device. + + + + + Occurs when a two-finger-tap gesture was sent by a touch input device. + + + + + Occurs when a press-and-tap gesture was sent by a touch input device. + + + + + Gets or sets string representing the current visual state of the Item which is used by themes to determine the appearance of the item and its child elements + + + + + Determines whether the element may be dragged by a RadDragDropService instance. + + + + + Determines whether the element may accept a drop operation. + + + + + Gets the collection of all RadShortcut instances registered with this item. + + + + + Gets or sets the description that will be reported to accessibility client applications. + + + + + Gets or sets the name of the control for use by accessibility client applications. + + + + + Gets or sets the accessible role of the item, which specifies the type of user interface element + of the item. + + + + + This property is used internally! + + + + + Gets or sets a value indicating whether the Analytics functionality is enable or disbale for this item. + + + + + Initializes a new instance of the class. + + + + + Gets or sets value indicating whether Office 2007 UI compliant screen tip sizing should be used + + + + + Override this property and provide custom screentip template description in DesignTime + + + + + Gets the screen tip actual template type. Used for component serialization. + + + + + Gets a value indicating screen tip preset size. + + + + + Sets the screntip element to be wrapped by this control. + + An instance of RadScreenTipElement + + + + Gets the instance of RadScreenTipElement wrapped by this control. RadScreenTipElement + is the main element in the hierarchy tree and encapsulates the actual functionality of RadScreenTip. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the method that will handle a CollectionChanged event. + + the %sender:System.Collections.CollectionBase% of the event + the %event arguments:Telerik.WinControls.UI.CollectionChangedEventArgs" + + + + Represents event data for the CollectionChanged event. + + + + + Initializes a new instance of the CollectionChangedEventArgs class using the + target, the index of the item, and the item's change operation. + + + + + + + + Gets or sets a value specifing the target. + + + + + Gets or sets a value indicating the index in the collection of the changed item. + + + + + Gets or sets a value indicating the items chnage operation. + + + + + Represents a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed. + + + + + + Notifies listeners of dynamic changes, such as when items get added and removed or the whole list is refreshed. + + + You can enumerate over any collection that implements the IEnumerable interface. However, to set up dynamic bindings so that insertions or deletions in the collection update the UI automatically, the collection must implement the INotifyCollectionChanged interface. This interface exposes the CollectionChanged event that must be raised whenever the underlying collection changes. + + + + + Occurs before the collection changes. + + + + + Notifies clients that a property value is changing. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the ObservableCollection class. + + + + + Initializes a new instance of the ObservableCollection class that contains elements copied from the specified list. + + + + + + Overridden. Removes all items from the collection. + + + + + Overridden. Inserts an item into the collection at the specified index. + + + + + + + Moves the item at the specified index to a new location in the collection. + + + + + + + Moves the item at the specified index to a new location in the collection. + + + + + + + Suspends event notification. + + + + + Resumes event notification. + + + + + Resumes event notification. + + + + + Calls the NotifyListenersCollectionChanged method with the provided arguments if not in a batch update. + + + + + + Raises the CollectionChanged event with the provided arguments. + + + + + + Calls the NotifyListenersCollectionChanging method with the provided arguments if not in a batch update. + + + + + + Raises the CollectionChanging event with the provided arguments. + + + + + + Overridden. Removes the item at the specified index of the collection. + + + + + + Overridden. Replaces the element at the specified index. + + + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the NotifyPropertyChanged event + + A instance containing event data. + + + + Raises the PropertyChanging event + + The name of the property + + + + Raises the NotifyPropertyChanging event + + A instance containing event data. + + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + Occurs before an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + true to indicate the collection has completed update; otherwise false. + + + + + Occurs when a property of an object changes. + Calling the event is developer's responsibility. + + + + + Occurs before a property of an object changes. + + + + + Interface to the node + + + + + Interface to the tree + + + + + Add item + + + + + Add or get item + + + + + Find item + + + + + Delete item by key + + + + + Delete specific item + + + + + Clear the tree + + + + + Get synchornization root + + + + + Interface to the tree + + + + + Get first node + + + + + Get last node + + + + + Get next node + + + + + Get prior node + + + + + Get number of nodes in the tree + + + + + Interface to the tree which supports direct access to the items + + + Interface to the tree + + + + + Get item by order index + + + + + Get index by item + + + + + Parameters of ordered node + + + + + Node's rank + + + + + Number of sub nodes + + + + + Ordered node + + + + + Node of the red-black tree + + Key type + Node's parameter + + + + Set parent node + + + + + Set left node + + + + + Set right node + + + + + Update reference count + + + + + Node parameters + + + + + Constructor + + + + + Copy from other node + + + + + Parent node + + + + + Left node + + + + + Right node + + + + + Key value of the node + + + + + Colour of the node + + + + + Constructor + + + + + Set parent node + + + + + Set left node + + + + + Set right node + + + + + Update reference count + + + + + Copy from other node + + + + + Basic RBTree with ordering + + Operation like Add and Remove are an O(2logN) operations. + Operation Find is O(logN) operation. + + + + + Base class for the tree. + Based on the Damian Ivereigh implementation + Support for the multi-trees has been added. + Do not use this class directly. Use RBTree, RBMultiTree, RBOrderedTree and RBOrderedMultiTree classes + + Key type + Node type + Node parameter type + + + + Add item + + + + + Add or get item + + + + + Find item + + + + + Delete item by key + + + + + Clear + + + + + Delete item by key + + + + + Get first node + + + + + Get last node + + + + + Get next node + + + + + Get prior node + + + + + Comparator + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Add new key into the tree + + This operation is O(logN) operation + + In case the key is already in the tree + + + + Add new key into the tree or get existing node + This operation is O(logN) operation + + + + + Remove key from the dictionary + This operation is O(logN) operation + + + + + Remove all items + + + + + Remove node from the dictionary + This operation is O(1) operation + + + + + Find key in the dictionary + This operation is O(logN) operation + + + + + Get first node + This operation is O(logN) operation + + + + + Get last node + This operation is O(logN) operation + + + + + Get next node + This operation is O(logN) operation + + + + + Get previous node + This operation is O(logN) operation + + + + + Get enumerator + + + + + Get enumerator + + + + + Balance tree past inserting + + + + + Create new node + + + + + Go trough tree and find the node by the key. + Might add new node if node doesn't exist. + + + + + Rotate our tree Left + + X rb_left_rotate(X)---> Y + / \ / \ + A Y X C + / \ / \ + B C A B + + N.B. This does not change the ordering. + + We assume that neither X or Y is NULL + + + + + Rotate our tree Right + + X Y + / \ / \ + A Y leftArrow--rb_right_rotate(Y) X C + / \ / \ + B C A B + + N.B. This does not change the ordering. + + We assume that neither X or Y is NULL + > + + + + Return a pointer to the smallest key greater than x + + + + + Return a pointer to the largest key smaller than x + + + + + Delete the node z, and free up the space + + + + + Restore the reb-black properties after a delete + + + + + + Is tree unique + + + + + Object can be used for synchronization + + + + + Root of the tree + + + + + Number of nodes in the tree + + + + + Get collection object for this + + + + + Adapter implementing collection interface + + + + + Referenced tree + + + + + Constructor + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Create new node + + + + + Get item by order index + This operation is O(logN) operation + + + + + Get order index of item + This operation is O(logN) operation + + + + + Get item by order index + + + + + Get index by item + + + + + Unique ordered RBTree + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Non-unique RBMultiTree + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Tree node + + + + + Constructor + + + + + Unique RBTree + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Create new node + + + + + Non-unique RBMultiTree + + + + + Tree constructor + + + + + Tree constructor with comparer + + + + + Create new node + + + + + Generic tree enumerator + + Node type + Key type + >Node parameter + + + + Tree + + + + + Current item + + + + + + Constructor + + + + + Move to next element + + + + + Reset enumeration + + + + + Dispose object + + + + + Get current element + + + + + Get current element + + + + + Generic tree value's enumerator + + Node type + Key type + Node parameter + + + + Tree + + + + + Current item + + + + + Constructor + + + + + Move to next element + + + + + Reset enumeration + + + + + Dispose object + + + + + Get current element + + + + + Get current element + + + + + Colour of the node + + + + + Red + + + + + Black + + + + + Represents a read-only data collection that provides notifications when the original has changed. + + + + + + Initializes a new instance of the with an instance of a /> + + + + + + Fires the CollectionChanged event. + + + + + + Fires the PropertyChnaged event. + + + + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Occurs when an item is added, removed, changed, moved, or the entire list is refreshed. + + + + + Occurs when when a property of an object changes change. + Calling the event is developer's responsibility. + + + + + Gets the type. + + + The type. + + + + + Gets or sets the session identifier. + + + The session identifier. + + + + + Gets the instalation key. + + + The instalation key. + + + + + Converts an ISO 8601 time/date format string, which is used by JSON and others, + into a DateTime object. + + + + + + + Converts a DateTime object into an ISO 8601 string. This version + always returns the string in UTC format. + + + + + + + Ensures a two-digit number with leading zero if necessary. + + + + + + + Ensures a three-digit number with leading zeros if necessary. + + + + + + + The ASP.NET Ajax team made up their own time date format for JSON strings, and it's + explained in this article: http://msdn.microsoft.com/en-us/library/bb299886.aspx + Converts a DateTime to the ASP.NET Ajax JSON format. + + + + + + + Converts an ASP.NET Ajax JSON string to DateTime + + + + + + + Converts a Unicode character to a string of its ASCII equivalent. + Very simple, it works only on ordinary characters. + + + + + + + Returns null if no DTE instance is available. + + EnvSessionManager or Null depending on whether DTE is available. + + + + Tries to add the item to the collection. If it already exists it won't be added. + + The item to be added. + + + + Represents a small rectangular pop-up window that displays a brief description of a control's purpose when the user rests the pointer on the control. + Provides extended functionality by removing the necessity to have a control in the element tree + + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + An containing the duration, in milliseconds, to display the . + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + A containing the offset, in pixels, relative to the upper-left corner of the screen, to display the . + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + The horizontal offset, in pixels, relative to the upper-left corner of the screen, to display the ToolTip. + The vertical offset, in pixels, relative to the upper-left corner of the screen, to display the ToolTip. + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + The horizontal offset, in pixels, relative to the upper-left corner of the screen, to display the ToolTip. + The vertical offset, in pixels, relative to the upper-left corner of the screen, to display the ToolTip. + An containing the duration, in milliseconds, to display the . + + + + Sets the text and displays the modally. + Uses CursorPosition relative to screen coordinates to position the . + + A containing the new text. + A containing the offset, in pixels, relative to the upper-left corner of the screen, to display the . + An containing the duration, in milliseconds, to display the . + + + + Hides this instance. + + + + + Repository for Telerik-related resources. Not for general use. + + + + + Represents a rectangle with chamfered corners. + + + + Represents element shape. Base class for specialized shapes such as + EllipseShape, RoundRectShape, Office12Shape, etc. + + + + Retrieves the shape of the element. GraphicsPath represents a series of connected + lines and curves. + + + + + Retrieves the contour of the element0. GraphicsPath represents a series of + connected lines and curves. + + + + Creates path using a rectangle for bounds. + + + Creates path using a rectangle for bounds. + + + + Mirrors the GraphicsPath. Used in RightToLeft mode. + + + + + Serializes properties. Required for serialization mechanism of telerik + framework. + + + + + Deserializes properties. Required for the deserialization mechanism of telerik + framework. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The width of the chamfer. + + + + Initializes a new instance of the class. + + The width of the chamfer. + The angle of the chamfer in degrees. + + + + Initializes a new instance of the class. + + The width of the chamfer. + The angle of the chamfer in degrees. + if set to true the top left corner will be chamfered. + if set to true the bottom left corner will be chamfered. + if set to true the bottom right corner will be chamfered. + if set to true the top right corner will be chamfered. + + + + Creates path using a rectangle for bounds. + + + + + + + Serializes properties. Required for telerik serialization mechanism. + + + + + Deserializes properties. Required for telerik deserialization mechanism. + + + + + Gets or sets the width of the chamfer. + + + + + Gets or sets the angle of the chamfer in degrees. The value must be between 0 inclusive and 90 exclusive. + + + + + Gets or sets a value indicating whether the top left corner of the shape will be chamfered. + + + true if the top left corner is be chamfered; otherwise, false. + + + + + Gets or sets a value indicating whether the top right corner of the shape will be chamfered. + + + true if the top right corner is be chamfered; otherwise, false. + + + + + Gets or sets a value indicating whether the bottom right corner of the shape will be chamfered. + + + true if the bottom right corner is chamfered; otherwise, false. + + + + + Gets or sets a value indicating whether the bottom left corner of the shape will be chamfered. + + + true if the bottom left corner is chamfered; otherwise, false. + + + + + Creates circle shape in the middle of the provided rectangle. + + + + + Creates circle shape in the middle of the provided rectangle. + + + + + Creates circle region in the middle of the provided rectangle. + + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Should snap to the line or curve + + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The default constructor sets the following default values: + FieldWidth = 1.0f; + SnapRelative = 0.2f; + SnapDelta = 0.2f; + SnapType = SnapTypes.Relative; + + + + + Set the snap type to be one of the following: + SnapTypes.Relative - snap distance is relative to the FieldWidth + + SnapTypes.Fixed - snap distance is fixed + + + + + Width of a single box in the snap grid. + It's value cannot be less than or equal to zero. + + + + + Sets/Gets the snap distance for fixed type snapping. + Does not activate fixed type snapping. + + + + + + Sets/Gets the relative snap distance. + Does not activate relative type snapping. + + + + + + Gets the precached snap distance. + Doesn't need to be equal to any of the SnapFixed or SnapRelative properties. + + + + Represents custom shape of an element. + + + Initializes a new instance of the CustomShape class. + + + Creates a path using a ractangle for bounds. + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + Gets a List of Shape points. + + + Gets or sets a Rectangle indicating the dimension of the shape. + + + + Represents a shape editor control. + + + + + Draws grid lines in the specified rectangle with the specified color + + + + + + + + Translates a rectangle in accordance with the offsets due to scrolling + + + + + + + Translates a point in accordance with the offsets due to scrolling + + + + + + + Updates the bounds of the drawable area + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents a shape point. + + + + + Represents a base class of the ShapePoint class. + + + + + Initializes a new instance of the ShapePointbase class. + + + + + Initializes a new instance of the ShapePoint class using X and Y + coordinates. + + + + + Initializes a new instance of the ShapePoint class using a Point structure. + + + + + + Initializes a new instance of the ShapePoint class using an instance of the + ShapePointBase class. + + + + + + Sets the X and Y coordinates of the shape point. + + + + + + + Sets the point position from a Point structure. + + + + + + Retrieves a Point structure corresponding to the point position. + + + + + + + + + + + + + Retrieves a string representation of the ShapePointBase class. + + + + + + Gets or sets a float value indicating the X coordinate of the shape point. + + + + + Gets or sets a float value indicating the Y coordinate of the shape point. + + + + + Gets or sets a value indicating the anchor style. + + + + + Gets or sets a boolean value indicating whether the shape point is locked. + + + + + Initializes a new instance of the ShapePoint class. + + + + + Initializes a new instance of the ShapePoint class from + the X and Y coordinates of the point. + + + + + + + Initializes a new instance of the ShapePoint class from a Point structure. + + + + + Initializes a new instance of the ShapePoint class using a ShapePoint instance. + + + + + + Retrieves the line direction of the line that passes through the instance + point and the point given as an argument. + + + + + + + Creates a Bezier curve between the current point and the point given as a + parameter. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets the first control point. + + + + + Gets or sets the second control point. + + + + + Exposes the line direction. + + + + + Exposes the line position. + + + + + Indicates horizontal position. + + + + + Indicates vertical position. + + + + + The default constructor sets the following default values: + FieldWidth = 1.0f; + SnapRelative = 0.2f; + SnapDelta = 0.2f; + SnapType = SnapTypes.Relative; + + + + + Set the snap type to be one of the following: + SnapTypes.Relative - snap distance is relative to the FieldWidth + + SnapTypes.Fixed - snap distance is fixed + + + + + Width of a single box in the snap grid. + It's value cannot be less than or equal to zero. + + + + + Sets/Gets the snap distance for fixed type snapping. + Does not activate fixed type snapping. + + + + + + Sets/Gets the relative snap distance. + Does not activate relative type snapping. + + + + + + Gets the precached snap distance. + Doesn't need to be equal to any of the SnapFixed or SnapRelative properties. + + + + Represents donut like shape. + + + + Creates donut-like path. Overrides the method defined in its base class - + ElementShape. + + + + Represents element shape converter. + + + Represents ellipse shape. + + + + Creates ellipse shape. Overrides the method defined in its base class - + ElementShape. + + + + + Defines possible modes to be used when rendering an image. + + + + + Image is painted without any modification. + + + + + Image is stretched within the paint rectangle. + + + + + Image is stretched by the X axis and tiled by the Y one. + + + + + Image is stretched by the Y axis and tiled by the X one. + + + + + Inner image segment is tiled while all others are stretched. + + + + + Image is centered within the paint rectangle. + + + + + Image is centered by the X axis and stretched by the Y one. + + + + + Image is centered by the Y axis and stretched by the X one. + + + + + Image is centered by the X axis and tiled by the Y one. + + + + + Image is centered by the Y axis and tiled by the X one. + + + + + Image is tiled within the paint rectangle. + + + + + Image is flipped by the X axis and tiled within the paint rectangle. + + + + + Image is flipped by the X and Y axis and tiled within the paint rectangle. + + + + + Image is flipped by the Y axis and tiled within the paint rectangle. + + + + + Gets the segment associated with this object. + + + + + Gets or sets the image part associated with this object. + + + + + Represents an image which may be divided in 9 different segments where only the inner one is stretched within the paint rectangle. + + + + + Gets or sets the RotateFlipType value that defines additional transform on the rendered image. + + + + + Gets or sets the interpolation mode to be applied on the device context when image is rendered. + + + + + Determines which segments from the image will be painted. + + + + + Determines whether the image will be rendered using segments. + + + + + Gets or sets the mode to be used when image is painted. + + + + + Gets or sets the image to be rendered. + + + + + Gets or sets the string representation of the + + + + + Gets or sets the opacity of the rendered image. Valid values are within the interval [0, 1]. + + + + + Gets or sets the Padding structure that defines the margins of the segmented image. + + + + + Gets or sets the Padding structure that defines offset when the image is rendered to the destination rectangle. + + + + Represents the shape of the MS Office forms. + + + Greates the path. + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + Gets or sets whether the bottom edges of the form should be rounded. + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + + Creates donut-like path. Overrides the method defined in its base class - + ElementShape. + + + + Represents round rectangle shape. + + + Initializes a new instance of the RoundRectShape class. + + + Initializes a new instance of the RoundRectShape class. + + + Initializes a new instance of the RoundRectShape class using a radius. + + + Initializes a new instance of the RoundRectShape class using a radius and rounded corners. + + + Greates round rectangle like path. + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + Gets or sets the radius of the shape. + + + + Gets or sets value indicating whether the bottom left corner of the shape should be round + + + + + Gets or sets value indicating whether top left corner of the shape should be round + + + + + Gets or sets value indicating whether bottom right corner of the shape should be round + + + + + Gets or sets value indicating whether top right corner of the shape should be round + + + + Represents IE like tab shape. Shapes are series of connected lines and curves. + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Represents office 12 like tab. + + + + Creates office 12 like tab. Overrides the method defined in its base class - + ElementShape. + + + + Represents VS like tab shape. Shapes are series of connected lines and curves. + + + + Creates VS like tab shape. Overrides CreatePath method in its base class - + ElementShape. + + + + Serializes properties. Required for telerik serialization mechanism. + + + Deserializes properties. Required for telerik deserialization mechanism. + + + Gets or sets the orientation of this shape. + + + + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + + + + Creates IE like tab shape. Overrides CreatePath method in the base class + ElementShape. + + + + + Represents RadElementTree. Every Telerik control has a corresponding tree of + RadElements. This gives a lot of flexibility in building controls allowing, for + example, inheritance of properties from the ancenstor nodes. + + + + Initializes a new instance of RadElementTree class. + + + + Gets the element of specific type at specific coordinates if it handles the mouse input. + + Element location in control coordinates + The element if successfull, otherwise null + + + + Gets the element at specific coordinates if it handles the mouse input. + + Element location in control coordinates + The element if successfull, otherwise null + + + + Gets the element at specific coordinates if it meets the predicate criteria. + + Element location in control coordinates + Specify a predicate or null if the first element should be returned. + The element if successfull, otherwise null + + + + Retrieves the size of a rectangular area into which a control can be + fitted. This override is called only when AutoSize is true. + + + + Gets the RootElement of the tree. + + + Gets or sets the RadControl for the corresponding tree. + + + Gets the bridge between the abstract RadElement layout and the RadControl instance. + + + Gets the tree name. + + + + + + + + + Represents a collection of PropertyChangeBahavior instances. + See also RadElement.AddBehavior + + + + + Tunnels when the AutoSize property of RadControl changes in order to notify any children that should take special actions. + + + + + Tunnels when some of the stretch properties (horizontal or vertical) has changed in order to notify any children that should take special actions. + + + + + Tunnels when the layout has been suspended in order to notify any children that should take special actions in this case - like RadHostItem. + + + + + Tunnels when the layout has been resumed in order to notify any children that should take special actions in this case - like RadHostItem. + + + + + This method is used internally. + + + + + This method is used internally. + + + + + Paints the RootElement and its element tree. Intended for use by RadControl inheritors. + + IGrpahics object to be used to paint elements + Clipping rectangle to be painted. Only those elements from the tree which intersect with this rectangle will be painted. + + + + Paints the RootElement and its element tree. Intended for use by RadControl inheritors. + + IGrpahics object to be used to paint elements + Clipping rectangle to be painted. Only those elements from the tree which intersect with this rectangle will be painted. + + + + + Gets or sets the forecolor. Color type represents an ARGB color. + + + + + Determines whether to use compatible text rendering engine (GDI+) or not (GDI). + + + + + Gets or sets a value corresponding to the bounding rectangle of the owning Control. + + + + + Gets or sets value indicating whether the shape set to the root element would be applied as a region to + the RadControl that contains the element. + + + + + This property is used internally! + + + + + When set, replaces the default control size. + + + + + Represents a routed event. Routed events can be tunnel or bubble event + according to the routed direction of the event. + + + + + Gets or sets the event name. + + + + + Gets the owner's type. + + + + + Represents a raised routed event. + + + + + Initializes a new instance of the RaisedRoutedEvent class. + + + + + Initializes a new instance of the RaisedRoutedEvent class using + routed event, event sender, sender's type, and routing direction (tunnel + or bubble). + + + + + + + + + Compares the instance with the other event arguments and the sender of the event. + + + + + + + + Compares the instance with another event passed as a parameter. + + + + + + + Gets or sets a value indicating the routed event. + + + + + Gets or sets a string value indicating the routed event name. + + + + + Gets or sets the sender's type. + + + + + Gets or sets the sender. + + + + + Gets or sets the routing direction - tunnel or bubble. + + + + + Defines the routing directions for an events. + + + + + Indicates a tunnel event. + + + + + Indicates a bubble event. + + + + + Represents event arguments for a routed event. + + + + + Initializes a new instance of the RoutedEventArgs class using EventsArgs to + initializes its base class and the RoutedEvent. + + + + + + + Gets or sets the original EventArgs. + + + + + Gets or sets a value indicating the RoutedEvent. + + + + + Gets or sets a value indicating whether the event is canceled. + + + + + Gets or sets a value indicating the routing direction for the event. + + + + + A collection of the RoutedEventBehavior objects. Used by the StyleSheet system. + + + + + Represets an animated property setting + + + + + Initializes new instance of + + + + + Initializes new instance of + + The property to animate. + The number of frames. + The interval between animation frames. + The step used to calculate the next value. + + + + Initializes new instance of + + The property to animate. + The start value. + The end value. + The number of frames. + The interval between animation frames. + + + + Gets or sets the property that will be animated. + + + + + Gets or sets the start value for the animation. + + + + + Gets or sets the end value for the animation. + + + + + Gets or sets the maximum allowed value when using OutElastic mode + + + + + Gets or sets the step used when calculating the next value. + + + + + Gets or sets the number of frames in which the animation will run. + + + + + Gets or sets the interval between animation frames. + + + + + Gets or sets a value indicating the time delay before starting the animation. + + + + + Gets or sets a value indicating whether to set a random delay before starting the animation. + The random delay applies if the value of this property is different from 0. + + + + + Gets or sets the easing to be used when applying animation values. + + + + + Gets or sets a value that determines whether the animation value remains applied after the animation finishes. + + + + + Static value indicating whether animations are enabled at global level. + + + + + Occurs when the animation finishes. + + + + + Occurs when the animation starts. + + + + + Calculates int values for property animation. + + + + + Calculates values used in each frame of property animation. + Also supports converting animation step values to and from a string for + theme serialization. + + + + + Calculates the animated value from start value, end value, current value, + current frame, total number of frames and the specified animation calulator. + + + + + + + + + + + + + + + + + + + + Retrieves the animation step as a string value. + + + + + + + Converts a string to an animation value. + + + + + + + Calculates the animation step from start value, end value, and the total number of frames. + + + + + + + + + Calculates the animation end value from start value, step, and the total number of frames. + + + + + Represents a map of CLR types and corresponding type using when property animation is running and + for animations serialization in themes. + + + + + Animates color values using ColorAnimationStep objects. + + + + + Calculates double values for the property animation. + + + + + Calculates float values for the property animation. + + + + + Calculates Font values for property animation, using FontAnimationStep values. + + + + + Calculates int values for property animation. + + + + + Calculates animation rectangle values. + + + + + Represents a value point animation calculator. + + + + + Represents a value point animation calculator using floating point values. + + + + + Calculates animation rectangle values. + + + + + Represents a value size animation calculator. + + + + + Represents a value size animation calculator using floating point values. + + + + + Represents a numerical value calculator. It is used internally by StyleSheet + system to calculate the value changes when animating RadElement properties. + + + + + Calculates the current value of some property from the initial value, end value, current frame, and the numbers of frames. + + + + + + + + + + Calculates the current value of some property from the initial value, end value, current frame, and the number of frames. + + + + + + + + + + Caclulates the current value of a property from the initial value, end value, current frame, and the number of frames. + + + + + + + + + + Defines the time of the animation occurrence. + + + + + Indicates that no animation is played. + + + + + Indicates that animation is played on applying a setting. + + + + + Indicates that animation is played on up-apply a setting. + + + + + Indicates that animation is always played. + + + + + Defines the possible types of animation looping. + + + + + No animation looping is enabled. + + + + + The animation is started from the beginning after it ends. + + + + + The animation is started again, whereby + end and start values are swapped. + + + + + Defines the animation type. + + + + + + + + + + + + + + + Defines the easing equations for the easing animations. + + + + + Contains information about the way Animation has finished + + + + + Gets value indicating whether the animation has been interrupted by another one. + + + + + Gets value indicating whether the animation has been interrupted by another one. + + + + + Gets the element (if it exists) associated with the specified animation. + + + + + Gets the object associated with the specified animation. + + + + + AnimationStartedEventHandler delegate + + + + + + + AnimationFinishedEventHandler delegate + + + + + + + Event raised during animation notifying the new size for the panel + + the object sending the notification + the new size for the window collasping/expanding + + + + Event raised when animation is finished + + + + + Event raised in parallel with the executing animation. + + + + + Get/Set minimum value allowed for size + + + + + Get/Set maximum value allowed for size + + + + + Initializes a new instnace of the PropertySetting class. + + + + + Initializes a new instnace of the PropertySetting class by specifying property name and its value. + + A property name. + A property value. + + + + Initializes a new instnace of the PropertySetting class by specifying property and its value. + + A property. + A property value. + + + + Initializes a new instnace of the PropertySetting class by using an exising property setting instance. + + An existing property setting. + + + + Gets or sets the property mapper used to map property names based on the stylable element type. + + + + + Gets the current property value for the specified + + The object. + The current property value for the object. + + + + Applies the property setting on the specified element. + + An instance of + + + + Unapplies the property setting from the specified element. + + An instance of + + + + Resolves the object based on its arguments. + + The type which owns this property. + The property name. + Specifies whether to search base classes if the current type does not contain the specified property. + An instance of if successful. + + + + Gets or sets the property name. + + + + + Gets or sets the full property name (including the class name). + + + + + Gets or sets the property value. + + + + + Gets or sets the property end value (creates an animated property setting). + + + + + Gets an instance of related with this setting. + + + + + Gets the associated RadProperty. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class. + + + + + Initializes a new instance of the PropertySettingGroup class by using an existing instance. + + The PropertySettingGroup to be used as a source. + + + + Applies the property settings contained in this group to the specified element. + + The element. + + + + Searches for a property setting for the specified property. + + The property to search for + An instance of if successfull. + + + + Searches for a property setting for the specified property. + + The name of the property to search for + An instance of if successfull. + + + + Gets or sets value indicating the key of a repository item which this group is based on. + + + + + Gets the for this property setting group. + + + + + Gets a collection of the property settings for the property setting group. + + + + + Gets a collection of repository settings for the property setting group. + + + + + Initializes a new instance of the ElementSelector class. + + + + + Initializes a new instance of the ElementSelector class by specifying element state. + Sets thw type property to VisualStateSelector. + + The element state. + + + + Initializes a new instance of the ElementSelector class by specifying selector properties. + + The selector type. + The selector value + + + + Initializes a new instance of the ElementSelector class by using an existing one. + + The ElementSelector to be used as a source. + + + + Determines whether the selector is compatible with the specified element. + + The element to compare with. + true if the element is compatible. + + + + Determines whether the selector is valid an element with specific state. + + The element to compare with. + The element state. + true if the selector is valid. + + + + Determines whether the selector is compatible with specific selector. + + The selector. + true if successfull. + + + + Gets or sets the selector value. + + + + + Gets or sets the selector type. + + + + + Gets or sets the child selector. + + + + + Initializes a new instance of the StyleGroup class. + + + + + Initializes a new instance of the StyleGroup class by adding a default style registration. + + The default style registration. + + + + Initializes a new instance of the StyleGroup class by specifying an element type. + Creates a new ElementTypeDefault registration. + + The element type. + + + + Initializes a new instance of the StyleGroup class by using an existing StyleGroup instance. + + The StyleGroup to be used as a source. + + + + Determines whether the style group is compatible with the specified control type. + + The control type. + true if the style group is compatible. + + + + Determines whether the style group is compatible with the specified control. + + The control. + true if the style group is compatible. + + + + Determines whether the style group is compatible with the specified stylable node. + + The stylable node. + true if the style group is compatible. + + + + Determines whether the style group is compatible with the specified style group. + + The stye group. + true if the style group is compatible. + + + + Creates a new style sheet based on this style group for the specified element. + + The element. + An instance of if successful. + + + + Combines the style group with a specified style group by adding its property setting groups. + + style group to combine with. + Specifies whether to replace existing styles. + + + + Saves all style settings presented in this group in a file with XML formatting. + + The theme name to be stored in the file. + The name of the file to be created. + + + + Creates a new theme which is a cloned version of all styles existing in this style group. + + The name of the new theme. + An instance of the Theme class if successfull. + + + + Gets a collection with property setting groups for the style group. + + + + + Gets a collection with style registrations for the style group. + + + + + Initializes a new instance of the StyleRegistration class. + + + + + Initializes a new instance of the StyleRegistration class by creating an ElementTypeDefault registration. + + The full element type. + + + + Initializes a new instance of the StyleRegistration class by using an existing StyleRegistration instance. + + The StyleRegistration to be used as a source. + + + + Initializes a new instance of the StyleRegistration class. + + The registration type. + The full element type. + The full control type. + The element name. + The control name. + + + + Determines whether the style registration is valid for the specified control. + + The control to check. + true if the style registration is compatible. + + + + Checks whether the style registration conatins a style for a child element of the specified stylable node. + + The to check. + true if this style registration is compatible. + + + + Determines whether the style registration is valid for the specified control type. + + The control type to check. + true if the style registration is compatible. + + + + Determines whether the style registration is valid for the specified stylable node. + + The stylable node to check. + true if the style registration is compatible. + + + + Determines whether the style registration is compatible with existing style registration. + + The style registration to check. + true if the style registration is compatible. + + + + Gets or sets the registration type. + + + + + Gets or sets the element type. + + + + + Gets or sets the control type. + + + + + Gets or sets the element name. + + + + + Gets or sets the control name. + + + + + Initializes a new instance of the StyleRepository class. + + + + + Initializes a new instance of the StyleRepository class and specifies the repository key. + + The repository key. + + + + Initializes a new instance of the StyleRepository class and specifies its main properties. + + The style repository type. It can be: Border, Gradient, Image and Layout + The repository name. + The repository key. + + + + Initializes a new instance of the StyleRepository class by using an existigng instance. + + The StyleRepository to be used as a source + + + + Initializes the repository and maps its properties. + + + + + Searches for a specific property setting in the repository. + + The property name to search for. + An instance of + + + + Searches for a specific property setting in the repository. + + The property to search for. + An instance of + + + + Gets or sets the repository type. + + + + + Gets or sets the repository name. + + + + + Gets or sets the repository key. + + + + + Gets a collection containing the repository settings. + + + + + Initializes a new instance of the Theme class. + + + + + Initializes a new instance of the Theme class. + + The name of the theme. + + + + Searches for a StyleGroup based on the control type. + + The control type to search for. + An instance of if successfull. + + + + Searches for a StyleGroup for a specified control. + + The control to search for. + An instance of if successfull. + + + + Searches for a StyleGroup for a specified stylable node. + + The stylable node to search for. + An instance of if successfull. + + + + Searches for a StyleRepository based on its key. + + The repository key to search for. + An instance of if successfull + + + + Relates repositories with style groups. + + + + + Determines whether this theme is compatible with the specified theme name. + + Theme name to compare with. + true if successfull. + + + + Creates a new theme by reading a TSSP file. + + The file location. + An instance of if successfull. + + + + Creates a new theme by reading an XML file. + + The file location. + An instance of if successfull. + + + + Creates a new theme by reading a CSS like file. + + The file location. + An instance of if successfull. + + + + Creates a new theme by reading a CSS like formatted text. + + The text containing a theme in CSS style syntax. + An instance of if successfull. + + + + Creates a new theme by reading a file. The function determines the correct file format by using file extension. + + The file location. + An instance of if successfull. + + + + Creates a new theme by loading it from a resource. The function determines the correct file format by using file extension. + + The assembly to load from. + The location of the resource. + An instance of if successfull. + + + + Creates a new cloned version of the class. + + A new instance of the Theme class + + + + Combines two themes. + + The source theme. + Determines whether to merge repositories. + Determines whether to replace existing styles. + + + + Gets or sets the name of the theme. + + + + + Gets a collection containing the style groups for the theme. + + + + + Gets a collection containing the repositiories for the theme. + + + + + Gets or sets a value indicating whether the theme should be visible at design time. This property value is not serialized. + + + + + Initializes a new instance of the StyleSheet class. + + + + + Applies contained property setting groups, if their conditions are ture. + + The element. + Specifies whether to apply initial condition if the element is in other state. + + + + Gets a collection of the property setting groups for the property setting group. + + + + + Searches for a theme with specific name. + + The theme name to search for. + an instance of if successfull. + + + + Searches for a theme with specific name. + + The theme name to search for. + Sepecifies whether to fallback to control default theme if no other theme is found. + an instance of if successfull. + + + + Adds a new theme to the repository. + + The theme to add. + + + + Adds a new theme to the repository. + + The theme to add. + Specifies whether to replace all matching styles if a theme with the same name exists. + + + + Removes a theme from the repository. + + The theme to remove. + + + + Registers a theme without loading it. + + The theme component to register + + + + Gets or sets the default control theme. + + + + + Gets a list with all loaded themes. + + + + + Gets a list with all theme names that are available. + + + + + Checks is a given element or any of its descendants contain the focus. + + The element. + [true] if the element or any of its children contain focus, [false] otherwise. + + + + This method is used internally. + + + + + + + Clears all resources reserved for the KeyTips functionality + + + + + This method is used internally. + + + + + + + This property is used internally! + + + + + This property is used internally! + + + + + Indicates focus cues display, when available, based on the corresponding control type and the current UI state. + + + + + Gets the tool tip + + The tool tip. + + + + Gets or sets the value of how much the tooltip will be moved on the Y coordinate + + + + + Gets or sets the value of how much the tooltip will be moved on the X coordinate + + + + + Gets or sets a value indicating whether ToolTips are shown for the RadItem objects contained in + the RadControl. + + + + + Gets or sets value indicating whether the control should show all screen tips under the control client rectangle, as required for the RibbonBar control, for example + + + + + Gets the shortcust collection. + + + + + This property is used internally! + + + + + Gets whether this instance of RadControl is on a active form + + + + + Gets or sets whether Key Map (Office 2007 like accelerator keys map) + is used for this specific control. Currently this option is implemented for + the RadRibbonBar control only. + + + + + Gets or sets whether Key Tips (Office 2007 like accelerator keys map) + are used for this specific control. + + + + + Determines whether the mouse over the owning IComponentTreeHandler instance. + + + + + Only RadItem should manipulate this property + + + + + Gets the current selected element (hovered by the mouse). + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + + This method is used internally. + + + + + + This method is used internally. + + + + + + Fires when hovered element is changed. + + + + Suspends the animated property changes for the control. When animation are suspended property changes still occur but without aniumations. + + + + + Resumes the animated property changes for the conrol. For more info see + + + + + Gets the currently used theme. + + + + + Gets or sets control's preffered theme name. Themes are stored and retrieved using + APIs of . + + + If ThemeResolutionService.ApplicatonThemeName refers to a + non-empty string, the theme of a RadControl can differ from the one set using + RadControls.ThemeName property. If the themes differ, the + RadControls.ThemeName property will be overridden by + ThemeResolutionService.ApplicatonThemeName. If no theme is registered + with a name as ThemeResolutionService.ApplicatonThemeName, then + control will revert to the theme specified by its ThemeName property. + If ThemeName is assigned to a non-existing theme name, the control may + have no visual properties assigned, which will cause it look and behave in unexpected + manner. If ThemeName equals empty string, control's theme is set to a + theme that is registered within ThemeResolutionService with the name + "ControlDefault". + + + + + Gets or sets the class name string that ThemeResolutionService will use to find the themes registered for the control. + + + By default the return value is RadControl's type FullName; Some controls like drop down menu has different ThemeClassName + depending on the runtime usage of the control. + + + + + Gets the version of the style applied to this themable element tree. This property is used internally. + + + + + Gets or sets a value indicating whether to fallback to control default theme if the control does not support the current theme. + + + + + Gets value indicating whether the animated property changes are suspended for the control. Also see . + + + + + Represents the method that will handle the + %HoveredElementChanged:HoveredElementChanged% event. + + Initializes the event sender. + Initializes the %event arguments:HoveredElementChangedEventArgs%. + + + + Represents event data for the HoveredElementChanged event. + + + + + Initializes a new instance of the HoveredElementChangedEventArgs class. + + + + + + An interface which provides methods for handling a collection of RadItems. + This interface is used throughout controls which represent a list of items. + + + + + Returns the selected item in the control. + + An reference to a RadItem instance which represents + the currently selected item. + + + + Selects an item in the control. + + A reference to a RadItem instance which + represents the item which is to be selected. + + + + Gets an item from the collection that is next to a certain item. + + The item which neighbour to return. + The direction in which to look for the neighbour. + A reference to a RadItem instance which represents the neighbour item. + + + + Selects an item from the collection that is next to a certain item. + + The item which neighbour to return. + The direction in which to look for the neighbour. + A reference to a RadItem instance which represents the neighbour item. + + + + Gets the first visible item from the collection. + In a IItemsControl that is the first item that is visible on the control. + + A reference to a RadItem instance that represents + the first visible control. + + + + Gets the last visible item from the collection. + In a IItemsControl that is the last item that is visible on the control. + + A reference to a RadItem instance that represents + the last visible control. + + + + Selects the first visible item on the IItemsControl. + + A reference to a RadItem instance that represents the item selected. + + + + Selects the last visible item on the IItemsControl. + + A reference to a RadItem instance that represents the item selected. + + + + Defines whether the IItemsControl can execute navigation + operation based on the keydata provided. + + An instance of the + struct that defines the key command issued. + True if navigation possible, otherwise false. + + + + Defines whether the IItemsControl has an item that + corresponds to the mnemonic passed in the parameter. + + A character that defines the mnemonic command issued. + True if mnemonic can be processed, otherwise false. + + + + Fires when an item has been selected. + + + + + Fires when an item has been deselected. + + + + + Gets a collection containing the items + that are currently active. + + + + + Gets the collection of items associated + with the IItemsControl. + + + + + Gets or sets a boolean value that determines whether + the rollover items functionality will be allowed. + + + + + Gets or sets a boolean value that determines whether + keyboard input will be processed by the IItemsControl. + + + + + Gets the item affected by the operation. + + + + + Represents event data for the ItemUpdated event. + + + + + Initializes a new instance of the ItemUpdatedEventArgs class using the RadItem. + + + + + + Gets the RadItem that is updated. + + + + + Represents a encapsulated implementation of the IItemsControl interface. + + + + + Represents a Win2K+ layered window semantic, which allows for semi-transparent windows. + + + + + Default constructor. + + + + + + + + + + + + + + + + + Provides special handling for the WM_MOUSEACTIVATE, WM_PAINT and WM_NCHITTEST messages. + + + + + + Brings the window on top of the z-order. + + + + + + Sends the window to back of the z-order. + + + + + + Suspends any Layered-related updates for the window. + Useful for multiple properties set-up without sequential update for each property change. + + + + + Resumes previously suspended updates and forces Layered update. + + + + + Resumes previously suspended updates. Optionally preforms Layered update. + + + + + + Displays the window to user using the specified location and current size. + + + + + Performs painting of the window. + Default implementation simply paints the BackgroundImage (if any). + + The graphics to use. + The off-screen bitmap instance the graphics is created from. + + + + Updates the layered window. + + + + + Performs native layered window update, using the Win32 UpdateLayeredWindow API. + + + + + + + + + + + Gets or sets the Image that represents the Layered window. + + + + + Gets the final Bitmap that represents the content of the Layered Window. + + + + + Determines whether window's handle will be re-created upon a Size change. + If the window is large - e.g. 800*600 pixels, + applying new size may cause flicker due to the nature of Layered Windows semantic. + + + + + Determines whether the window is updated (used UpdateLayeredWindow API). + + + + + Gets or sets the Alpha (transparency) value - [0, 1] - for the window. + + + + + Gets the current size used by the window to visualize itself. + + + + + Gets or sets the size of the window. + + + + + Determines whether the window is TopMost (above all floating windows). + + + + + Determines whether the Control is visible for mouse input. + + + + + This class represents a that allows for non-client area modification and paiting. + + + + + This is a helper class which avoids design time error when control design time is opened directly. + + + + + Represents the method that will handle the ScreenTipNeeded event of a RadControl. + + + + + Provides data for the ScreenTipNeeded event. + + + + + Initializes a new instance of the class. + + The item. + + + + Initializes a new instance of the class. + + The item. + The offset. + + + + Gets the item for which the ScreenTipNeeded event occurs. + + The item. + + + + Gets or sets the delay. + + The delay. + + + + Gets or sets the offset. + + The offset. + + + + + + + + + + + Represents the method that will handle the ThemeNameChanged event. + + + Initializes the event sender. + + + Initializes the %event arguments:ThemeNameChangedEventArgs%. + + + + + Represents the event data for the %ThemeNameChanged:ThemeNameChanged% event. + + + + + Represents the old theme name. + + + + + Represents the new theme name. + + + + + Initializes a new instance of the ThemeNameChangedEventArgs class. + + + Initializes the old theme name. + + + Initializes the new theme name. + + + + + Represents the method that will handle the ToolTipTextNeeded event of a RadCOntrol. + + The source of the event. + A ToolTipTextNeededEventArgs that contains the event data. + + + + Provides data for the ToolTipTextNeeded event. + + + + + Initializes a new instance of the class. + + The tool tip. + + + + Initializes a new instance of the class. + + The tool tip. + The tool tip text. + + + + Initializes a new instance of the class. + + The tool tip. + The tool tip text. + The offset. + + + + Gets or sets the ToolTip text. + + + + + Gets or sets the offset from the Cursor.HotSpot + + The offset. + + + + Gets the tool tip. + + + + + Inserts the with duplicates. + + The value. + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The source collection view. + + + + Gets the view. + + The source. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the NotifyPropertyChanged event + + + + + + Gets or sets the sort descriptors. + + The sort descriptors. + + + + Gets or sets the group descriptors. + + The group descriptors. + + + + Gets or sets the filter. + + The filter. + + + + Gets the expression. + + The filter descriptor. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the operator. + + The operator. + + + + Gets or sets the value. + + The value. + + + + Gets the filter expression. + + The filter expression. + + + + Gets a value indicating whether this instance is default filter descriptor of the column + + + true if this instance is default; otherwise, false. + + + + + Gets the expression. + + The filter descriptor. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the date value. + + The date value. + + + + Gets the filter expression. + + The filter expression. + + + + Get or set if the time part of date value should be ignored. + + + + + Passeses the filter. + + The item. + + + + + Suspends event notification. + + + + + Resumes event notification. + + + + + Resumes event notification. + + + + + Defers the refresh. + + + + + + Copies to array. + + The array. + Index of the array. + + + + Loads the data. + + The collection. + + + + Finds the specified item index. + + Index of the item. + The data bound item. + + + + + Searches the Groups collection for a match, using the Keys in the provided group. + + + + + + + Determines whether the specified group is present within this view. + + + + + + + Indexes the of. + + The item. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Evaluates the specified expression. + + The expression. + The item. + + + + + Evaluates the specified expression. + + The expression. + The start index. + The count. + + + + + Evaluates the specified expression. + + The expression. + The items. + + + + + This method is used internally. + + + + + + + + + Try to evaluate the specified expression. + + The expression. + The items. + Index of item, which the result will be calculated for + Expression result + + + + + This method is used internally. + + + + + Moves the current to. + + The item. + + + + + Moves the current to first. + + + + + + Moves the current to last. + + + + + + Moves the current to next. + + + + + + Moves the current to position. + + The position. + + + + + The core update routine for the current position. + + New position of the current item. + True to raise CurrentChanged regardless of whether actual position change is available. + + + + + Moves the current to previous. + + + + + + Refreshes this data view. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Ensures the index of the page is within the valid pages range. + + + + + Raises the NotifyPropertyChanged event + + + + + + Sets the first page as the current page. + + + true if the operation was successful; otherwise, false. + + + + + Sets the last page as the current page. + + + true if the operation was successful; otherwise, false. + + + + + Moves to the page after the current page. + + + true if the operation was successful; otherwise, false. + + + + + Requests a page move to the page at the specified zero-based index. + + The zero-based index of the page to move to. + + true if the operation was successful; otherwise, false. + + + + + Moves to the page before the current page. + + + true if the operation was successful; otherwise, false. + + + + + Fires the PageChanging event. Returns the value of the Cancel event argument. + + The new index. + True if the event was canceled, otherwise false. + + + + Fires the PageChanged event. + + + + + Gets or sets the comparer. + + The comparer. + + + + Gets or sets the comparer. + + The comparer. + + + + Gets or sets a value indicating whether [change current on add]. + + true if [change current on add]; otherwise, false. + + + + Gets a value indicating whether this item collection is empty. + + true if this item collection is empty; otherwise, false. + + + + Gets a value that indicates whether the underlying collection provides change notifications. + + + true if this instance is dynamic; otherwise, false. + + + + + Gets the count. + + The count. + + + + Gets the item at the specified index. + + + + + + Indicates whether string comparisons of data are case-sensitive. + + + + + Gets or sets the filter expression. + + The filter expression. + + + + Gets or sets a value indicating whether filtering will be performed or it will be handled by the user/data source. + + + + + Gets or sets a value indicating whether sorting will be performed or it will be handled by the user/data source. + + + + + Gets a value indicating whether this instance has filter applied. + + + true if this instance has filter applied; otherwise, false. + + + + + Gets a value indicating whether this instance has group applied. + + true if this instance has group applied; otherwise, false. + + + + Gets a value indicating the current version of the view. + + + + + This property is used internally. + + + + + This property is used internally. + + + + + Gets a value indicating whether this instance has sort applied. + + true if this instance has sort applied; otherwise, false. + + + + Gets or sets the current item. + + The current item. + + + + Gets or sets the current position. + + The current position. + + + + Gets or sets a value indicating whether this data view can filter. + + + true if this instance can filter; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can group. + + true if this instance can group; otherwise, false. + + + + Gets or sets a value indicating whether this data view can sort. + + true if this instance can sort; otherwise, false. + + + + Gets the source collection. + + The source collection. + + + + Gets the sort descriptions. + + The sort descriptions. + + + + Gets the group descriptions. + + The group descriptions. + + + + Provides a callback so that the default filtering expression parser can be substituted. + + + + + Gets a value indicating whether this instance is incremental filtering. + + + true if this instance is incremental filtering; otherwise, false. + + + + + Default callback so that the default filtering expression parser can be substituted. + + + + + Gets the groups. + + The groups. + + + + Gets the default group predicate. + + The default group predicate. + + + + Gets or sets a value indicating whether paging is performed before grouping or vice versa. + + + true if paging is performed before grouping; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can be paginated. + + + true if this data view can be paginated; otherwise, false. + + + + + Occurs when the IPagedCollectionView.PageIndex has changed. + + + + + Occurs before the IPagedCollectionView.PageIndex is changed. + + + + + Gets a value that indicates whether the IPagedCollectionView.PageIndex value is allowed to change. + + true if the IPagedCollectionView.PageIndex value is allowed to change; otherwise, false. + + + + Gets a value that indicates whether a page index change is in process. + + true if the page index is changing; otherwise, false. + + + + Gets the zero-based index of the current page. + + The zero-based index of the current page. + + + + Gets or sets the number of items to display on a page. + + The number of items to display on a page. + + + + Gets the total number of items in the source collection. + + The total number of items in the source collection, or -1 if the total number is unknown. + + + + Gets the total number of pages with the current page size. + + + + + Gets or sets the comparer. + + The comparer. + + + + Gets the groups. + + The groups. + + + + Gets or sets a value indicating whether this data view can filter. + + + true if this instance can filter; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can group. + + true if this instance can group; otherwise, false. + + + + Gets or sets a value indicating whether this data view can sort. + + true if this instance can sort; otherwise, false. + + + + Gets the type of the . + + The filter descriptor. + + + + + Creates the descriptor. + + The type. + + + + + + + Creates the descriptor. + + The type. + Name of the property. + Type of the data that will be filtered. + The values. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts to the filter descriptor to concrete type + + The type. + The converted instance of + + + + Converts to the filter descriptor to a concrete type. + + The type to which the filter will be converted. + The type of data that will be filtered. + + The converted instance of + + + + + Gets or sets the logical operator. + + The logical operator. + + + + Gets the filter descriptors. + + The filter descriptors. + + + + Gets or sets a value indicating whether [not operator]. + + true if [not operator]; otherwise, false. + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the operator. + + The operator. + + + + Gets a value indicating whether this instance contains FilterDescriptor's with different PropertyName. + + + true if any child filters have the same name; otherwise false. + + + + + Gets the filter expression. + + The filter expression. + + + + + + + + + Type is not predefined. + + + + + Between + + + + + Not Between + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Indexes the of. + + The item. + + + + + Evaluates the specified expression. + + The expression. + + + + + Gets the items contained in this group. This method is used internally. + + A list containing group items. + + + + Get the zero-based depth of the Group + + + + + Gets or sets the header. + + The header. + + + + Gets the key of the group. + + The key. + + + + Gets the item count. + + The item count. + + + + Gets the item at the specified index. + + + + + + Gets the parent. + + The parent. + + + + Gets the groups. + + The groups. + + + + This property is used internally. + + + + + Adds the specified property name. + + Name of the property. + The filter operator. + The value. + + + + Indexes the of. + + Name of the property. + + + + + Determines whether [contains] [the specified property name]. + + Name of the property. + + true if [contains] [the specified property name]; otherwise, false. + + + + + Removes the specified property name. + + Name of the property. + + + + + Removes the specified property name. + + Name of the property. + The predicate which determine weather the filter can be deleted. + + + + + Gets or sets a value indicating whether fields with names that differ only in the casing + should be considered different. + + + + + Gets or sets the logical operator. + + The logical operator. + + + + Gets or sets the expression. + + The expression. + + + + Gets the group list contained in this collection. This property is used internally. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + Gets or sets the aggregates. + + The aggregates. + + + + Gets or sets the format. + + The format. + + + + Gets or sets the expression. + + The expression. + + + + Gets the group names. + + The group names. + + + + Adds the specified property name. + + Name of the property. + The direction. + + + + Removes the specified property name. + + Name of the property. + + + + + Determines whether [contains] [the specified property name]. + + Name of the property. + + + true if [contains] [the specified property name]; otherwise, false. + + + + + Determines whether [contains] [the specified property name]. + + Name of the property. + + true if [contains] [the specified property name]; otherwise, false. + + + + + Finds all sort descriptors associated with the group descriptors by property name + + Name of the property. + All sort descriptors contained in the group descriptors by the specified propertyName + + + + Finds all sort descriptors associated with the group descriptors by property name + + Name of the property. + if set to true [case sensitive]. + All sort descriptors contained in the group descriptors by the specified propertyName + + + + Gets or sets a value indicating whether fields with names that differ only in the casing + should be considered different. + + + + + Gets or sets the expression. + + The expression. + + + + Used to build groups from indexer + + + + + + Performs the grouping operation for specified items. + + The items. + The level. + The parent. + + + + + Gets the groups. + + The groups. + + + + Gets or sets the group predicate. + + The group predicate. + + + + Gets the default group predicate. + + The group predicate. + + + + Gets a value indicating whether [needs refresh]. + + true if [needs refresh]; otherwise, false. + + + + Gets the collection view associated with this builder. + + + + + + + + + + + Evaluates the specified expression. + + The expression. + The item. + + + + + Evaluates the specified expression. + + The expression. + The start index. + The count. + + + + + Sets the view in dirty state. + + + + + Gets the groups. + + The groups. + + + + Gets or sets the group predicate. + + The group predicate. + + + + Gets the source collection. + + The source collection. + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + This method is called right befor the event is fired. + + + + + + Raises the PropertyChanging event + + The name of the property + + The value that is goint to be set to the property. + + + + Raises the PropertyChanging event + + The name of the property + true if the event has been canceled, for more information see + + + + Raises the PropertyChanging event. + Note: This method is called even when the notifications are suspended. + + A instance containing event data. + + + + This method is called right before the event is fired. + Note: If is true, this method is not called. + + + + + + General method for setting the value of the field related to the property that is modified. + This method confirms that the old and new values are different, then fires the + event, then sets the given value to the supplied field, + and fires the event. + Note: If the event is canceled, the last two actions are + not performed. + + + + public class MyNotificationsTest : NotifyPropertyBase + { + private int myInt = 0; + private int myInt2 = 0; // + + public int AsInt + { + get + { + return this.myField; + } + set + { + if (SetProperty("AsInt", ref this.myInt, value)) + { + // perform additional actions when new value is set to myInt. + } + } + } + + public int AsInt2 + { + get + { + return (float)this.myInt2; + } + set + { + // The following property setter is the same as the previous one. + if (this.myInt2 != value) + { + PropertyChangingEventArgs2 ea = new PropertyChangingEventArgs2("AsInt2", value); + OnPropertyChanging(ea); + + if (!ea.Cancel) + { + this.myInt2 = (int)ea.Value; + OnPropertyChanged("AsInt2"); + + // perform additional actions when new value is set to myInt2. + } + } + } + } + } + + + The two setter implementations are identical. If you require to perform some actions before + the event is fired, you can use the second implementation, or, + a better solution is to override the method and place + the code there. + The type of the field that is to be modified. + The name of the property, that will appear as propertyName in the and event args. + The field, that is related to the property. + The value that is to be set to the field in case the event is not being Canceled. + true if new value is being set + + + + Occurs when a property of an object changes. + + + + + Occurs before a property of an object changes. + + + + + Sets the last page as the current page. + + + true if the operation was successful; otherwise, false. + + + + + Gets or sets the sort comparer. + + The comparer. + + + + Gets or sets the group comparer. + + The group comparer. + + + + Gets the groups. + + The groups. + + + + Gets or sets the group predicate. + + The group predicate. + + + + Gets the default group predicate. + + The default group predicate. + + + + Gets or sets a value indicating whether this data view can be paginated. + + + true if this data view can be paginated; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can filter. + + + true if this instance can filter; otherwise, false. + + + + + Gets or sets a value indicating whether this data view can group. + + true if this instance can group; otherwise, false. + + + + Gets or sets a value indicating whether this data view can sort. + + true if this instance can sort; otherwise, false. + + + + Refreshes this instance. + + + + + Resets this instance. + + + + + Begins the update. + + + + + Ends the update. + + + + + Ends the update. + + if set to true [notify updates]. + + + + Adds the new. + + + + + + Adds the created item to ListSource. + + + + + + Moves the specified item. + + The old index. + The new index. + + + + Raises a CollectionChanged notification with action ItemChanging. Must be paired with the NotifyItemChanged method. + + + + + + Raises a CollectionChanged notification with action ItemChanged. Must be paired with the NotifyItemChanging method. + + + + + + Raises a CollectionChanged notification with action ItemChanging. Must be paired with the NotifyItemChanged method. + + + + + + + Raises a CollectionChanged notification with action ItemChanged. Must be paired with the NotifyItemChanging method. + + + + + + + Returns the that represents the properties on each item used to bind data. + + An array of objects to find in the collection as bindable. This can be null. + + The that represents the properties on each item used to bind data. + + + + + Returns the name of the list. + + An array of objects, for which the list name is returned. This can be null. + The name of the list. + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the NotifyPropertyChanged event + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + + + The is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + + + The is read-only. + + + + + Adds an item to the . + + The object to add to the . + + The is read-only. + + + + + Used internally by the design time property editor. + + + + + Removes all items from the . + + + The is read-only. + + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + + is less than 0. + + + is multidimensional. + -or- + is equal to or greater than the length of . + -or- + The number of elements in the source is greater than the available space from to the end of the destination . + -or- + Type T cannot be cast automatically to the type of the destination . + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + + The is read-only. + + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Gets or sets the position. + + The position. + + + + Gets the current. + + The current. + + + + Gets or sets a value indicating whether each value setting should be encapsulaed in its own BeginEdit EndEditTransaction. + + + + + Gets the collection view. + + The collection view. + + + + Gets or sets the name of the list or table in the data source for which the is bound. + + + + + Gets or sets the data source of the . + + + + + Gets a value indicating whether this instance is data bound. + + + true if this instance is data bound; otherwise, false. + + + + + Occurs when a property value changes. + + + + + Gets or sets the item at the specified index. + + + + + + Gets a value indicating whether the is read-only. + + + true if the is read-only; otherwise, false. + + + + + Determines whether this instance is in a Begin/End update block. + + + + + Raises the PropertyChanged event + + The name of the property + + + + Raises the PropertyChanged event + + A instance containing event data. + + + + Raises the event. + + Name of the property. + The old value. + The new value. + Returns [TRUE] If the events is not canceled, otherwise [FALSE]. + + + + Raises the event. + + The instance containing the event data. + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the direction. + + The direction. + + + + Gets or sets the owner. + + The owner. + + + + Adds the specified property name. + + Name of the property. + The direction. + + + + Determines whether [contains] [the specified property name]. + + Name of the property. + + true if [contains] [the specified property name]; otherwise, false. + + + + + Indexes the of. + + Name of the property. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Removes the specified property name. + + Name of the property. + + + + + Gets or sets a value indicating whether fields with names that differ only in the casing + should be considered different. + + + + + Gets or sets the expression. + + The expression. + + + + Represents a new item's data. + + + + + Initializes a new instance of the NewItemData class. + + + + + Gets an implementation + which is owned by this component. This method is used + by the ThemeNameEditor to prefilter + the available themes for the current component. + + An implementation which + is owned by this . + + + + Gets or sets the theme name of the component. + + + + + + + + + + + + + + Represents a item's edit text attribute. + + + + + Represents a new item attribute. + + + + + Initializes a new instance of the RadNewItemAttribute class. + + + + + + + Initializes a new instance of the RadNewItemAttribute class. + + + + + + + + Initializes a new instance of the RadNewItemAttribute class. + + + + + + + + + Gets a string representing the new item text. + + + + + Gets a value indicating whether the item should be editable. + + + + + Gets a value indicating whether a glyph should be added. + + + + + Gets a value indicating whether a verb should be added. + + + + + + + + RadPropertyDefaultValueAttribute constructor + + The name of the property which provides the default value. + Type of the object that ownes the RadProperty which provides the default value. + + + + Attribute that can be applied to hide a class when searching for possible new-item-types when a RadControl + is in design mode + + + + + A dummy ISite implementation, which provides support for custom services. + + + + + Represents a dependency between two properties. + Used by a RadObject to bind a RadProperty to an external one and always use its value. + The binding may be also two-way, in which special case the bound property updates its source. + + + + + Initializes a new instance of the RadPropertyBinding class. + + + + + + + + + + + + + + + Updates the binding source property. + + + + + + Gets the binding source. + + + + + Represents an object which property is bound to some other object's property. + Stores the object itself and its bound property. Used internally by the DPS to notify + bound objects for a change in a binding source property. + + + + + Stores all the information needed for composing a RadProperty's value for a given object. + + + + + Internal constructor used to store existing property state. + + + + + + Resets all references - such as binding references and property modifiers. + + + + + Restores the state of this property using the provided source. + + + + + + Registers an object which is bound to this property value. + + + + + + Gets the current value and optionally forces re-evaluation. + + + + + + + Removes previously registered bound object. + + + + + + Notifies all bound objects for a change in this property. + + + + + Forces value composition, using default precedence order. + + + + + Resets the state of the inherited value. + + True if the property needs re-evaluation, false otherwise. + + + + Applies the specified value as local and forces current value re-evaluation. + + + + + + Applies the specified value as local and forces current value re-evaluation. + + + + + + Applies the specified animation and forces current value re-evaluation. + + + + + + Applies the specified style setting and forces current value re-evaluation. + + + + + + Applies the specified binding and forces current value re-evaluation. + + + + + + Determines whether the specified object is already bound. + + + + + + + Begins an update operation. + + Value composition will be locked. + Specifies that we are currently applying new value. + + + + Registers the provided value as a default for the property. + + + + + + Assigns the specified value and source as current. + Internally checks for possible coersion. + + + + + + + Retrieves the default value for the property. + Custom value may be defined, using the DefaultValueCallback + + + + + + Sets a new style version for this property value. This method is used internally. + + The new version + + + + Determines whether we have objects already bound to this property. + + + + + Determines whether current value composition is currently locked. + + + + + Determines whether we are in a process of updating a modifier. + + + + + Gets the index of the associated RadProperty. + + + + + Gets the current value for the property. + + + + + Gets the local value for this property. + + + + + Gets the value which is set through a two-way property binding. + This value has higher priority that the local one. + + + + + Gets the property binding relation for this property. + + + + + Gets the animation setting (if any) for this property. + + + + + Gets the current style setting for the property. + + + + + Gets the current animated value. + + + + + Gets the source of the current value. + + + + + Gets the Metadata associated with this property for the current owner. + + + + + The current value is forced to some custom value by a Coerce callback. + + + + + Gets the custom default value associated with this property. + + + + + Determines whether the current local value (if any) is set at design-time. + + + + + Gets the current style version + + + + + Allows RadObject inheritors to replace RadProperty instances with another one. + + + + + + + Represents a storage for RadPropertyValue entries, which are accessed by their GlobalIndex property. + + + + + Resets all properties with local values. This method is used internally. + + + + + This method is used internally. + + + + + Used to resolve Telerik types + + + + + Gets or sets value indicating whether the TypeResolver should look up types in the calling assembly only. + This option (if set to true) is very usefull particularly in the case when all the assemblies of the application, including the + Telerik assemblies are merged into a single assembly. + + + + + Gets or sets value indicating the search pattern for assembly in the domain that contains the types referenced in RadControls theme files. + + By default the types referencd in theme files are contained in assemblies with the name "Telerik" + + + + + + Gets or sets value indicating the version of the assembly specified in TypeResolverAssemblyName + + + + + Gets the only instance of the resolver. + + + + + Exposes the ImageList property. All classes that implement this interface + provide an image list. + + + + + Gets the image list. + + + + + Initializes a new instance of the CommandBase class. + + + + + Initializes a new instance of the CommandBase class using command name. + + + + + + Initializes a new instance of the CommandBase class. + + + + + + + Retrieves a text representation of the instance. + + + + + + Executes the command. + + + + + Executes the command with the given settings. + + + + + + + + + + + + + + + + + + Gets or sets the command name/ + + + + + Gets or sets the command type. + + + + + Represents per-thread static instance of special RadControl, which may be used for explicit measure of RadElement instance. + This functionality is required for example in the RadComboBox, when we need to calculate the size of the drop-down before it is displayed. + + + + + Gets the element's desired size, using the specified available. + + + + + + + + Gets the instance of the measurement tree (valid per UI thread) + + + + + Represents a collection which stores RadElement instances + and is sorted by ZIndex property of each element. + + + + + The collection gets notified for a change in the ZIndex of the specified property. + + + + + + The collection gets notified for a change in the Visibility property of the specified element. + + + + + + Puts the specified element at the beginning of the collection + + + + + + Puts the specified element at the end of the collection + + + + + + Finds the insert index for the specified element. + Since the collection is sorted by each element's Z-index, + we perform a binary search to determine at which position the element should be inserted. + + + + + + + Compares two elements by their z-index first + and if they equals, the index in their Parent collection is used. + + + + + + + + Gets the count of all elements, which visibility is not ElementVisibility.Collapsed. + + + + + + + + + + Indicates that an insert operation will commence. + + + + + Indicates that an insert operation is performed. + + + + + Indicates that a remove operation will commence. + + + + + Indicates that a remove operation is performed. + + + + + Indicates that an item is going to be set + + + + + Indicates that an item is set + + + + + Indicates that the items will be cleared + + + + + Indicates that the items are cleared + + + + + Indicates that the items will be sorted + + + + + Indicates that the items are sorted + + + + + Indicates that a number of items were added to the collection via the AddRange method + + + + + Represents the method that will handle the %ItemChanged:ItemChanged% event. + + + + + + + + + A collection that stores objects. + + + + + Initializes a new instance of the RadItemCollectionBase class. + + + + + Initializes a new instance of RadItemCollection based on another RadItemCollection. + + + + A RadItemCollection from which the contents are copied. + + + + + + Initializes a new instance of RadItemCollection containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Returns an enumerator that can iterate through + the RadItemCollection . + + None. + + + + Adds a with the specified value to the + Telerik.WinControls.RadItemCollection . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the RadItemCollection. + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another RadItemCollection to the end of the collection. + + + + A RadItemCollection containing the objects to add to the collection. + + + None. + + + + + Inserts a into the RadItemCollection at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + RadItemCollection . + + The to remove from the RadItemCollection . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Gets a value indicating whether the + RadItemCollection contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Returns the index of a in + the RadItemCollection . + + The to locate. + + The index of the of in the + RadItemCollection, if found; otherwise, -1. + + + + + Copies the RadItemCollection values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from RadItemCollection . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the RadItemCollection is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + Retrieves an array of the items in the collection. + + + + Fires when item is changed. + + + + + Gets or sets an array of the items' types in the collection. + + + + + Gets or sets an array of the excluded items' types for this collection. + + + + + Gets or sets an array of the sealed items' types for this collection. + That are types that are allowed but not their descendants. + + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Gets the first found item, with Name property equal to itemName specified, case-sensitive. + + item Name + RadItem if found, null (Nothing in VB.NET) otherwise + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + Retrieves an array of the items in the collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Represents an element enumerator. + + + + + Initializes a new instance of the RadElementEnumerator class. + + + + + + Moves to the next element in the collection. + + + + + + Moves to the the next element of the collection. + + + + + + Resets the enumerator position. + + + + + Resets the enumerator position. + + + + + Disposes the enumeration. + + + + + Gets the current element in the collection. + + + + + Gets the current element in the collection. + + + + + Defines the order in which border lines are drawn. + + + + + Defines the options used by CheckPrimitive check box + + + + + Indicates XP check primitive style. + + + + + Indicates Vista check primitive style. + + + + + Indicates Mac check primitive style. + + + + + Indicates empty check primitive. + + + + + Indicates Windows8 check primitive style. + + + + + + + + + + + + + + + + + + + + Normalize the value of the function's argument + to ensure the correct overload is matched. + + + + + + + + + + + + -1: value1 < value2 + 0: value1 = value2 + 1: value1 > value2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Escapes the name. + + The name. + + + + + Escapes the LIKE value. + + The value without wildcards. + + + + + Escapes the filtering value. + + The value without wildcards. + + + + + + + + + + + + + + + + + + + + Set or get default expression context class, which will be used for determinating the expression functions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Use for all op except And, Or, In, Is and IsNot + + if false to stop processing the op and return the retValue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Encapsulates common mothods related with Control Tree. + + + + + Brings the window on top of the z-order. + + + + + + + Sends the + + + + + + + Forces the non-client area of the specified Control instance to be re-evaluated. + + + + + + + Determines whether the specified Child is contained within the specified Parent's Control Tree. + + + + + + + + Gets the Control instance that currently contains the Keyboard focus. + + + + + + Determines whether the specified ControlStyle is applied to the provided control. + + + + + + + + Sends a WM_SETREDRAW message to the control, preventing any paint operation afterwards. + + + + + + Resumes Control's painting, previously suspended by a BeginUpdate call. + + + + + + + Enumerates the Control tree, starting from the provided parent as a root, + and collects all the child controls that match the specified filter. + + + + + + + + + Gets the Control of type T that is descendant of the specified parent and is anchored to the specified current T instance. + + A Control of Type T. + The parent control, which descendants are to be examined. + The current T instance to start the search from. + True to perform depth-first traversal of the Control Tree, false to look-up direct children only. + True to search for a T instance that is next to the current specified one, false to search for a T instance that is previous to the current specified one. + True to start the search from the beginning when end of the search is reached. + + + + + Gets the first Control of Type T, which is descendant of the specified Parent. + + + + + + + + + Gets the last Control of Type T, which is descendant of the specified Parent. + + + + + + + + + Collects all child controls of given type. + + + + + + + + + Enumerates all child controls of the specified parent and optionally traverses the entire tree using Depth-first approach. + + + + + + + + Enumerates all child controls of the specified parent and optionally traverses the entire tree using Depth-first approach. + + + + + + + + + Searches up the parent chain of controls, looking for an ancestor of the specified type. + + + + + + + + Searches down the control tree, using breadth-first approach, for a descendant of the specified type. + + + + + + + + Provides common helper methods related with image manipulation. + TODO: Should be moved to base assembly, making it accessible for all Telerik Assemblies. + + + + + Crops recatnalge from image + + An instance of . + An instance of + Cropped image with the size of cropped rectangle + + + + Encapsulates common functionality related with reflection-based operations such as Cloning, Field Copying, etc. + + + + + Copies all the fields, which are not marked by the [NonSerialized] attribute and are not Delegate instances, + from the source object to the target one. Reference type fields will be copied by reference rather than cloned. + + + + + + + + Creates a new instance of type T and copies its fields from the provided source instance. + Reference type fields will be copied by reference rather than cloned. + + + + + + + + An extended interface that supports some additional notifications sent by the ReflectionHelper. + + + + + The instance gets notified for a field copy process. + + + + + The instance gets notified for a clone complete process. + + + + + Defines helper methods for manipulating assembly resources. + + + + + Creates a new Image instance from the specified embedded resource for the specified type. + + + + + + + + Creates a new Cursor instance from the specified embedded resource for the specified type. + + + + + + + + Get bounding rectangle arround rotated one. + + Rectangle that is to be rotated + + Returns the bounding rectangle around the rectangle + that is rotated according to the given matrix + + + + Searches the control hierarchy tree and returns the first RadControl that parents the control provided. Otherwise returns null. + + + + + + + Gets the color of the pixel at the specified location on the screen. + + The location in screen coordinates to get the color for. + The color of the pixed at the specified location. + + + + Converts a key to string taking into account the currently selected keyboard leyout. + + The key to convert. + The string mapped to the provided key. + + + + Defines possible reasons for a Reset notification from RadCollectionView. + + + + + Entire data has changed. + + + + + Reset has been initiated by a change in collection's filtering logic. + + + + + Reset has been initiated by a change in collection's grouping logic. + + + + + Reset has been initiated by a change in collection's sorting logic. + + + + + Reset has been initiated by a change in collection's paging logic. + + + + + This interface gives the ability to create reusable providers for VisualElements + that are in some relation with logical data objects. + + + + + + + Create element using the pased data + + Logical data that will be used to initialize the element. + The newly created element if everything is OK; null on error. + + + + Cleans up when an element that is created with CreateElement() is no longer necessary. + + + + + + Initialize already created element with logical data (if possible). + + the element to be initilaized + with this data the given element should be initialized + false if the element cannot be initialized with the given data + + + + Check if an element can be initialized with some logical data. + + + + true if the lement can be initialized with the data. + + + + Describes the action that caused a CollectionChanged event. + + + + + One or more items were added to the collection. + + + + + One or more items were removed from the collection. + + + + + One or more items were replaced in the collection. + + + + + One or more items were moved within the collection. + + + + + The content of the collection changed dramatically. + + + + + The collection has been updated in a batch operation. + + + + + An item in the collection is about to change. + + + + + An item in the collection has changed. + + + + + Provides data for the CollectionChanged event. + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a Reset change. + + The action that caused the event. This must be set to Reset. + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item change or a reset change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Replace change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangedEventArgs class that describes a one-item Replace change. + + + + + + + + + Initializes a new instance of the class. + + The action. + The new item. + The old item. + The index. + Name of the property. + + + + Gets the name of the changed property when the Action is ItemChanged. + + + + + Provides data for the CollectionChanged event. + + + + + Gets the reason for a Reset notification. + + + + + Gets the list of new items involved in the change. + + + + + Gets the index at which the change occurred. + + + + + Gets the list of items affected by a Replace, Remove, or Move action. + + + + + Gets the index at which a Move, Remove, ore Replace action occurred. + + + + + Represents the method that handles the CollectionChanged event. + + The object that raised the event. + Information about the event. + + + + Provides data for the CollectionChanging event. + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a Reset change. + + The action that caused the event. This must be set to Reset. + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a one-item change. + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item change or a reset change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a one-item change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a one-item Replace change. + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item Replace change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a multi-item Move change. + + + + + + + + + Initializes a new instance of the NotifyCollectionChangingEventArgs class that describes a one-item Replace change. + + + + + + + + + Provides data for the CollectionChanging event. + + + + + Gets the property arguments when property changing has been fired. + + The property arguments. + + + + Gets the list of new items involved in the change. + + + + + Gets the index at which the change occurred. + + + + + Gets the list of items affected by a Replace, Remove, or Move action. + + + + + Gets the index at which a Move, Remove, ore Replace action occurred. + + + + + Represents the method that handles the CollectionChanging event. + + The object that raised the event. + Information about the event. + + + + Represents the method that will handle the Telerik.WinControls.Interfaces.INotifyPropertyChanging.PropertyChanging + event of an Telerik.WinControls.Interfaces.INotifyPropertyChanging interface. + + The source of the event. + A System.ComponentModel.PropertyChangingEventArgs that contains the event data. + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Encapsulates the data, associated with the IShortcutProvider.OnShortcut callback. + + + + + Gets the control that is currently focused and which will receive the keyboard event. + + + + + Gets the shortcut that is triggerred. + + + + + Determines whether the event is handled. If true, the keyboard message will not be dispatched to the focused control. + + + + + Gets an array with the currently collected key strokes. + + + + + Describes a combination of keys that may be used as a shortcut to RadItem.PerformClick method or any other arbitrary command. + + + + + Default constructor. Initializes an empty RadShortcut instance. + + + + + Initializes a new RadShortcut instance, using the specified modifiers and key mappings. + + + + + + + Determines whether the specified Keys are part + + + + + + + + Determines whether the specified Keys are part of a shortcut combination. + E.g. if we have a key mapping CTRL+M+O and the provided keys are CTRL+M, the method will return true. + + + + + + + + Determines whether the specified key is present in the RadDockShortcut KeyMappings list. + + + + + + + Gets the human-readable represention of the current key settings. + + + + + + Gets a list with all the Keys that form the shortcut combination. + E.g. we may have M+O and a Modifier CTRL, then the valid shortcut will be CTRL+M+O + + + + + Gets or sets the Keys value that describes the modifiers for the shortcut. + + + + + Determines whether the Control modifier key is applied. + + + + + Determines whether the Alt modifier key is applied. + + + + + Determines whether the Shift modifier key is applied. + + + + + Gets a human readable string representation of the collection. + + + + + + Gets the IShortcutProvider instance that owns this collection. + + + + + Gets the count of all shortcut providers currently registered with this instance. + + + + + Represents layout container which implements column and row span and different column and row sizing modes - proportional, fixed, and auto. + + + + + Represents a base class for all layout panels. Layout panels are RadElements. + They are the elements in the control tree responsible for the layout of primitives. + Layout panels determine the position and size of the primitives inside them. + Because panels are RadElements, panels can be nested thus providing an + arbitrary complex layout. + + + + + This constant is used internally. + + + + + Determines whether the element may be added associated with metadata in the Visual Style Builder. + + + + + Creates new instance of GridLayout. + + + + + Creates new instance of GridLayout. + + Number of columns. + Number of rows. + + + + Gets or sets the columns of the layout container. + + + + + Gets or sets the rows of the layout container. + + + + + GridLayout sizing type options. + + + + + Represents GridLayout column. + + + + + Represents base class for GridLayout element. + + + + + Represents GridLayout row. + + + + + scrol to line + + line index to scrool - zero besed + + + + Scroll to element + + + + + + how many lines we have + + + + + Gets or sets the maximum number of columns to be shown in the in-ribbon portion of the gallery. + + + + + Gets or sets the maximum number of columns to be shown in the in-ribbon portion of the gallery. + + + + + which is the current line + + + + + This class is used as a base class for all Localization Provider classes + used in RadControls. + + + + + Creates a default localization provider. + + A new instance of the default localization provider. + + + + Gets the string corresponding to the given ID. + + String ID + The string corresponding to the given ID. + + + + Fires when the current localization provider has changed. + + + + + Gets or sets the current localization provider. + + + + + Gets a CultureInfo object corresponding to the current localization provider. + + + + + Represents a light-weight 3*3 Matrix to be used for GDI+ transformations. + + + + + Initializes a new RadMatrix, using the specified parameters. + + + + + + + + + + + Copy constructor. + + + + + + Initializes a new RadMatrix, using the elements of the specified GDI+ Matrix instance. + + + + + + Initializes a new RadMatrix, applying the specified X and Y values as DX and DY members of the matrix. + + + + + + Initializes a new RadMatrix, scaling it by the provided parameters, at the origin (0, 0). + + + + + + + Initializes a new RadMatrix, scaling it by the provided parameters, at the specified origin. + + + + + + + + Initializes a new RadMatrix, rotated by the specified angle (in degrees) at origin (0, 0). + + + + + + Initializes a new RadMatrix, rotated by the specified angle (in degrees) at the provided origin. + + + + + + + Determines whether the current matrix is empty. + + + + + Determines whether this matrix equals to the Identity one. + + + + + Gets the determinant - [(M11 * M22) - (M12 * M21)] - of this Matrix. + + + + + Determines whether this matrix may be inverted. That is to have non-zero determinant. + + + + + Gets the scale by the X axis, provided by this matrix. + + + + + Gets the scale by the Y axis, provided by this matrix. + + + + + Gets the rotation (in degrees) applied to this matrix. + + + + + Gets all the six fields of the matrix as an array. + + + + Represents shadow settings. + + + + Initializes a new instance of the ShadowSettings class using point and + shadow color. + + + + Initializes a new instance of the ShadowSettings class. + + + Gets or sets the shadow depth. + + + Gets or sets the shadow color. + + + + Specifies arrow directions for the arrow primitive: Up, Right, Down, and + Left. + + + + + Indicates left pointed arrow. + + + + + Indicates up pointed arrow. + + + + + Indicates right pointed arrow. + + + + + Indicates down pointed arrow. + + + + + Represents the BoxLayout class + + + + + Registers the Proportion dependancy property of BoxLayout + + + + + Registers the Orientation dependancy proeprty of BoxLayout + + + + + Registers the StripPosition dependancy property of BoxLayout + + + + + Gets the proportion based on a given element + + The element which proportion will be get. + The proportion value. + + + + Sets the proportion (attached property) of a given element. + + The element which proportion will be set. + The proportion value. + + + + Handles the properties values changes of BoxLayout + + + + + + measures the size to layout the children + + + + + + + arranges the children by a given criteria + + + + + + + Gets or sets strip orientation - it could be horizontal or vertical. + + + + + represents StripPosition enumeration + + + + Adds a delegate to the list. + The object that owns the event. + The delegate to add to the list. + + + Removes a delegate from the list. + The object that owns the event. + The delegate to remove from the list. + + + Raises the specified event. + The object that owns the event. + An that contains the event data. + + + + Gets or sets whether the rollover items functionality of the RadItemsControl will be allowed. + + + + + Gets or sets whether the RadItemsControl processes the keyboard. + + + + + Represents the method that will handle the + RadPropertyChange event. + + + + + Represents a click command. + + + + + Exposes the Items property for accessing a collection of the items in a + combobox. + + + + + Gets a collection representing the collection of the items contained + in this ComboBox. + + + + Defines the border rendering style. + + + + All four borders share same customization, using gradient, regarding parent element's shape. + + + + + Each of the four borders and their "shadow" colors can have disparate customization. Note that shape and gradient would NOT be applied. + + + + + Draw inner and outer gradient borders, regarding parent element's shape. Inner and outer borders would share the specified border width. + + + + + Defines the options used by RadElement.GetChildren(options) method. + + + + + Indicates that all children are returned. + + + + + Indicates that children are returned sorted according to their z-index. + + + + + Indicates that children are returned in reverse order. + + + + + Indicates that collapsed children are included. + + + + + Indicates that only children, which visibility is ElementVisibility.Visible, are included. + + + + + Defines the sorting style of items in a control. + + + + + Indicates ascending sorting. + + + + + Indicates descending sorting. + + + + + Indicates no sorting. + + + + + Defines the click modes. + + + + + Indicates that the mouse is released. + + + + + Indicates that the mouse is pressed. + + + + + Indicates that the mouse hovers. + + + + + Defines the drop down style used by RadComboBox. + + + + + Indicates that the text area is editable. + + + + + Indicates that the text area cannot be edited. + + + + + Defines element's visibility. + + + + + Indicates that the element is visible. + + + + + Indicates that the element is hidden. + + + + + Indicates that the element is collapsed. + + + + + Indicates how the image is scaled. ImageScaling members are None and + SizeToFit. The latter fits the image to the parent size. + + + + + + + + + Defines the progress bar orientation. + + + + Indicates top orientation. + + + + + Indicates bottom orientation. + + + + + Indicates left orientation. + + + + + Indicates right orientation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Defines the life cycle of a RadElement instance. + + + + + The element is in its initial state. + + + + + The element is in a process of being constructed. + + + + + The element is already constructed but not loaded yet. + + + + + The element is loading. That is it is initializing on the owning control. + + + + + The element is prepared for visualizing. + + + + + Special state, indicating that the element has been loaded once and removed from the element tree. + + + + + The element is in a process of being disposed of. + + + + + The element is already disposed of. + + + + + Defines separators orientation. + + + + + Indicates Verical separators orientation. + + + + + Indicates Horizontal separators orientation. + + + + + Indicates Custom separators orientation. + + + + + Defines the toggle states. Toggle states are used in RadToggleButton. + + + + + Indicates off state. + + + + + Indicates on state. + + + + + Indicates a third state for the toggle button - indeterminate. + + + + + Initializes a new instance of the Formatter class. + + + + + Exposes methods and properties for e hierarchical items such as + RadMenuItem. + + + + + Gets or sets the item's owner. + + + + + Gets a value indicating whether the item has children. + + + + + Gets a value indicating whether the item is the root element if the + hierarchy. + + + + + Gets or sets the item's parent. + + + + + Gets the root item of this item's hierarchy. + + + + + Gets the next item. + + + + + Gets the previous item. + + + + + Initializes a new instance of the ChordMessageFilter class. + + Instance of the ChordMessageFilter class + + + + Filters out a message before it is dispatched. + + + Use PreFilterMessage to filter out a message before it is dispatched to a control or form. + For example, to stop the Click event of a Button control from being dispatched to the control, + you implement the PreFilterMessage method and return a true value when the Click message occurs. + You can also use this method to perform code work that you might need to do before the message is + dispatched. + + The message to be dispatched. You cannot modify this message. + true to filter the message and stop it from being dispatched; false to allow the message to continue to the next filter or control. + + + + Calculates the character code of alphanumeric key of the Keys enum instance + + An instance of the Keys enumaration + The character code of the alphanumeric key + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Represents the state of the modifier keys (SHIFT, CTRL, and ALT) in a + Chord. + + + + + Initializes a new instance of the ChordModifier using data + provided by Keys input. + + + + + Initializes a new instance of the ChordModifier using explicit + setting for every property. + + + + + Initializes a new instance of the ChordModifier using data + provided by another instance. + + + + + Initializes a new instance of the ChordModifier class with + default settings. + + + + + Updates a ChordModifier instance based on a Keys input value + + ChordModifier instance to update + Keys input value + ChordModifier instance with updated states + + + + Creates new ChordModifier instance based on a Keys input value + + Keys input value + ChordModifier instance + + + + Removes all data from the ChordModifier. + + + + + Compares this instance to a specified object or ChordModifier and returns an indication of their relative values. + + + A signed number indicating the relative values of this instance and + value. +
+ + + + Return Value + + + Description + + + + + Less than zero + + + This instance is less than + value. + + + + + Zero + + + This instance is equal to + value. + + + + + Greater than zero + + + This instance is greater than + value. + -or- + value is a null reference + (Nothing in Visual Basic). + + + +
+

Collapse imageExceptions

+
+ + An object to compare, or a null reference (Nothing in Visual + Basic). + +
+ + + Raises the PropertyChanged event + + The name of the property + + + + Gets a value indicating if any of the modifier keys (SHIFT, CTRL, and ALT) is in a pressed state. + + + + + Gets a value indicating if the SHIFT modifier key is in a pressed state. + + + + + Gets a value indicating if the CTRL modifier key is in a pressed state. + + + + + Gets a value indicating if the ALT modifier key is in a pressed state. + + + + + Notifies clients that a property value has changed. + + + + + Represents a base class for all container controls - + controls that contain other controls. + + + + + Initializes a new instance of the ContainerControlBase class. + + + + Adds a delegate to the list. + The object that owns the event. + The delegate to add to the list. + + + Removes a delegate from the list. + The object that owns the event. + The delegate to remove from the list. + + + Raises the specified event. + The object that owns the event. + An that contains the event data. + + + + Raises the BorderStyleChanged event. + + An EventArgs that contains the event data. + + + + Overrides Control.CreateControlsInstance. + + A new instance of ContainerControlBase.ContainerTypedControlCollection assigned to the control. + + + Raises the event. + A containing the event data. + + + Sets the value of the specified property. + The property whose value to set. + An object representing the value to assign to the property. + + + Retrieves the value of the specified property. + The property whose value to retrieve. + + + Removes the specified property from the properties collection. + The property to remove. + + + Retrieves a boolean value indicating if the specified property has been explicitly set. + The property to evaluate. + + + + Occurs when the value of the BorderStyle property has changed. + + + + + Encapsulates the information needed when creating a control. + + + + + Specifies the border style for a control. + + + + + Gets the space, in pixels, that is specified by default between controls. + + + + + Gets the internal spacing, in pixels, of the contents of a control. + + + + + this is the statistical weight of the container which is taken into account + when the contaner participates in a layout chain. + + + + + + + + Represents the method that will handle the + Activate event. + + + + + Represent a chord. + + + + + Initializes a new instance of the Chord class. + + + + + Initializes a new isntance of the Chord class using a list of keys. + + + + + + Initializes a new instance of the Chord class using a list of keys + and %chord modifier:Telerik.WinControls.Keyboard.ChordModifier%. + + + + + + + Initializes a new instance of the Chord class using a string of keys. + + + + + Clears the chord. + + + Retrieves the string representation of the instance. + + + Processes the modifiers. + + + + + + + + + Compares two instance for equality. + returns 0 if equal, a positive number if the first is greater than the + second, and a negative number otherwise. + + + + + + Gets or sets a list of keys in this instance. + + + Gets or sets the keys in this chord. + + + Gets the modifier strings. + + + Gets the chord keys. + + + Gets or sets the chord modifier. + + + + Represents keyboard shortcuts. + + + + Initializes a new instance of the Shortcuts class. + + + Initializes a new instance of the Shortcuts class. + + + + Adds the command bindings. + + + + + + Adds command bindings. + + + + + + Adds commands bindings. + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Fires when a shortcut is activated. + + + + + Gets the input bindings. + + + + + Represents a mouse timer. + + + + + Represents a property. Supports telerik dependency properties system by + encapsulating a property of a certain RadElement instance. + + + + + Gets the hashcode of the Name string. Pre-computed for faster dictionary operations. + + + + + One-way binding + + + + + Two-way binding. Both source and target objects can modify the current value. + + + + + No notifications are raised for the bound object. + + + + + Binding value is preserved as local upon unbind. + + + + + Supports methods for bound properties of two instances. + + + + + Supports methods for general binding of properties of two + instances. + + + + + Initializes a new instance of the RadPropertyBinding class. + + + + + + + + + + + + + + + + + + + + + + Reset the bound properties + + + + + Updates the binding source property. + + + + + + + Gets the binding source. + + + + + Supports metadata for each class inherited from + + + + + Represents a property key. + + + + + Singleton. + + + + + Represents metadata for a RadProperty. RadPropertyMetadata describes the property. + For example, through DefaultValue property you can get or set the default value + for the property. + + + + Initializes a new instance of the RadPropertyMetadata class. + + + Initializes a new instance of the RadPropertyMetadata class using the default value of the property. + + + + Initializes a new instance of the RadPropertyMetadata class using a property + changed callback. + + + + + Initializes a new instance of the RadPropertyMetadata class using an object + and a property changed callback. + + + + Gets a value indicating whether the property is read-only. + + + Gets or sets the default value of the property. + + + Gets or sets a value indicating whether the property is inherited. + + + + Gets or sets the PropertyChangedCallback + + + + + Represents element's layout data. + + + + + Initializes a new instance of the ElementLayoutData class from + the element and its PerformLayoutType. + + + + + + + Gets or sets the element. + + + + + + + + + + + + + + + Represents an item that contains external control. There is no limitation for the control type - could + be any descendant of the class Control. + + + + + This constant is used internally. + + + + + Updates the visibility, which is bound to the item's current IsVisible state, of the hosted control. + + + + + Gets the instance of the hosted control. + + + + + Gets or sets whether the mouse and keyboard messages from the hosted control + can be routed to the owner control. + + + + You can use ElementTree.Control to get + the owner control. + + + To get the hosted control use HostedControl + property. + + + + + + Gets or sets the CausesValidation property of the hosted + control. + + + Using this property is equivalent to using + HostedControl.CausesValidation + + + + + Gets or sets a value that determines whether the control should be clipped when it requires more space than available. + + + + + Corresponds to the hosted control's Validated event + + + + + Corresponds to the hosted control's Validating event + + + + + Occurs when the element recieves focus. + + + + + Occurs when the element loses focus. + + + + + Defines the display style of an item. + + + + + Specifies that neither image nor text is rendered. + + + + Specifies that only text is rendered. + + + + Specifies that only an image is rendered. + + + + + Specifies that both an image and text are to be rendered. + + + + + Defines the gradient effects: Solid, Linear, + Radial, Glass, OfficeGlass, Gel, and Vista. + + + + + Indicates that no gradient effect is used. + + + + + Indicates that linear gradient effect is used. + + + + + Indicates that radial gradient effect is used. + + + + + Indicates that glass gradient effect is used. + + + + + Indicates that OfficeGlass gradient effect is used. + + + + + Indicates that OfficeGlassRect gradient effect is used. + + + + + Indicates that gel gradient effect is used. + + + + + Indicates that vista gradient effect is used. + + + + + Defines properties for the box-model; Elements are nodes of a tree, and a + rectangular box is generated for each element. + + + + Gets or sets a value indicating the box width. + + + Gets or sets a value indicating the left width. + + + Gets or sets a value indicating the top width. + + + Gets or sets a value indicating the right width. + + + Gets or sets a value indicating the botton width. + + + Gets a value indicating the offset. + + + Gets a value indicating the border size. + + + Gets a value indicating the horizontal width. + + + Gets a value indicating the vertical width. + + + + Defines methods and properties for a calapsible element. For example, + RadRibonBarChunk is a collapsible element. + + + + + Expands the element. + + + + + Collapses the element. + + + + + Gets or sets a value indicating the expanded size of the element. + + + + + Gets the max number of steps needed for collapsing the collapsible element. + + + + + Gets the current collapse step for the collapsible element. + + + + Defines properties and methods for the default layout engine. + + + Retrieves parent's padding. + + + Retrieves check size structure. + + + Sets coerced size taken as parameter. + + + Gets the face rectangle. + + + Invalidates layout - needs redrawing. + + + + + + + + + Retrieves a value indicating whether the element is valid wrap element. + + + Performs registered suspended layout. + + + Retrieves transformation point. The point is a Point structure. + + + Retrieves transformation by alignment point using size and inner bounds. + + + Retrieves Border offset. + + + Retrieves border size. + + + Retrieves the border size of its child. + + + Invalidates the cached border. + + + Gets a value indicating the available size. + + + + Represents a panel with two children an image element and a text element + + + + + Gets or sets a value indicating the image alignment. + + + + + Gets or sets a value indicating text alignment. + + + + + Gets or sets a value indicating the TextImageRelation: ImageAboveText, ImageBeforeText, Overlay, TextAboveImage, and TextBeforeImage. + + + + + Gets or sets a value indicating the DisplayStyle: None, Image, Text and ImageAndText. + + + + + Content within a user interface is often larger than the visible area that + the user can see. Large Telerik elements can be put in scroll viewer in order to + scroll their content in small visible area. + + Every element that support scrolling must implement this interface. Currently + only class RadScrollViewer implements this interface and all + Telerik elements that can be scrolled inherit that class. + + + + + + Scrolls down within viewport by one logical unit. + + + + + Scrolls left within viewport by one logical unit. + + + + + Scrolls right within viewport by one logical unit. + + + + + Scrolls up within viewport by one logical unit. + + + + + Scrolls down within viewport by one page. + + + + + Scrolls left within viewport by one page. + + + + + Scrolls right within viewport by one page. + + + + + Scrolls up within viewport by one page. + + + + + Scrolls vertically to the beginning of the content. + + + + + Scrolls vertically to the end of the content. + + + + + Scrolls horizontally to the beginning of the content. + + + + + Scrolls horizontally to the end of the content. + + + + + Scrolls both horizontally and vertically to the beginning of the content. + + + + + Scrolls both horizontally and vertically to the end of the content. + + + + + Gets whether the scroll viewer uses a virtualized viewport + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + This class supports the TPF internal infrastructure and is not intended to be used directly from your code. + + + + + Virtual method that paints the primitive on the screen. It may be overridden by + the derived types. + + + + + Virtual method that paints the primitive on the screen. It may be overridden by + the derived types. + + + + + Represents a base type for all primitives. Defines PaintPrimitive method that is + overridden in all derived classes. + Primitives are these RadElement(s) that are actually drawn on the + screen. + + + + Draws the primitive on the screen. + + + Gets or sets a value indicating whether the primitive should + be painted. + + + Virtual function that draws the primitive on the screen. + + + Gets a value indicating whether the primitive has content. + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets gradient style. Possible styles are solid, linear, radial, glass, + office glass, gel, and vista. + + + + Gets or sets gradient angle for linear gradient measured in degrees. + + + Represents a line that is drawn on the screen. + + + + Represents a filling that is drawn on the screen. + + + + + Draws the primitive on the screen. + + + + + Gets or sets background color. This property is applicable to radial, glass, office glass, gel, and vista gradients. + + + + + Gets or sets background color. This property is applicable to radial, glass, office glass, and vista gradients. + + + + + Gets or sets background color. This property is applicable to radial, glass, + office glass, and vista gradients. + + + + + Gets or sets the number of used colors in the gradient effect. + + + + + Gets and sets the gradient style. The possible values are defined in the gradient + style enumeration: solid, linear, radial, glass, office glass, gel, and vista. + + + + + Gets or sets gradient angle for linear gradient. + + + + + Gets or sets GradientPercentage for linear, glass, office glass, gel, vista, and + radial gradients. + + + + + Gets or sets GradientPercentage for office glass, vista, and radial + gradients. + + + + + Specifies whether the FillPrimitive should fill the GraphicsPath defined by its Parent.Shape. If false, it will fill its bounding rectangle. + + + + + This property is used internally! + + + + Draws the primitive on the screen. + + + Gets or sets the line width in pixels. + + + + Gets or sets the line orientation. Possible values are defined in the SepOrientation + enumeration. + + + + Gets or sets the line angle in degrees. + + + + Initializes a new instance of the ArrowPrimitive class using the + ArrowDirection enumeration. Possible directions are up, bottom, left, and + right. + + + + + Gets or sets the arrow direction. The possible values are contained in the + ArrowDirection enumeration: up, left, right, and bottom. + + + + Represents the internal part of the progress bar. + + + Draws the primitive on the screen. + + + + indicates that Progress Bar has Image + + + + + Gets or sets progress bar orientation. Possible values are indicates in + ProgressOrientaion enumeration: up, left, bottom, and right. + + + + + Indicates whether the progress bar style is dash. If both dash and hash are + true, hatch style is chosen. + + + + + Indicates whether the progress bar style is hatch. When true, the style is Hatch. + When both dash and hatch are true the style is hatch. + + + + Gets or sets the angle in degrees of the progress bar dash or hatch parts. + + + Gets or sets the step width in pixels between separators. + + + Gets or sets separators width in pixels. + + + + Gets or sets the value of the first progress line. There could be two progress + lines in the progress bar. + + + + + Gets or sets the value of the second progress line. There could be two progress + lines in the progress bar. + + + + Specifies minimum value for the progress. + + + Gets or sets maximum value for the progress. + + + + indicates Stap value + + + + Gets or sets the first color that is used in gradient effect. + + + Gets or sets the second color that is used in gradient effect. + + + Represents a check box primitive that is drawn on the screen. + + + + Default constructor + + + + + Copy constructor + + + + + + GetBaseLineFromFont Method + + A Font + A float + + + + Get or sets HTML tag of the current text block + + + + + Get or sets FontSize the current text block + Note: recreate the font + + + + + Get or sets Image for the current text block + Current block should be named Image block + + + + + Get or sets the Size the current text block + + + + + current block content alignment + + + + + Get or set the text + + + + + BaseLine Property + + + + + Move text blocks to next line if there is not avaible space for the current line + + + + + + + Calculate Size of the whole FormattedTextBlock + + + + + + + + + + + Calculate text size of the Single Text Line + + + + + + + Draw whole FormattedTextBlock + + + + + + + + + + + + Occurs when the mouse is up the element. + + + + + Occurs when the mouse pointer is moved over the element. + + + + + BaseLine Property + + + + + This method draws text to a Bitmap graphics which is used when an element/control is in Disabled state. GDI does not draw text well on a bitmap graphics surface, + hence the need for this method. + + + + Retrieves the text size. + + + + check is the Text contains html command + + text to be checked + text to check + + + + Main function for parsing process + + text to parse + base Font color + base font + base font size + base textaligment + Formatted text block that contains the whole structure + + + + Main function for parsing process + + text to parse + base Font color + base font + base font size + base textaligment + base font style etc. Regular, Bold + Formatted text block that contains the whole structure + + + + Parse single HTML tag and apply settings + + + + + + + + + + + process single token from Html string + + + + + + + a FormattedText object + + + + Handles <u><i><b> tags + + + + + + + + + Handles <color=value> + + + + + + + + Handles <size=[+|-] valie> + + + + + + + + Handles <font=value> + + + + + + + Gets or sets the color used to display a non-visited hyperlink. + + + + + Gets or sets the color used to display a visited hyperlink. + + + + + A String Tokenizer that accepts Strings as source and delimiter. Only 1 delimiter is supported (either String or char[]). + + + + + Constructor for StringTokenizer Class. + + The Source String. + The Delimiter String. If a 0 length delimiter is given, " " (space) is used by default. + + + + Method to get the number of tokens in this StringTokenizer. + + The number of Tokens in the internal ArrayList. + + + + Method to get the next (string)token of this StringTokenizer. + + A string representing the next token; null if no tokens or no more tokens. + + + + + Represents a track bar that is drawn on the screen. + + Extends + BasePrimitive + + + + + Gets or Sets RadTrackBar's ticks color + + + Gets or Sets the gradient angle of the SliderArea + + + Gets or Sets whether the TrackBar should fit to available size + + + Gets or Sets whether the SlideArea should be visible + + + Gets or Sets Ticks Visibility + + + + Gets or sets background color. This property is applicable to radial, glass, + office glass, and vista gradients. + + + + + Gets or sets background color. This property is applicable to radial, glass, + office glass, and vista gradients. + + + + + Gets or Sets TrackBar's thumbWidth + + + + + Gets or Sets TrackBar's Orientation + + + + + Indicates the tick style of the progress bar. Possible values are members of + %TickStyles enumeration:Telerik.WinControls.Enumerations.TickStyles%: none, + topleft, BottomRight, and both. + + + + + The number of positions between tick marks + + + + + Gets or Sets the width of TrackBar's SlideArea + + + + Gets or sets a minimum int value for the trackbar position. + + + Gets or sets a maximum int value for the trackbar position. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Byte[]. + + + + + Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + + + + + Looks up a localized resource of type System.Drawing.Bitmap. + + + + + Interface provides methods for registering and accessing . + + + + + Retrieves currently registered Service by the specified type. + + A type derived from + + + + + Registers the specified service with ourselves. + + An instance of type derived from . + + + + Represents abstact class that provides service capabilities. + + + + + Initializes a new instance of the RadService class. + + + + + Determines whether the service is operational and may perform actions. + + + + + + Starts the Service. + If the service was previously paused, it should be re-started with the Resume method. + + A context passed to the service. + + + + Stops currently working or previously stopped service. + + True to indicate that current operation ended successfully, false otherwise. + + + + Pauses a currently running operation. + + + + + Resumes previously paused operation. + + + + + Determines whether the service may be started. + Validation is as follows: + 1. Check whether Enabled is true. + 2. Check the context through IsContextValid method. An exception is thrown if context is invalid. + 3. Checks the current state - it should be Initial or Stopped. + + + + + + + Notifies that the service has been successfully started. + Allows inheritors to perform some additional logic upon start. + + + + + Notifies that a start request has occured. Cancelable. + + + + + + Notifies that a running operation has stopped. + Allows inheritors to perform some additional logic upon stop. + + + + + Notifies that a stop request has occured. Cancelable. + + + + + + Evaluates the provided context. Some services may not operate without certain context provided. + + + + + + + Performs the core Start logic. + + + + + Stops the service. Performs the core logic. + + + + + Aborts the current operation without applying any changes. + + + + + Ends the current operation and applies all changes. + + + + + Performs the core Resume logic. + + + + + Performs the core Pause logic. + + + + + Sets the provided object as the current context. + + + + + + Notifies for a change in the Enabled state. + + + + + Gets the context associated with the current operation. + This member is valid only while the Service is started or paused. + + + + + Raised when the service is about to be started. + + + + + Raised right after the service is started. + + + + + Raised when the service is about to be stopped. + + + + + Raised when the service is stopped. + + + + + Determines whether the service is available at design-time. False by default. + + + + + Gets the current state of the service. + + + + + Gets the name of the service. + + + + + Determines whether the Service is enabled (may be started). + If the Service is working and its is disabled, it will end its current operation. + + + + + Represents event data when RadService is starting. + + + + + Initializes a new instance of the RadServiceStartingEventArgs class. + + The context that is passed prior to the Start request. + + + + Gets the Context, passed to the service as a start parameter. + + + + + Represents the states of + + + + + The state of , when is created. + + + + + The state of , when is stopped. + + + + + The state of , when is working. + + + + + The state of , when is paused. + + + + + Represents event data when RadService is stopping. + + + + + Initializes a new instance of the RadServiceStoppingEventArgs class. + + + + + + Gets or sets the Commit parameter of the Stop request. + + + + + Gets the currently dragged instance. + + + + + Determines whether a default hint will be generated. Usually this is a snapshot of the dragged item. + + + + + Gets or sets the context associated with a drag operation. + + + + + Determines whether a drag operation may start. + + + + + Gets or sets the drop target for the operation. + + + + + Represents a service that manages drag and drop actions. + + + + + Initializes a new instance of the DragDropService class. + + + + + Begins a drag pass. Allows for service automation. + + The position of the mouse cursor in screen coordinates. + An instance of IDraggable that is dragged. + + + + Ends a drag pass. Allows for service automation. + + The end position of the mouse cursor in screen coordinates. + An instance of . + + + + Ends a drag pass. Allows for service automation. + + + + + Mocks a mouse move to a specific point. Allows for service automation. + + + + + Determines whether a drop operation will be committed (a valid drop target is found). + + + + + Gets or sets the cursor to be used when a valid drop target is hit-tested. + + + + + Gets or sets the cursor to be used when a valid drop target is hit-tested. + + + + + Determines whether a default preview is generated for a ISupportDrag instance if its GetPreview method returns null. + + + + + Gets current drop target, where the mouse cursor points. + + + + + Gets the current drop location in the context of the current target. + + + + + Gets the Hint window. + + The hint window. + + + + Gets or sets the image to be used as a preview while dragging. + + + + + Gets or sets the cursor to be used while dragging. + + + + + Defines the element's property options. + + + + + Indicates that there are no property options. + + + + + Indicates that the property can inherit a value. + + + + + Indicates that the property invalidates the layout. + + + + + Indicates that the property affects the layout. + + + + + Invalidates measure + + + + + Invalidates arrange + + + + + Invalidates parent's measure + + + + + Invalidates parent's arrange + + + + + Indicates that the property affects the display. + + + + + Indicates that the property affects the theme. + + + + + The property supports cancellation. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + Initializes a new instance of the RadItemCollection class. + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Gets or sets the owner of the collection. + + + + + Represents the method that will handle the TextChanging event. + + + + + + + Represents a Z-order comparer. The Z-Order determines the overlapping of the + RadElements. + + + + + Initializes a new instance of the RadElementZOrderComparer class. + + + + + + Compares the Z-order of the two RadElement arguments. Retrieves 0 if the + two elements are equal, positive number if the first element has a greater + Z-Order than the second argument, and a negative number otherwise. + + + + + + + + + + + + + + + + + + + + + + + Layout panel which docks its children to the sides of the area it contains + + + + + Gets the dock property of an element + + + + + + + Sets the docking position of an element + + + + + + + Gets or sets a property indicating whether the last child will fill the remaining area + + + + ElementWithCaptionLayoutPanel is a container for elements with a caption. + + + + Gets or sets a boolean value indicating whether there is a caption on the + top. + + + + + Layout panel is a container for other elements. It orders the contained + elements as a stack vertically or horizontally. When the elements pass through the + left end of the stacklayout, the last one is put on a new line. If horizontal is + chosen the width of all elements is the width of the largest element in the + column. + + + + + This constant is used internally. + + + + + ArrangeOverride + + + + + + + Gets or sets the elements orientation inside the stacklayout. + Possible values are horizontal and vertical. + + + + + Gets or sets a value indicating whether the elements have equal size. + + + + + Gets or sets a value indicating whether the elements have equal width. + + + + + Gets or sets a value indicating whether the elements have equal height. + + + + + ChildrenForcedSize + + + + + Gets or sets a value indicating whether maximum size dimensions are + flipped. + + + + Gets or sets a value indicating whether elements are collapsed on resize. + + + + Gets or sets a value indicating whether the panel will use its direct parent size to arrange the child elements or + whether it will use the first ancestor which is a layout panel or an element with AutoSizeMode = FitToAvailableSize. + + + + + Gets or sets a value indicating whether the panel is in Strip mode or not. When in Strip mode the panel doesn't + move the child elements to a new row when there's not enough space but rather arranges all elements on a single row. + + + + + Notifies all children when same child changes. Effectively redraws all + children in the panel. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Represents the method that will handle HandleExecute, and Execucted events. + + + + + Represents the method that will handle HandleExecute, and Executed events. + + Initializes the event sender. + Initializes the event argument data. + + + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + Represents an arrow that is drawn on the screen. + + Extends %BasePrimitive:Telerik.WinControls.Primitives.BasePrimitive%. + + + + + Initializes a new instance of the ArrowPrimitive class. + + + + Initializes a new instance of the ArrowPrimitive class using the + ArrowDirection enumeration. Possible directions are up, bottom, left, and + right. + + + + + Draws the primitive on the screen. + + + + + Gets or sets the arrow direction. The possible values are contained in the + ArrowDirection enumeration: up, left, right, and bottom. + + + + + Defines the usage of a given attached property. + + + + + + + + + + + + + + + + + + + + + + + + + Represents the method that will be an alternative expression storage callback. + + + + + + + + + Represents the method that will be a coerce value callback. + + + + + + + + Represents the method that will be a property changed callback. + + + + + + Initializes the property change arguments. + + + + + Defines the source of current property value. See also + %RadObject.GetValueSource:
+ Telerik.WinControls.RadObject.GetValueSource%. +
+
+ + + Indicates that the reason is unknown. + + + + + Indicates that the default value is set. + + + + + Indicates that the property changed is inherited. + + + + + An overriden default value, has higher priority than Default and Inherited source. + + + + + Indicates that the reason for the property change is an applied theme. + + + + + Value is set locally through a CLR property setter. + + + + + Indicates that the reason for the property change is data binding. + + + + + A value is applied through two-way binding. + + + + + Indicates that the reason for the property change is an animation effect. + + + + + Defines a mask enumeration which is used when updating rad properties' values. + + + + + Defines the possible results for a property value update operation. + + + + + A composite value update is still running. + + + + + There was no need of updating the property. + + + + + The property has been successfully updated and its value has changed. + + + + + The property has been successfully updated but its value has not changed. + + + + + Update operation was canceled. + + + + + Defines basic methods for Telerik layout architecture. Since all layout panels + update their layout automatically through events, this functions are rarely used + directly. + + + + + Performs layout changes based on the element given as a paramater. + Sizes and places are determined by the concrete layout panel that is used. + For example if StackLayoutPanel is used, the element will be placed next to + the previously placed element. Since all layout panels update their layout + automatically through events, this function is rarely used directly. + + + + + + Retrieves the preferred size of the layout panel. If the proposed size is + smaller than the minimal one, the minimal one is retrieved. Since all layout + panels update their layout automatically through events, this function is + rarely used directly. + + + + + + + + + + Classes that implement IGraphics interface are capable of drawing on the + computer screen. Classes that implement this interface can use different APIs to + perform the actual drawing: GDI+, DirectX, etc. + + + + Changes the opacity level of the current device context. + + + Restores the opacity of the current device context to the previous value. + + + + Saves the current smothingMode, and changes the smoothingmode for the current device + context. + + + + Restores the smoothing mode to the previous value. + + + Draws a rectangle specified by a rectangle structure and a color. + + + + Draws a rectangle specified by rectangle structure, color, PenAlignment and pen + width. + + + + + Draws a rectangle specified by rectangle structure, color, PenAlignment and pen + width. + + + + + Draws a rectangle specified by rectangle structure, color, PenAlignment, pen width and DashStyle. + + + + + Draws a rectangle specified by rectangle structure, color, PenAlignment, pen width and DashStyle. + + + + + Updates the clipping region of the current Graphics object to exclude + the area specified by a Rectangle structure. + + + + + Draws a linear gradient rectangle specified by rectangle structure, color array, + penalignment, penWidth and angle. + + + + + Draws a linear gradient rectangle specified by rectangle structure, color array, + penalignment, penWidth, angle and DashStyle. + + + + + Draws a linear gradient rectangle specified by rectangle structure, color array, + penalignment, penWidth, angle and DashStyle. + + + + + Draws a radial gradient rectangle specified by rectangle structure, color, color + array for gradient effect, penalignment and penWidth. + + + + + Draws a radial gradient rectangle specified by rectangle structure, color, color + array for gradient effect, penalignment and penWidth. + + + + + Draws a radial gradient rectangle specified by rectangle structure, color, color + array for gradient effect, penalignment, penWidth and DashStyle. + + + + + Draws a radial gradient rectangle specified by rectangle structure, color, color + array for gradient effect, penalignment, penWidth and DashStyle. + + + + + Draws a custom gradient rectangle specified by rectangle structure, graphicsPath, + color, color array for the gradient effect, penalignment and penwidth. + + + + + Draws a custom gradient rectangle specified by rectangle structure, graphicsPath, + color, color array for the gradient effect, penalignment and penwidth. + + + + + Draws a custom gradient rectangle specified by rectangle structure, graphicsPath, + color, color array for the gradient effect, penalignment, penwidth and DashStyle. + + + + + Draws a custom gradient rectangle specified by rectangle structure, graphicsPath, + color, color array for the gradient effect, penalignment, penwidth and DashStyle. + + + + Draws an ellipse defined by a bounding rectangle and color. + + + + Draws the specified text string with specified Rectangle, Font, Color, + ContentAlignment, StringFormat and Orientation. + + + + + Obsolete. Use the overload without ContentAlignment parameter. ContentAlignment should be provided through the StringFormat parameter. + + + + + Obsolete. Use the overload without ContentAlignment parameter. ContentAlignment should be provided through the StringFormat parameter. + + + + + Draws the specified Image object with the specified Rectangle, Image, + ContentAlignment and disable flag. + + + + + Draws the specified Image object with the specified Point, Image and disable + flag. + + + + + Draws a bitmap image specified by image object and position from the left-upper + corner of the current device context. + + + + + Draws a bitmap image specified by image object and position from the left-upper + corner of the current device context and specified opacity. + + + + + Draws a bitmap image specified by image object, position from the left-upper + corner of the current device context and specified size. + + + + + Draws a bitmap image specified by image object, position from the left-upper + corner of the current device context, opacity and specified size. + + + + Draws a path specified by GraphicsPath, color, pen alignment and pen width. + + + Draws a path specified by GraphicsPath, color, pen alignment, pen width and DashStyle. + + + Draws a path specified by GraphicsPath, color, pen alignment, pen width and DashStyle. + + + + Draws a linear gradient path specified by GraphicsPath, bounding Rectangle, color + gradient array, penalignment, penwidth and angle. + + + + + Draws a linear gradient path specified by GraphicsPath, bounding Rectangle, color + gradient array, penalignment, penwidth, angle and DashStyle. + + + + + Draws a linear gradient path specified by GraphicsPath, bounding Rectangle, color + gradient array, penalignment, penwidth, angle and DashStyle. + + + + + Draws a line specified by color, initial x point, initial y point, final x and + final y point. + + + + + Draws a line specified by color, initial x point, initial y point, final x and + final y point. + + + + + Draws a line specified by color, initial x point, initial y point, final x, final y point and width + + + + + Draws a line specified by color, DashStyle, initial x point, initial y point, final x + and final y point. + + + + + Draws a redial gradient path specified by Graphicspath, bounding rectangle, color, + color gradient array, penalignment and penwidth. + + + + + Draws a redial gradient path specified by Graphics path, bounding rectangle, color, + color gradient array, pen alignment and pen width. + + + + + Draws a redial gradient path specified by Graphics path, bounding rectangle, color, + color gradient array, pen alignment and pen width. + + + + + Draws a custom gradient path specified by GraphicsPath, GraphicsPath for the + gradient, color, gradient color array, penalignment and penwidth. + + + + Creates a mask specified by color and bitmap. + + + + Fills the interior of a rectangle specified by the + borderRectangle and using for color the second argument. + + + + + Fills a rectangle using the image as texture. + + The rectangle to fill. + The image to use as a texture. + + + + Fills a rectangle using the image as texture. + + The rectangle to fill. + The image to use as a texture. + Defines the way the image is populated in the rectangle + + + + Fills a rectangle using the image as texture. + + The rectangle to fill. + The image to use as a texture. + + + + Fills a rectangle using the image as texture. + + The rectangle to fill. + The image to use as a texture. + Defines the way the image is populated in the rectangle + + + + Fills gradient rectangle specified by rectangle structure, color, color, color, + color, GradientStyles, and angle. + + + + + Fills the gradient rectangle specified by rectangle structure, color gradient array, + float offset array, GradientStyles, angle, gradientPercentage, and + gradientPercentage2. + + + + + Fills the gradient rectangle specified by rectangle structure, color gradient array, + float offset array, GradientStyles, angle, gradientPercentage, and + gradientPercentage2. + + + + + Fills the glass gradient rectangle specified by rectangle structure, color, color, + color, color, and gradient percentage. + + + + + Fills the office glass gradient rectangle specified by rectangle structure, color, + color, color, color, and gradientPercentage and gradientPercentage2. + + + + + Fills the vista gradient rectangle specified by rectangle structure, color, color, + color, color, gradient percentage, and gradientPercentage2. + + + + + Fills the gel gradient rectangle specified by rectangle structure, color, color, and + gradientPercentage. + + + + + Fills the interior of a polygon defined by an array of points specified by + Point structures and + color. + + + + + Fills the interior of a polygon defined by color and an array of points specified + by Point structures. + + + + + Fills the interior of a polygon defined by brush and an array of points specified + by Point structures. + + + + + Draws a round rectangle specified by Rectangle structure, color, float borderWidth, + and radius in pixels. + + + + + Translates the local geometric transformation of this TextureBrush object by + the specified dimensions. This method prepends the translation to the + transformation. + + + + + Translates the local geometric transformation of this TextureBrush object by the + specified dimensions. This method prepends the translation to the + transformation. + + + + + Rotates the local geometric transformation by the specified angle. This method + prepends the rotation to the transformation. + + + + + Resets the + world transformation matrix of this Graphics to the identity matrix. + + + + + Scales the world transformation matrix by the specified amount. + + + + Gets the clipping rectangle; the rectangle which needs redrawing. + + + Gets the current context device - graphics object. + + + Gets or sets the opacity level of the device context. + + + + Implements functionality for drawing GDI+ graphics. + + + + + Initializes a new instance of RadGdiGraphics class using GDI graphics context. + + + + + + Draws a border specified by rectangle structure, IBorderElement. + + + + + Disposes the object. + + + + + Disposes the GDI+ graphics context. + + + + + Gets or sets current GDI+ graphics context. + + + + Represents a border that is drawn on the screen. + + + + Virtual method that paints the primitive on the screen. It may be overridden by + the derived types. + + + + + Gets the border thickness. + + An instance of representing the border thickness. + + + + + Gets or sets the + Border style. The two possible values are SingleBorder and FourBorder. In the + single border case, all four sides share the same appearance although the entire + border may have gradient. In four border case, each of the four sides may differ in + appearance. For example, the left border may have different color, shadowcolor, and + width from the rest. When SingleBorder is chosen, you should use the general + properties such as width and color, and respectively, when the FourBorder style is + chosen you should use properties prefixed with the corresponding side, for example, + LeftColor, LeftWidth for the left side. + + + + + + + + + + Gets or sets float value indicating the width of the border + measured in pixels. It is only used when SingleBorder style is chosen for the + BoxStyle property which effectively means that all four borders share the same + width. + + + + + Gets or sets a float value width of the left border. This property + has effect only if FourBorders style is used in BoxStyle property and + affects only the width of the left border. + + + + + Gets or sets a float value width of the top border . This property + has effect only if FourBorders style is used in BoxStyle property, + and affects only the top border. + + + + + Gets or sets a float value width of the right border. This + property has effect only if FourBorders style is used in BoxStyle + property, and affects only the right border. + + + + + Gets or sets a float value width. This property has effect only if + FourBorders style is used in BoxStyle property, and affects only the + bottom border. + + + + + Gets and sets the left border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the left border. + + + + + Gets and sets the top border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the top border. + + + + + Gets and sets the right border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the right border. + + + + + Gets and sets the bottom border color. This applies only if FourBorders is chosen + for BoxStyle property, and affects only the bottom border. + + + + + Gets and sets the left shadow color. This option applies only if + fourBorders is chosen, and affects only the left border. + + + + + Gets and sets the top shadow color. This option applies only if + fourBorders is chosen, and affects only the top border. + + + + + Gets and sets the right shadow color. This option applies only if + fourBorders is chosen, and affects only the right border. + + + + + Gets and sets the bottom shadow color. This option applies only if + fourBorders is chosen, and affects only the bottom border. + + + + + Specifies whether the BorderPrimitive should draw the GraphicsPath defined by its Parent.Shape. If false, it will draw its bounding rectangle. + + + + + Specifies the style of dashed lines drawn with a border. + + + + + Specifies the pattern of dashed lines drawn when the BorderDashStyle is custom. + + + + + Gets the border offset of the primitive. It effectively retrieves the upper-left + corner inside the primitive border. It takes into consideration the BoxStyle property + and possible different widths of the left and the upper side. + + + + Retrieves size of the combined bottom, right, upper, and left border. + + + Gets the horizontal width of the combined left and right border. + + + Gets the vertical width of the combined bottom and upper border. + + + Gets or sets gradient angle for linear gradient measured in degrees. + + + + Gets or sets gradient style. Possible styles are solid, linear, radial, glass, + office glass, gel, and vista. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, and vista gradients. This + is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + + Gets or sets color used by radial, glass, office glass, gel, and vista gradients. + This is one of the colors that are used in the gradient effect. + + + + Represents a check box primitive that is drawn on the screen. + + + + Gets or sets a value indicating the style of the check box primitive. + + + + + Gets or sets a value indicating whether to draw the background. + + + + + Gets or sets a value that determines whether the checkmark size is fixed to 8;8 pixels. + + + + + Gets or sets a value that determines the checkmark thickness. Use this property only when UseFixedCheckSize property is set to false. + + + + + Gets or sets a value that determines how the checkmark position in Indeterminate state will be adjusted vertical (in pixels). + + + + + Gets or sets a value that determines how the checkmark position in Indeterminate will be adjusted horizontal (in pixels). + + + + + Gets or sets a value that determines how the checkmark width in Indeterminate state will be adjusted (in pixels). + + + + + Gets or sets a value that determines how the checkmark height in Indeterminate state will be adjusted (in pixels). + + + + Represents an image that is drawn on the screen. + + + Draws the primitive on the screen. + + + + Gets or sets the flag controlling whether the image primitive fills up the available area horizontally + + + + + Gets or sets the flag controlling whether the image primitive fills up the available area vertically + + + + + Gets or sets the way ImagePrimitive will layout its image on the screen. + + + + + Gets or sets the desired size to be used when displaying the image. Works when ImageScalingMode is set to FitToSize. + + + + Gets or sets the image that is displayed. + + + + Gets the Image that will be painted on the screen, with settings such as Opacity and Flip applied. + + + + Gets or sets the image list index value of the displayed image. + + + Gets or sets the key accessor for the image in the ImageList. + + + Specifies whether the image should be taken from the SmallImageList or from the ImageList when the ImageIndex/ImageKey property is set. + + + + Gets or sets image scaling. Possible values are members of ImageScaling + enumeration: None and SizeToFit. + + + + Gets actual index. + + + Gets a value indicating whether the primitive has content. + + + + Gets or sets the transparent color for the image + + + + + Gets or sets the type of rotate/flip to be applied. + + + + + Represents text that is drawn on the screen. + Extends %BasePrimitive:Telerik.WinControls.Primitives.BasePrimitive%. + + + + + Draws the primitive on the screen. + + + + + Returns the text as a string. + + + + + Gets or sets the text rendering hint. + + + + + Gets or sets the text rendering hint used when this instance is disabled. + + + + + This property is used internally. + + + + + Gets or sets the displayed text. + + + + + Allow StretchHorizontally + + + + + Allow StretchVertically + + + + + Gets or sets a value indicating whether the additional label text is to be indicated by an ellipsis. + + + true if the additional label text is to be indicated by an ellipsis otherwise, false. Default value is true. + + + + + Includes the trailing space at the end of each line. By default the boundary rectangle returned by the Overload:System.Drawing.Graphics.MeasureString method excludes the space at the end of each line. Set this flag to include that space in measurement. + + + + + Gets or sets a value indicating whether the text should wrapped to the available layout rectangle. + + + true if the text should wrapped to the available layout rectangle otherwise, false. + + + + + Gets or sets a value indicating whether the control interprets an ampersand character (&) + in the control's Text property to be an access key prefix character. + + + true if the label doesn't display the ampersand character and underlines the character + after the ampersand in its displayed text and treats the underlined character as an access key; + otherwise, false if the ampersand character is displayed in the text of the control. + The default is true. + + + + + Gets or sets a value indicating whether if the keyboard accelerators are visible. + + + true if if the keyboard accelerators are visible otherwise, false. + + + + + Gets or sets the text orientation. Possible values are horizontal + and vertical. + + + + + Gets or sets whether the text will be flipped. + + + + + Gets or sets the text alignment. Possible values are included in + the ContentAlignment enumeration. + + + + + Gets a value indicating whether the primitive has content. + + + + + Gets or sets the shadow settings. + + + + + Gets an instance of the structure which contains information on how to render the text in this element + + + + + ComplexCondition evaluates two conditions related with a binary operator. + Inherits Condition + + + + + Defines a base abstract class that describes a condition which checks when to apply + a style rule. SimpleCondition evaluates when a property of an Element equals a + certain value. RoutedEventCondition evaluates if a routed event is currently + tunneling/bubbling through an Element. ComplexCondition evaluates two conditions + related with a binary operator. + + + + + Retrieves a value indicating whether to apply a style rule. + + + + + + + Retrieves a list of the affected properties of the current condition. + + + + + Retrieves a list of the affected events of the current condition. + + + + + Initializes a new instance of the ComplexCondition class. + + + + + Initializes a new instance of the ComplexCondition class from the first condition, + binary operator, and second condition. + + + + + + + + Evaluates the complex condition. + + + + + + + Retrives a string representation of the ComplexCondition class. + + + + + + Gets or sets the first condition. + + + + + Gets or sets the binary operator to be used for evaluating the condition. + + + + + Gets or sets the second condition. + + + + + A binary opeartor used by the CompolexCondition class. + + + + + Indicates conjunction. + + + + + Indicates disjunction. + + + + + Indicates exclusive or. + + + + + See BinaryOperator, + Condition + + + + + + + + + + + + + + + SimpleCondition evaluates when a property of an Element equals a certain value. + + + + + Initializes a new instance of the SimpleCondition class. + + + + + + Initializes a new instance of the SimpleCondition class from the setting to check, and the + unary operator to use. + + + + + + + Initializes a new instance of the SimpleCondition class from the property, value and unary operator + + + + + Initializes a new instance of the SimpleCondition class from the property and value + + + + + Evaluates the target RadElement using the unary operator. + + + + + + + Retrieves the string representation of the current instance. + + + + + + Gets or sets the unary operator of the simple condition. + + + + + Gets or sets the setting of the current property. + + + + + Represents a class selector. Class selectors are used to apply the same + customization to all elements that belong to the same class. This + behavior is very similar to that of the CSS class selectors. + + + + + Represents a base class for other selectors. telerik presentation framework + selectors are similar to CSS selectors. + + + + Represents a base class for the HierarchicalSelector class. + Selectors in telerik presentation framework are very similar to CSS + selectors. + + + Exposes methods and properties required for a general selector. + Selectors in telerik presentation framework are like CSS selectors. + + + + Gets value indicating whether the selector applies to the specified element + + + + + + + Gets value indicating whether the selector applies to the specified element, without checking conditions that apply to properties of the element. + + + + + + Retrieves an array of selected elements of the element given as an + argument. + + + + Method supports obsolete theming infrastructure + + + + + + Applies the property settings to the given element. Method supports obsolete theming infrastructure. + + + + Gets value indicating whether the selector Equals to the specified selector + + + + + + + Method supports obsolete theming infrastructure. + If HasApplyCondition returns true, this method should add the RadProperties that the selector depends, so style manager + can refresh afected element by the selector selector, when property changes + + + + + Gets a value indicating whether a condition has been applied. + + + + Gets or sets the child selector. + + + + + Selector Key + + + + Retrieves a value indicating whether the customization should be + un-applied to the given element.. + + + Retrieves a value indicating whether value is set for the element. + + + Gets or sets the Condition upon which to apply the customization. + + + Gets or sets the condition upon which to un-apply the customization. + + + Gets or sets a value indicating whether auto-un-apply is on or off. + + + Gets or sets a value indicating whether the current selector is the active one in style builder + + + Gets a value indicating whether the an apply condition is set. + + + Retrieves the selected elements of the given element. + + + Initializes a new instance of the class selector class. + + + + Initializes a new instance of the class selector class using string for the class + name. + + + + Gets or sets a value indicating the class name. + + + + Represents a name selector. Name selectors are used to apply customization to the + element having the specified name. This behavior is very similar to that of CSS id + selectors. + + + + Initializes a new instance of the NameSelector class. + + + + Initializes a new instance of the NameSelector class using the name of the + element. + + + + + Gets or sets the element's name. Customization is applied only to the element + having this name. + + + + + Initializes a new instance of the SelectorCollection class. + + + + + Initializes a new instance of the SelectorCollection class. + + + + + Represents a type selector. Type selectors are used to apply the same + customization to all elements of the same type. Behavior is very similar to that + of the CSS type selectors. + + + + Initializes a new instance of the TypeSelector class. + + + + Initializes a new instance of the TypeSelector class using the type that will be + affected. + + + + Gets or sets the element type that will be affected by the Type selector. + + + + Gets or sets value corresponding to the VisualState of the item that the selector targets + + + + + Gets the Color defined for the current element. + + + + + + + Sets the specified element as the "Current" for painting. + + + True if the element may be painted (there is a theme part defined for it), false otherwise. + + + + Paints the current element (previously specified by the SetCurrentElement method) + on the provided graphics surface, within the desired bounds. + + + + + + + Invalidates all opened forms upon a user-triggered change in this class. + + + + + closes all currently opened HTheme handles + + + + + Looks-up a HTheme handle. + + + + + + + Used internally by the framework to determine whether we just want to skip TPF's drawing. + + + + + Used to instruct the system skin painting mechanism that a custom painting will be performed + in the PaintElementSkin method. + + + + + Gets the currently attached element. + + + + + Returns true on Windows Vista or newer operating systems; otherwise, false. + + + + + Determines whether system skins will be applied on RadControls + + + + + Gets the only instance of this manager. + + + + + Mode is inherited by the parent chain. + + + + + Only direct element can use skins, value cannot be used for inheritance + + + + + The element and all its descendants may use skins. + + + + + Only direct element is forbidden to use skins, its children can compose this value up from the parent chain. + + + + + Element and all its descendants are forbidden to use system skins. + + + + + Contains definitions for the MS Windows Vista Aero theme. + + + + + Vista comboboxes + + + + + Vista DateTimePickers + + + + + Vista TextBoxes + + + + + Vista Headers + + + + + Vista Listboxes + + + + + Vista ListViews + + + + + Vista Flyout + + + + + Vista Flyout + + + + + Defines the possible formats used when serializing an archive package. + + + + + Binary format. + + + + + XML format. + + + + + Decompresses the stream using Binary format. + + + + + + + Decompresses the stream in the provided file using Binary format. + + + + + + + Gets the default format for this package. + + + + + Gets or sets the format used to persist the package. + + + + + Gets the list which contains the streams of this package. + + + + + Encapsulates information for a single stream within a zipped stream. + + + + + Gets or sets the context associated with the archive. + + + + + Gets the raw bytes of the underlying stream. + + + + + Gets or sets the already zipped raw bytes of the underlying stream. + + + + + Gets the count of the raw bytes that form the stream. + + + + + Gets or sets the name of this archive. + + + + + Gets the information about the format of the underlying stream. + + + + + Represents an archive package where each stream is a compressed XmlTheme. + + + + + Gets all the themes that reside within this package. + + + + + + An archived stream, which persists a XmlTheme instance. + + + + + Defines the types of registrations of a StyleSheet in the ThemeResolutionService. + + + + + Implements whether an instances of a class need validation after theme + deserialization. + + + + + Initializes a new instance of the RadStylesheetRelation class. + + + + + Determines whether the specified relation is equal to this one. + + + + + + + Gets or sets a value indicating the builder registration type. + + + + + Gets or sets a string value indicating the control type. + + + + + Gets or sets a string value indicating the element type. + + + + + Gets or sets a value indicating the control name. + + + + + Gets or sets a string value indicating the element name. + + + + + Marker attribute - informs StyleXmlSerializer that property should be serialized as an attribute, when serializing + RadControl style + + + + + Serializes components to XML, using the same rules that apply in Code Dom serialization, in VS designer. + + + + + Constructs new instance of the class, providing extended properties serialization information + + Extends the properties serialization information. + + + + Constructs new instance of the class, providing extended serialization information. + + Dictionary to use that maps type names to XML element names. Keys of the dictionary entries should be type full names. Values should correspond to the type instances. + Extends the properties serialization information. + + + + if Reader is positioned at an element that is a collection, reads the collection items. + + + + + + + if Reader is positioned at an element that is a collection, reads the collection items. + + + object that owns the property (collection) currently deserialized + + + + + if Reader is positioned at an element that is a collection, reads the collection items. + + + object that owns the property (collection) currently deserialized + + + + + + Reads the collection items if reader is positioned on an element that is a collection. + + + + + + property used to match objects in collection + + + + Reads the collection items if reader is positioned on an element that is a collection. + + + + + + property used to match objects in collection + + + + + if Reader is positioned at an element that is a collection, reads the collection items. + + + property used to match objects in collection + + + + + States whether the list specified by toRead should not be cleared before reading + + + + Matches the instance of the element by an attribute value and then deserializes its properties. + If the instance is not found in existingInstancesToMatch, + new instance of type instanceType will be created and added to existingInstancesToMatch list. + + + + + + + the list with existing instances + index of the element if found in existingInstanceToMatch + + + + Reads properties of an object and subobject the reader is currently + positioned on. + + Xml reader instance, positioned on the element to read. + object instance to be processed + + + + Reads properties of an object and subobject the reader is currently + positioned on. + + Xml reader instance, positioned on the element to read. + parent object instance, null if there is no parent object information + object instance to be processed + + + + Override to provide alternative deserialization of objects. + + + + value indicating whether the object should be processed any further by serializer + + + + Deserializes a specified property of an object + + Xml reader, positioned on the element corresponding to the property to deserialize + Property descriptor of the property to deserialize + Object that owns the property to deserialize + + + + Override to provide custom processing of collection being deserialized + + + + + + True if the list does not require further processing by the deserializer, False to use the default deserialization + + + + Serializes the given object using the specified XmlWriter. + + + + + + + Provides logic to determine whether property value should be serialized. + + + ShouldSerialize value resolution is as follows: + + 1. ComponentSerializationInfo.SerializeDefaultValues + 2. overwriteMetadata contains attribute DesignerSerializationVisibilityAttribute.Content + 3. property.ShouldSerialize + + + + property to serialize + collection of extra serialization attributes for the property, corresponding to ComponentSerializationInfo + value indicating whether property value should be serialized + + + + Gets or sets value indicating whether the serializer will search all domain assemblies for a specified type + (by FullName) or will search only assemblies related to telerik + + + + + Utility class for Design - Time VisualStudio.NET project management. + + + + + Represents a property setting. Each property of Telerik controls can be + serialized and deserialized through an instance of this class. The + XMLPropertySetting instance describes the affected control, its property, and + the current value. XmlPropertySetting is very similar to CSS style properties. + + + + + Deserializes the property given as a string. For example, + Telerik.WinControls.VisualElement.ForeColor. + + + + + + + Deserializes the property given as a string. For example, + Telerik.WinControls.VisualElement.ForeColor. + + + + + + + Serializes the given dependency property with the given value. + + + + + + + + Deserializes the given dependency property with the given value. + + + + + + + + Retrieves a string representation of the class. + + + + + + Retrieves the name of the property. + + + + + + Retrieves the deserialized property. + + + + + + Gets or sets a string value indicating the property. + For example, Telerik.WinControls.VisualElement.ForeColor. + + + + + Gets or sets an object value indicating the value of the property. For example, + the value of Telerik.WinControls.VisualElement.ForeColor property + could be "navy" or "128, 0, 255, 63". + + + Here is how XmlPropertySetting determines whether to serialize Value or ValueString property when used in + ThemeComponent with CodeDom serialization. + + If the property belongs to an object from System, Telerik.WinControl or Telerik.WinCotnrols.UI assembly + then Value will be serialized (the actual object). For values that are defined in other assemblies ValueString + will be serialized. Tthis is Value, serialized as string using the TypeConverter specified by the corresponing RadProperty. + This is important for late-binding for types declared in different assemblies: egg. Docking + Otherwise a problem will occur when adding a ThemeComponent on the Form in a project which does not + reference Docking or Grid, etc, or custom controls assembly. + + For xml serializtion, property serialize always as string using the TypeConverter specified by the corresponing RadProperty. + + + + + Gets or sets the value serialized to string using the corresponding property TypeConverter. Generally used in rear cases by CodeDom + Serializer, if theme is serializaed to CodeDom + + + + + Represents + + + + + Represents a class selector that can be serialized and deserialized. + Telerik class selectors are very similar to CSS class selectors. + + + + + Initializes a new instance of the XmlClassSelector class. + + + + + Initializes a new instance of the XmlClassSelector class using an element + given as a string. + + + + + + Retrieves the string representation of the class. + + + + + + Retrieves a boolean value indicating whether this and the argument are equal. + + + + + + + Serves as a hash function for the XmlClassSelector type. + + + + + + Gets or sets a string value indicating the class. + + + + + Represents a serializable correspodence to the ComplexCondtion class. + + + + + Represents a serializable condition. + + + + + Build the expression string. + + + + + + Deserializes the condition. + + + + + + Deserializes the properties for a given condition. + + + + + + Creates a new instance of the Condition class. + + + + + + Compares two XmlComplexCondtion(s) for equality. + + + + + + + Retrieves a hash code for the current instance. + + + + + + Gets or sets a value indicating the first condition. + + + + + Gets or sets a value indicating the binary operator for the condition. + + + + + Gets or sets a value indicating the second condition. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Represents a group of property settings. + + + + + Retrieves the string representation of the instance. + + + + + + Determines whether the BasedOn property should be serialized. + + + + + + Gets or sets the collection of properties. + + + + + Gets or sets the collection of selectors. + + + + + Retrieve the name of the group. + + + + + Gets or sets value indicating the key of a repository item which this group is based on. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + + + + + + Represents a base class for the XML serialization converters. + + + + + + + + + + + + + + Gets or sets value indicating the key of the group uised to identfy the group when referenced + by other groups when basedOn is specified. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of . + + + + + + + Initializes a new instance of . + + + + + + + Initializes a new instance of based on another . + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Represents a serializable correspondence to the SimpleCondtion class. + + + + + Compares two instances for equality. + + + + + + + Gets or sets a value indicating the UnaryOperator used in the condition. + + + + + Gets or sets the XML property setting for the instance. + + + + + Gets value indicating the location of the theme file that the XmlStyleSheet has been loaded from. + + + + + Represents a registration for the Style Builder. The class is responsible + for the serialization and deserialization of a group of telerik controls. + + + + + Initializes a new instance of the XmlStyleBuilderRegistration class. + + + + + Initializes a new instance of the XmlStyleBuilderRegistration class + from xml style sheet, control type, and element type. + + + + + + + + Retrieves the style builder registration. + + + + + + Gets or sets a string value indicating the builder type. + + + + + Gets or sets a value indicating the xml builder data. + + + + + Represents a theme for a telerik control. Themes can be serialized and + deserialized, thus saving and loading the theme for a given control. + XmlTheme implements IXmlSerializable which provides custom formatting for + XML serialization and deserialization. + + Removed the Serializable attribute since many of the classes used in this class are also not serializable. + This causes the deserialization of the theme to fail when requested in the Visual Studio designer from the + theme components context menu. + [Serializable] + + + + Initializes a new instance of the XmlTheme class. + + + + + Initializes a new instance of the XmlTheme class from XmlStyleSheet, + control type, and element type. + + + + + + + + Loads a theme from a System.IO.Stream instance. + + + + + + + Load a XML theme from a TextReader. + + + + + + + Loads a theme from a XML reader. + + + + + + + Saves the theme to a XMLWriter. + + + + + + Retrieves the serialization string of the given type. + + + + + + + Deserializes the provided deserialization string. + + + + + + + Get the StyleRepository associated with this theme. + + StyleReposity contains named lists of PropertySettings, reffered by Key property, that can be inherited by the PropertySettingGroups of this theme. + This is done by associating BsedOn property of the property setting group with PropertySettings list key. + Since each theme can have only one repository, when different XmlTheme are registered with repositories for the same theme + the repositories are merged. If a PropertySettings list with the same Key is defined in several XmlTheme repository instances, the last laoded one overrides + any existing list. + + + + + + Gets value indicating whether this XmlTheme defines StyleRepository + + + + + Gets or sets a string value indicating the theme name. + + + + + Gets or sets the Builder Registration for the theme. Each builder registration + corresponds to a theme for single telerik control. + + + + + Gets or sets value corresponding to the VisualState of the item that the selector targets + + + + + Class used by RadThemeManager to recognize classes that load themes from resources in a class library + + + + + This method is used internally. + + + + + Gets the ThemeName of the theme component + + + + + this class is used internally. + + + + + Combines ThemeRoleName with state names using "." as delimiter and sets the result to AttachedElement.Class + + + + + + + Combines state names, using stateDelimiter Character. + + + Egg. combining "Selected" and "MouseOver" gives "Selected.MouseOver"; + combining "" and "MouseOver" gives "MouseOver" + + + + + + + + Represents event data for the + + + + + Represents the method that will handle a ThemeChanged event. + + + Initializes the event sender. + + + Initializes the %event argument:ThemeChangedEventArgs%. + + + + + A Class that represents storage for themes in an application that contains + RadControls. + + + + A theme consists of one or more + StyleSheet objects, and one or more + StyleSheetRelation objects. + + + The style sheet object defines the appearance + and/or certain aspects of behavior of one RadControl or + RadItem. + + StyleSheetRelation objects contain data that maps a control + and a certain StyleSheet. + Theme.ThemeName is used by RadControl to + automatically query ThemeResolutionService, upon + Initialize and retrieve its StyleSheet. Use the + API of this class to register, un-register, query themes storage for specific + themes by attributes like Name, certain relations, etc. + + + + + Returns a previously loaded font by given font name. + + The name of font. + The FontFamily or null if font with given name is not loaded. + + + + Call to subscribe for theme change event, for the specified control theme class name. Note the event may be fired from another thread + + + + + + Call to unsubscribe for theme change event. + + + + + + Gets a list of all registered themes. + + + + + + Gets any themes registered for a specific control by control type name or control name. + + + + + + + Get previously registered theme by theme name. + + + + + + + Applies the specified ThemeName to all RadControls that are children of the specified Control and its child Controls + + + + + + + Loads a theme package, stored in the provided file. + + + + + + + Loads a theme package stored in the provided file. + + + True to throw an exception if it occurs, false otherwise. + + + + + Loads a theme package, stored in the provided embedded resource. + The calling assembly is used to read the manifest resource stream. + + + + + + + Loads a theme package from an embedded resource in the specified assembly. + + + + + Loads a theme package stored in the provided embedded resource. + + + True to throw an exception if it occurs, false otherwise. + + + + Registers theme from a file or resource that contains a XML-serialized Theme object. + The Visual Style Builder application for example is capable of designing and serializing + themes. Theme files generally contain Theme with one or several style sheets each assigned a + registration that defines which RadControl and/or RadElment the style sheet applies. + + + + + + + Registers theme from a file or resource that contains a XML-serialized Theme object. + The Visual Style Builder application for example is capable of designing and serializing + themes. Theme files generally contain Theme with one or several style sheets each assigned a + registration that defines which RadControl and/or RadElment the style sheet applies. + + + + + + + + Registers theme from a file or resource that contains a XML-serialized Theme object. + The Visual Style Builder application for example is capable of designing and serializing + themes. Theme files generally contain Theme with one or several style sheets each assigned a + registration that defines which RadControl and/or RadElment the style sheet applies. + + + + + + + Suspends the ThemeChange event. This method is used internally. + + + + + Resumes the ThemeChange event. This method is used internally. + + + + + Resumes the ThemeChange event. This method is used internally. + + Determines whether to fire the ThemeChanged event. + + + + Creates and registers an empty Theme if one is not already registered. + + + + + + + Clears all stylesheets registered previously with the themeName specified. + + + + + + Gets all StyleSheets registered under a theme name. + + + + + + + Registers a StyleSheet found in styleBuilderRegistration using also the registration details specified under the theme name specified. + + + + + + + Registers a StyleBuilder for specific type of controls and specific type of elements under the name given. + + + + + + + + + Removes an instance of the class + from the dictionaries with registered style builders. + + The instance to remove. + + + + Gets or sets value indicating the theme name that will be used by all controls in the application. + + + If the value of this property is null or empty each control will be assigned a theme, corresponding on the + property of the control. Otherwise the ThemeName property will be disregarded. + If a specific control in the application has no theme registered with the name specified by ApplicationThemeName, it will be + assigned its ControlDefault theme name. + + + + + Determines whether animations are allowed across entire application. + + + + + "ControlDefault" theme name + + + + + Represents a property settings collection. Property settings are very + similar to CSS style properties. + + + + + Gets or sets the StyleBuilder instance. + + + + + Gets the name of the theme for which StyleBuilder is required. + + + + + + A collection that stores objects. + + + + + + + Initializes a new instance of the . + + + + + + + Initializes a new instance of the based on another . + + + + + A from which the contents are copied + + + + + + Initializes a new instance of containing any array of objects. + + + + + A array of objects with which to intialize the collection + + + + + Adds a with the specified value to the + . + + The to add. + + The index at which the new element was inserted. + + + + + Copies the elements of an array to the end of the . + + + An array of type containing the objects to add to the collection. + + + None. + + + + + Copies the elements of an IList of RadElements to the end of the . + + + An List of type containing the objects to add to the collection. + + + None. + + + + + + Adds the contents of another to the end of the collection. + + + + A containing the objects to add to the collection. + + + None. + + + + + Gets a value indicating whether the + contains the specified . + + The to locate. + + if the is contained in the collection; + otherwise, . + + + + + Copies the values to a one-dimensional instance at the + specified index. + + The one-dimensional that is the destination of the values copied from . + The index in where copying begins. + + None. + + is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . + is . + is less than 's lowbound. + + + + Returns the index of a in + the . + + The to locate. + + The index of the of in the + , if found; otherwise, -1. + + + + + Inserts a into the at the specified index. + + The zero-based index where should be inserted. + The to insert. + None. + + + + Returns an enumerator that can iterate through + the . + + None. + + + + Removes a specific from the + . + + The to remove from the . + None. + is not found in the Collection. + + + + Sorts the elements in the entire using the IComparable implementation of each element. + + + + + Sorts the elements in the entire using the specified comparer. + + The IComparer implementation to use when comparing elements. + + + + Sorts the elements in a range of elements in using the specified comparer. + + The zero-based starting index of the range to sort. + The length of the range to sort. + The IComparer implementation to use when comparing elements. + + + + Moves the element at position a given position to a new position + + The zero-based index of the element to move + The zero-based index of the position where the element is to be placed + + + + Represents the entry at the specified index of the . + + The zero-based index of the entry to locate in the collection. + + The entry at the specified index of the collection. + + is outside the valid range of indexes for the collection. + + + + Provides XmlSerialization parsing for ColorBlend extention and + calculates color-blending values for color values of PropertySetting and AnimatedPropertySettings. + + + + + + + IValueProvider GetValue implementation + + + + + + Gets the original Color value + + + + + Gets value corresponding to the name of the ThemeParameter used for color blending calculations + + + + + Instances of this type are used by to provide information used to control + XML of properties and sub-objets. + + + + + Gets a collection of attributes for properties that would override the original designer serialization + metadata for these properties + + + + + Gets or sets value indicating whether the serializer will use the serialization visibility attributes + of the properties of the serialized objects or only those found in + + + + + Gets or sets value indincating whether the serializer will force serialization of properties, disregarding + the values of the DefaultValue attribute or ShouldSerialize method + + + + + Attribute for telerik theme serialization. + + + + + Base class for all block transformations. + + + + + Defines the basic operations of the cryptographic or compression transformations. + + + + + Creates transformation header to be written into the output stream. + + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets transformation header (if required). + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Releases the resources used by the current instance of the ZipArchive class. + + + + + Creates transformation header to be written into the output stream. + + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Validates parameters of the input buffer. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + Indicates whether buffer block size should be validated. Should be true for the TransformBlock and false for the TransformFinalBlock. + Indicates whether count can be zero. + + + + Validates parameters of the transform operation. + + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + Indicates whether input count can be zero. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets transformation header (if required). + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Gets or sets value which indicates whether the transformation uses + input buffer of the fixed size. + + + + + Implements Adler-32 checksum algorithm. + + + + + Interface which must be implemented by all implementations of the checksum algorithm. + + + + + Calculate checksum for the specified region of the input byte array. + + Checksum to update. + The input for which to compute the checksum. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + Updated checksum. + + + + Base for modulo arithmetic (largest prime smaller than 65536). + + + + + Number of iterations we can safely do before applying the modulo. + + + + + Calculate checksum for the specified region of the input byte array. + + Checksum to update. + The input for which to compute the checksum. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + Updated checksum. + + + + Implements CRC-32 checksum algorithm. + + + + + Calculate checksum for the specified region of the input byte array. + + Checksum to update. + The input for which to compute the checksum. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + Updated checksum. + + + + Specifies values that indicate compression method. + + + + + The file is stored (no compression). + + + + + The file is Deflated. + + + + + The file is compressed using LZMA algorithm. + + + + + Represents stream which allows read/write compressed information from/to given input stream. + + + + + Operational stream. Base class for cryptographic and compression streams. + + + + + Initializes a new instance of the OperationStream class. + + The base input/output stream. + Stream operational mode. + Specified mode is not allowed for the given stream. + + + + Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. + + + + + Clears all buffers for this stream and causes any buffered data to be written to the underlying device. + + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the + values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The associated with + current object does not match the underlying stream. + For example, this exception is thrown when using with an underlying stream that is write only. + The parameter is less than zero.-or- The parameter is less than zero. + The sum of the and parameters is larger than the length of the buffer. + + + + Sets the position within the current stream. + + A byte offset relative to the origin parameter. + A value of type SeekOrigin indicating the reference point used to obtain the new position. + The new position within the current stream. + + + + Sets the length of the current stream. + + The desired length of the current stream in bytes. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Validate read/write operation parameters. + + Operation buffer. + Offset. + Count. + Indicates whether count can be zero. + + + Updates the underlying data source or repository with the current state of the buffer, then clears the buffer. + The current stream is not writable.-or- The final block has already been transformed. + + + + Ensure that current stream is not disposed. + + + + + Releases the unmanaged resources used by the Stream and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Initialize internal buffers. + + + + + Initialize transformation. + + + + + Read transformation header. + + + + + Write transformation header. + + + + + Gets a value indicating whether the current stream supports reading. + + + + + Gets a value indicating whether the current stream supports seeking. + + + + + Gets a value indicating whether the current stream supports writing. + + + + Gets a value which indicates whether the final buffer block has been written/read to/from the underlying stream. + true if the final block has been flushed or end of underlying stream is reached; otherwise, false. + + + + Gets the length in bytes of the stream. + + + + + Gets or sets the position within the current stream. + + + + + Gets value which specify total plain bytes count (not-compressed and not-encrypted). + + + + + Gets value which specify total transformed bytes count (compressed or encrypted). + + + + + Gets input stream. + + + + + Gets stream mode. + + + + + Gets or sets value which indicates whether this stream is disposed already. + + + + + Gets or sets block transformation is used for read/write operations. + + + + + Initializes a new instance of the CompressedStream class. + + The base input/output stream. + Stream operational mode. + Compression settings. + Specified mode is not allowed for the given stream. + + + + Initializes a new instance of the CompressedStream class. + + The base input/output stream. + Stream operational mode. + Compression settings. + Indicates whether the CRC32 (true) or Adler32 (false) checksum algorithm will be used. + Encryption settings. + Specified mode is not allowed for the given stream. + + + + Initializes a new instance of the CompressedStream class. + + The base input/output stream. + Stream operational mode. + Compression algorithm. + Checksum algorithm. + Specified mode is not allowed for the given stream. + + + + Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. + + An array of bytes. When this method returns, the buffer contains the specified byte array with the + values between offset and (offset + count - 1) replaced by the bytes read from the current source. + The zero-based byte offset in buffer at which to begin storing the data read from the current stream. + The maximum number of bytes to be read from the current stream. + The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many + bytes are not currently available, or zero (0) if the end of the stream has been reached. + The associated with + current object does not match the underlying stream. + For example, this exception is thrown when using with an underlying stream that is write only. + The parameter is less than zero.-or- The parameter is less than zero. + The sum of the and parameters is larger than the length of the buffer. + + + + Sets the length of the current stream. + + The desired length of the current stream in bytes. + + + + Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. + + An array of bytes. This method copies count bytes from buffer to the current stream. + The zero-based byte offset in buffer at which to begin copying bytes to the current stream. + The number of bytes to be written to the current stream. + + + + Releases the unmanaged resources used by the Stream and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Initialize compressed stream. + + The base input/output stream. + Compression algorithm. + Checksum algorithm. + + + + Event occurs when calculation of the checksum for this stream is completed. + + + + + Gets checksum calculated for this stream starting from + the first read/write operation and up to the Flush call. + + + + + Gets the compressed size of the stream. + + + + + Gets or sets the checksum algorithm will be used during compression-decompression. + + + + + Base class for the compression settings. + + + + + Copy settings from the given base settings. + + Base settings to copy from. + + + + Prepare settings for usage in zip archive entries. + + Central directory header. + + + + Called when property value is changed. + + Property name. + + + + Occurs when a property value changes. + + + + + Gets or sets compression method. + + + + + Represents base class for all compression and decompression functionality. + + + + + Initializes a new instance of the CompressionTransformBase class. + + + + + Transforms the specified region of the input byte array and copies + the resulting transform to the specified region of the output byte array. + + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Transforms current input buffer. + + The final block flag. + True when output still available. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Specifies values for header type of the compressed stream. + + + + + Compressed stream does not contain a header. + + + + + Compressed stream is formatted in accordance with RFC 1950 + (ZLIB Compressed Data Format Specification version 3.3). + + + + + The compression level to be used for compression of data. + + + + + The data will be simply stored, + no compression should be performed. + + + + + Same as NoCompression. + + + + + The fastest but least effective compression. + + + + + A synonym for Fastest. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level with + a good balance of speed and compression efficiency. + + + + + A synonym for Optimal. + + + + + Pretty good compression. + + + + + Better compression than Level7. + + + + + The best compression, where best means + greatest reduction in size of the input data. + This is also the slowest compression. + + + + + A synonym for Best compression level. + + + + + Class which implements Deflate compression algorithm. + + + + + Interface which must be implemented by all implementations of the compression algorithm. + + + + + Creates a compressor object. + + A compressor object. + + + + Creates a decompressor object. + + A decompressor object. + + + + Initialize compression algorithm using given compression settings. + + Compression settings. + + + + Creates a compressor object. + + A compressor object. + + + + Creates a decompressor object. + + A decompressor object. + + + + Initialize compression algorithm using given compression settings. + + Compression settings. + + + + Represents a state of current block. + + + + + Block is not completed, need more input or more output. + + + + + Block flush performed. + + + + + Finish started, need only more output at next deflate. + + + + + Finish done, accept no more input or output. + + + + + Compressor which implements Deflate compression. + + + + + Represents base class for Deflate compression and decompression functionality. + + + + + Initializes a new instance of the DeflateTransformBase class. + + Deflate settings. + + + + The default number of window bits for the Deflate algorithm. + 15 is the maximum number of window bits for the Deflate algorithm (32K window). + + + + + Initializes a new instance of the DeflateCompressor class. + + Deflate settings. + + + + Creates RFC 1950 (ZLIB Compressed Data Format Specification version 3.3) header + to be written into the output stream. + + + + + Restore the heap property by moving down the tree starting at specified node, + exchanging a node with the smallest of its two sons if necessary, stopping + when the heap property is re-established (each father smaller than its two sons). + + The tree. + Index of node. + + + + Transforms current input buffer. + + The final block flag. + True when still output available. + + + + Scan a literal or distance tree to determine the frequencies of the codes + in the bit length tree. + + The tree. + Max code. + + + + Construct the Huffman tree for the bit lengths. + + The index of the last bit length code to send. + + + + Send the header for a block using dynamic Huffman trees: the counts, + the lengths of the bit length codes, the literal tree and the distance tree. + + Length of literal codes. + Length of distance codes. + Length of bit length codes. + + + + Send a literal or distance tree in compressed form, + using the codes in bit length tree. + + The tree. + Max code. + + + + Output a block of bytes on the stream. + + Buffer. + Start index. + Length. + + + + Save the match info and tally the frequency counts. + + Distance. + Length or unmatched char. + Return true if the current block must be flushed. + + + + Send the block data compressed using the given Huffman trees. + + Literal tree. + Distance tree. + + + + Flush the bit buffer and align the output on a byte boundary. + + + + + Copy a stored block, storing first the length + and its one's complement if requested. + + Buffer. + Length. + Should send the header. + + + + Send a stored block. + + Offset in window. + Length. + The flag of last block. + + + + Determine the best encoding for the current block: dynamic trees, static + trees or store, and output the encoded block. + + Offset in window. + Length. + The flag of last block. + + + + Fill the window if necessary. + + + + + Compress as much as possible from the input stream, return the current + block state. + This function does not perform lazy evaluation of matches and inserts + new strings in the dictionary only for unmatched strings or for short + matches. It is used only for the fast compression options. + + Flush flag. + Returns the current block state. + + + + Copy without compression as much as possible from the input buffer. + + Flush flag. + Returns the current block state. + + + + Same as above, but achieves better compression. We use a lazy + evaluation for matches: a match is finally adopted only if there is + no better match at the next window position. + + Flush flag. + Returns the current block state. + + + + Initialize the tree data structures. + + + + + Sets configuration parameters by the compression level. + + Compression level. + + + + Flush as much pending output as possible. + All deflate output goes through this function. + + + + + Read a new buffer from the current input stream, update + total number of bytes read. All deflate input goes through + this function. + + Buffer. + Start position in buffer. + Size. + + + + + Represents configuration of deflate algorithm. + + + + + Returns instance of Config class by the compression level. + + Compression level. + Instance of Config class. + + + + Use a faster search when the previous match is longer + than this reduce lazy search above this match length. + + + + + Attempt to find a better match only when the current match is + strictly smaller than this value. This mechanism is used only for + compression levels >= 4. For levels 1,2,3: MaxLazy is actually + MaxInsertLength (See DeflateFast). + Do not perform lazy search above this match length. + + + + + Quit search above this match length. + + + + + To speed up deflation, hash chains are never searched beyond this length. + A higher limit improves compression ratio but degrades the speed. + + + + + Represents constants for deflate compression. + + + + + Z-lib header: the deflate compression method. + + + + + Bit length codes must not exceed MaxBitLengthBits bits. + + + + + Repeat previous bit length 3-6 times (2 bits of repeat count). + + + + + Repeat a zero length 3-10 times (3 bits of repeat count). + + + + + Repeat a zero length 11-138 times (7 bits of repeat count). + + + + + Decompressor which implements Deflate compression. + + + + + Initializes a new instance of the DeflateDecompressor class. + + Deflate settings. + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + + Transforms current input buffer. + + The final block flag. + True when still output available. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Represents a state of decompressor process. + + + + + Represents a type of block in deflated data. + + + + + Compression settings of the Deflate method. + + + + + Initializes a new instance of the DeflateSettings class. + + + + + Copy settings from the given base settings. + + Base settings to copy from. + + + + Prepare settings for usage in zip archive entries. + + Central directory header. + + + + The compression level of deflate algorithm to be used for deflating by a CompressedStream. + + + + + Gets or sets compression stream header type. + + + + + Inflates data using a lookup table combined with a HuffmanTree. + + + + + Initializes static members of the InflateTree class. + + + + + Initializes a new instance of the InflateTree class. + + + + + Tries to get enough bits from input and try to decode them. + + Input buffer. + Next symbol or -1 when there is no enough bits in input. + + + + Calculate the huffman codes according to RFC 1951. + + Huffman codes. + + + + Represents input buffer for inflating data using Huffman coding. + + + + + Initializes a new instance of the InputBitsBuffer class. + + + + + Checks available bits in the bit buffer. + + Count of bits. + True if available. + + + + Gets available bits from buffer. + + Count of required bits. + Bits data. + + + + Read bytes to output buffer. + + Output buffer. + Offset. + Length. + Count of bytes which are read. + + + + Set current working buffer. + + Bytes buffer. + Offset. + Length. + + + + Skips bits in bit buffer. + + Count of bits to skip. + + + + Skips to the next byte boundary. + + + + + Gets 16 or more bits into bit buffer. + + Bit buffer. + + + + Available bits in bit buffer. + + + + + Available bytes. + + + + + Is input required. + + + + + Represents output window for inflating data using Huffman coding. + + + + + Initializes a new instance of the OutputWindow class. + + + + + Adds a byte to output window. + + Byte. + + + + Copies bytes within output window. + Moves backwards distance bytes and copy length bytes. + + Length. + Distance. + + + + Read bytes to output buffer. + + Output buffer. + Offset. + Length. + Count of bytes which are read. + + + + Reads bytes from input. + + InputBitsBuffer. + Length. + Count of read bytes. + + + + Gets available bytes count. + + + + + Gets free bytes count. + + + + + Represents Huffman static tree. + + + + + Initializes static members of the StaticTree class. + + + + + Initializes a new instance of the StaticTree class. + + + + + Static tree. + + + + + Extra bits for each code. + + + + + Base index for extra bits. + + + + + Max number of elements in the tree. + + + + + Max bit length for the codes. + + + + + Deflates data using Huffman coding. + + + + + Reverse the first specified bits of a code, + using straightforward code (a faster method would use a table). + + Value. + The length of bits to reverse. + Result of reverse. + + + + Map from a distance to a distance code. + + + No side effects. DistanceCode[256] and DistanceCode[257] are never used. + + + + + Construct one Huffman tree and assigns the code bit strings and lengths. + Update the total bit length for the current block. + + Deflate compressor. + + + + Generate the codes for a given tree and bit counts (which need not be optimal). + + The tree. + Max code. + Bit length count. + + + + Compute the optimal bit lengths for a tree and update the total bit length for the current block. + + Deflate compressor. + + + + The Optimization Data for LZMA match finder. + + + + + Represents the LZMA range encoder. + + + + + Class which implements Deflate compression algorithm. + + + + + Creates a compressor object. + + A compressor object. + + + + Creates a decompressor object. + + A decompressor object. + + + + Initialize compression algorithm using given compression settings. + + Compression settings. + + + + Compressor which implements LZMA compression. + + + + + Represents base class for LZMA compression and decompression functionality. + + + + + Initializes a new instance of the class. + + Settings. + + + + Initializes a new instance of the class. + + Settings. + + + + Creates transformation header to be written into the output stream. + + + + + Transforms current input buffer. + + The final block flag. + True when output still available. + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources + (true) on only unmanaged resources (false) should be released. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Decompressor which implements LZMA decompression algorithm. + + + + + Initializes a new instance of the class. + + Settings. + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Represents a state of decompressor process. + + + + + Specifies values for a type of the match finder for LZMA compression. + + + + + The match finder uses two bytes for the hash. + + + + + The match finder uses four bytes for the hash. + + + + + Compression settings of the Deflate method. + + + + + Initializes a new instance of the class. + + + + + Copy settings from the given base settings. + + Base settings to copy from. + + + + Prepare settings for usage in zip archive entries. + + Central directory header. + + + + Gets or sets dictionary size [0 - 27]. + Default value is 23 (8MB). + + + + + Gets or sets number of position state bits for LZMA [0 - 4]. + Default value is 2. + + + + + Gets or sets number of literal context bits for LZMA [0 - 8]. + Default value is 3. + + + + + Gets or sets number of literal position bits for LZMA [0 - 4]. + Default value is 3. + + + + + Gets or sets number of fast bytes [5 - 273]. + Default value is 32. + + + + + Gets or sets a type of the match finder. + + + + + Gets or sets length of the stream for compressing. + Used for single compressed streams only (not for ZIP archives). + Allows to avoid using the end of stream marker for compressed stream. + If it is set to -1, then the marker will be used. + + + + + Gets or sets length of the stream for decompressing. + + + + + Gets or sets a value which indicates whether + the compression stream should use zip header type. + + + + + Represents LZMA state for compressing and for decompressing. + + + + + Class which implements Store (no compression) algorithm. + + + + + Creates a compressor object. + + A compressor object. + + + + Creates a decompressor object. + + A decompressor object. + + + + Initialize compression algorithm using given compression settings. + + Compression settings. + + + + Compressor which implements Store compression. + + + + + Base class for the Store (no compression) transformation. + + + + + Initializes a new instance of the StoreTransformBase class. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Decompressor which implements Store compression. + + + + + Compression settings of the Store method. + + + + + Initializes a new instance of the StoreSettings class. + + + + + Platform independent manager. + + + + + Interface which provides platform-specific operations. + + + + + Creates temporary stream. + + Stream will be used for temporary operations. + + + + Deletes temporary stream. + + Stream to delete. + + + + Gets crypto provider initialized using given encryption settings. + + Encryption settings. + Crypto provider. + Specified crypto algorithm is not supported. + + + + Indicates whether specified encoding is supported for this platform. + + + + + + + Gets a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Gets default encoding for this platform. + + + + + Gets a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Creates temporary stream. + + Stream will be used for temporary operations. + + + + Deletes temporary stream. + + Stream to delete. + + + + Gets crypto provider initialized using given encryption settings. + + Encryption settings. + Crypto provider. + Specified crypto algorithm is not supported. + + + + Indicates whether specified encoding is supported for this platform. + + Encoding. + true if encoding is allowed in the ZIP file. + + + + Gets a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Gets default encoding for this platform. + + + + + Gets a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Cryptographic stream. Allows encrypt or decrypt information from the given input stream. + + + + + Initializes a new instance of the CryptoStream class. + + Input stream. + Stream operational mode. + Crypto provider. + Specified mode is not allowed for the given stream. + + + + Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. + + + + + Releases the unmanaged resources used by the Stream and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Crypto provider which implements traditional PKWARE encryption. + + + + + Interface which provides method to encrypt/decrypt data in the ZIP archive. + + + + + Creates an decryptor object. + + A decryptor object. + + + + Creates an encryptor object. + + An encryptor object. + + + + Initialize crypto provider using given encryption settings. + + Encryption settings. + + + + Creates an decryptor object. + + A decryptor object. + + + + Creates an encryptor object. + + + + + + Initialize crypto provider using given encryption settings. + + Encryption settings. + + + + Base class for the transformations which implements traditional PKWARE encryption/decryption. + + + + + Initializes a new instance of the DefaultCryptoTransformBase class. + + + + + Creates transformation header to be written into the output stream. + + + + + Initialize reading of the transformation header. + + + + + Process transformation header has been read. + + + + + Releases the unmanaged resources used by the transform and optionally releases the managed resources. + + Value which indicates whether both managed and unmanaged resources (true) on only unmanaged resources (false) should be released. + + + + Update encryption keys. + + Byte. + + + Gets a value indicating whether the current transform can be reused. + true if the current transform can be reused; otherwise, false. + + + Gets a value indicating whether multiple blocks can be transformed. + true if multiple blocks can be transformed; otherwise, false. + + + Gets the input block size. + The size of the input data blocks in bytes. + + + Gets the output block size. + The size of the output data blocks in bytes. + + + + Gets encoding byte. + + + + + Crypto transformation which implements traditional PKWARE decryption. + + + + + Initializes a new instance of the DefaultDecryptor class. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + + Encryption settings for the default cryptographic provider (traditional PKWARE encryption. + + + + + Base class for the encryption settings. + + + + + Called when property value is changed. + + Property name. + + + + Occurs when a property value changes. + + + + + Gets name of the algorithm will be used for encryption/decryption. + + + + + Initializes a new instance of the DefaultEncryptionSettings class. + + + + + Gets or sets password will be used for encryption/decryption. + + + + + Gets or sets last modification file date and time. + + + + + Crypto transformation which implements traditional PKWARE encryption. + + + + + Initializes a new instance of the DefaultEncryptor class. + + + + Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array. + The number of bytes written. + The input for which to compute the transform. + The offset into the input byte array from which to begin using data. + The number of bytes in the input byte array to use as data. + The output to which to write the transform. + The offset into the output byte array from which to begin writing data. + + + Transforms the specified region of the specified byte array. + The computed transform. + The input for which to compute the transform. + The offset into the byte array from which to begin using data. + The number of bytes in the byte array to use as data. + + + The exception that is thrown when a data stream is in an invalid format. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with a specified error message. + The error message that explains the reason for the exception. + + + Initializes a new instance of the class with a reference to the inner exception that is the cause of this exception. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + + Common interface for the data structures defined in the ZIP File Format Specification. + + + + + Read data from the binary reader. + + Binary reader to read data from. + true if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Represents the compression types. + + + + + This is the default compression type which uses the deflate algorithm. + + + + + This compression type uses the LZMA algorithm. + + + + + Represents the compression methods. + + + + + This is the default compression method. + + + + + This is the no-compression method. + + + + + This is the fastest compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is a custom compression method. + + + + + This is the the best compression method. + + + + + This is the the best compression method. + + + + + Represents a stream that can read from a compressed stream. + + + + + Initializes a new instance of the ZipInputStream class. + + + The stream that will be decompressed. + + + + + Reads a byte from the stream and advances the position within the stream + by one byte, or returns -1 if at the end of the stream. + The unsigned byte cast to an 32-bit integer, or -1 if at the end of the stream. + + + + + The stream that is decompressed. + + + + + Gets the uncompressed size of the stream. + + + + + Represents a stream that can write into a compressed stream. + + + + + Initializes a new instance of the ZipOutputStream class. + + + The stream that will be compressed. + + + + + Initializes a new instance of the ZipOutputStream class. + + + The stream that will be compressed. + + /// + The compression method. + + + + + Initializes a new instance of the ZipOutputStream class. + + + The stream that will be compressed. + + /// + The compression level. + + + + + Writes a byte to the current position in the stream and advances the + position within the stream by one byte. + + The byte to write to the stream. + + + + Create DeflateSettings for specified compression level. + + Compression level. + DeflateSettings. + + + + The stream that is decompressed. + + + + + Gets the uncompressed size of the stream. + + + + + Represents the ZipPackage class. + + + + + Represents a package of compressed files in the zip archive format. + + + + + Value that describes the type of action the zip archive can perform on entries. + + + + + Binary reader is used to read from working stream. + + + + + Binary writer is used to write to working stream. + + + + + Track whether Dispose has been called. + + + + + Encoding of the entry name. + + + + + Original archive stream. If this stream doesn't support seeking then + temporary working stream will be created. + + + + + Working archive stream. If original stream doesn't support seeking then + temporary working stream will be created. + + + + + True to leave the stream open after the ZipArchive object is disposed; otherwise, false. + + + + + Indicates whether the central directory have been read. + + + + + ZIP Archive End of Central Directory. + + + + + ZIP64 End of Central Directory Locator. + + + + + ZIP64 End of Central Directory Record. + + + + + ZIP entries. + + + + + Initializes a new instance of the ZipArchive class from the specified stream. + + The stream that contains the archive to be read. + + + + Initializes a new instance of the ZipArchive class. + + The stream that contains the archive to be read. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + True to leave the stream open after the ZipArchive object is disposed; otherwise, false. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter + only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + + + + Initializes a new instance of the ZipArchive class. + + The stream that contains the archive to be read. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + True to leave the stream open after the ZipArchive object is disposed; otherwise, false. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter + only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + Compression settings. + Encryption settings. + + + + Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. + + + + + Creates an empty entry that has the specified path and entry name in the zip archive. + + A path, relative to the root of the archive, that specifies the name of the entry to be created. + An empty entry in the zip archive. + The entry name is empty. + The entry name is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + Creates an empty entry that has the specified path and entry name in the zip archive. + + A path, relative to the root of the archive, that specifies the name of the entry to be created. + Compression settings. + An empty entry in the zip archive. + The entry name is empty. + The entry name is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + Releases the resources used by the current instance of the ZipArchive class. + + + + + Retrieves a wrapper for the specified entry in the zip archive. + + A path, relative to the root of the archive, that identifies the entry to retrieve. + A wrapper for the specified entry in the archive; null if the entry does not exist in the archive. + The entry name is empty. + The entry name is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + + Release the unmanaged resources used by the current instance of the ZipArchive class. + + True to leave the stream open after the ZipArchive object is disposed; otherwise, false. + + + + Called by the Dispose() and Finalize() methods to release the unmanaged + resources used by the current instance of the ZipArchive class, and optionally + finishes writing the archive and releases the managed resources. + + True to finish writing the archive and release unmanaged and managed resources; + false to release only unmanaged resources. + + + + Dispose streams. + + + + + Writes archive to the original stream. + + + + + Occurs when a property value changes. + + + + + Gets the collection of entries that are currently in the zip archive. + + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + + Gets entry name encoding. + + + + + Gets a value that describes the type of action the zip archive can perform on entries. + + + + + Gets compression settings. + + + + + Gets encryption settings. + + + + + Gets number of the disk. + + + + + Gets reader for the working stream. + + + + + Gets writer for the working stream. + + + + + Gets start of the central directory. + + + + + Initializes a new instance of the ZipPackage class from the specified stream. + + The stream that contains the archive to be read. + Mode. + + + + This method is used to create a ZipPackage from a stream. + + Stream. + ZipPackage instance. + + + + This method is used to create a ZipPackage with the passed file name. + + File name. + ZipPackage instance. + + + + Checks whether the stream that represents a zip file is actually a zip file. + + Stream. + True if the stream represents a zip file. + + + + Checks whether the file with the passed file name is actually a zip file. + + File name. + True if the file represents a zip file. + + + + Opens zip archive from the Stream. + + Stream. + ZipPackage instance. + + + + This method is used to open a ZipPackage with the passed file name. + + File name. + File access. + ZipPackage instance. + + + + Adds a file with the passed file name in the ZipPackage. + + File name. + + + + Adds a file with the passed file name in the ZipPackage. + + + + + Adds the files from the passed IEnumerable of file names in the ZipPackage. + + + + + Adds the files from the passed IEnumerable of file names in the ZipPackage. + + + + + Adds a file with the passed file name in the ZipPackage and associates it with the passed file name in zip. + + + + + Adds a file with the passed file name in the ZipPackage and associates it with the passed file name in zip. + + + + + Adds a file with the passed file name in the ZipPackage, associates it with the passed file name in zip and sets a date time for the entry. + + + + + Adds a file with the passed file name in the ZipPackage, associates it with the passed file name in zip and sets a date time for the entry. + + + + + Adds a stream in the ZipPackage and associates it with the passed file name in zip. + + Stream. + File name in zip archive. + + + + Adds a stream in the ZipPackage and associates it with the passed file name in zip. + + Stream. + File name in zip archive. + Compression type. + + + + Adds a stream in the ZipPackage, compresses it with the passed compress method, + associates it with the passed file name in zip and sets a date time for the entry. + + Stream. + File name in zip archive. + Compression level. + Date and time of file. + + + + Adds a stream in the ZipPackage and associates it with the passed file name in zip. + + Stream. + File name in zip archive. + Compression level. + Date and time of file. + Compression type. + + + + Closes the ZipPackage. + + If the parameter is set to true then closes the file. + + + + Gets the index of the entry in the list of entries of the ZipPackage. + + File name in zip archive. + Index of entry or -1 when the entry is not found. + + + + Removes the passed entry from the ZipPackage. + + + + + Gets the file name for the ZipPackage. + + + + + Gets the collection of entries that are currently in the zip archive. + + The zip archive does not support reading. + The zip archive has been disposed. + + + + Represents the ZipPackageEntry class. + + + + + Initializes a new instance of the ZipPackageEntry class. + + ZipArchiveEntry. + + + + Opens the entry from the zip archive. + + The stream that represents the contents of the entry. + + + + Deletes the entry. + + + + + Gets the file attributes for the entry. + + + + + Gets the compressed size for the entry. + + + + + Gets the file name in the ZipPackage for the entry. + + + + + Gets the uncompressed size for the entry. + + + + + Static class which provides access to the platform-specific settings for all + parts of the ZIP library. + + + + + Gets or sets platform manager. + + + + + Operational mode of the cryptographic and compression streams. + + + + + Read operation is allowed. + + + + + Write operation is allowed. + + + + + Represents header of the transformation. + The extra data precedes the transformed data which provides + some additional information about transformation (compression or encryption). + + + + + Initializes a new instance of the TransformationHeader class. + + + + + Gets or sets buffer to store header information. + + + + + Gets or sets number of byte to read. + + + + + Gets initialization data of the header. + + + + + Gets length of the transformation header. + + + + + Gets or sets the flag which indicates + that the compressed size should include the header size. + + + + + Platform manager which can be used with full version of the .NET Framework. + + + + + Initializes a new instance of the DotNetPlatformManager class. + + + + + Creates temporary stream. + + Stream will be used for temporary operations. + + + + Deletes temporary stream. + + Stream to delete. + + + + Gets crypto provider initialized using given encryption settings. + + Encryption settings. + Crypto provider. + Specified crypto algorithm is not supported. + + + + Indicates whether specified encoding is supported for this platform. + + Encoding. + true if encoding is allowed in the ZIP file. + + + + Gets a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Gets default encoding for this platform. + + + + + Gets a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization. + + + + + Gets or sets type of the temporary stream. The default value is TemporaryStreamType.Memory. + + + + + Type of the temporary stream. + + + + + The temporary stream represents temporary file in the file system. + + It allows manipulations with large archives and minimize memory consumption. + + + + The temporary stream represents data in the memory. + + It is the fastest way of the data manipulation. + + + + Provides static methods for creating, extracting, and opening zip archives. + + + + + Archives a file by compressing it and adding it to the zip archive. + + The zip archive to add the file to. + The path to the file to be archived. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. + The name of the entry to create in the zip archive. + New entry in archive. + + + + Archives a file by compressing it using the specified compression level and adding it to the zip archive. + + The zip archive to add the file to. + The path to the file to be archived. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. + The name of the entry to create in the zip archive. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + New entry in archive. + + + + Archives a file by compressing it using the specified compression settings and adding it to the zip archive. + + The zip archive to add the file to. + The path to the file to be archived. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. + The name of the entry to create in the zip archive. + Compression settings. + New entry in archive. + + + + Creates a zip archive that contains the files and directories from the specified directory. + + The path to the directory to be archived, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The path of the archive to be created, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + + + + Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level, and optionally includes the base directory. + + The path to the directory to be archived, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The path of the archive to be created, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + True to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory. + + + + Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level, and optionally includes the base directory. + + The path to the directory to be archived, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The path of the archive to be created, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + True to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + + + + Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression settings, and optionally includes the base directory. + + The path to the directory to be archived, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The path of the archive to be created, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + Compression settings. + True to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + + + + Extracts all the files in the specified zip archive to a directory on the file system. + + The path to the archive that is to be extracted. + The path to the directory in which to place the extracted files, + specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + + + + Extracts all the files in the specified zip archive to a directory on the file system and uses the specified character encoding for entry names. + + The path to the archive that is to be extracted. + The path to the directory in which to place the extracted files, + specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + The encoding to use when reading or writing entry names in this archive. + Specify a value for this parameter only when an encoding is required for interoperability with zip archive + tools and libraries that do not support UTF-8 encoding for entry names. + + + + Extracts all the files in the zip archive to a directory on the file system. + + The zip archive to extract files from. + The path to the directory to place the extracted files in. You can specify either a relative or an absolute path. A relative path is interpreted as relative to the current working directory. + + + + Extracts an entry in the zip archive to a file. + + The zip archive entry to extract a file from. + The path of the file to create from the contents + of the entry. You can specify either a relative or an absolute path. A relative path + is interpreted as relative to the current working directory. + + + + Extracts an entry in the zip archive to a file, and optionally overwrites an existing file that has the same name. + + The zip archive entry to extract a file from. + The path of the file to create from the contents + of the entry. You can specify either a relative or an absolute path. A relative path + is interpreted as relative to the current working directory. + True to overwrite an existing file that has the same name as the destination file; otherwise, false. + + + + Opens a zip archive at the specified path and in the specified mode. + + The path to the archive to open, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + One of the enumeration values that specifies the actions which are allowed on the entries in the opened archive. + The opened zip archive. + + + + Opens a zip archive at the specified path and in the specified mode. + + The path to the archive to open, specified as a relative or absolute path. A relative path is interpreted as relative to the current working directory. + One of the enumeration values that specifies the actions which are allowed on the entries in the opened archive. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + The opened zip archive. + + + + Opens a zip archive for reading at the specified path. + + The path to the archive to open, specified as a relative or absolute path. + A relative path is interpreted as relative to the current working directory. + The opened zip archive. + + + + Indicates whether specified directory is empty or not. + + Directory info. + True if directory is empty; otherwise - false. + + + + This method is used to copy the source stream to the destination stream. + + + + + + + Represents data descriptor record described in the + ZIP File Format Specification v6.3.3, #4.3.9. + + + + + Represents base fields of data descriptor record described in the + ZIP File Format Specification v6.3.3, #4.3.9. + + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets crc-32. + + + + + Gets or sets compressed size. + + + + + Gets or sets uncompressed size. + + + + + Data descriptor header signature. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Represents Zip64 end of central directory locator described in the + ZIP File Format Specification v6.3.3, #4.3.15. + + + + + Zip64 end of central directory locator signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets number of the disk with the + start of the zip64 end of + central directory. + + + + + Gets or sets relative offset of the zip64 + end of central directory record. + + + + + Gets or sets number of disks. + + + + + Represents Zip64 end of central directory record described in the + ZIP File Format Specification v6.3.3, #4.3.14. + + + + + Zip64 end of central directory record signature. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets size of zip64 end of central + directory record. + + + + + Gets or sets byte which indicates the ZIP specification version + supported by the software used to encode the file. + + + + + Gets or sets byte which indicates the compatibility + of the file attribute information. + + + + + Gets or sets version needed to extract. + + + + + Gets or sets number of this disk. + + + + + Gets or sets number of the disk with the start of the central directory. + + + + + Gets or sets total number of entries in the central directory on this disk. + + + + + Gets or sets total number of entries in the central directory. + + + + + Gets or sets size of the central directory. + + + + + Gets or sets offset of start of central directory with respect to the starting disk number. + + + + + Represents a compressed file within a zip archive. + + + + + Track whether Dispose has been called. + + + + + Initializes a new instance of the ZipArchiveEntry class. + + Zip archive. + Central directory header correspondent to this entry. + + + + Initializes a new instance of the ZipArchiveEntry class. + + Zip archive. + Entry name. + + + + Deletes the entry from the zip archive. + + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than Update. + The zip archive for this entry has been disposed. + + + + Releases the resources used by the current instance of the ZipArchiveEntry class. + + + + + Opens the entry from the zip archive. + + The stream that represents the contents of the entry. + The resulting stream depends on the zip archive mode. + If zip archive mode is then read-only stream without seeking support is returned (). + If zip archive mode is then write-only stream without seeking support is returned (). + If zip archive mode is then read/write stream which supports seeking is returned. + + The entry is already currently open for writing. + -or- + The entry has been deleted from the archive. + -or- + The archive for this entry was opened with the Create mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. + -or- + The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + + Checks entry integrity. + + Message will be thrown if entry don't pass integrity check. + True - if entry is OK; false - otherwise. + + + + Writes central directory header. + + + + + Called by the Dispose() and Finalize() methods to release the unmanaged + resources used by the current instance of the ZipArchive class, and optionally + finishes writing the archive and releases the managed resources. + + True to finish writing the archive and release unmanaged and managed resources; + false to release only unmanaged resources. + + + + Occurs when a property value changes. + + + + + The zip archive that the entry belongs to, or null if the entry has been deleted. + + + + + Gets compressed size of the entry in the zip archive. + + + + + Gets or sets external file attributes. + + + + + Gets the relative path of the entry in the zip archive. + + + + + Gets or sets the last time the entry in the zip archive was changed. + + + + + Gets the uncompressed size of the entry in the zip archive. + + + + + Gets the file name of the entry in the zip archive. + + + + + Gets or sets compression method. + + + + + Gets or sets offset of the compressed data. + + + + + Gets disk start number. + + + + + Gets or sets offset of the local header. + + + + + Gets temporary stream which contains uncompressed data for update. + + + + + Specifies values for interacting with zip archive entries. + + + + + Only creating new archive entries is permitted. + + + + + Only reading archive entries is permitted. + + + + + Both read and write operations are permitted for archive entries. + + + + + Provides common internal static methods. + + + + + Copy specified number of bytes from one stream to another. + + Input stream. + Output stream. + Number of bytes to copy. + + + + Converts .NET DateTime structure to the MS-DOS date-time. + + DateTime structure to convert. + Packed date-time. + + + + Gets compression algorithm which corresponds to the given compression settings. + + Compression settings to get algorithm for. + Compression algorithm. + Compression method is not supported. + + + + Gets compression settings for the specified compression method. + + Compression method to get settings for. + Base settings to copy parameters from. + Compression settings. + Compression method is not supported. + + + + Detect whether the given path string ends with directory separator char (i.e. given path represents directory). + + Path string. + True if path string ends with directory separator char; otherwise - false. + + + + Gets value which indicates whether specified compression method is supported. + + Compression method to check. + True - if compression method is supported; false - otherwise. + + + + Converts MS-DOS date-time to the .NET DateTime structure. + + Packed date-time to convert. + DataTime structure. + + + + Read specified number of bytes from the given stream to the buffer. + + Stream to read data from. + Buffer to write data to. + Number of bytes to read. + + + + Seek given stream backward to the data signature. + + Stream to seek. + Signature to find. + true if signature is found, otherwise false. + + + + Represents central directory header record described in the + ZIP File Format Specification v6.3.3, #4.3.12. + + + + + Represents file header base class for + the local file header and central directory header + which are described in the ZIP File Format Specification v6.3.3, #4.3.7 and #4.3.12. + + + + + Represents base fields of data descriptor record described in the + ZIP File Format Specification v6.3.3, #4.3.9. + + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets crc-32. + + + + + Gets or sets compressed size. + + + + + Gets or sets uncompressed size. + + + + + Copy properties from the given file header to this object. + + File header to copy properties from. + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Read data from the binary reader. + + Binary reader to read data from. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets version needed to extract. + + + + + Gets or sets general purpose bit flag. + + + + + Gets or sets compression method. + + + + + Gets or sets last modification file date and time. + + + + + Gets or sets file name. + + + + + Gets or sets extra fields data. + + The extra fields data. + + + + Gets or sets list of extra fields. + + + + + Central directory header signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets byte which indicates the ZIP specification version + supported by the software used to encode the file. + + + + + Gets or sets byte which indicates the compatibility + of the file attribute information. + + + + + Gets or sets disk number start. + + + + + Gets or sets internal file attributes. + + + + + Gets or sets external file attributes. + + + + + Gets or sets relative offset of local header. + + + + + Gets or sets file comment. + + + + + Represents data descriptor record described in the + ZIP File Format Specification v6.3.3, #4.3.9. + + + + + Data descriptor header signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Copy properties from the given file header to this object. + + File header to copy properties from. + + + + Gets or sets compressed size. + + + + + Gets or sets uncompressed size. + + + + + Represents general purpose bit flag for Methods 8 and 9 - Deflating + ZIP File Format Specification v6.3.3, #4.4.4. + + + + + Bit 2 Bit 1 + 0 0 Normal (-en) compression option was used. + + + + + Bit 2 Bit 1 + 0 1 Maximum (-exx/-ex) compression option was used. + + + + + Bit 2 Bit 1 + 1 0 Fast (-ef) compression option was used. + + + + + Bit 2 Bit 1 + 1 1 Super Fast (-es) compression option was used. + + + + + Represents end of central directory record described in the + ZIP File Format Specification v6.3.3, #4.3.16. + + + + + End of central directory signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Read data from the binary reader. + + Binary reader to read data from. + true if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Gets or sets number of this disk. + + + + + Gets or sets number of the disk with the start of the central directory. + + + + + Gets or sets total number of entries in the central directory on this disk. + + + + + Gets or sets total number of entries in the central directory. + + + + + Gets or sets size of the central directory. + + + + + Gets or sets offset of start of central directory with respect to the starting disk number. + + + + + Gets or sets .ZIP file comment. + + + + + Represents base class for extra field described in the + ZIP File Format Specification v6.3.3, #4.5.2. + + + + + Represents base class for extra field described in the + ZIP File Format Specification v6.3.3, #4.5.2. + + + + + Gets extra field collection. + + The header info. + IEnumerable of ExtraFieldBase instances. + + + + Gets extra field data. + + Extra field collection. + Extra field data. + + + + Should implement parsing of extra field data. + + Extra field data. + + + + Gets extra field data. + + Byte array of extra field data. + + + + Gets known extra field type. + + + + + Gets extra field type (Header ID). + + + + + Gets extra field data. + + Byte array of extra field data. + + + + Implements parsing of extra field data. + + Extra field data. + + + + Gets or sets vendor version for this record. + + + + + Gets or sets signature (AE). + + + + + Gets or sets bit length of encryption key. + 1 - 128-bit , 2 - 192-bit , 3 - 256-bit. + + + + + Gets or sets method. + + + + + Gets extra field type (Header ID). + + + + + Represents identifier of the encryption algorithm described in the + ZIP File Format Specification v6.3.3, #7.2.3.2. + + + + + Unknown algorithm. + + + + + DES algorithm. + + + + + RC2 algorithm. + The version needed to extract up to 5.2. + + + + + 3DES 168 bit algorithm. + + + + + 3DES 112 bit algorithm. + + + + + AES 128 bit algorithm. + + + + + AES 192 bit algorithm. + + + + + AES 256 bit algorithm. + + + + + RC2 algorithm. + The version needed to extract 5.2 and higher. + + + + + Blowfish algorithm. + + + + + Twofish algorithm. + + + + + RC4 algorithm. + + + + + Represents extra field type (Header ID) described in the + ZIP File Format Specification v6.3.3, #4.5.2. + + + + + Unknown extra field type. + + + + + Zip64 extra field type. + + + + + Ntfs extra field type. + + + + + StrongEncryption extra field type. + + + + + UnixTime extra field type. + + + + + AesEncryption extra field type. + + + + + Represents strong encryption extra field described in the + ZIP File Format Specification v6.3.3, #4.5.12. + + + + + Gets extra field data. + + Byte array of extra field data. + + + + Implements parsing of extra field data. + + Extra field data. + + + + Gets or sets format definition for this record. + + + + + Gets or sets encryption algorithm identifier. + + + + + Gets or sets bit length of encryption key. + + + + + Gets or sets processing flags. + + + + + Gets extra field type (Header ID). + + + + + Represents base class for extra field described in the + ZIP File Format Specification v6.3.3, #4.5.2. + + + + + Initializes a new instance of the UnknownExtraField class. + + Header Id. + + + + Gets extra field data. + + Byte array of extra field data. + + + + Implements parsing of extra field data. + + Extra field data. + + + + Gets extra field type (Header ID). + + + + + Gets or sets extra field data. + + + + + Represents Zip64 Extended Information Extra Field described in the + ZIP File Format Specification v6.3.3, #4.5.3. + + + + + Gets extra field data. + + Byte array of extra field data. + + + + Implements parsing of extra field data. + + Extra field data. + + + + Gets or sets original uncompressed file size. + + + + + Gets or sets size of compressed data. + + + + + Gets or sets offset of local header record. + + + + + Gets or sets number of the disk on which this file starts. + + + + + Gets extra field type (Header ID). + + + + + Represents general purpose bit flag in the + ZIP File Format Specification v6.3.3, #4.4.4. + + + + + Bit 0: If set, indicates that the file is encrypted. + + + + + Bit 3: If this bit is set, the fields crc-32, compressed + size and uncompressed size are set to zero in the + local header. The correct values are put in the + data descriptor immediately following the compressed + data. + + + Note: PKZIP version 2.04g for DOS only + recognizes this bit for method 8 compression, newer + versions of PKZIP recognize this bit for any + compression method. + + + + + Bit 4: Reserved for use with method 8, for enhanced + deflating. + + + + + Bit 5: If this bit is set, this indicates that the file is + compressed patched data. + + + Note: Requires PKZIP version 2.70 or greater. + + + + + Bit 6: Strong encryption. If this bit is set, you MUST + set the version needed to extract value to at least + 50 and you MUST also set bit 0. If AES encryption + is used, the version needed to extract value MUST + be at least 51. See the section describing the Strong + Encryption Specification for details. Refer to the + section in this document entitled "Incorporating PKWARE + Proprietary Technology into Your Product" for more + information. + + + + + Bit 11: Language encoding flag (EFS). If this bit is set, + the filename and comment fields for this file + MUST be encoded using UTF-8 (see APPENDIX D). + + + + + Bit 13: Set when encrypting the Central Directory to indicate + selected data values in the Local Header are masked to + hide their actual values. See the section describing + the Strong Encryption Specification for details. Refer + to the section in this document entitled "Incorporating + PKWARE Proprietary Technology into Your Product" for + more information. + + + + + Represents general purpose bit flag for the Method 6 - Imploding + ZIP File Format Specification v6.3.3, #4.4.4. + + + + + For Method 6 - Imploding. + Bit 1: If the compression method used was type 6, + Imploding, then this bit, if set, indicates + an 8K sliding dictionary was used. If clear, + then a 4K sliding dictionary was used. + + + + + For Method 6 - Imploding. + Bit 2: If the compression method used was type 6, + Imploding, then this bit, if set, indicates + 3 Shannon-Fano trees were used to encode the + sliding dictionary output. If clear, then 2 + Shannon-Fano trees were used. + + + + + Represents local file header record described in the + ZIP File Format Specification v6.3.3, #4.3.7. + + + + + Local file header signature. + + + + + Size of the data block without signature and variable size fields. + + + + + Initializes a new instance of the LocalFileHeader class. + + + + + Initializes a new instance of the LocalFileHeader class. + + File header to copy properties from. + + + + Read data from the binary reader. + + Binary reader to read data from. + True if success, otherwise false. + + + + Write data to the binary writer. + + Binary writer to write data to. + + + + Represents general purpose bit flag for the Method 14 - LZMA + ZIP File Format Specification v6.3.3, #4.4.4. + + + + + Bit 1: If the compression method used was type 14, + LZMA, then this bit, if set, indicates + an end-of-stream (EOS) marker is used to + mark the end of the compressed data stream. + If clear, then an EOS marker is not present + and the compressed data size must be known + to extract. + + + + + Version needed to extract. + + +
+
diff --git a/Analysis/bin/x64/Release/TelerikCommon.dll b/Analysis/bin/x64/Release/TelerikCommon.dll new file mode 100644 index 0000000..f491256 Binary files /dev/null and b/Analysis/bin/x64/Release/TelerikCommon.dll differ diff --git a/Analysis/bin/x64/Release/ThemeSkin/FluentHexagon.tssp b/Analysis/bin/x64/Release/ThemeSkin/FluentHexagon.tssp new file mode 100644 index 0000000..dbbba2f --- /dev/null +++ b/Analysis/bin/x64/Release/ThemeSkin/FluentHexagon.tssp @@ -0,0 +1,298 @@ + + + true + + + 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 + + + FluentHexagon + \ No newline at end of file diff --git a/Analysis/bin/x64/Release/UserControlClass.dll b/Analysis/bin/x64/Release/UserControlClass.dll new file mode 100644 index 0000000..583bf2c Binary files /dev/null and b/Analysis/bin/x64/Release/UserControlClass.dll differ diff --git a/Analysis/bin/x64/Release/UserControlClass.pdb b/Analysis/bin/x64/Release/UserControlClass.pdb new file mode 100644 index 0000000..48ff902 Binary files /dev/null and b/Analysis/bin/x64/Release/UserControlClass.pdb differ diff --git a/Analysis/bin/x64/Release/logs/2024-09-21.log b/Analysis/bin/x64/Release/logs/2024-09-21.log new file mode 100644 index 0000000..9a13cb5 --- /dev/null +++ b/Analysis/bin/x64/Release/logs/2024-09-21.log @@ -0,0 +1,48 @@ +2024-09-21 17:00:55.9019 [INFO] : --软件Program Main函数开始执行-- +2024-09-21 17:00:55.9250 [INFO] : 加载配置文件——>开始 +2024-09-21 17:00:55.9461 [INFO] : 加载配置文件——>完成 +2024-09-21 17:00:55.9461 [INFO] : Log in using the CLMS authorization. +2024-09-21 17:00:59.7480 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-21 17:01:01.2389 [INFO] : 启动PLC写线程! +2024-09-21 17:01:01.2389 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-21 17:01:01.2389 [INFO] : 连接PLC.... +2024-09-21 17:01:01.2389 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-21 17:01:01.2389 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-21 17:01:02.1187 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:01:02.2865 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-21 17:01:02.4696 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:01:03.6923 [ERROR] : PLC S7连接失败。 +2024-09-21 17:01:03.7065 [ERROR] : 连接PLC失败 +2024-09-21 17:02:51.3391 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-21 17:48:29.8048 [INFO] : --软件Program Main函数开始执行-- +2024-09-21 17:48:29.8244 [INFO] : 加载配置文件——>开始 +2024-09-21 17:48:29.8454 [INFO] : 加载配置文件——>完成 +2024-09-21 17:48:29.8454 [INFO] : Log in using the CLMS authorization. +2024-09-21 17:48:32.2503 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-21 17:48:32.9998 [INFO] : 启动PLC写线程! +2024-09-21 17:48:32.9998 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-21 17:48:32.9998 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-21 17:48:32.9998 [INFO] : 连接PLC.... +2024-09-21 17:48:32.9998 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-21 17:48:33.6655 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:48:33.8172 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-21 17:48:34.0023 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:48:35.0265 [ERROR] : PLC S7连接失败。 +2024-09-21 17:48:35.0265 [ERROR] : 连接PLC失败 +2024-09-21 17:51:57.4352 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-21 17:52:26.0157 [INFO] : --软件Program Main函数开始执行-- +2024-09-21 17:52:26.0316 [INFO] : 加载配置文件——>开始 +2024-09-21 17:52:26.0486 [INFO] : 加载配置文件——>完成 +2024-09-21 17:52:26.0486 [INFO] : Log in using the CLMS authorization. +2024-09-21 17:52:28.6580 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-21 17:52:29.8033 [INFO] : 启动PLC写线程! +2024-09-21 17:52:29.8033 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-21 17:52:29.8043 [INFO] : 连接PLC.... +2024-09-21 17:52:29.8043 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-21 17:52:29.8043 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-21 17:52:30.4382 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:52:30.5932 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-21 17:52:30.7444 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-21 17:52:31.8313 [ERROR] : PLC S7连接失败。 +2024-09-21 17:52:31.8313 [ERROR] : 连接PLC失败 +2024-09-21 17:54:17.2184 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/logs/2024-09-23.log b/Analysis/bin/x64/Release/logs/2024-09-23.log new file mode 100644 index 0000000..e94d269 --- /dev/null +++ b/Analysis/bin/x64/Release/logs/2024-09-23.log @@ -0,0 +1,52 @@ +2024-09-23 08:58:35.8137 [INFO] : --软件Program Main函数开始执行-- +2024-09-23 08:58:35.8137 [INFO] : 加载配置文件——>开始 +2024-09-23 08:58:35.8362 [INFO] : 加载配置文件——>完成 +2024-09-23 08:58:35.8362 [INFO] : Log in using the CLMS authorization. +2024-09-23 08:58:37.5700 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-23 08:58:38.3574 [INFO] : 启动PLC写线程! +2024-09-23 08:58:38.3574 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-23 08:58:38.3574 [INFO] : 连接PLC.... +2024-09-23 08:58:38.3574 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-23 08:58:38.3574 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-23 08:58:38.8978 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 08:58:38.9786 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-23 08:58:39.0958 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 08:58:40.4005 [ERROR] : PLC S7连接失败。 +2024-09-23 08:58:40.4005 [ERROR] : 连接PLC失败 +2024-09-23 08:58:48.1574 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 08:58:48.7524 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 08:58:49.0584 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 09:01:45.3858 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-23 09:01:49.8169 [INFO] : --软件Program Main函数开始执行-- +2024-09-23 09:01:49.8169 [INFO] : 加载配置文件——>开始 +2024-09-23 09:01:49.8309 [INFO] : 加载配置文件——>完成 +2024-09-23 09:01:49.8309 [INFO] : Log in using the CLMS authorization. +2024-09-23 09:01:51.3166 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-23 09:01:51.7625 [INFO] : 启动PLC写线程! +2024-09-23 09:01:51.7625 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-23 09:01:51.7625 [INFO] : 连接PLC.... +2024-09-23 09:01:51.7625 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-23 09:01:51.7625 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-23 09:01:52.3728 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 09:01:52.4631 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-23 09:01:52.5773 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 09:01:53.8034 [ERROR] : PLC S7连接失败。 +2024-09-23 09:01:53.8034 [ERROR] : 连接PLC失败 +2024-09-23 09:02:03.0005 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-23 13:40:50.7856 [INFO] : --软件Program Main函数开始执行-- +2024-09-23 13:40:50.7976 [INFO] : 加载配置文件——>开始 +2024-09-23 13:40:50.8095 [INFO] : 加载配置文件——>完成 +2024-09-23 13:40:50.8095 [INFO] : Log in using the CLMS authorization. +2024-09-23 13:40:52.6730 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-23 13:40:53.3877 [INFO] : 启动PLC写线程! +2024-09-23 13:40:53.3877 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-23 13:40:53.3877 [INFO] : 连接PLC.... +2024-09-23 13:40:53.3877 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-23 13:40:53.3877 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-23 13:40:53.9235 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 13:40:54.0187 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-23 13:40:54.1578 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 13:40:55.4907 [ERROR] : PLC S7连接失败。 +2024-09-23 13:40:55.4907 [ERROR] : 连接PLC失败 +2024-09-23 13:40:59.5166 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-23 13:41:15.9000 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/logs/2024-09-27.log b/Analysis/bin/x64/Release/logs/2024-09-27.log new file mode 100644 index 0000000..5686626 --- /dev/null +++ b/Analysis/bin/x64/Release/logs/2024-09-27.log @@ -0,0 +1,1494 @@ +2024-09-27 09:57:25.9808 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 09:57:25.9808 [INFO] : 加载配置文件——>开始 +2024-09-27 09:57:26.0052 [INFO] : 加载配置文件——>完成 +2024-09-27 09:57:26.0052 [INFO] : Log in using the CLMS authorization. +2024-09-27 09:57:28.4030 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 09:57:29.5607 [INFO] : 启动PLC写线程! +2024-09-27 09:57:29.5607 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 09:57:29.5607 [INFO] : 连接PLC.... +2024-09-27 09:57:29.5607 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 09:57:29.5607 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 09:57:30.1513 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 09:57:30.3503 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 09:57:30.4862 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 09:57:31.6407 [ERROR] : PLC S7连接失败。 +2024-09-27 09:57:31.6407 [ERROR] : 连接PLC失败 +2024-09-27 10:09:58.9966 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 10:58:01.1809 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 10:58:01.1974 [INFO] : 加载配置文件——>开始 +2024-09-27 10:58:01.2175 [INFO] : 加载配置文件——>完成 +2024-09-27 10:58:01.2196 [INFO] : Log in using the CLMS authorization. +2024-09-27 10:58:03.4360 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 10:58:04.2843 [INFO] : 启动PLC写线程! +2024-09-27 10:58:04.2843 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 10:58:04.2843 [INFO] : 连接PLC.... +2024-09-27 10:58:04.2843 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 10:58:04.2843 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 10:58:04.9036 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 10:58:05.1041 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 10:58:05.2593 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 10:58:06.3002 [ERROR] : PLC S7连接失败。 +2024-09-27 10:58:06.3002 [ERROR] : 连接PLC失败 +2024-09-27 10:59:44.8132 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 10:59:49.7419 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 10:59:49.7544 [INFO] : 加载配置文件——>开始 +2024-09-27 10:59:49.7544 [INFO] : 加载配置文件——>完成 +2024-09-27 10:59:49.7544 [INFO] : Log in using the CLMS authorization. +2024-09-27 10:59:51.4852 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 10:59:52.1391 [INFO] : 启动PLC写线程! +2024-09-27 10:59:52.1391 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 10:59:52.1391 [INFO] : 连接PLC.... +2024-09-27 10:59:52.1391 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 10:59:52.1391 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 10:59:52.7591 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 10:59:52.9505 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 10:59:53.1196 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 10:59:54.1537 [ERROR] : PLC S7连接失败。 +2024-09-27 10:59:54.1537 [ERROR] : 连接PLC失败 +2024-09-27 11:10:37.7048 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 11:29:50.3128 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 11:29:50.3296 [INFO] : 加载配置文件——>开始 +2024-09-27 11:29:50.3475 [INFO] : 加载配置文件——>完成 +2024-09-27 11:29:50.3475 [INFO] : Log in using the CLMS authorization. +2024-09-27 11:29:52.6833 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 11:29:53.9108 [INFO] : 启动PLC写线程! +2024-09-27 11:29:53.9108 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 11:29:53.9108 [INFO] : 连接PLC.... +2024-09-27 11:29:53.9108 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 11:29:53.9108 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 11:29:54.4845 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:29:54.7014 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 11:29:54.8315 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:29:55.9291 [ERROR] : PLC S7连接失败。 +2024-09-27 11:29:55.9291 [ERROR] : 连接PLC失败 +2024-09-27 11:31:57.0780 [INFO] : 启动PLC写线程! +2024-09-27 11:31:57.0780 [INFO] : 连接PLC.... +2024-09-27 11:31:57.0780 [INFO] : PLC S7连接成功。 +2024-09-27 11:31:57.0890 [INFO] : 连接PLC成功 +2024-09-27 11:31:57.4230 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:57.7340 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:58.0457 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:58.3539 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:58.6687 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:58.9832 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:59.2927 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:59.6054 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:31:59.9194 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:00.2303 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:00.5435 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:00.8587 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:01.1687 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:01.4818 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:01.7945 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:02.1081 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:02.4168 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:02.7306 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:03.0456 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:03.3575 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:03.6702 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:03.9800 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:04.2941 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:04.6051 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:04.9201 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:05.2311 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:05.5431 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:05.8556 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:06.1681 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:06.4842 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:06.7927 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:07.1052 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:07.4202 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:07.7308 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:08.0426 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:08.3558 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:08.6690 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:08.9828 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:09.2944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:09.6076 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:09.9187 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:10.2298 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:10.5434 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:10.8569 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:11.1683 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:11.4809 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:11.7934 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:12.1085 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:12.4197 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:12.7319 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:13.0452 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:13.3548 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:13.6709 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:13.9815 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:14.2944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:14.6075 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:14.9201 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:15.2313 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:15.5433 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:15.8574 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:16.1704 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:16.4820 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:16.7938 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:17.1070 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:17.4210 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:17.7334 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:18.0434 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:18.3561 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:18.6673 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:18.9805 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:19.2932 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:19.6092 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:19.9186 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:20.2305 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:20.5465 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:20.8560 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:21.1687 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:21.4815 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:21.7948 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:22.1087 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:22.4187 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:22.7306 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:23.0429 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:23.3549 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:23.6705 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:23.9834 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:24.2934 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:24.6078 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:24.9176 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:25.2330 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:25.5461 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:25.8563 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:26.1693 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:26.4804 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:26.7929 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:27.1053 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:27.4184 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:27.7330 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:28.0462 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:28.3592 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:28.6670 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:28.9803 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:29.2950 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:29.6066 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:29.9175 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:30.2326 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:30.5448 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:30.8570 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:31.1695 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:31.4822 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:31.7924 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:32.1059 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:32.4183 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:32.7356 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:33.0459 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:33.3590 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:33.6681 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:33.9801 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:34.2930 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:34.6049 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:34.9206 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:35.2310 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:35.5464 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:35.8582 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:36.1675 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:36.4832 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:36.7936 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:37.1082 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:37.4189 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:37.7311 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:38.0416 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:38.3544 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:38.6699 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:38.9798 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:39.2939 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:39.6070 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:39.9177 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:40.2327 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:40.5439 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:40.8559 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:41.1677 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:41.4849 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:41.7934 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:42.1053 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:42.4182 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:42.7317 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:43.0472 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:43.3587 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:43.6686 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:43.9822 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:44.2955 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:44.6050 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:44.9174 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:45.2301 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:45.5439 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:45.8564 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:46.1690 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:46.4801 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:46.7950 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:47.1047 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:47.4178 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:47.7336 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:48.0434 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:48.3578 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:48.6688 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:48.9810 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:49.2936 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:49.6063 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:49.9193 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:50.2328 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:50.5441 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:50.8556 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:51.1680 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:51.4803 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:51.7937 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:52.1071 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:52.4207 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:52.7314 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:53.0439 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:53.3557 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:53.6703 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:53.9821 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:54.2937 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:54.6075 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:54.9184 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:55.2297 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:55.5425 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:55.8548 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:56.1673 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:56.4799 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:56.7944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:57.1066 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:57.4194 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:57.7326 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:58.0453 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:58.3559 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:58.6686 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:58.9817 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:59.2921 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:59.6060 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:32:59.9184 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:00.2303 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:00.5422 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:00.8552 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:01.1686 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:01.4799 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:01.7940 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:02.1058 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:02.4177 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:02.7298 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:03.0433 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:03.3557 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:03.6707 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:03.9818 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:04.2932 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:04.6052 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:04.9183 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:05.2315 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:05.5441 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:05.8558 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:06.1692 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:06.4826 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:06.7931 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:07.1060 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:07.4193 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:07.7316 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:08.0433 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:08.3573 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:08.6694 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:08.9801 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:09.2953 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:09.6051 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:09.9204 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:10.2316 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:10.5452 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:10.8548 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:11.1685 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:11.4809 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:11.7929 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:12.1068 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:12.4175 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:12.7319 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:13.0454 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:13.3548 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:13.6677 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:13.9825 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:14.2943 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:14.6066 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:14.9180 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:15.2325 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:15.5438 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:15.8581 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:16.1670 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:16.4821 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:16.7928 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:17.1049 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:17.4181 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:17.7291 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:18.0447 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:18.3562 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:18.6717 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:18.9843 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:19.2937 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:19.6062 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:19.9173 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:20.2300 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:20.5427 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:20.8567 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:21.1682 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:21.4812 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:21.7926 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:22.1060 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:22.4180 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:22.7333 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:23.0445 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:23.3551 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:23.6680 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:23.9824 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:24.2939 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:24.6066 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:24.9187 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:25.2313 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:25.5422 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:25.8565 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:26.1693 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:26.4806 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:26.7920 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:27.1046 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:27.4216 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:27.7303 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:28.0448 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:28.3549 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:28.6673 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:28.9808 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:29.2933 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:29.6085 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:29.9185 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:30.2322 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:30.5437 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:30.8560 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:31.1674 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:31.4823 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:31.7930 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:32.1051 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:32.4186 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:32.7323 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:33.0433 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:33.3567 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:33.6712 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:33.9854 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:34.2955 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:34.6056 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:34.9172 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:35.2308 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:35.5421 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:35.8564 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:36.1693 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:36.4826 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:36.7949 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:37.1053 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:37.4195 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:37.7323 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:38.0425 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:38.3572 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:38.6682 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:38.9813 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:39.2956 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:39.6057 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:39.9179 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:40.2325 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:40.5466 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:40.8564 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:41.1672 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:41.4818 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:41.7919 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:42.1061 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:42.4213 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:42.7311 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:43.0421 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:43.3544 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:43.6686 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:43.9802 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:44.2959 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:44.6049 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:44.9216 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:45.2300 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:45.5421 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:45.8578 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:46.1675 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:46.4818 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:46.7931 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:47.1086 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:47.4175 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:47.7324 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:48.0423 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:48.3565 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:48.6700 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:48.9807 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:49.2944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:49.6045 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:49.9174 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:50.2304 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:50.5459 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:50.8557 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:51.1676 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:51.4824 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:51.7930 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:52.1045 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:52.4168 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:52.7328 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:53.0437 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:53.3565 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:53.6702 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:53.9802 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:54.2928 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:54.6064 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:54.9177 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:55.2297 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:55.5421 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:55.8559 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:56.1699 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:56.4833 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:56.7931 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:57.1060 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:57.4202 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:57.7297 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:58.0447 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:58.3554 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:58.6680 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:58.9807 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:59.2944 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:59.6070 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:33:59.9194 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:00.2332 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:00.5418 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:00.8560 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:01.1670 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:01.4817 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:01.7945 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:02.1064 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:02.4182 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:02.7337 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:03.0461 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:03.3568 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:03.6687 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:03.9807 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:04.2920 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:04.6054 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:04.9205 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:05.2315 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:05.5456 [FATAL] : -1,-1,-1,-1 +2024-09-27 11:34:05.7753 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 11:34:10.6407 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 11:34:10.6548 [INFO] : 加载配置文件——>开始 +2024-09-27 11:34:10.6548 [INFO] : 加载配置文件——>完成 +2024-09-27 11:34:10.6548 [INFO] : Log in using the CLMS authorization. +2024-09-27 11:34:12.4358 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 11:34:13.2403 [INFO] : 启动PLC写线程! +2024-09-27 11:34:13.2403 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 11:34:13.2403 [INFO] : 连接PLC.... +2024-09-27 11:34:13.2403 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 11:34:13.2403 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 11:34:13.2569 [INFO] : PLC S7连接成功。 +2024-09-27 11:34:13.3950 [INFO] : 连接PLC成功 +2024-09-27 11:34:13.8105 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:34:14.0092 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 11:34:14.1560 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:14.2022 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:34:14.4640 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:14.7781 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:15.0902 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:15.4036 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:15.7137 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:16.0252 [FATAL] : 2.64299988746643,3.48300004005432,0,0 +2024-09-27 11:34:16.3524 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 11:37:55.4831 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 11:37:55.5024 [INFO] : 加载配置文件——>开始 +2024-09-27 11:37:55.5082 [INFO] : 加载配置文件——>完成 +2024-09-27 11:37:55.5082 [INFO] : Log in using the CLMS authorization. +2024-09-27 11:37:58.0775 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 11:38:02.7190 [INFO] : 启动PLC写线程! +2024-09-27 11:38:02.7190 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 11:38:02.7190 [INFO] : 连接PLC.... +2024-09-27 11:38:02.7190 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 11:38:02.7190 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 11:38:02.7429 [INFO] : PLC S7连接成功。 +2024-09-27 11:38:02.9123 [INFO] : 连接PLC成功 +2024-09-27 11:38:03.2860 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:38:06.6803 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 11:38:12.1539 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:12.1812 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 11:38:12.4648 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:12.7780 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:13.0880 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:13.4020 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:13.7121 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:14.0272 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:14.3376 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:14.6516 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:14.9626 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:15.2741 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:15.5873 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:15.9019 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:16.2117 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:16.5243 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:16.8406 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:17.1494 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:17.4627 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:17.7754 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:18.0891 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:18.4009 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:18.7127 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:19.0284 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:19.3359 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:19.6513 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:19.9629 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:20.2777 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:20.5886 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:20.9022 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:21.2134 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:21.5270 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:21.8371 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:22.1514 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:22.4623 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:22.7774 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:23.0862 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:23.3999 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:23.7119 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:24.0266 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:24.3371 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:24.6511 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:24.9627 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:25.2761 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:25.5871 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:25.8988 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:26.2130 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:26.5270 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:26.8360 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:27.1516 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:27.4619 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:27.7771 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:28.0883 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:28.3985 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:28.7111 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:29.0257 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:29.3379 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:29.6499 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:29.9624 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:30.2754 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:30.5869 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:30.9022 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:31.2139 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:31.5248 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:31.8394 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:32.1512 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:32.4607 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:32.7748 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:33.0886 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:33.3998 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:33.7115 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:34.0271 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:34.3382 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:34.6487 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:34.9626 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:35.2754 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:35.5888 [FATAL] : 1,2,3,15.237 +2024-09-27 11:38:35.8994 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:36.2117 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:36.5282 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:36.8361 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:37.1530 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:37.4637 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:37.7752 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:38.0869 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:38.3984 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:38.7124 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:39.0248 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:39.3380 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:39.6482 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:39.9613 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:40.2748 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:40.5860 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:40.9005 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:41.2146 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:41.5246 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:41.8367 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:42.1505 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:42.4616 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:42.7760 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:43.0865 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:43.3998 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:43.7101 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:44.0233 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:44.3379 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:44.6498 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:44.9633 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:45.2785 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:45.5856 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:45.8990 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:46.2109 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:46.5251 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:46.8381 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:47.1483 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:47.4623 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:47.7764 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:48.0855 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:48.3999 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:48.7125 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:49.0233 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:49.3372 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:49.6496 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:49.9606 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:50.2728 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:50.5868 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:50.8985 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:51.2111 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:51.5265 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:51.8367 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:52.1507 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:52.4606 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:52.7737 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:53.0864 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:53.4027 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:53.7148 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:54.0261 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:54.3356 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:54.6498 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:54.9615 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:55.2753 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:55.5884 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:55.9010 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:56.2145 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:56.5268 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:56.8364 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:57.1490 [FATAL] : 1,2,3,115.237 +2024-09-27 11:38:57.4632 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:57.7728 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:58.0870 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:58.4004 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:58.7111 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:59.0228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:59.3378 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:59.6494 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:38:59.9627 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:00.2729 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:00.5879 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:00.8978 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:01.2102 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:01.5255 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:01.8377 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:02.1510 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:02.4605 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:02.7768 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:03.0857 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:03.3992 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:03.7104 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:04.0230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:04.3367 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:04.6517 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:04.9625 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:05.2730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:05.5898 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:05.8974 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:06.2114 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:06.5227 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:06.8372 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:07.1499 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:07.4600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:07.7754 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:08.0868 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:08.3994 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:08.7128 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:09.0223 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:09.3382 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:09.6515 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:09.9609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:10.2737 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:10.5877 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:10.8977 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:11.2118 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:11.5251 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:11.8356 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:12.1501 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:12.4617 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:12.7744 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:13.0850 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:13.3994 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:13.7124 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:14.0246 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:14.3373 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:14.6490 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:14.9603 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:15.2746 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:15.5853 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:15.9009 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:16.2100 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:16.5235 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:16.8364 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:17.1474 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:17.4602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:17.7746 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:18.0859 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:18.3982 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:18.7120 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:19.0225 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:19.3361 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:19.6488 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:19.9600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:20.2772 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:20.5867 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:20.8972 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:21.2111 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:21.5242 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:21.8359 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:22.1483 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:22.4631 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:22.7742 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:23.0862 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:23.3996 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:23.7134 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:24.0246 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:24.3357 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:24.6502 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:24.9609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:25.2746 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:25.5860 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:25.9001 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:26.2131 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:26.5226 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:26.8378 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:27.1465 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:27.4609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:27.7733 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:28.0853 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:28.3983 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:28.7111 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:29.0275 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:29.3344 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:29.6484 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:29.9637 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:30.2722 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:30.5857 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:30.8976 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:31.2118 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:31.5241 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:31.8378 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:32.1495 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:32.4608 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:32.7730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:33.0855 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:33.3985 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:33.7122 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:34.0233 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:34.3344 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:34.6497 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:34.9610 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:35.2733 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:35.5884 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:35.8984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:36.2103 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:36.5224 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:36.8373 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:37.1480 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:37.4621 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:37.7753 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:38.0869 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:38.3980 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:38.7104 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:39.0235 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:39.3366 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:39.6485 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:39.9622 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:40.2723 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:40.5858 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:40.8984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:41.2106 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:41.5227 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:41.8354 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:42.1512 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:42.4602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:42.7750 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:43.0846 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:43.3986 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:43.7094 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:44.0235 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:44.3364 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:44.6471 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:44.9626 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:45.2747 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:45.5848 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:45.8981 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:46.2102 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:46.5236 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:46.8359 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:47.1472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:47.4599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:47.7761 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:48.0853 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:48.3976 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:48.7135 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:49.0228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:49.3353 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:49.6472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:49.9609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:50.2747 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:50.5858 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:50.8985 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:51.2092 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:51.5232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:51.8340 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:52.1490 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:52.4610 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:52.7728 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:53.0871 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:53.3993 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:53.7115 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:54.0218 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:54.3351 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:54.6475 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:54.9596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:55.2762 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:55.5840 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:55.8985 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:56.2091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:56.5217 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:56.8355 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:57.1466 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:57.4609 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:57.7727 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:58.0859 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:58.3984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:58.7098 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:59.0236 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:59.3351 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:59.6494 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:39:59.9592 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:00.2725 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:00.5845 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:00.8975 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:01.2093 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:01.5242 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:01.8367 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:02.1479 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:02.4601 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:02.7721 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:03.0850 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:03.3970 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:03.7119 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:04.0231 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:04.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:04.6472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:04.9590 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:05.2722 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:05.5875 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:05.8964 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:06.2105 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:06.5249 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:06.8360 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:07.1465 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:07.4602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:07.7747 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:08.0843 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:08.3982 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:08.7089 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:09.0226 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:09.3371 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:09.6470 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:09.9596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:10.2728 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:10.5882 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:10.8981 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:11.2088 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:11.5234 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:11.8350 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:12.1473 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:12.4587 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:12.7741 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:13.0863 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:13.3984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:13.7094 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:14.0228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:14.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:14.6502 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:14.9620 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:15.2742 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:15.5842 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:15.8977 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:16.2096 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:16.5230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:16.8343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:17.1473 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:17.4597 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:17.7714 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:18.0834 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:18.3986 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:18.7121 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:19.0228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:19.3369 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:19.6467 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:19.9601 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:20.2718 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:20.5850 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:20.8985 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:21.2088 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:21.5230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:21.8361 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:22.1479 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:22.4595 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:22.7738 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:23.0843 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:23.3989 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:23.7100 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:24.0230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:24.3338 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:24.6460 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:24.9587 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:25.2727 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:25.5849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:25.9008 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:26.2085 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:26.5225 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:26.8353 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:27.1487 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:27.4592 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:27.7730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:28.0869 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:28.3960 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:28.7084 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:29.0221 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:29.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:29.6460 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:29.9599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:30.2750 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:30.5847 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:30.8988 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:31.2084 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:31.5231 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:31.8375 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:32.1489 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:32.4614 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:32.7734 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:33.0857 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:33.3980 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:33.7095 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:34.0221 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:34.3342 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:34.6495 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:34.9600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:35.2722 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:35.5864 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:35.8981 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:36.2098 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:36.5220 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:36.8367 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:37.1484 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:37.4619 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:37.7730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:38.0849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:38.3959 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:38.7081 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:39.0232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:39.3345 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:39.6491 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:39.9593 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:40.2735 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:40.5860 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:40.8977 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:41.2106 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:41.5219 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:41.8340 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:42.1460 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:42.4592 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:42.7732 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:43.0858 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:43.3986 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:43.7089 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:44.0216 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:44.3344 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:44.6458 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:44.9584 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:45.2730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:45.5843 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:45.8958 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:46.2086 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:46.5207 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:46.8333 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:47.1496 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:47.4599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:47.7732 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:48.0837 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:48.3976 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:48.7108 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:49.0213 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:49.3348 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:49.6487 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:49.9602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:50.2712 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:50.5839 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:50.8963 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:51.2094 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:51.5232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:51.8363 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:52.1491 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:52.4603 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:52.7724 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:53.0851 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:53.3953 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:53.7080 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:54.0227 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:54.3352 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:54.6489 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:54.9574 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:55.2723 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:55.5863 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:55.8973 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:56.2079 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:56.5223 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:56.8343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:57.1461 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:57.4587 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:57.7717 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:58.0849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:58.3964 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:58.7101 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:59.0203 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:59.3348 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:59.6451 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:40:59.9593 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:00.2709 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:00.5849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:00.9005 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:01.2112 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:01.5228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:01.8335 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:02.1478 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:02.4599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:02.7737 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:03.0839 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:03.3980 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:03.7094 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:04.0200 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:04.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:04.6463 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:04.9612 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:05.2731 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:05.5839 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:05.8956 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:06.2091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:06.5228 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:06.8330 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:07.1476 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:07.4612 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:07.7707 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:08.0837 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:08.3967 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:08.7112 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:09.0224 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:09.3360 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:09.6461 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:09.9600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:10.2705 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:10.5835 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:10.8974 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:11.2077 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:11.5232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:11.8347 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:12.1453 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:12.4605 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:12.7715 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:13.0856 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:13.3968 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:13.7079 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:14.0214 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:14.3335 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:14.6466 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:14.9580 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:15.2700 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:15.5836 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:15.8960 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:16.2106 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:16.5198 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:16.8326 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:17.1457 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:17.4580 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:17.7703 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:18.0841 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:18.3965 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:18.7110 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:19.0214 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:19.3322 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:19.6460 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:19.9566 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:20.2716 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:20.5862 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:20.8977 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:21.2093 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:21.5202 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:21.8338 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:22.1474 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:22.4574 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:22.7717 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:23.0842 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:23.3949 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:23.7090 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:24.0202 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:24.3326 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:24.6451 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:24.9596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:25.2700 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:25.5837 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:25.8965 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:26.2082 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:26.5224 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:26.8334 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:27.1502 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:27.4584 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:27.7727 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:28.0836 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:28.3968 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:28.7091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:29.0234 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:29.3345 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:29.6472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:29.9605 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:30.2708 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:30.5840 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:30.8947 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:31.2100 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:31.5234 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:31.8344 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:32.1447 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:32.4581 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:32.7718 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:33.0854 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:33.3955 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:33.7098 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:34.0221 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:34.3336 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:34.6446 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:34.9586 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:35.2716 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:35.5836 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:35.8984 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:36.2086 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:36.5199 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:36.8348 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:37.1474 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:37.4589 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:37.7716 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:38.0838 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:38.3961 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:38.7091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:39.0212 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:39.3343 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:39.6468 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:39.9581 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:40.2705 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:40.5825 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:40.8953 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:41.2086 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:41.5205 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:41.8327 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:42.1473 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:42.4600 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:42.7720 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:43.0821 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:43.3947 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:43.7091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:44.0245 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:44.3321 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:44.6480 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:44.9603 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:45.2738 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:45.5826 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:45.8959 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:46.2085 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:46.5215 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:46.8359 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:47.1448 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:47.4586 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:47.7700 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:48.0851 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:48.3962 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:48.7105 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:49.0218 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:49.3335 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:49.6455 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:49.9582 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:50.2713 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:50.5833 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:50.8956 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:51.2091 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:51.5213 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:51.8336 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:52.1469 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:52.4607 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:52.7707 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:53.0820 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:53.4003 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:53.7085 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:54.0203 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:54.3350 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:54.6467 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:54.9589 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:55.2734 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:55.5867 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:55.8966 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:56.2084 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:56.5193 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:56.8320 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:57.1481 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:57.4575 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:57.7729 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:58.0834 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:58.3950 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:58.7104 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:59.0201 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:59.3357 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:59.6464 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:41:59.9618 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:00.2725 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:00.5842 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:00.8974 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:01.2106 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:01.5211 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:01.8341 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:02.1491 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:02.4572 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:02.7708 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:03.0832 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:03.3942 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:03.7097 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:04.0205 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:04.3366 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:04.6447 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:04.9591 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:05.2731 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:05.5857 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:05.8949 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:06.2079 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:06.5225 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:06.8349 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:07.1469 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:07.4571 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:07.7706 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:08.0836 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:08.3991 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:08.7078 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:09.0200 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:09.3332 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:09.6477 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:09.9585 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:10.2717 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:10.5818 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:10.8979 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:11.2081 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:11.5202 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:11.8327 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:12.1447 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:12.4595 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:12.7693 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:13.0849 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:13.3960 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:13.7080 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:14.0192 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:14.3350 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:14.6448 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:14.9599 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:15.2728 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:15.5828 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:15.8975 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:16.2073 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:16.5220 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:16.8353 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:17.1444 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:17.4591 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:17.7730 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:18.0824 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:18.3962 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:18.7085 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:19.0192 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:19.3327 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:19.6492 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:19.9584 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:20.2704 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:20.5862 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:20.8968 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:21.2066 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:21.5220 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:21.8355 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:22.1457 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:22.4596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:22.7710 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:23.0833 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:23.3978 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:23.7093 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:24.0210 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:24.3317 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:24.6481 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:24.9580 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:25.2720 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:25.5821 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:25.8961 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:26.2080 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:26.5214 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:26.8331 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:27.1444 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:27.4565 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:27.7713 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:28.0826 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:28.3962 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:28.7074 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:29.0205 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:29.3322 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:29.6476 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:29.9602 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:30.2720 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:30.5853 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:30.8972 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:31.2081 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:31.5195 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:31.8324 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:32.1477 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:32.4580 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:32.7706 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:33.0831 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:33.3962 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:33.7079 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:34.0222 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:34.3335 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:34.6444 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:34.9619 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:35.2718 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:35.5828 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:35.8952 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:36.2082 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:36.5230 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:36.8348 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:37.1468 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:37.4565 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:37.7705 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:38.0835 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:38.3973 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:38.7064 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:39.0196 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:39.3370 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:39.6454 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:39.9572 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:40.2721 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:40.5835 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:40.8966 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:41.2098 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:41.5237 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:41.8324 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:42.1462 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:42.4589 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:42.7700 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:43.0821 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:43.3944 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:43.7083 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:44.0215 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:44.3315 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:44.6458 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:44.9612 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:45.2721 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:45.5825 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:45.8958 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:46.2080 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:46.5193 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:46.8351 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:47.1473 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:47.4570 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:47.7695 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:48.0825 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:48.3958 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:48.7076 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:49.0211 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:49.3314 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:49.6454 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:49.9590 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:50.2721 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:50.5826 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:50.8953 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:51.2083 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:51.5194 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:51.8341 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:52.1465 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:52.4596 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:52.7702 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:53.0840 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:53.3974 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:53.7069 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:54.0189 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:54.3331 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:54.6484 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:54.9573 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:55.2717 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:55.5827 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:55.8954 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:56.2070 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:56.5218 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:56.8336 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:57.1482 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:57.4586 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:57.7689 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:58.0812 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:58.3953 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:58.7067 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:59.0232 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:59.3347 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:59.6450 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:42:59.9572 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:00.2696 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:00.5822 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:00.8973 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:01.2111 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:01.5199 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:01.8345 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:02.1472 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:02.4579 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:02.7696 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:03.2643 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:03.5693 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:03.8782 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:04.1920 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:04.5077 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:04.8184 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:05.1303 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:43:05.4422 [FATAL] : 1125.237,2,3,115.237 +2024-09-27 11:44:55.5553 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 13:27:12.9534 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 13:27:12.9534 [INFO] : 加载配置文件——>开始 +2024-09-27 13:27:12.9534 [INFO] : 加载配置文件——>完成 +2024-09-27 13:27:12.9534 [INFO] : Log in using the CLMS authorization. +2024-09-27 13:27:14.8742 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 13:27:15.3909 [INFO] : 启动PLC写线程! +2024-09-27 13:27:15.3909 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 13:27:15.3909 [INFO] : 连接PLC.... +2024-09-27 13:27:15.3909 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 13:27:15.3909 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 13:27:15.3909 [INFO] : PLC S7连接成功。 +2024-09-27 13:27:15.5325 [INFO] : 连接PLC成功 +2024-09-27 13:27:15.9305 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:27:16.0765 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 13:27:16.2083 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:37:15.6402 [INFO] : PLC心跳检测10分钟内未变化,断开PLC,进行PLC重连! +2024-09-27 13:37:15.6563 [INFO] : PLC断开,重连! +2024-09-27 13:37:15.6583 [INFO] : PLC S7连接成功。 +2024-09-27 13:37:16.6638 [INFO] : 重新连接PLC成功! +2024-09-27 13:41:11.0555 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-09-27 13:43:12.2093 [INFO] : --软件Program Main函数开始执行-- +2024-09-27 13:43:12.2237 [INFO] : 加载配置文件——>开始 +2024-09-27 13:43:12.2384 [INFO] : 加载配置文件——>完成 +2024-09-27 13:43:12.2384 [INFO] : Log in using the CLMS authorization. +2024-09-27 13:43:14.2705 [INFO] : 进入显示车身模式!显示车身界面。 +2024-09-27 13:43:15.1350 [INFO] : 启动PLC写线程! +2024-09-27 13:43:15.1350 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-09-27 13:43:15.1350 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-09-27 13:43:15.1350 [INFO] : 连接PLC.... +2024-09-27 13:43:15.1350 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-09-27 13:43:15.2069 [INFO] : PLC S7连接成功。 +2024-09-27 13:43:15.2822 [INFO] : 连接PLC成功 +2024-09-27 13:43:15.6409 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:43:15.7991 [INFO] : 显示左侧EH3车身数据界面。 +2024-09-27 13:43:15.9368 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:43:25.0367 [INFO] : Left EH3 UI Refresh Button:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-09-27 13:43:39.0334 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/logs/2024-10-08.log b/Analysis/bin/x64/Release/logs/2024-10-08.log new file mode 100644 index 0000000..b3777b6 --- /dev/null +++ b/Analysis/bin/x64/Release/logs/2024-10-08.log @@ -0,0 +1,16 @@ +2024-10-08 13:29:47.7936 [INFO] : --软件Program Main函数开始执行-- +2024-10-08 13:29:47.8050 [INFO] : 加载配置文件——>开始 +2024-10-08 13:29:47.8168 [INFO] : 加载配置文件——>完成 +2024-10-08 13:29:47.8168 [INFO] : Log in using the CLMS authorization. +2024-10-08 13:29:49.6682 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-08 13:29:50.4355 [INFO] : 启动PLC写线程! +2024-10-08 13:29:50.4355 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-08 13:29:50.4355 [INFO] : 连接PLC.... +2024-10-08 13:29:50.4355 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-08 13:29:50.4355 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-08 13:29:51.0390 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-08 13:29:51.1585 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-08 13:29:51.2848 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-08 13:29:52.4839 [ERROR] : PLC S7连接失败。 +2024-10-08 13:29:52.4839 [ERROR] : 连接PLC失败 +2024-10-08 13:30:24.7725 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/logs/2024-10-12.log b/Analysis/bin/x64/Release/logs/2024-10-12.log new file mode 100644 index 0000000..61657c3 --- /dev/null +++ b/Analysis/bin/x64/Release/logs/2024-10-12.log @@ -0,0 +1,96 @@ +2024-10-12 13:51:47.9983 [INFO] : --软件Program Main函数开始执行-- +2024-10-12 13:51:48.0134 [INFO] : 加载配置文件——>开始 +2024-10-12 13:51:48.0134 [INFO] : 加载配置文件——>完成 +2024-10-12 13:51:48.0134 [INFO] : Log in using the CLMS authorization. +2024-10-12 13:51:49.8664 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-12 13:51:50.3342 [INFO] : 启动PLC写线程! +2024-10-12 13:51:50.3342 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-12 13:51:50.3342 [INFO] : 连接PLC.... +2024-10-12 13:51:50.3342 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-12 13:51:50.3342 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-12 13:51:50.9243 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-12 13:51:51.0839 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-12 13:51:51.2198 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-12 13:51:52.3946 [ERROR] : PLC S7连接失败。 +2024-10-12 13:51:52.3946 [ERROR] : 连接PLC失败 +2024-10-12 13:52:10.3443 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-12 15:32:37.1682 [INFO] : --软件Program Main函数开始执行-- +2024-10-12 15:32:37.1682 [INFO] : 加载配置文件——>开始 +2024-10-12 15:32:37.1862 [INFO] : 加载配置文件——>完成 +2024-10-12 15:32:37.1862 [INFO] : Log in using the CLMS authorization. +2024-10-12 15:32:38.8678 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-12 15:32:39.4205 [INFO] : 启动PLC写线程! +2024-10-12 15:32:39.4205 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-12 15:32:39.4205 [INFO] : 连接PLC.... +2024-10-12 15:32:39.4205 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-12 15:32:39.4205 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-12 15:32:39.9222 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-12 15:32:40.0866 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-12 15:32:40.2238 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-12 15:32:41.4787 [ERROR] : PLC S7连接失败。 +2024-10-12 15:32:41.4787 [ERROR] : 连接PLC失败 +2024-10-12 15:33:25.4024 [INFO] : 存在EH3 CSV文件,开始解析: +2024-10-12 15:33:25.4024 [INFO] : Copy D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-12 15:33:25.4024 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-12 15:33:25.4024 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23084 +2024-10-12 15:33:25.4024 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-12 15:33:25.4024 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-21 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-21 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-22 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-22 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-14 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4488 [ERROR] : EH3 L-14 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4654 [ERROR] : EH3 L-15 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4654 [ERROR] : EH3 L-15 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4654 [ERROR] : EH3 L-16 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4654 [ERROR] : EH3 L-16 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4826 [ERROR] : EH3 L-18 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.4826 [ERROR] : EH3 L-18 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6030 [ERROR] : EH3 R-14 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6111 [ERROR] : EH3 R-14 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6111 [ERROR] : EH3 R-15 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6300 [ERROR] : EH3 R-15 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6388 [ERROR] : EH3 R-16 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6388 [ERROR] : EH3 R-16 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6388 [ERROR] : EH3 R-18 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.6557 [ERROR] : EH3 R-18 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:33:25.7032 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-12 15:33:25.7032 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-10-12 15:33:25.7293 [INFO] : 将EH3总结果插入数据库完毕。 +2024-10-12 15:33:25.7293 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-12 15:33:25.7293 [INFO] : EH3数据生成报告功能未启用! +2024-10-12 15:33:25.7293 [INFO] : 数据上传IOT功能未启用! +2024-10-12 15:35:29.8196 [INFO] : 存在EH3 CSV文件,开始解析: +2024-10-12 15:35:29.8196 [INFO] : Copy D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-12 15:35:29.8196 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-12 15:35:29.8196 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23085 +2024-10-12 15:35:29.8196 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:WNNBBDEC8RDA23085 +2024-10-12 15:35:29.8196 [INFO] : 在数据库表TTempSaveVIN中删除该VIN:WNNBBDEC8RDA23085 +2024-10-12 15:35:29.8580 [ERROR] : EH3 L-21 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8580 [ERROR] : EH3 L-21 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8580 [ERROR] : EH3 L-22 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8580 [ERROR] : EH3 L-22 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8694 [ERROR] : EH3 L-14 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8694 [ERROR] : EH3 L-14 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8694 [ERROR] : EH3 L-15 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8694 [ERROR] : EH3 L-15 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8850 [ERROR] : EH3 L-16 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8850 [ERROR] : EH3 L-16 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8850 [ERROR] : EH3 L-18 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:29.8850 [ERROR] : EH3 L-18 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0049 [ERROR] : EH3 R-14 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0129 [ERROR] : EH3 R-14 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0129 [ERROR] : EH3 R-15 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0279 [ERROR] : EH3 R-15 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0373 [ERROR] : EH3 R-16 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0373 [ERROR] : EH3 R-16 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0373 [ERROR] : EH3 R-18 F 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0545 [ERROR] : EH3 R-18 G 查询数据获取公差带失败!数据库中数量不唯一,请检查公差带配置! +2024-10-12 15:35:30.0875 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-12 15:35:30.0875 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-10-12 15:35:30.0875 [INFO] : 将EH3总结果插入数据库完毕。 +2024-10-12 15:35:30.0875 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-12 15:35:30.0875 [INFO] : EH3数据生成报告功能未启用! +2024-10-12 15:35:30.0875 [INFO] : 数据上传IOT功能未启用! +2024-10-12 15:37:17.0987 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/logs/2024-10-22.log b/Analysis/bin/x64/Release/logs/2024-10-22.log new file mode 100644 index 0000000..3a8fff3 --- /dev/null +++ b/Analysis/bin/x64/Release/logs/2024-10-22.log @@ -0,0 +1,32 @@ +2024-10-22 10:11:33.2937 [INFO] : --软件Program Main函数开始执行-- +2024-10-22 10:11:33.2937 [INFO] : 加载配置文件——>开始 +2024-10-22 10:11:33.3170 [INFO] : 加载配置文件——>完成 +2024-10-22 10:11:33.3170 [INFO] : Log in using the CLMS authorization. +2024-10-22 10:11:34.9861 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-22 10:11:35.6488 [INFO] : 启动PLC写线程! +2024-10-22 10:11:35.6488 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-22 10:11:35.6488 [INFO] : 连接PLC.... +2024-10-22 10:11:35.6488 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-22 10:11:35.6488 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-22 10:11:36.1538 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-22 10:11:36.3181 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-22 10:11:36.4690 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-22 10:11:37.6955 [ERROR] : PLC S7连接失败。 +2024-10-22 10:11:37.6955 [ERROR] : 连接PLC失败 +2024-10-22 10:19:20.3929 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-22 11:42:00.4117 [INFO] : --软件Program Main函数开始执行-- +2024-10-22 11:42:00.4117 [INFO] : 加载配置文件——>开始 +2024-10-22 11:42:00.4326 [INFO] : 加载配置文件——>完成 +2024-10-22 11:42:00.4326 [INFO] : Log in using the CLMS authorization. +2024-10-22 11:42:01.9976 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-22 11:42:02.6044 [INFO] : 启动PLC写线程! +2024-10-22 11:42:02.6044 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-22 11:42:02.6044 [INFO] : 连接PLC.... +2024-10-22 11:42:02.6044 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-22 11:42:02.6044 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-22 11:42:03.0922 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-22 11:42:03.2706 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-22 11:42:03.4162 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-22 11:42:04.6519 [ERROR] : PLC S7连接失败。 +2024-10-22 11:42:04.6519 [ERROR] : 连接PLC失败 +2024-10-22 13:50:01.1628 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/logs/2024-10-23.log b/Analysis/bin/x64/Release/logs/2024-10-23.log new file mode 100644 index 0000000..3dd2b96 --- /dev/null +++ b/Analysis/bin/x64/Release/logs/2024-10-23.log @@ -0,0 +1,294 @@ +2024-10-23 10:04:56.3174 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 10:05:00.3004 [INFO] : 加载配置文件——>开始 +2024-10-23 10:05:00.3167 [INFO] : 加载配置文件——>完成 +2024-10-23 10:05:00.3167 [INFO] : Log in using the CLMS authorization. +2024-10-23 10:05:02.3946 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 10:05:03.3208 [INFO] : 启动PLC写线程! +2024-10-23 10:05:03.3208 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 10:05:03.3208 [INFO] : 连接PLC.... +2024-10-23 10:05:03.3208 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 10:05:03.3208 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 10:05:03.8579 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-23 10:05:04.0519 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-23 10:05:04.1963 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-23 10:05:05.3853 [ERROR] : PLC S7连接失败。 +2024-10-23 10:05:05.3853 [ERROR] : 连接PLC失败 +2024-10-23 10:06:27.7542 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 10:06:30.1222 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 10:06:30.1222 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 10:06:30.1261 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23999 +2024-10-23 10:06:30.1261 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 10:06:30.1261 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 10:06:36.3555 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 10:06:36.3555 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 10:06:36.3804 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 10:06:36.3804 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 10:06:36.3804 [INFO] : iCreateReportFlag=0 : EHY数据生成报告功能未启用! +2024-10-23 10:06:36.3804 [INFO] : EHY数据上传IOT功能未启用! +2024-10-23 10:07:56.5082 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 10:08:01.0826 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 10:08:01.0826 [INFO] : 加载配置文件——>开始 +2024-10-23 10:08:01.0957 [INFO] : 加载配置文件——>完成 +2024-10-23 10:08:01.0957 [INFO] : Log in using the CLMS authorization. +2024-10-23 10:08:03.2131 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 10:08:03.9328 [INFO] : 启动PLC写线程! +2024-10-23 10:08:03.9328 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 10:08:03.9328 [INFO] : 连接PLC.... +2024-10-23 10:08:03.9328 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 10:08:03.9328 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 10:08:04.5510 [INFO] : Left EH3 UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-23 10:08:04.7347 [INFO] : 显示左侧EH3车身数据界面。 +2024-10-23 10:08:04.8636 [INFO] : Left EHY UI Refresh tmrRefreshData:CarType:EH3 ;VIN: LLNNBBDEC5RDA18303 +2024-10-23 10:08:06.0531 [ERROR] : PLC S7连接失败。 +2024-10-23 10:08:06.0531 [ERROR] : 连接PLC失败 +2024-10-23 10:09:30.0979 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 10:09:30.0979 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 10:09:30.0979 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 10:09:30.0979 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23998 +2024-10-23 10:09:30.0979 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 10:09:30.0979 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 10:09:30.5658 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 10:09:30.5658 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 10:09:30.5854 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 10:09:30.5854 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 10:09:30.5943 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-23 10:09:30.5943 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241023100930_LNNBBDEC8RDA23998.csv +2024-10-23 10:09:30.7341 [INFO] : Update To IOT Data Content: {"serno":"20241023100930734","requestData":[{"vin":"LNNBBDEC8RDA23998","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 10:09:30","targetRate":"60.00%","rate":"89.29%","GapList":[{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-01","actualValue":"3.7","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23998","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23998","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"}]}]} +2024-10-23 10:09:40.7881 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1266 +2024-10-23 10:09:40.7881 [ERROR] : EHY数据上传IOT失败! +2024-10-23 11:00:37.5378 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 13:14:43.3743 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 13:14:43.3743 [INFO] : 加载配置文件——>开始 +2024-10-23 13:14:43.3980 [INFO] : 加载配置文件——>完成 +2024-10-23 13:14:43.3980 [INFO] : Log in using the CLMS authorization. +2024-10-23 13:14:45.3305 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 13:14:46.3625 [INFO] : 启动PLC写线程! +2024-10-23 13:14:46.3625 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 13:14:46.3625 [INFO] : 连接PLC.... +2024-10-23 13:14:46.3625 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 13:14:46.3625 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 13:14:48.4154 [ERROR] : PLC S7连接失败。 +2024-10-23 13:14:48.4154 [ERROR] : 连接PLC失败 +2024-10-23 13:15:11.4963 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:02:03.4498 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:02:03.4613 [INFO] : 加载配置文件——>开始 +2024-10-23 14:02:03.4613 [INFO] : 加载配置文件——>完成 +2024-10-23 14:02:03.4613 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:02:05.1381 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:02:05.7326 [INFO] : 启动PLC写线程! +2024-10-23 14:02:05.7326 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:02:05.7326 [INFO] : 连接PLC.... +2024-10-23 14:02:05.7326 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:02:05.7326 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:02:07.7914 [ERROR] : PLC S7连接失败。 +2024-10-23 14:02:07.7914 [ERROR] : 连接PLC失败 +2024-10-23 14:03:31.3437 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:20:01.8223 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:20:01.8338 [INFO] : 加载配置文件——>开始 +2024-10-23 14:20:01.8475 [INFO] : 加载配置文件——>完成 +2024-10-23 14:20:01.8475 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:20:03.7521 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:20:04.6498 [INFO] : 启动PLC写线程! +2024-10-23 14:20:04.6498 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:20:04.6498 [INFO] : 连接PLC.... +2024-10-23 14:20:04.6498 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:20:04.6498 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:20:06.7141 [ERROR] : PLC S7连接失败。 +2024-10-23 14:20:06.7141 [ERROR] : 连接PLC失败 +2024-10-23 14:29:31.8066 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:29:33.1442 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:29:33.1442 [INFO] : 加载配置文件——>开始 +2024-10-23 14:29:33.1598 [INFO] : 加载配置文件——>完成 +2024-10-23 14:29:33.1598 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:29:34.8100 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:29:35.6439 [INFO] : 启动PLC写线程! +2024-10-23 14:29:35.6439 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:29:35.6439 [INFO] : 连接PLC.... +2024-10-23 14:29:35.6439 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:29:35.6439 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:29:37.6987 [ERROR] : PLC S7连接失败。 +2024-10-23 14:29:37.6987 [ERROR] : 连接PLC失败 +2024-10-23 14:31:00.9365 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:31:07.5510 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:31:07.5510 [INFO] : 加载配置文件——>开始 +2024-10-23 14:31:07.5510 [INFO] : 加载配置文件——>完成 +2024-10-23 14:31:07.5510 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:31:09.1709 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:31:09.9346 [INFO] : 启动PLC写线程! +2024-10-23 14:31:09.9346 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:31:09.9346 [INFO] : 连接PLC.... +2024-10-23 14:31:09.9346 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:31:09.9346 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:31:11.9773 [ERROR] : PLC S7连接失败。 +2024-10-23 14:31:11.9773 [ERROR] : 连接PLC失败 +2024-10-23 14:33:40.9002 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:36:36.3807 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:36:36.3807 [INFO] : 加载配置文件——>开始 +2024-10-23 14:36:36.3807 [INFO] : 加载配置文件——>完成 +2024-10-23 14:36:36.3930 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:36:37.9213 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:36:38.6950 [INFO] : 启动PLC写线程! +2024-10-23 14:36:38.6950 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:36:38.6950 [INFO] : 连接PLC.... +2024-10-23 14:36:38.6950 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:36:38.6950 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:36:40.7571 [ERROR] : PLC S7连接失败。 +2024-10-23 14:36:40.7571 [ERROR] : 连接PLC失败 +2024-10-23 14:37:57.1822 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:38:53.7067 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:38:53.7185 [INFO] : 加载配置文件——>开始 +2024-10-23 14:38:53.7185 [INFO] : 加载配置文件——>完成 +2024-10-23 14:38:53.7308 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:38:55.6340 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:38:56.7717 [INFO] : 启动PLC写线程! +2024-10-23 14:38:56.7717 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:38:56.7717 [INFO] : 连接PLC.... +2024-10-23 14:38:56.7717 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:38:56.7717 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:38:58.8738 [ERROR] : PLC S7连接失败。 +2024-10-23 14:38:58.8738 [ERROR] : 连接PLC失败 +2024-10-23 14:41:08.9543 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:41:12.7458 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:41:12.7458 [INFO] : 加载配置文件——>开始 +2024-10-23 14:41:12.7615 [INFO] : 加载配置文件——>完成 +2024-10-23 14:41:12.7615 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:41:14.2639 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:41:15.0677 [INFO] : 启动PLC写线程! +2024-10-23 14:41:15.0677 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:41:15.0677 [INFO] : 连接PLC.... +2024-10-23 14:41:15.0677 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:41:15.0677 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:41:17.1234 [ERROR] : PLC S7连接失败。 +2024-10-23 14:41:17.1234 [ERROR] : 连接PLC失败 +2024-10-23 14:41:46.0880 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 14:45:28.8317 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 14:45:28.8317 [INFO] : 加载配置文件——>开始 +2024-10-23 14:45:28.8464 [INFO] : 加载配置文件——>完成 +2024-10-23 14:45:28.8464 [INFO] : Log in using the CLMS authorization. +2024-10-23 14:45:30.3738 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 14:45:31.1593 [INFO] : 启动PLC写线程! +2024-10-23 14:45:31.1593 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 14:45:31.1593 [INFO] : 连接PLC.... +2024-10-23 14:45:31.1593 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 14:45:31.1593 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 14:45:33.2069 [ERROR] : PLC S7连接失败。 +2024-10-23 14:45:33.2069 [ERROR] : 连接PLC失败 +2024-10-23 14:47:11.0158 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-23 16:47:36.2974 [INFO] : --软件Program Main函数开始执行-- +2024-10-23 16:47:36.3106 [INFO] : 加载配置文件——>开始 +2024-10-23 16:47:36.3261 [INFO] : 加载配置文件——>完成 +2024-10-23 16:47:36.3261 [INFO] : Log in using the CLMS authorization. +2024-10-23 16:47:38.3732 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-23 16:47:39.4171 [INFO] : 启动PLC写线程! +2024-10-23 16:47:39.4171 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-23 16:47:39.4171 [INFO] : 连接PLC.... +2024-10-23 16:47:39.4171 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-23 16:47:39.4171 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-23 16:47:41.4666 [ERROR] : PLC S7连接失败。 +2024-10-23 16:47:41.4666 [ERROR] : 连接PLC失败 +2024-10-23 16:49:19.5651 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 16:49:19.5651 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:49:19.5701 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:49:19.5701 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23997 +2024-10-23 16:49:19.5701 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:49:19.5701 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:49:19.8688 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:49:19.8688 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 16:49:19.8926 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 16:49:19.8926 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:49:19.8976 [INFO] : LNNBBDEC8RDA23997 EHY开始计算极差:============ +2024-10-23 16:49:19.9197 [INFO] : LNNBBDEC8RDA23997 EHY计算极差完成,并插入数据库:============ +2024-10-23 16:49:19.9557 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-23 16:49:19.9557 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241023164919_LNNBBDEC8RDA23997.csv +2024-10-23 16:49:20.0835 [INFO] : Update To IOT Data Content: {"serno":"20241023164920083","requestData":[{"vin":"LNNBBDEC8RDA23997","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:49:19","targetRate":"60.00%","rate":"89.29%","GapList":[{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-01","actualValue":"3.7","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD01L","actualValue":"0.3","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD07","actualValue":"0.2","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23997","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 16:49:30.1367 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 16:49:30.1367 [ERROR] : EHY数据上传IOT失败! +2024-10-23 16:55:26.0299 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 16:55:26.0299 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:55:26.0299 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:55:26.0299 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23996 +2024-10-23 16:55:26.0299 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:55:26.0299 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:55:26.2711 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:55:26.2711 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 16:55:26.2711 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 16:55:26.2711 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:55:26.2805 [INFO] : LNNBBDEC8RDA23996 EHY开始计算极差:============ +2024-10-23 16:55:26.2961 [INFO] : LNNBBDEC8RDA23996 EHY计算极差完成,并插入数据库:============ +2024-10-23 16:55:26.3266 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-23 16:55:26.3266 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241023165526_LNNBBDEC8RDA23996.csv +2024-10-23 16:55:26.3266 [INFO] : Update To IOT Data Content: {"serno":"20241023165526328","requestData":[{"vin":"LNNBBDEC8RDA23996","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:55:26","targetRate":"60.00%","rate":"89.09%","GapList":[{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-01","actualValue":"","controlLine":"-1.7/0.3","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-01","actualValue":"3.7","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD01L","actualValue":"0.3","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD07","actualValue":"0.2","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23996","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 16:55:36.3605 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 16:55:36.3605 [ERROR] : EHY数据上传IOT失败! +2024-10-23 16:56:48.3579 [INFO] : 存在EHY CSV文件,开始解析: +2024-10-23 16:56:48.3579 [INFO] : Copy D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:56:48.3579 [INFO] : 开始解析NextSense EHY CSV 报告:D:\cherytestEHY\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:56:48.3579 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA23995 +2024-10-23 16:56:48.3579 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:56:48.3579 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:56:48.6501 [INFO] : 解析EHY数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:56:48.6511 [INFO] : 解析NextSense EHY CSV 报告完毕! +2024-10-23 16:56:48.6511 [INFO] : 将总结果插入数据库完毕。 +2024-10-23 16:56:48.6511 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:56:48.6511 [INFO] : LNNBBDEC8RDA23995 EHY开始计算极差:============ +2024-10-23 16:56:48.6511 [INFO] : L-01G G 查询的测量值为inv +2024-10-23 16:56:48.6725 [INFO] : L-01G G 查询的测量值为inv +2024-10-23 16:56:48.6725 [INFO] : LNNBBDEC8RDA23995 EHY计算极差完成,并插入数据库:============ +2024-10-23 16:56:48.7121 [INFO] : 开始生成客户所需要的CSV格式文件: +2024-10-23 16:56:48.7121 [INFO] : 客户EHY csv报告生成完毕,路径为:D:\QMLTest\20241023165648_LNNBBDEC8RDA23995.csv +2024-10-23 16:56:48.7141 [INFO] : Update To IOT Data Content: {"serno":"20241023165648714","requestData":[{"vin":"LNNBBDEC8RDA23995","model":"EHY","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:56:48","targetRate":"60.00%","rate":"89.09%","GapList":[{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-01","actualValue":"","controlLine":"2.4/4.2","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-02","actualValue":"3.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD01L","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD07","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA23995","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 16:56:58.7366 [ERROR] : EHY数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 16:56:58.7366 [ERROR] : EHY数据上传IOT失败! +2024-10-23 16:58:42.4020 [INFO] : 存在EH3 CSV文件,开始解析: +2024-10-23 16:58:42.4020 [INFO] : Copy D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:58:42.4020 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:58:42.4020 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA22999 +2024-10-23 16:58:42.4020 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:58:42.4020 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:58:42.6358 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:58:42.6358 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-10-23 16:58:42.6358 [INFO] : 将EH3总结果插入数据库完毕。 +2024-10-23 16:58:42.6358 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:58:42.6358 [INFO] : LNNBBDEC8RDA22999 EH3开始计算极差:============ +2024-10-23 16:58:42.6358 [INFO] : L-01G G 查询的测量值为inv +2024-10-23 16:58:42.6524 [INFO] : L-01G G 查询的测量值为inv +2024-10-23 16:58:42.6524 [INFO] : LNNBBDEC8RDA22999 EH3计算极差完成,并插入数据库:============ +2024-10-23 16:58:42.6817 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241023165842_LNNBBDEC8RDA22999.csv +2024-10-23 16:58:42.6817 [INFO] : Update To IOT Data Content: {"serno":"20241023165842682","requestData":[{"vin":"LNNBBDEC8RDA22999","model":"EH3","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:58:42","targetRate":"60.00%","rate":"89.09%","GapList":[{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-01","actualValue":"","controlLine":"2.4/4.2","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-02","actualValue":"2.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD01L","actualValue":"inv","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD07","actualValue":"inv","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22999","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 16:58:52.7129 [ERROR] : EH3数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 16:58:52.7129 [ERROR] : EH3数据上传IOT失败! +2024-10-23 16:59:51.4632 [INFO] : 存在EH3 CSV文件,开始解析: +2024-10-23 16:59:51.4632 [INFO] : Copy D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv TO E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\bin\x64\Debug\File\NextSenseCSVBackup\奇瑞总装C0heryEHY_20241011_131932.csv Done. 备份完成 +2024-10-23 16:59:51.4632 [INFO] : 开始解析NextSense EH3 CSV 报告:D:\cherytestEH3\奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:59:51.4632 [INFO] : 解析出NextSense CSV中的VIN为:NNBBDEC8RDA22998 +2024-10-23 16:59:51.4632 [INFO] : 通过CSV VIN从数据库中获取的完整VIN为:NoFind +2024-10-23 16:59:51.4632 [INFO] : 数据库中没有查找到VIN码,NoFind, +L 使用CSV码 +2024-10-23 16:59:51.7086 [INFO] : 解析EH3数据完成,并将所有测量数据插入到数据库完毕。 +2024-10-23 16:59:51.7086 [INFO] : 解析NextSense EH3 CSV 报告完毕! +2024-10-23 16:59:51.7152 [INFO] : 将EH3总结果插入数据库完毕。 +2024-10-23 16:59:51.7152 [INFO] : 全部插入解析完毕,删除文件:奇瑞总装C0heryEHY_20241011_131932.csv +2024-10-23 16:59:51.7152 [INFO] : LNNBBDEC8RDA22998 EH3开始计算极差:============ +2024-10-23 16:59:51.7345 [INFO] : LNNBBDEC8RDA22998 EH3计算极差完成,并插入数据库:============ +2024-10-23 16:59:51.7581 [INFO] : 客户csv报告生成完毕,路径为:D:\QMLTest\20241023165951_LNNBBDEC8RDA22998.csv +2024-10-23 16:59:51.7581 [INFO] : Update To IOT Data Content: {"serno":"20241023165951759","requestData":[{"vin":"LNNBBDEC8RDA22998","model":"EH3","equipmentNo":"NS002","equipmentName":"Hexagon","calibrationResult":"OK","detectionTime":"2024-10-23 16:59:51","targetRate":"60.00%","rate":"89.29%","GapList":[{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-01","actualValue":"-1.3","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-01","actualValue":"2.6","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-02","actualValue":"-1.0","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-02","actualValue":"2.5","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-03","actualValue":"-0.7","controlLine":"-1.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-03","actualValue":"3.8","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-04","actualValue":"-0.1","controlLine":"-0.5/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-06","actualValue":"3.3","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-10","actualValue":"0.9","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-10","actualValue":"2.9","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-08","actualValue":"0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-08","actualValue":"3.3","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-12","actualValue":"-0.1","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-12","actualValue":"3.4","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-13","actualValue":"3.9","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-21","actualValue":"-1.0","controlLine":"-1.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-21","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-22","actualValue":"0.5","controlLine":"-1.0/0.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-22","actualValue":"2.1","controlLine":"1.8/2.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-14","actualValue":"-2.1","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-14","actualValue":"4.7","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-15","actualValue":"-1.5","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-15","actualValue":"3.2","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-16","actualValue":"-1.8","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-16","actualValue":"2.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"L-18","actualValue":"1.5","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"L-18","actualValue":"3.1","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-01","actualValue":"-1.4","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-01","actualValue":"3.5","controlLine":"2.4/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-02","actualValue":"-1.5","controlLine":"-1.7/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-02","actualValue":"3.0","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-03","actualValue":"-1.9","controlLine":"-1.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-03","actualValue":"2.9","controlLine":"2.3/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-04","actualValue":"-0.9","controlLine":"-0.5/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-04","actualValue":"3.1","controlLine":"2.3/3.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-06","actualValue":"0.5","controlLine":"-0.8/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-06","actualValue":"2.9","controlLine":"2.6/4.6","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-10","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-10","actualValue":"3.8","controlLine":"2.7/4.1","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-08","actualValue":"-0.2","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-08","actualValue":"3.7","controlLine":"2.9/4.2","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-12","actualValue":"0.0","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-12","actualValue":"3.2","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-13","actualValue":"0.5","controlLine":"-0.4/0.8","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-13","actualValue":"3.3","controlLine":"2.7/3.9","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-14","actualValue":"-0.6","controlLine":"-2.4/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-14","actualValue":"3.9","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-15","actualValue":"-1.3","controlLine":"-2.0/0.3","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-15","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-16","actualValue":"-0.7","controlLine":"-2.0/0.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-16","actualValue":"4.4","controlLine":"2.7/4.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"F","pointNumber":"R-18","actualValue":"0.0","controlLine":"-2.7/-0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"R-18","actualValue":"3.0","controlLine":"2.6/5.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD01L","actualValue":"1.3","controlLine":"0.0/0.7","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD02L","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD03L","actualValue":"0.4","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD04L","actualValue":"0.5","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD05L","actualValue":"0.0","controlLine":"0.0/0.5","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD06L","actualValue":"0.3","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD01R","actualValue":"0.6","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD02R","actualValue":"0.2","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD03R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD04R","actualValue":"0.1","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD06R","actualValue":"0.0","controlLine":"0.0/0.7","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD07","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD08","actualValue":"0.5","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD09","actualValue":"0.9","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD10","actualValue":"0.8","controlLine":"0.0/1.0","measurementResult":"OK"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD11","actualValue":"1.2","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD12","actualValue":"1.5","controlLine":"0.0/1.0","measurementResult":"NG"},{"vin":"LNNBBDEC8RDA22998","gfNo":"G","pointNumber":"FD13","actualValue":"0.0","controlLine":"0.0/1.2","measurementResult":"OK"}]}]} +2024-10-23 17:00:01.7805 [ERROR] : EH3数据上传IOT完成,结果返回为:Error: System.Net.WebException: 操作超时 + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 NSAnalysis.CenterControl.PostJsonToIOT(String url, String jsonData, Nullable`1 timeout) 位置 E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\Analysis\CenterControl.cs:行号 1396 +2024-10-23 17:00:01.7805 [ERROR] : EH3数据上传IOT失败! +2024-10-23 17:01:05.8332 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/bin/x64/Release/logs/2024-10-24.log b/Analysis/bin/x64/Release/logs/2024-10-24.log new file mode 100644 index 0000000..5395263 --- /dev/null +++ b/Analysis/bin/x64/Release/logs/2024-10-24.log @@ -0,0 +1,48 @@ +2024-10-24 14:19:09.8451 [INFO] : --软件Program Main函数开始执行-- +2024-10-24 14:19:09.8558 [INFO] : 加载配置文件——>开始 +2024-10-24 14:19:09.8558 [INFO] : 加载配置文件——>完成 +2024-10-24 14:19:09.8558 [INFO] : Log in using the CLMS authorization. +2024-10-24 14:19:11.7946 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-24 14:19:12.8062 [INFO] : 启动PLC写线程! +2024-10-24 14:19:12.8062 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-24 14:19:12.8062 [INFO] : 连接PLC.... +2024-10-24 14:19:12.8082 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-24 14:19:12.8082 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-24 14:19:13.3777 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:19:13.3885 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:19:13.5659 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-24 14:19:14.8698 [ERROR] : PLC S7连接失败。 +2024-10-24 14:19:14.8788 [ERROR] : 连接PLC失败 +2024-10-24 14:21:12.4495 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-24 14:31:31.8417 [INFO] : --软件Program Main函数开始执行-- +2024-10-24 14:31:31.8551 [INFO] : 加载配置文件——>开始 +2024-10-24 14:31:31.8551 [INFO] : 加载配置文件——>完成 +2024-10-24 14:31:31.8551 [INFO] : Log in using the CLMS authorization. +2024-10-24 14:31:33.7788 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-24 14:31:34.2886 [INFO] : 启动PLC写线程! +2024-10-24 14:31:34.2886 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-24 14:31:34.2886 [INFO] : 连接PLC.... +2024-10-24 14:31:34.2886 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-24 14:31:34.2886 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-24 14:31:34.9032 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:31:35.1371 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:31:35.2962 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-24 14:31:36.3452 [ERROR] : PLC S7连接失败。 +2024-10-24 14:31:36.3452 [ERROR] : 连接PLC失败 +2024-10-24 14:33:43.0475 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- +2024-10-24 14:42:08.6420 [INFO] : --软件Program Main函数开始执行-- +2024-10-24 14:42:08.6420 [INFO] : 加载配置文件——>开始 +2024-10-24 14:42:08.6609 [INFO] : 加载配置文件——>完成 +2024-10-24 14:42:08.6609 [INFO] : Log in using the CLMS authorization. +2024-10-24 14:42:10.6394 [INFO] : 进入显示车身模式!显示车身界面。 +2024-10-24 14:42:11.3805 [INFO] : 启动PLC写线程! +2024-10-24 14:42:11.3805 [INFO] : 进入解析CSV文件模式,开始解析扫码CSV文件! +2024-10-24 14:42:11.3805 [INFO] : 连接PLC.... +2024-10-24 14:42:11.3805 [INFO] : 软件首次启动, Nextsense EH3 CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEH3 +2024-10-24 14:42:11.3805 [INFO] : 软件首次启动, Nextsense EHY CSV读取路径存在;不清空,读取NextSense生成 CSV报告路径下的所有文件,路径为:D:\cherytestEHY +2024-10-24 14:42:11.8774 [INFO] : Left EH3 UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:42:12.1116 [INFO] : Left EHY UI Refresh tmrRefreshData (strVIN.Length==21):CarType:EHY ;VIN: LNNBBDEC8RDA23997 +2024-10-24 14:42:12.2780 [INFO] : 显示左侧EHY车身数据界面。 +2024-10-24 14:42:13.4436 [ERROR] : PLC S7连接失败。 +2024-10-24 14:42:13.4436 [ERROR] : 连接PLC失败 +2024-10-24 14:42:18.8699 [INFO] : -------------海克斯康面隙分析软件程序关闭--------------------- diff --git a/Analysis/packages.config b/Analysis/packages.config new file mode 100644 index 0000000..cfb65c9 --- /dev/null +++ b/Analysis/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/CheryFianlAssemblyLine.sln b/CheryFianlAssemblyLine.sln new file mode 100644 index 0000000..637bc1e --- /dev/null +++ b/CheryFianlAssemblyLine.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35707.178 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "9.Analysis", "Analysis\9.Analysis.csproj", "{7C83975D-A071-48E0-8A12-DAFD20525B66}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Debug|Any CPU.ActiveCfg = Debug|x64 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Debug|Any CPU.Build.0 = Debug|x64 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Debug|x64.ActiveCfg = Debug|x64 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Debug|x64.Build.0 = Debug|x64 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Debug|x86.ActiveCfg = Debug|x86 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Debug|x86.Build.0 = Debug|x86 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Release|Any CPU.ActiveCfg = Release|x64 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Release|Any CPU.Build.0 = Release|x64 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Release|x64.ActiveCfg = Release|x64 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Release|x64.Build.0 = Release|x64 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Release|x86.ActiveCfg = Release|x86 + {7C83975D-A071-48E0-8A12-DAFD20525B66}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {679EEFDD-F852-4775-BCB6-3A0ED77DD797} + EndGlobalSection +EndGlobal